{"openapi":"3.1.0","info":{"title":"Vex API","version":"1.0.0","description":"Generated from Rails routes. Run `bin/rails ts:client:openapi` after route changes."},"paths":{"/api/v1/agent/chat":{"post":{"operationId":"api_v1_chat","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/roder/machines/{public_id}":{"post":{"operationId":"post_api_v1_agent_roder_machines_public_id_","tags":["agent"],"parameters":[{"name":"public_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/roder/run/automation_artifact":{"post":{"operationId":"api_v1_roder_run_automation_artifact","tags":["agent"],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Artifact-Filename","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"is_error":{"type":"boolean"},"value":{"type":"object","properties":{"artifact":{"$ref":"#/components/schemas/AutomationArtifactManifest"}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"string","additionalProperties":true,"format":"binary"}},"text/html":{"schema":{"type":"string","format":"binary"}},"text/plain":{"schema":{"type":"string","format":"binary"}},"text/markdown":{"schema":{"type":"string","format":"binary"}},"application/pdf":{"schema":{"type":"string","format":"binary"}},"image/png":{"schema":{"type":"string","format":"binary"}},"image/jpeg":{"schema":{"type":"string","format":"binary"}},"image/svg+xml":{"schema":{"type":"string","format":"binary"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/roder/run/automation_tool":{"post":{"operationId":"api_v1_roder_run_automation_tool","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/roder/run/automation_transcript":{"post":{"operationId":"api_v1_roder_run_automation_transcript","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["sequence","truncated"],"properties":{"sequence":{"type":"integer"},"truncated":{"type":"boolean"}}}}}},"401":{"description":"Invalid or revoked run capability"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Invalid entry"},"502":{"description":"Bad gateway"},"409":{"description":"Sequence conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["sequence","kind","content"],"properties":{"sequence":{"type":"integer","minimum":1,"maximum":128},"kind":{"type":"string","enum":["instructions","input","assistant","tool_call","tool_result","correction","error"]},"name":{"type":"string","maxLength":100},"call_id":{"type":"string","maxLength":128},"content":{"type":"string","description":"Visible UTF-8 text, at most 65536 bytes."},"truncated":{"type":"boolean"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/roder/run/swarm_activity":{"post":{"operationId":"api_v1_roder_run_swarm_activity","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Activity batch accepted","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["accepted","last_seq"],"properties":{"accepted":{"type":"integer","minimum":1},"last_seq":{"type":"integer","minimum":1}}}}}},"401":{"description":"Swarm not visible to the current user","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Swarm not visible to the current user","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"},"409":{"description":"Swarm not visible to the current user","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"429":{"description":"Swarm not visible to the current user","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["events"],"properties":{"events":{"type":"array","minItems":1,"maxItems":20,"items":{"$ref":"#/components/schemas/AgentSwarmActivityReport"}}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/roder/run/swarm_stack":{"post":{"operationId":"api_v1_roder_run_swarm_stack","tags":["agent"],"parameters":[],"responses":{"201":{"description":"Stack received and composed; the receipt","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"200":{"description":"Replay of an already received stack; the existing receipt","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"202":{"description":"The receipt is still composing in another request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"409":{"description":"stack_payload_conflict or attempt_fenced","content":{"application/json":{"schema":{"type":"object","required":["error","refusal"],"properties":{"error":{"type":"string"},"refusal":{"type":"object","required":["code"],"properties":{"code":{"type":"string"},"detail":{"type":"string"}}},"receipt":{"type":"object","additionalProperties":true}}}}}},"413":{"description":"stack_too_large (detail bytes); the body exceeds 25 MiB declared or decoded","content":{"application/json":{"schema":{"type":"object","required":["error","refusal"],"properties":{"error":{"type":"string"},"refusal":{"type":"object","required":["code"],"properties":{"code":{"type":"string"},"detail":{"type":"string"}}},"receipt":{"type":"object","additionalProperties":true}}}}}},"422":{"description":"invalid_payload, an unreadable body, or a refused stack with its receipt","content":{"application/json":{"schema":{"type":"object","required":["error","refusal"],"properties":{"error":{"type":"string"},"refusal":{"type":"object","required":["code"],"properties":{"code":{"type":"string"},"detail":{"type":"string"}}},"receipt":{"type":"object","additionalProperties":true}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Post a swarm worker's stack and receive its receipt","description":"Requires a run capability carrying the swarm.submit_stack operation. One receipt per attempt: an identical replay answers 200 with the existing receipt, a different payload for the same attempt is 409 stack_payload_conflict, and a new payload behind the swarm's generation is 409 attempt_fenced. Bodies over 25 MiB, declared or decoded, are 413 stack_too_large before any receipt exists.\n"}},"/api/v1/agent/roder/run/workspace_authorization":{"post":{"operationId":"api_v1_roder_run_workspace_authorization","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/roder/run/workspace_credentials":{"post":{"operationId":"api_v1_roder_run_workspace_credentials","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/roder/session":{"post":{"operationId":"api_v1_roder_session","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Roder browser session","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AgentRoderSession"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Checkpoint handoff context is unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"},"400":{"description":"Organization is required","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AgentRoderSessionPayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/roder/workspace_authorization":{"post":{"operationId":"api_v1_roder_workspace_authorization","tags":["agent"],"parameters":[],"responses":{"204":{"description":"The capability still authorizes native runner access"},"401":{"description":"Invalid, expired, revoked, or unauthorized agent capability","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Revalidate a hosted runner capability at a native tool boundary","description":"Requires the server-held turn capability delegated by Roder and re-checks current user membership and beta access. Browser session capabilities are not accepted."}},"/api/v1/agent/roder/workspace_credentials":{"post":{"operationId":"api_v1_roder_workspace_credentials","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Short-lived repository clone and user API credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentRoderWorkspaceCredentials"}}}},"401":{"description":"Invalid, expired, or unauthorized agent capability","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"400":{"description":"Required credential lifetime is missing or invalid","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"503":{"description":"Agent repository access is not configured","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AgentRoderWorkspaceCredentialRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Exchange a delegated runner capability for home-repository and user API credentials","description":"Requires the server-held turn capability delegated by Roder. Browser session capabilities, browser cookies, and personal access tokens are not accepted. Returns a short-lived repository credential for the org Home checkout and a short-lived system personal access token that authenticates API/CLI calls as the spawning user. Both expire together and are reissued on refresh.\n"}},"/api/v1/agent/swarms":{"get":{"operationId":"api_v1_swarms","tags":["agent"],"parameters":[{"name":"org","in":"query","required":true,"description":"Organization slug. Swarms belong to one organization and the list is read under one.","schema":{"type":"string"}}],"responses":{"200":{"description":"Agent swarms in the organization","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["swarms"],"properties":{"swarms":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarm"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_agent_swarms","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"404":{"description":"Not found"},"422":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"201":{"description":"Agent swarm created","content":{"application/json":{"schema":{"type":"object","required":["swarm"],"properties":{"swarm":{"$ref":"#/components/schemas/AgentSwarmDetail"}}}}}},"400":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AgentSwarmCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{id}":{"get":{"operationId":"api_v1_swarm","tags":["agent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Agent swarm with recent tasks","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["swarm"],"properties":{"swarm":{"$ref":"#/components/schemas/AgentSwarmDetail"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{id}/cancel":{"post":{"operationId":"cancel_api_v1_swarm","tags":["agent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Agent swarm canceled (PRD 146 FR30)","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["swarm"],"properties":{"swarm":{"$ref":"#/components/schemas/AgentSwarmDetail"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"404":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"409":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"reason":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{id}/live":{"get":{"operationId":"get_api_v1_agent_swarms_id_live","tags":["agent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"One page response for the swarm live view","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AgentSwarmLivePage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Swarm not visible to the current user","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{id}/live/replay":{"get":{"operationId":"get_api_v1_agent_swarms_id_live_replay","tags":["agent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cursor","in":"query","required":false,"description":"The previous page's next_cursor; omit to start from launch.","schema":{"type":"string"}},{"name":"after_seq","in":"query","required":false,"description":"Only activity events with a greater seq.","schema":{"type":"integer","minimum":0}},{"name":"after_event_id","in":"query","required":false,"description":"Only scheduler events with a greater id.","schema":{"type":"integer","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":2000}}],"responses":{"200":{"description":"One page of the stored stream, activity and scheduler events interleaved by time","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AgentSwarmLiveReplayPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Swarm not visible to the current user","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Swarm not visible to the current user","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{id}/policy":{"get":{"operationId":"policy_api_v1_swarm","tags":["agent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The swarm's effective policy, budget and pinned environment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AgentSwarmPolicy"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_agent_swarms_id_policy","tags":["agent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The swarm's effective policy after the edit","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AgentSwarmPolicy"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"404":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"422":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"400":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"409":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["policy"],"properties":{"policy":{"type":"object","additionalProperties":true}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{swarm_id}/events":{"get":{"operationId":"api_v1_swarm_events","tags":["agent"],"parameters":[{"name":"swarm_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"after","in":"query","required":false,"schema":{"type":"integer"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000}}],"responses":{"200":{"description":"The swarm's decision log, oldest first","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["events"],"properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmEvent"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{swarm_id}/tasks":{"get":{"operationId":"api_v1_swarm_tasks","tags":["agent"],"parameters":[{"name":"swarm_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Agent swarm tasks","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["tasks"],"properties":{"tasks":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmTask"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{swarm_id}/tasks/{task_id}/leases":{"post":{"operationId":"api_v1_swarm_task_leases","tags":["agent"],"parameters":[{"name":"swarm_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"task_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{swarm_id}/tasks/{task_id}/leases/{id}/claim":{"post":{"operationId":"claim_api_v1_swarm_task_lease","tags":["agent"],"parameters":[{"name":"swarm_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"task_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{swarm_id}/tasks/{task_id}/leases/{id}/heartbeat":{"post":{"operationId":"heartbeat_api_v1_swarm_task_lease","tags":["agent"],"parameters":[{"name":"swarm_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"task_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{swarm_id}/tasks/{task_id}/leases/{id}/release":{"post":{"operationId":"release_api_v1_swarm_task_lease","tags":["agent"],"parameters":[{"name":"swarm_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"task_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{swarm_id}/tasks/{task_id}/leases/{id}/result":{"post":{"operationId":"result_api_v1_swarm_task_lease","tags":["agent"],"parameters":[{"name":"swarm_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"task_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Vex-Lease-Token","in":"header","required":false,"schema":{"type":"string"}},{"name":"validate_only","in":"query","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Detached Roder result accepted or validated","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"oneOf":[{"type":"object","required":["roder_run"],"properties":{"roder_run":{"$ref":"#/components/schemas/RoderRunResultReceipt"}}},{"type":"object","required":["valid"],"properties":{"valid":{"type":"boolean","const":true}}}]}}}},"401":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"403":{"description":"Forbidden"},"404":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"422":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"400":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"409":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RoderRunResultPayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/threads":{"get":{"operationId":"api_v1_threads","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_agent_threads","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/threads/{id}":{"get":{"operationId":"api_v1_thread","tags":["agent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/threads/{id}/archive":{"post":{"operationId":"archive_api_v1_thread","tags":["agent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent_sessions/{session_id}/transcript":{"get":{"operationId":"get_api_v1_agent_sessions_session_id_transcript","tags":["agent_sessions"],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"session_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"checkpoint","schema":{"type":"string"}},{"$ref":"#/components/parameters/TranscriptReadSource"},{"$ref":"#/components/parameters/TranscriptReadCursor"},{"$ref":"#/components/parameters/TranscriptReadLimit"},{"$ref":"#/components/parameters/TranscriptReadBytes"},{"$ref":"#/components/parameters/TranscriptReadTools"},{"$ref":"#/components/parameters/TranscriptReadAround"},{"$ref":"#/components/parameters/TranscriptReadDigest"}],"responses":{"200":{"description":"Indexed events or an explicit content availability state.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/TranscriptReadPage"}}}},"401":{"description":"Authentication required."},"403":{"description":"Forbidden"},"404":{"description":"Missing or inaccessible session or checkpoint."},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid limits or source reference."},"409":{"description":"The cursor no longer identifies the same content or filters."},"413":{"description":"Increase max_bytes to fit the next complete indexed event."}},"security":[{"bearerAuth":[]}],"summary":"Read a bounded page of indexed conversation events","description":"Authorizes the session before selecting a checkpoint. Returns the latest conversation events in chronological order, with an older_cursor for earlier context. Each cursor fixes the checkpoint and index identity. Tools are opt in; reasoning is excluded. Indexed message truncation is disclosed and omitted text cannot be recovered through this API."}},"/api/v1/app_access/callback":{"get":{"operationId":"api_v1_app_access_callback","tags":["app_access"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/app_access/jwks":{"get":{"operationId":"api_v1_app_access_jwks","tags":["app_access"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/app_access/start":{"get":{"operationId":"api_v1_app_access_start","tags":["app_access"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/artifacts":{"get":{"operationId":"api_v1_artifacts","tags":["artifacts"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_artifacts_artifacts","tags":["artifacts"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/artifacts/{id}":{"get":{"operationId":"api_v1_artifact","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_artifacts_artifacts_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_artifacts_artifacts_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_artifacts_artifacts_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/artifacts/{id}/expire":{"post":{"operationId":"expire_api_v1_artifact","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/artifacts/{id}/issue_contract":{"post":{"operationId":"issue_contract_api_v1_artifact","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/artifacts/{id}/restore":{"post":{"operationId":"restore_api_v1_artifact","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces":{"get":{"operationId":"api_v1_cache_namespaces","tags":["artifacts"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_artifacts_cache_namespaces","tags":["artifacts"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces/{cache_namespace_id}/entries":{"get":{"operationId":"api_v1_cache_namespace_entries","tags":["artifacts"],"parameters":[{"name":"cache_namespace_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_artifacts_cache_namespaces_cache_namespace_id_entries","tags":["artifacts"],"parameters":[{"name":"cache_namespace_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces/{cache_namespace_id}/entries/{id}":{"get":{"operationId":"api_v1_cache_namespace_entry","tags":["artifacts"],"parameters":[{"name":"cache_namespace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_artifacts_cache_namespaces_cache_namespace_id_entries_id_","tags":["artifacts"],"parameters":[{"name":"cache_namespace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_artifacts_cache_namespaces_cache_namespace_id_entries_id_","tags":["artifacts"],"parameters":[{"name":"cache_namespace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_artifacts_cache_namespaces_cache_namespace_id_entries_id_","tags":["artifacts"],"parameters":[{"name":"cache_namespace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces/{cache_namespace_id}/entries/{id}/evict":{"post":{"operationId":"evict_api_v1_cache_namespace_entry","tags":["artifacts"],"parameters":[{"name":"cache_namespace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces/{cache_namespace_id}/entries/{id}/issue_contract":{"post":{"operationId":"issue_contract_api_v1_cache_namespace_entry","tags":["artifacts"],"parameters":[{"name":"cache_namespace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces/{cache_namespace_id}/entries/{id}/record_hit":{"post":{"operationId":"record_hit_api_v1_cache_namespace_entry","tags":["artifacts"],"parameters":[{"name":"cache_namespace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces/{cache_namespace_id}/entries/{id}/record_miss":{"post":{"operationId":"record_miss_api_v1_cache_namespace_entry","tags":["artifacts"],"parameters":[{"name":"cache_namespace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces/{id}":{"get":{"operationId":"api_v1_cache_namespace","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_artifacts_cache_namespaces_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_artifacts_cache_namespaces_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_artifacts_cache_namespaces_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces/{id}/archive":{"post":{"operationId":"archive_api_v1_cache_namespace","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces/{id}/pause":{"post":{"operationId":"pause_api_v1_cache_namespace","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces/{id}/resume":{"post":{"operationId":"resume_api_v1_cache_namespace","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/image_repositories":{"get":{"operationId":"get_api_v1_artifacts_image_repositories","tags":["artifacts"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_artifacts_image_repositories","tags":["artifacts"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/image_repositories/{id}":{"get":{"operationId":"api_v1_image_repository","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_artifacts_image_repositories_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_artifacts_image_repositories_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_artifacts_image_repositories_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/image_repositories/{id}/archive":{"post":{"operationId":"archive_api_v1_image_repository","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/image_repositories/{id}/contract":{"post":{"operationId":"contract_api_v1_image_repository","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Image repository push or pull contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ImageRepositoryContractResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ImageRepositoryContractPayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/image_repositories/{id}/pause":{"post":{"operationId":"pause_api_v1_image_repository","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/image_repositories/{id}/resume":{"post":{"operationId":"resume_api_v1_image_repository","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/image_repositories/{id}/tags":{"get":{"operationId":"tags_api_v1_image_repository","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Image repository tags","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ImageRepositoryTagsResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/package_mirrors":{"get":{"operationId":"api_v1_package_mirrors","tags":["artifacts"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_artifacts_package_mirrors","tags":["artifacts"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/package_mirrors/{id}":{"get":{"operationId":"api_v1_package_mirror","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_artifacts_package_mirrors_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_artifacts_package_mirrors_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_artifacts_package_mirrors_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/package_mirrors/{id}/pause":{"post":{"operationId":"pause_api_v1_package_mirror","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/package_mirrors/{id}/resume":{"post":{"operationId":"resume_api_v1_package_mirror","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/package_mirrors/{id}/sync":{"post":{"operationId":"sync_api_v1_package_mirror","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/retention_policies":{"get":{"operationId":"api_v1_retention_policies","tags":["artifacts"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_artifacts_retention_policies","tags":["artifacts"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/retention_policies/{id}":{"get":{"operationId":"api_v1_retention_policy","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_artifacts_retention_policies_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_artifacts_retention_policies_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_artifacts_retention_policies_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/auth/cli/complete":{"post":{"operationId":"api_v1_auth_cli_complete","tags":["auth"],"parameters":[],"responses":{"200":{"description":"CLI login completed","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["status"],"properties":{"status":{"type":"string"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/CliLoginCompletePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/auth/cli/exchange":{"post":{"operationId":"api_v1_auth_cli_exchange","tags":["auth"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/auth/cli/start":{"post":{"operationId":"api_v1_auth_cli_start","tags":["auth"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/auth/csrf":{"get":{"operationId":"api_v1_auth_csrf","tags":["auth"],"parameters":[],"responses":{"200":{"description":"Browser CSRF token","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["csrf_token"],"properties":{"csrf_token":{"type":"string"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/auth/github":{"post":{"operationId":"api_v1_auth_github","tags":["auth"],"parameters":[],"responses":{"200":{"description":"Authenticated user session","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AuthSession","required":["id","email","name","picture_url","github_prs_authored_by_change_author","github_pr_user_authorization_connected","github_pr_user_authorization_login","organizations","active_organization","pending_organization_invitation_count","pending_organization_invitation_count_label"],"properties":{"id":{"type":"string"},"email":{"type":"string","format":"email"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true},"github_prs_authored_by_change_author":{"type":"boolean"},"github_pr_user_authorization_connected":{"type":"boolean"},"github_pr_user_authorization_login":{"type":"string","nullable":true},"superadmin":{"type":"boolean"},"organizations":{"type":"array","items":{"type":"object","required":["id","slug","name","logo_url","role","personal","member_count","pending_invitation_count","activated_products","can_activate_products","github_prs_authored_by_change_author","allow_author_self_review_on_main_repo","author_self_review_on_main_repo_effective","allow_author_self_review_on_home_repository","author_self_review_on_home_repository_effective","main_repository_slug","main_repository_display_name","home_repository_slug","home_repository_display_name","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"personal":{"type":"boolean"},"member_count":{"type":"integer","minimum":0},"pending_invitation_count":{"type":"integer","minimum":0},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"github_prs_authored_by_change_author":{"type":"boolean"},"allow_author_self_review_on_main_repo":{"type":"boolean"},"author_self_review_on_main_repo_effective":{"type":"boolean"},"allow_author_self_review_on_home_repository":{"type":"boolean"},"author_self_review_on_home_repository_effective":{"type":"boolean"},"main_repository_slug":{"type":"string"},"main_repository_display_name":{"type":"string"},"home_repository_slug":{"type":"string"},"home_repository_display_name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}},"active_organization":{"oneOf":[{"type":"object","required":["id","slug","name","logo_url","role","personal","member_count","pending_invitation_count","activated_products","can_activate_products","github_prs_authored_by_change_author","allow_author_self_review_on_main_repo","author_self_review_on_main_repo_effective","allow_author_self_review_on_home_repository","author_self_review_on_home_repository_effective","main_repository_slug","main_repository_display_name","home_repository_slug","home_repository_display_name","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"personal":{"type":"boolean"},"member_count":{"type":"integer","minimum":0},"pending_invitation_count":{"type":"integer","minimum":0},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"github_prs_authored_by_change_author":{"type":"boolean"},"allow_author_self_review_on_main_repo":{"type":"boolean"},"author_self_review_on_main_repo_effective":{"type":"boolean"},"allow_author_self_review_on_home_repository":{"type":"boolean"},"author_self_review_on_home_repository_effective":{"type":"boolean"},"main_repository_slug":{"type":"string"},"main_repository_display_name":{"type":"string"},"home_repository_slug":{"type":"string"},"home_repository_display_name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},{"type":"null"}]},"pending_organization_invitation_count":{"type":"integer","minimum":0},"pending_organization_invitation_count_label":{"type":"string"},"api_token":{"type":"string"},"api_base_url":{"type":"string","format":"uri"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["code","redirect_uri","state"],"properties":{"code":{"type":"string"},"redirect_uri":{"type":"string","format":"uri"},"state":{"type":"string"}}}}}},"security":[]}},"/api/v1/auth/github/start":{"get":{"operationId":"api_v1_auth_github_start","tags":["auth"],"parameters":[{"name":"redirect_uri","in":"query","required":true,"schema":{"type":"string","format":"uri"}}],"responses":{"200":{"description":"Provider authorization URL","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["auth_url"],"properties":{"auth_url":{"type":"string","format":"uri"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/auth/google":{"post":{"operationId":"api_v1_auth_google","tags":["auth"],"parameters":[],"responses":{"200":{"description":"Authenticated user session","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AuthSession","required":["id","email","name","picture_url","github_prs_authored_by_change_author","github_pr_user_authorization_connected","github_pr_user_authorization_login","organizations","active_organization","pending_organization_invitation_count","pending_organization_invitation_count_label"],"properties":{"id":{"type":"string"},"email":{"type":"string","format":"email"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true},"github_prs_authored_by_change_author":{"type":"boolean"},"github_pr_user_authorization_connected":{"type":"boolean"},"github_pr_user_authorization_login":{"type":"string","nullable":true},"superadmin":{"type":"boolean"},"organizations":{"type":"array","items":{"type":"object","required":["id","slug","name","logo_url","role","personal","member_count","pending_invitation_count","activated_products","can_activate_products","github_prs_authored_by_change_author","allow_author_self_review_on_main_repo","author_self_review_on_main_repo_effective","allow_author_self_review_on_home_repository","author_self_review_on_home_repository_effective","main_repository_slug","main_repository_display_name","home_repository_slug","home_repository_display_name","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"personal":{"type":"boolean"},"member_count":{"type":"integer","minimum":0},"pending_invitation_count":{"type":"integer","minimum":0},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"github_prs_authored_by_change_author":{"type":"boolean"},"allow_author_self_review_on_main_repo":{"type":"boolean"},"author_self_review_on_main_repo_effective":{"type":"boolean"},"allow_author_self_review_on_home_repository":{"type":"boolean"},"author_self_review_on_home_repository_effective":{"type":"boolean"},"main_repository_slug":{"type":"string"},"main_repository_display_name":{"type":"string"},"home_repository_slug":{"type":"string"},"home_repository_display_name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}},"active_organization":{"oneOf":[{"type":"object","required":["id","slug","name","logo_url","role","personal","member_count","pending_invitation_count","activated_products","can_activate_products","github_prs_authored_by_change_author","allow_author_self_review_on_main_repo","author_self_review_on_main_repo_effective","allow_author_self_review_on_home_repository","author_self_review_on_home_repository_effective","main_repository_slug","main_repository_display_name","home_repository_slug","home_repository_display_name","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"personal":{"type":"boolean"},"member_count":{"type":"integer","minimum":0},"pending_invitation_count":{"type":"integer","minimum":0},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"github_prs_authored_by_change_author":{"type":"boolean"},"allow_author_self_review_on_main_repo":{"type":"boolean"},"author_self_review_on_main_repo_effective":{"type":"boolean"},"allow_author_self_review_on_home_repository":{"type":"boolean"},"author_self_review_on_home_repository_effective":{"type":"boolean"},"main_repository_slug":{"type":"string"},"main_repository_display_name":{"type":"string"},"home_repository_slug":{"type":"string"},"home_repository_display_name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},{"type":"null"}]},"pending_organization_invitation_count":{"type":"integer","minimum":0},"pending_organization_invitation_count_label":{"type":"string"},"api_token":{"type":"string"},"api_base_url":{"type":"string","format":"uri"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["code","redirect_uri","state"],"properties":{"code":{"type":"string"},"redirect_uri":{"type":"string","format":"uri"},"state":{"type":"string"}}}}}},"security":[]}},"/api/v1/auth/google/start":{"get":{"operationId":"api_v1_auth_google_start","tags":["auth"],"parameters":[{"name":"redirect_uri","in":"query","required":true,"schema":{"type":"string","format":"uri"}}],"responses":{"200":{"description":"Provider authorization URL","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["auth_url"],"properties":{"auth_url":{"type":"string","format":"uri"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/auth/login":{"post":{"operationId":"api_v1_auth_login","tags":["auth"],"parameters":[],"responses":{"200":{"description":"Authenticated user session","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AuthSession","required":["id","email","name","picture_url","github_prs_authored_by_change_author","github_pr_user_authorization_connected","github_pr_user_authorization_login","organizations","active_organization","pending_organization_invitation_count","pending_organization_invitation_count_label"],"properties":{"id":{"type":"string"},"email":{"type":"string","format":"email"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true},"github_prs_authored_by_change_author":{"type":"boolean"},"github_pr_user_authorization_connected":{"type":"boolean"},"github_pr_user_authorization_login":{"type":"string","nullable":true},"superadmin":{"type":"boolean"},"organizations":{"type":"array","items":{"type":"object","required":["id","slug","name","logo_url","role","personal","member_count","pending_invitation_count","activated_products","can_activate_products","github_prs_authored_by_change_author","allow_author_self_review_on_main_repo","author_self_review_on_main_repo_effective","allow_author_self_review_on_home_repository","author_self_review_on_home_repository_effective","main_repository_slug","main_repository_display_name","home_repository_slug","home_repository_display_name","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"personal":{"type":"boolean"},"member_count":{"type":"integer","minimum":0},"pending_invitation_count":{"type":"integer","minimum":0},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"github_prs_authored_by_change_author":{"type":"boolean"},"allow_author_self_review_on_main_repo":{"type":"boolean"},"author_self_review_on_main_repo_effective":{"type":"boolean"},"allow_author_self_review_on_home_repository":{"type":"boolean"},"author_self_review_on_home_repository_effective":{"type":"boolean"},"main_repository_slug":{"type":"string"},"main_repository_display_name":{"type":"string"},"home_repository_slug":{"type":"string"},"home_repository_display_name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}},"active_organization":{"oneOf":[{"type":"object","required":["id","slug","name","logo_url","role","personal","member_count","pending_invitation_count","activated_products","can_activate_products","github_prs_authored_by_change_author","allow_author_self_review_on_main_repo","author_self_review_on_main_repo_effective","allow_author_self_review_on_home_repository","author_self_review_on_home_repository_effective","main_repository_slug","main_repository_display_name","home_repository_slug","home_repository_display_name","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"personal":{"type":"boolean"},"member_count":{"type":"integer","minimum":0},"pending_invitation_count":{"type":"integer","minimum":0},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"github_prs_authored_by_change_author":{"type":"boolean"},"allow_author_self_review_on_main_repo":{"type":"boolean"},"author_self_review_on_main_repo_effective":{"type":"boolean"},"allow_author_self_review_on_home_repository":{"type":"boolean"},"author_self_review_on_home_repository_effective":{"type":"boolean"},"main_repository_slug":{"type":"string"},"main_repository_display_name":{"type":"string"},"home_repository_slug":{"type":"string"},"home_repository_display_name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},{"type":"null"}]},"pending_organization_invitation_count":{"type":"integer","minimum":0},"pending_organization_invitation_count_label":{"type":"string"},"api_token":{"type":"string"},"api_base_url":{"type":"string","format":"uri"}}}}}},"401":{"description":"Invalid email or password"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["email","password"],"properties":{"email":{"type":"string","format":"email"},"password":{"type":"string","format":"password"}}}}}},"security":[]}},"/api/v1/auth/logout":{"post":{"operationId":"api_v1_auth_logout","tags":["auth"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"204":{"description":"Session cleared"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/auth/password_resets":{"post":{"operationId":"api_v1_auth_password_resets","tags":["auth"],"parameters":[],"responses":{"200":{"description":"Password reset request accepted","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["message"],"properties":{"message":{"type":"string"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["email"],"properties":{"email":{"type":"string","format":"email"}}}}}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_auth_password_resets","tags":["auth"],"parameters":[],"responses":{"200":{"description":"Password updated","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["message"],"properties":{"message":{"type":"string"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Invalid or expired reset link, or invalid password"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["token","password"],"properties":{"token":{"type":"string"},"password":{"type":"string","format":"password"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/auth/register":{"post":{"operationId":"api_v1_auth_register","tags":["auth"],"parameters":[],"responses":{"200":{"description":"Authenticated user session","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AuthSession","required":["id","email","name","picture_url","github_prs_authored_by_change_author","github_pr_user_authorization_connected","github_pr_user_authorization_login","organizations","active_organization","pending_organization_invitation_count","pending_organization_invitation_count_label"],"properties":{"id":{"type":"string"},"email":{"type":"string","format":"email"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true},"github_prs_authored_by_change_author":{"type":"boolean"},"github_pr_user_authorization_connected":{"type":"boolean"},"github_pr_user_authorization_login":{"type":"string","nullable":true},"superadmin":{"type":"boolean"},"organizations":{"type":"array","items":{"type":"object","required":["id","slug","name","logo_url","role","personal","member_count","pending_invitation_count","activated_products","can_activate_products","github_prs_authored_by_change_author","allow_author_self_review_on_main_repo","author_self_review_on_main_repo_effective","allow_author_self_review_on_home_repository","author_self_review_on_home_repository_effective","main_repository_slug","main_repository_display_name","home_repository_slug","home_repository_display_name","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"personal":{"type":"boolean"},"member_count":{"type":"integer","minimum":0},"pending_invitation_count":{"type":"integer","minimum":0},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"github_prs_authored_by_change_author":{"type":"boolean"},"allow_author_self_review_on_main_repo":{"type":"boolean"},"author_self_review_on_main_repo_effective":{"type":"boolean"},"allow_author_self_review_on_home_repository":{"type":"boolean"},"author_self_review_on_home_repository_effective":{"type":"boolean"},"main_repository_slug":{"type":"string"},"main_repository_display_name":{"type":"string"},"home_repository_slug":{"type":"string"},"home_repository_display_name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}},"active_organization":{"oneOf":[{"type":"object","required":["id","slug","name","logo_url","role","personal","member_count","pending_invitation_count","activated_products","can_activate_products","github_prs_authored_by_change_author","allow_author_self_review_on_main_repo","author_self_review_on_main_repo_effective","allow_author_self_review_on_home_repository","author_self_review_on_home_repository_effective","main_repository_slug","main_repository_display_name","home_repository_slug","home_repository_display_name","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"personal":{"type":"boolean"},"member_count":{"type":"integer","minimum":0},"pending_invitation_count":{"type":"integer","minimum":0},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"github_prs_authored_by_change_author":{"type":"boolean"},"allow_author_self_review_on_main_repo":{"type":"boolean"},"author_self_review_on_main_repo_effective":{"type":"boolean"},"allow_author_self_review_on_home_repository":{"type":"boolean"},"author_self_review_on_home_repository_effective":{"type":"boolean"},"main_repository_slug":{"type":"string"},"main_repository_display_name":{"type":"string"},"home_repository_slug":{"type":"string"},"home_repository_display_name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},{"type":"null"}]},"pending_organization_invitation_count":{"type":"integer","minimum":0},"pending_organization_invitation_count_label":{"type":"string"},"api_token":{"type":"string"},"api_base_url":{"type":"string","format":"uri"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["email","password"],"properties":{"email":{"type":"string","format":"email"},"password":{"type":"string","format":"password"},"name":{"type":"string","nullable":true},"invite_code":{"type":"string","description":"Optional waitlist bypass code that admits a new account."}}}}}},"security":[]}},"/api/v1/bazel/action_results/{hash}/{size_bytes}":{"get":{"operationId":"get_api_v1_bazel_action_results_hash_size_bytes_","tags":["bazel"],"parameters":[{"name":"hash","in":"path","required":true,"schema":{"type":"string"}},{"name":"size_bytes","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_bazel_action_results_hash_size_bytes_","tags":["bazel"],"parameters":[{"name":"hash","in":"path","required":true,"schema":{"type":"string"}},{"name":"size_bytes","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/authorize":{"post":{"operationId":"post_api_v1_bazel_authorize","tags":["bazel"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/backends":{"get":{"operationId":"api_v1_backends","tags":["bazel"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_bazel_backends","tags":["bazel"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/backends/{backend_id}/runner_pools":{"get":{"operationId":"api_v1_backend_runner_pools","tags":["bazel"],"parameters":[{"name":"backend_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_bazel_backends_backend_id_runner_pools","tags":["bazel"],"parameters":[{"name":"backend_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/backends/{backend_id}/runner_pools/{id}":{"delete":{"operationId":"api_v1_backend_runner_pool","tags":["bazel"],"parameters":[{"name":"backend_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/backends/{id}":{"get":{"operationId":"api_v1_backend","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_bazel_backends_id_","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_bazel_backends_id_","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_bazel_backends_id_","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/backends/{id}/issue_token":{"post":{"operationId":"issue_token_api_v1_backend","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/backends/{id}/pause":{"post":{"operationId":"pause_api_v1_backend","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/backends/{id}/resume":{"post":{"operationId":"resume_api_v1_backend","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/blobs/{kind}/{hash}/{size_bytes}":{"put":{"operationId":"put_api_v1_bazel_blobs_kind_hash_size_bytes_","tags":["bazel"],"parameters":[{"name":"kind","in":"path","required":true,"schema":{"type":"string"}},{"name":"hash","in":"path","required":true,"schema":{"type":"string"}},{"name":"size_bytes","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"get":{"operationId":"get_api_v1_bazel_blobs_kind_hash_size_bytes_","tags":["bazel"],"parameters":[{"name":"kind","in":"path","required":true,"schema":{"type":"string"}},{"name":"hash","in":"path","required":true,"schema":{"type":"string"}},{"name":"size_bytes","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/executions":{"post":{"operationId":"api_v1_executions","tags":["bazel"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/executions/claim_next":{"post":{"operationId":"api_v1_executions_claim_next","tags":["bazel"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/executions/lookup":{"get":{"operationId":"api_v1_executions_lookup","tags":["bazel"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/executions/{id}":{"get":{"operationId":"get_api_v1_bazel_executions_id_","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/executions/{id}/complete":{"post":{"operationId":"post_api_v1_bazel_executions_id_complete","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/executions/{id}/fail":{"post":{"operationId":"post_api_v1_bazel_executions_id_fail","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/executions/{id}/heartbeat":{"post":{"operationId":"post_api_v1_bazel_executions_id_heartbeat","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/find_missing_blobs":{"post":{"operationId":"api_v1_find_missing_blobs","tags":["bazel"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/billing/packages":{"get":{"operationId":"api_v1_billing_packages","tags":["billing"],"parameters":[],"responses":{"200":{"description":"Packages","content":{"application/json":{"schema":{"type":"object","required":["packages"],"properties":{"packages":{"type":"array","items":{"$ref":"#/components/schemas/BillingPackage"}}}}}}}},"security":[],"summary":"The public package catalog for the pricing page (no auth)"}},"/api/v1/cdn_spaces/{cdn_space_id}/objects":{"put":{"operationId":"api_v1_cdn_space_objects","tags":["cdn_spaces"],"parameters":[{"name":"cdn_space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"get":{"operationId":"get_api_v1_cdn_spaces_cdn_space_id_objects","tags":["cdn_spaces"],"parameters":[{"name":"cdn_space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/cdn_spaces/{cdn_space_id}/objects/{path}":{"get":{"operationId":"get_api_v1_cdn_spaces_cdn_space_id_objects_path_","tags":["cdn_spaces"],"parameters":[{"name":"cdn_space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"path","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_cdn_spaces_cdn_space_id_objects_path_","tags":["cdn_spaces"],"parameters":[{"name":"cdn_space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"path","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/cdn_spaces/{id}":{"get":{"operationId":"api_v1_cdn_space","tags":["cdn_spaces"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_cdn_spaces_id_","tags":["cdn_spaces"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_cdn_spaces_id_","tags":["cdn_spaces"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_cdn_spaces_id_","tags":["cdn_spaces"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/cdn_spaces/{id}/archive":{"post":{"operationId":"archive_api_v1_cdn_space","tags":["cdn_spaces"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/cdn_spaces/{id}/provision":{"post":{"operationId":"provision_api_v1_cdn_space","tags":["cdn_spaces"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/check/user(/{posthog_path})":{"get|post|options|head":{"operationId":"api_v1_posthog_proxy","tags":["check"],"parameters":[{"name":"posthog_path","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/enroll":{"post":{"operationId":"api_v1_nodes_enroll","tags":["ci"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}":{"get":{"operationId":"api_v1_node","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI runner","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["runner"],"properties":{"runner":{"type":"object","required":["id","organization_id","ci_runner_pool_id","network_peer_id","slug","name","status","kind","os","architecture","version","labels_csv","node_capabilities_csv","node_certificate_fingerprint_sha256","node_certificate_serial","node_certificate_expires_at","bazel_enabled","bazel_properties_json","last_seen_at","online_at","offline_at","cordoned_at","revoked_at","health_state","schedulable","heartbeat_age_seconds","created_at","updated_at","node_certificate_expires_at_label","last_seen_at_label","online_at_label","offline_at_label","cordoned_at_label","revoked_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"network_peer_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"kind":{"type":"string"},"os":{"type":"string","nullable":true},"architecture":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"node_certificate_fingerprint_sha256":{"type":"string","nullable":true},"node_certificate_serial":{"type":"string","nullable":true},"node_certificate_expires_at":{"type":"string","format":"date-time","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"last_seen_at":{"type":"string","format":"date-time","nullable":true},"online_at":{"type":"string","format":"date-time","nullable":true},"offline_at":{"type":"string","format":"date-time","nullable":true},"cordoned_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"health_state":{"type":"string"},"schedulable":{"type":"boolean"},"heartbeat_age_seconds":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"node_certificate_expires_at_label":{"type":"string","nullable":true},"last_seen_at_label":{"type":"string","nullable":true},"online_at_label":{"type":"string","nullable":true},"offline_at_label":{"type":"string","nullable":true},"cordoned_at_label":{"type":"string","nullable":true},"revoked_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/certificate/rotate":{"post":{"operationId":"certificate_rotate_api_v1_node","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/cordon":{"post":{"operationId":"cordon_api_v1_node","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI runner","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["runner"],"properties":{"runner":{"type":"object","required":["id","organization_id","ci_runner_pool_id","network_peer_id","slug","name","status","kind","os","architecture","version","labels_csv","node_capabilities_csv","node_certificate_fingerprint_sha256","node_certificate_serial","node_certificate_expires_at","bazel_enabled","bazel_properties_json","last_seen_at","online_at","offline_at","cordoned_at","revoked_at","health_state","schedulable","heartbeat_age_seconds","created_at","updated_at","node_certificate_expires_at_label","last_seen_at_label","online_at_label","offline_at_label","cordoned_at_label","revoked_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"network_peer_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"kind":{"type":"string"},"os":{"type":"string","nullable":true},"architecture":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"node_certificate_fingerprint_sha256":{"type":"string","nullable":true},"node_certificate_serial":{"type":"string","nullable":true},"node_certificate_expires_at":{"type":"string","format":"date-time","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"last_seen_at":{"type":"string","format":"date-time","nullable":true},"online_at":{"type":"string","format":"date-time","nullable":true},"offline_at":{"type":"string","format":"date-time","nullable":true},"cordoned_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"health_state":{"type":"string"},"schedulable":{"type":"boolean"},"heartbeat_age_seconds":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"node_certificate_expires_at_label":{"type":"string","nullable":true},"last_seen_at_label":{"type":"string","nullable":true},"online_at_label":{"type":"string","nullable":true},"offline_at_label":{"type":"string","nullable":true},"cordoned_at_label":{"type":"string","nullable":true},"revoked_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/drain":{"post":{"operationId":"drain_api_v1_node","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI runner","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["runner"],"properties":{"runner":{"type":"object","required":["id","organization_id","ci_runner_pool_id","network_peer_id","slug","name","status","kind","os","architecture","version","labels_csv","node_capabilities_csv","node_certificate_fingerprint_sha256","node_certificate_serial","node_certificate_expires_at","bazel_enabled","bazel_properties_json","last_seen_at","online_at","offline_at","cordoned_at","revoked_at","health_state","schedulable","heartbeat_age_seconds","created_at","updated_at","node_certificate_expires_at_label","last_seen_at_label","online_at_label","offline_at_label","cordoned_at_label","revoked_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"network_peer_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"kind":{"type":"string"},"os":{"type":"string","nullable":true},"architecture":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"node_certificate_fingerprint_sha256":{"type":"string","nullable":true},"node_certificate_serial":{"type":"string","nullable":true},"node_certificate_expires_at":{"type":"string","format":"date-time","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"last_seen_at":{"type":"string","format":"date-time","nullable":true},"online_at":{"type":"string","format":"date-time","nullable":true},"offline_at":{"type":"string","format":"date-time","nullable":true},"cordoned_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"health_state":{"type":"string"},"schedulable":{"type":"boolean"},"heartbeat_age_seconds":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"node_certificate_expires_at_label":{"type":"string","nullable":true},"last_seen_at_label":{"type":"string","nullable":true},"online_at_label":{"type":"string","nullable":true},"offline_at_label":{"type":"string","nullable":true},"cordoned_at_label":{"type":"string","nullable":true},"revoked_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/heartbeat":{"post":{"operationId":"heartbeat_api_v1_node","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases":{"get":{"operationId":"leases_api_v1_node","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/artifacts":{"post":{"operationId":"post_api_v1_ci_nodes_id_leases_lease_id_artifacts","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/cache/restore":{"post":{"operationId":"post_api_v1_ci_nodes_id_leases_lease_id_cache_restore","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/cache/save":{"post":{"operationId":"post_api_v1_ci_nodes_id_leases_lease_id_cache_save","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/claim":{"post":{"operationId":"post_api_v1_ci_nodes_id_leases_lease_id_claim","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/heartbeat":{"post":{"operationId":"post_api_v1_ci_nodes_id_leases_lease_id_heartbeat","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/job":{"get":{"operationId":"get_api_v1_ci_nodes_id_leases_lease_id_job","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/log_chunks":{"post":{"operationId":"post_api_v1_ci_nodes_id_leases_lease_id_log_chunks","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/reconciliations/{reconciliation_id}/output":{"post":{"operationId":"post_api_v1_ci_nodes_id_leases_lease_id_reconciliations_reconciliation_id_output","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"reconciliation_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/release":{"post":{"operationId":"post_api_v1_ci_nodes_id_leases_lease_id_release","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/steps/{ci_step_id}":{"patch":{"operationId":"patch_api_v1_ci_nodes_id_leases_lease_id_steps_ci_step_id_","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"ci_step_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/workspace_archive":{"get":{"operationId":"get_api_v1_ci_nodes_id_leases_lease_id_workspace_archive","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/workspaces/{ci_workspace_id}":{"patch":{"operationId":"patch_api_v1_ci_nodes_id_leases_lease_id_workspaces_ci_workspace_id_","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"ci_workspace_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/uncordon":{"post":{"operationId":"uncordon_api_v1_node","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI runner","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["runner"],"properties":{"runner":{"type":"object","required":["id","organization_id","ci_runner_pool_id","network_peer_id","slug","name","status","kind","os","architecture","version","labels_csv","node_capabilities_csv","node_certificate_fingerprint_sha256","node_certificate_serial","node_certificate_expires_at","bazel_enabled","bazel_properties_json","last_seen_at","online_at","offline_at","cordoned_at","revoked_at","health_state","schedulable","heartbeat_age_seconds","created_at","updated_at","node_certificate_expires_at_label","last_seen_at_label","online_at_label","offline_at_label","cordoned_at_label","revoked_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"network_peer_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"kind":{"type":"string"},"os":{"type":"string","nullable":true},"architecture":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"node_certificate_fingerprint_sha256":{"type":"string","nullable":true},"node_certificate_serial":{"type":"string","nullable":true},"node_certificate_expires_at":{"type":"string","format":"date-time","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"last_seen_at":{"type":"string","format":"date-time","nullable":true},"online_at":{"type":"string","format":"date-time","nullable":true},"offline_at":{"type":"string","format":"date-time","nullable":true},"cordoned_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"health_state":{"type":"string"},"schedulable":{"type":"boolean"},"heartbeat_age_seconds":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"node_certificate_expires_at_label":{"type":"string","nullable":true},"last_seen_at_label":{"type":"string","nullable":true},"online_at_label":{"type":"string","nullable":true},"offline_at_label":{"type":"string","nullable":true},"cordoned_at_label":{"type":"string","nullable":true},"revoked_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines":{"get":{"operationId":"api_v1_pipelines","tags":["ci"],"parameters":[],"responses":{"200":{"description":"CI pipelines","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["pipelines"],"properties":{"pipelines":{"type":"array","items":{"type":"object","required":["id","organization_id","repository_id","hosted_app_id","ci_runner_pool_id","required_capabilities_csv","slug","name","description","source_kind","status","default_branch","workflow_path","trigger_on_push","trigger_on_pull_request","trigger_on_schedule","concurrency_key","created_at","updated_at","status_label","status_state","status_tone"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string","nullable":true},"hosted_app_id":{"type":"string","nullable":true},"ci_runner_pool_id":{"type":"string","nullable":true},"required_capabilities_csv":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"source_kind":{"type":"string"},"status":{"type":"string"},"default_branch":{"type":"string","nullable":true},"workflow_path":{"type":"string","nullable":true},"trigger_on_push":{"type":"boolean"},"trigger_on_pull_request":{"type":"boolean"},"trigger_on_schedule":{"type":"boolean"},"concurrency_key":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_pipelines","tags":["ci"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{id}":{"get":{"operationId":"api_v1_pipeline","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI pipeline catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["pipeline"],"properties":{"pipeline":{"allOf":[{"type":"object","required":["id","organization_id","repository_id","hosted_app_id","ci_runner_pool_id","required_capabilities_csv","slug","name","description","source_kind","status","default_branch","workflow_path","trigger_on_push","trigger_on_pull_request","trigger_on_schedule","concurrency_key","created_at","updated_at","status_label","status_state","status_tone"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string","nullable":true},"hosted_app_id":{"type":"string","nullable":true},"ci_runner_pool_id":{"type":"string","nullable":true},"required_capabilities_csv":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"source_kind":{"type":"string"},"status":{"type":"string"},"default_branch":{"type":"string","nullable":true},"workflow_path":{"type":"string","nullable":true},"trigger_on_push":{"type":"boolean"},"trigger_on_pull_request":{"type":"boolean"},"trigger_on_schedule":{"type":"boolean"},"concurrency_key":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]}}},{"type":"object","required":["runner_pool","runs"],"properties":{"runner_pool":{"type":"object","nullable":true,"additionalProperties":true},"runs":{"type":"array","items":{"type":"object","required":["id","organization_id","repository_id","hosted_app_id","ci_pipeline_id","ci_runner_pool_id","creator_user_id","required_capabilities_csv","number","display_id","slug","status","trigger_kind","ref_name","commit_sha","source_url","message","concurrency_key","retry_number","queued_at","started_at","finished_at","canceled_at","parameters_json","created_at","updated_at","status_label","status_state","status_tone","active","failed","retryable"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string","nullable":true},"hosted_app_id":{"type":"string","nullable":true},"ci_pipeline_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"creator_user_id":{"type":"string","nullable":true},"required_capabilities_csv":{"type":"string","nullable":true},"number":{"type":"integer"},"display_id":{"type":"integer"},"slug":{"type":"string"},"status":{"type":"string"},"trigger_kind":{"type":"string"},"ref_name":{"type":"string","nullable":true},"commit_sha":{"type":"string","nullable":true},"source_url":{"type":"string","nullable":true},"message":{"type":"string","nullable":true},"concurrency_key":{"type":"string","nullable":true},"retry_number":{"type":"integer"},"queued_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"canceled_at":{"type":"string","format":"date-time","nullable":true},"parameters_json":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"},"retryable":{"type":"boolean"}}}}}}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs":{"get":{"operationId":"api_v1_pipeline_runs","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_pipelines_pipeline_id_runs","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{id}":{"get":{"operationId":"api_v1_pipeline_run","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI pipeline run catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["pipeline_run"],"properties":{"pipeline_run":{"allOf":[{"type":"object","required":["id","organization_id","repository_id","hosted_app_id","ci_pipeline_id","ci_runner_pool_id","creator_user_id","required_capabilities_csv","number","display_id","slug","status","trigger_kind","ref_name","commit_sha","source_url","message","concurrency_key","retry_number","queued_at","started_at","finished_at","canceled_at","parameters_json","created_at","updated_at","status_label","status_state","status_tone","active","failed","retryable"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string","nullable":true},"hosted_app_id":{"type":"string","nullable":true},"ci_pipeline_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"creator_user_id":{"type":"string","nullable":true},"required_capabilities_csv":{"type":"string","nullable":true},"number":{"type":"integer"},"display_id":{"type":"integer"},"slug":{"type":"string"},"status":{"type":"string"},"trigger_kind":{"type":"string"},"ref_name":{"type":"string","nullable":true},"commit_sha":{"type":"string","nullable":true},"source_url":{"type":"string","nullable":true},"message":{"type":"string","nullable":true},"concurrency_key":{"type":"string","nullable":true},"retry_number":{"type":"integer"},"queued_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"canceled_at":{"type":"string","format":"date-time","nullable":true},"parameters_json":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"},"retryable":{"type":"boolean"}}},{"type":"object","required":["jobs"],"properties":{"jobs":{"type":"array","items":{"type":"object","required":["id","organization_id","ci_pipeline_run_id","ci_runner_id","number","display_id","slug","name","kind","status","execution_order","runner_label_selector","timeout_seconds","allow_failure","queued_at","started_at","finished_at","exit_code","retry_number","environment_csv","dependencies_csv","created_at","updated_at","status_label","status_state","status_tone","active","failed"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_pipeline_run_id":{"type":"string"},"ci_runner_id":{"type":"string","nullable":true},"number":{"type":"integer"},"display_id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"execution_order":{"type":"integer"},"runner_label_selector":{"type":"string","nullable":true},"timeout_seconds":{"type":"integer","nullable":true},"allow_failure":{"type":"boolean"},"queued_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"exit_code":{"type":"integer","nullable":true},"retry_number":{"type":"integer"},"environment_csv":{"type":"string","nullable":true},"dependencies_csv":{"type":"string","nullable":true},"cache_archive_observations":{"type":"object","nullable":true,"description":"Bounded server response history; it does not confirm runner extraction or test-result reuse.","required":["events","omitted_count"],"properties":{"omitted_count":{"type":"integer","minimum":0},"events":{"type":"array","maxItems":32,"items":{"type":"object","required":["outcome","label","observed_at","response_bytes","elapsed_ms","attempt"],"properties":{"outcome":{"type":"string","enum":["miss","archive_missing","exact_response","prefix_response","published_exact_response","published_prefix_response","error"]},"label":{"type":"string"},"observed_at":{"type":"string","format":"date-time"},"response_bytes":{"type":"integer","minimum":0},"elapsed_ms":{"type":"number","minimum":0},"attempt":{"type":"integer","minimum":1},"native_publication_id":{"type":"string"},"cache_entry_id":{"type":"string"},"source_run_id":{"type":"string"},"source_commit_id":{"type":"string","nullable":true},"source_url":{"type":"string"}}}}}},"reuse":{"type":"object","nullable":true,"required":["source_job_id","source_run_id","source_url"],"properties":{"source_job_id":{"type":"string"},"source_run_id":{"type":"string"},"source_url":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"}}}}}}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{id}/retry":{"post":{"operationId":"retry_api_v1_pipeline_run","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Existing CI retry for this request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["pipeline_run"],"properties":{"pipeline_run":{"$ref":"#/components/schemas/CiPipelineRun"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"CI retry created","content":{"application/json":{"schema":{"type":"object","required":["pipeline_run"],"properties":{"pipeline_run":{"$ref":"#/components/schemas/CiPipelineRun"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string","maxLength":100}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{run_id}/artifacts":{"get":{"operationId":"api_v1_pipeline_run_artifacts","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_pipelines_pipeline_id_runs_run_id_artifacts","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{run_id}/jobs":{"get":{"operationId":"api_v1_pipeline_run_jobs","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_pipelines_pipeline_id_runs_run_id_jobs","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{run_id}/jobs/{id}":{"get":{"operationId":"api_v1_pipeline_run_job","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI job catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["job"],"properties":{"job":{"allOf":[{"type":"object","required":["id","organization_id","ci_pipeline_run_id","ci_runner_id","number","display_id","slug","name","kind","status","execution_order","runner_label_selector","timeout_seconds","allow_failure","queued_at","started_at","finished_at","exit_code","retry_number","environment_csv","dependencies_csv","created_at","updated_at","status_label","status_state","status_tone","active","failed"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_pipeline_run_id":{"type":"string"},"ci_runner_id":{"type":"string","nullable":true},"number":{"type":"integer"},"display_id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"execution_order":{"type":"integer"},"runner_label_selector":{"type":"string","nullable":true},"timeout_seconds":{"type":"integer","nullable":true},"allow_failure":{"type":"boolean"},"queued_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"exit_code":{"type":"integer","nullable":true},"retry_number":{"type":"integer"},"environment_csv":{"type":"string","nullable":true},"dependencies_csv":{"type":"string","nullable":true},"cache_archive_observations":{"type":"object","nullable":true,"description":"Bounded server response history; it does not confirm runner extraction or test-result reuse.","required":["events","omitted_count"],"properties":{"omitted_count":{"type":"integer","minimum":0},"events":{"type":"array","maxItems":32,"items":{"type":"object","required":["outcome","label","observed_at","response_bytes","elapsed_ms","attempt"],"properties":{"outcome":{"type":"string","enum":["miss","archive_missing","exact_response","prefix_response","published_exact_response","published_prefix_response","error"]},"label":{"type":"string"},"observed_at":{"type":"string","format":"date-time"},"response_bytes":{"type":"integer","minimum":0},"elapsed_ms":{"type":"number","minimum":0},"attempt":{"type":"integer","minimum":1},"native_publication_id":{"type":"string"},"cache_entry_id":{"type":"string"},"source_run_id":{"type":"string"},"source_commit_id":{"type":"string","nullable":true},"source_url":{"type":"string"}}}}}},"reuse":{"type":"object","nullable":true,"required":["source_job_id","source_run_id","source_url"],"properties":{"source_job_id":{"type":"string"},"source_run_id":{"type":"string"},"source_url":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"}}},{"type":"object","required":["steps","log_chunks"],"properties":{"reconciliation_id":{"type":"string","nullable":true},"execution_profile":{"type":"string","enum":["automation-offline-v1","reconciliation-offline-v1"],"nullable":true},"steps":{"type":"array","items":{"type":"object","required":["id","organization_id","ci_job_id","slug","name","command","shell","working_directory","status","execution_order","retry_number","exit_code","started_at","finished_at","created_at","updated_at","status_label","status_state","status_tone","active","failed","secret_refs"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_job_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"command":{"type":"string"},"shell":{"type":"string","nullable":true},"working_directory":{"type":"string","nullable":true},"status":{"type":"string"},"execution_order":{"type":"integer"},"retry_number":{"type":"integer"},"exit_code":{"type":"integer","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"observed_started_at":{"type":"string","format":"date-time","nullable":true,"readOnly":true,"description":"When the API first accepted a running update. Independent of the runner clock; absent or null for older and unobserved steps."},"observed_finished_at":{"type":"string","format":"date-time","nullable":true,"readOnly":true,"description":"When the API first accepted a terminal update. Includes transport effects; not a runner-local command duration."},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"},"secret_refs":{"type":"object","additionalProperties":{"type":"string"}},"cache_request":{"type":"object","nullable":true,"required":["key","restore_keys","paths","output_id"],"properties":{"key":{"type":"string"},"restore_keys":{"type":"array","items":{"type":"string"}},"paths":{"type":"array","items":{"type":"string"}},"output_id":{"type":"string"}}}}}},"log_chunks":{"type":"array","maxItems":25,"items":{"type":"object","required":["id","organization_id","ci_pipeline_run_id","ci_job_id","ci_step_id","sequence_number","stream","content_format","content","byte_size","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_pipeline_run_id":{"type":"string","nullable":true},"ci_job_id":{"type":"string","nullable":true},"ci_step_id":{"type":"string","nullable":true},"sequence_number":{"type":"integer"},"stream":{"type":"string"},"content_format":{"type":"string"},"content":{"type":"string"},"byte_size":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{run_id}/jobs/{job_id}/log_chunks":{"get":{"operationId":"api_v1_pipeline_run_job_log_chunks","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"after_sequence","in":"query","required":false,"description":"Return only chunks with a sequence number greater than this.","schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"CI job log chunks","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["log_chunks","job_status","job","steps"],"properties":{"log_chunks":{"type":"array","items":{"type":"object","required":["id","organization_id","ci_pipeline_run_id","ci_job_id","ci_step_id","sequence_number","stream","content_format","content","byte_size","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_pipeline_run_id":{"type":"string","nullable":true},"ci_job_id":{"type":"string","nullable":true},"ci_step_id":{"type":"string","nullable":true},"sequence_number":{"type":"integer"},"stream":{"type":"string"},"content_format":{"type":"string"},"content":{"type":"string"},"byte_size":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}},"job_status":{"type":"string"},"job":{"type":"object","required":["id","organization_id","ci_pipeline_run_id","ci_runner_id","number","display_id","slug","name","kind","status","execution_order","runner_label_selector","timeout_seconds","allow_failure","queued_at","started_at","finished_at","exit_code","retry_number","environment_csv","dependencies_csv","created_at","updated_at","status_label","status_state","status_tone","active","failed"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_pipeline_run_id":{"type":"string"},"ci_runner_id":{"type":"string","nullable":true},"number":{"type":"integer"},"display_id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"execution_order":{"type":"integer"},"runner_label_selector":{"type":"string","nullable":true},"timeout_seconds":{"type":"integer","nullable":true},"allow_failure":{"type":"boolean"},"queued_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"exit_code":{"type":"integer","nullable":true},"retry_number":{"type":"integer"},"environment_csv":{"type":"string","nullable":true},"dependencies_csv":{"type":"string","nullable":true},"cache_archive_observations":{"type":"object","nullable":true,"description":"Bounded server response history; it does not confirm runner extraction or test-result reuse.","required":["events","omitted_count"],"properties":{"omitted_count":{"type":"integer","minimum":0},"events":{"type":"array","maxItems":32,"items":{"type":"object","required":["outcome","label","observed_at","response_bytes","elapsed_ms","attempt"],"properties":{"outcome":{"type":"string","enum":["miss","archive_missing","exact_response","prefix_response","published_exact_response","published_prefix_response","error"]},"label":{"type":"string"},"observed_at":{"type":"string","format":"date-time"},"response_bytes":{"type":"integer","minimum":0},"elapsed_ms":{"type":"number","minimum":0},"attempt":{"type":"integer","minimum":1},"native_publication_id":{"type":"string"},"cache_entry_id":{"type":"string"},"source_run_id":{"type":"string"},"source_commit_id":{"type":"string","nullable":true},"source_url":{"type":"string"}}}}}},"reuse":{"type":"object","nullable":true,"required":["source_job_id","source_run_id","source_url"],"properties":{"source_job_id":{"type":"string"},"source_run_id":{"type":"string"},"source_url":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"}}},"steps":{"type":"array","items":{"type":"object","required":["id","organization_id","ci_job_id","slug","name","command","shell","working_directory","status","execution_order","retry_number","exit_code","started_at","finished_at","created_at","updated_at","status_label","status_state","status_tone","active","failed","secret_refs"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_job_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"command":{"type":"string"},"shell":{"type":"string","nullable":true},"working_directory":{"type":"string","nullable":true},"status":{"type":"string"},"execution_order":{"type":"integer"},"retry_number":{"type":"integer"},"exit_code":{"type":"integer","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"observed_started_at":{"type":"string","format":"date-time","nullable":true,"readOnly":true,"description":"When the API first accepted a running update. Independent of the runner clock; absent or null for older and unobserved steps."},"observed_finished_at":{"type":"string","format":"date-time","nullable":true,"readOnly":true,"description":"When the API first accepted a terminal update. Includes transport effects; not a runner-local command duration."},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"},"secret_refs":{"type":"object","additionalProperties":{"type":"string"}},"cache_request":{"type":"object","nullable":true,"required":["key","restore_keys","paths","output_id"],"properties":{"key":{"type":"string"},"restore_keys":{"type":"array","items":{"type":"string"}},"paths":{"type":"array","items":{"type":"string"}},"output_id":{"type":"string"}}}}}},"pagination":{"type":"object","additionalProperties":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_pipelines_pipeline_id_runs_run_id_jobs_job_id_log_chunks","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{run_id}/jobs/{job_id}/steps":{"get":{"operationId":"api_v1_pipeline_run_job_steps","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_pipelines_pipeline_id_runs_run_id_jobs_job_id_steps","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{run_id}/jobs/{job_id}/steps/{id}":{"patch":{"operationId":"api_v1_pipeline_run_job_step","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_ci_pipelines_pipeline_id_runs_run_id_jobs_job_id_steps_id_","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{run_id}/jobs/{job_id}/workspaces":{"get":{"operationId":"api_v1_pipeline_run_job_workspaces","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_pipelines_pipeline_id_runs_run_id_jobs_job_id_workspaces","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{run_id}/jobs/{job_id}/workspaces/{id}":{"patch":{"operationId":"api_v1_pipeline_run_job_workspace","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_ci_pipelines_pipeline_id_runs_run_id_jobs_job_id_workspaces_id_","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{run_id}/page":{"get":{"operationId":"api_v1_pipeline_run_page","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI action run page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["jobs","error"],"properties":{"jobs":{"type":"array","items":{"$ref":"#/components/schemas/CiJobCatalog"}},"error":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools":{"get":{"operationId":"api_v1_runner_pools","tags":["ci"],"parameters":[{"name":"organization_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI runner pools","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["runner_pools"],"properties":{"runner_pools":{"type":"array","items":{"type":"object","required":["id","organization_id","network_space_id","slug","name","status","runner_kind","isolation_mode","description","max_concurrency","labels_csv","node_capabilities_csv","elastic_provider_kind","elastic_config_json","bazel_enabled","bazel_properties_json","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"network_space_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"runner_kind":{"type":"string"},"isolation_mode":{"type":"string"},"description":{"type":"string","nullable":true},"max_concurrency":{"type":"integer"},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"elastic_provider_kind":{"type":"string","nullable":true},"elastic_config_json":{"type":"string","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_runner_pools","tags":["ci"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools/{id}":{"get":{"operationId":"api_v1_runner_pool","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI runner pool catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["runner_pool"],"properties":{"runner_pool":{"allOf":[{"type":"object","required":["id","organization_id","network_space_id","slug","name","status","runner_kind","isolation_mode","description","max_concurrency","labels_csv","node_capabilities_csv","elastic_provider_kind","elastic_config_json","bazel_enabled","bazel_properties_json","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"network_space_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"runner_kind":{"type":"string"},"isolation_mode":{"type":"string"},"description":{"type":"string","nullable":true},"max_concurrency":{"type":"integer"},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"elastic_provider_kind":{"type":"string","nullable":true},"elastic_config_json":{"type":"string","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},{"type":"object","required":["runners","runner_count_label","modal_capacity","modal_runner_invocations"],"properties":{"runners":{"type":"array","items":{"type":"object","required":["id","organization_id","ci_runner_pool_id","network_peer_id","slug","name","status","kind","os","architecture","version","labels_csv","node_capabilities_csv","node_certificate_fingerprint_sha256","node_certificate_serial","node_certificate_expires_at","bazel_enabled","bazel_properties_json","last_seen_at","online_at","offline_at","cordoned_at","revoked_at","health_state","schedulable","heartbeat_age_seconds","created_at","updated_at","node_certificate_expires_at_label","last_seen_at_label","online_at_label","offline_at_label","cordoned_at_label","revoked_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"network_peer_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"kind":{"type":"string"},"os":{"type":"string","nullable":true},"architecture":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"node_certificate_fingerprint_sha256":{"type":"string","nullable":true},"node_certificate_serial":{"type":"string","nullable":true},"node_certificate_expires_at":{"type":"string","format":"date-time","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"last_seen_at":{"type":"string","format":"date-time","nullable":true},"online_at":{"type":"string","format":"date-time","nullable":true},"offline_at":{"type":"string","format":"date-time","nullable":true},"cordoned_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"health_state":{"type":"string"},"schedulable":{"type":"boolean"},"heartbeat_age_seconds":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"node_certificate_expires_at_label":{"type":"string","nullable":true},"last_seen_at_label":{"type":"string","nullable":true},"online_at_label":{"type":"string","nullable":true},"offline_at_label":{"type":"string","nullable":true},"cordoned_at_label":{"type":"string","nullable":true},"revoked_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}},"runner_count_label":{"type":"string"},"modal_capacity":{"type":"object","required":["queued_jobs","active_or_pending_leases","inflight_modal_invocations","failed_modal_invocations","deficit"],"properties":{"queued_jobs":{"type":"integer"},"active_or_pending_leases":{"type":"integer"},"inflight_modal_invocations":{"type":"integer"},"failed_modal_invocations":{"type":"integer"},"deficit":{"type":"integer"}}},"modal_runner_invocations":{"type":"array","maxItems":50,"items":{"type":"object","required":["id","organization_id","ci_runner_pool_id","ci_runner_id","ci_runner_lease_id","ci_pipeline_run_id","ci_job_id","status","modal_app_name","modal_function_name","modal_environment_name","modal_call_id","modal_sandbox_id","runtime_kind","image_version","failure_kind","runner_slug","resource_class","cpu_millicores","memory_mb","ephemeral_disk_mb","retry_count","last_error","spawned_at","claimed_at","finished_at","created_at","updated_at","spawned_at_label","claimed_at_label","finished_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"ci_runner_id":{"type":"string","nullable":true},"ci_runner_lease_id":{"type":"string","nullable":true},"ci_pipeline_run_id":{"type":"string","nullable":true},"ci_job_id":{"type":"string","nullable":true},"status":{"type":"string"},"modal_app_name":{"type":"string"},"modal_function_name":{"type":"string"},"modal_environment_name":{"type":"string","nullable":true},"modal_call_id":{"type":"string","nullable":true},"modal_sandbox_id":{"type":"string","nullable":true},"runtime_kind":{"type":"string","enum":["modal_function","modal_vm_sandbox"]},"image_version":{"type":"string"},"failure_kind":{"type":"string","enum":["provider","bootstrap","job","transport"],"nullable":true},"runner_slug":{"type":"string"},"resource_class":{"type":"string"},"cpu_millicores":{"type":"integer"},"memory_mb":{"type":"integer"},"ephemeral_disk_mb":{"type":"integer"},"retry_count":{"type":"integer"},"last_error":{"type":"string","nullable":true},"spawned_at":{"type":"string","format":"date-time","nullable":true},"claimed_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"spawned_at_label":{"type":"string","nullable":true},"claimed_at_label":{"type":"string","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_ci_runner_pools_id_","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI runner pool catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["runner_pool"],"properties":{"runner_pool":{"allOf":[{"type":"object","required":["id","organization_id","network_space_id","slug","name","status","runner_kind","isolation_mode","description","max_concurrency","labels_csv","node_capabilities_csv","elastic_provider_kind","elastic_config_json","bazel_enabled","bazel_properties_json","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"network_space_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"runner_kind":{"type":"string"},"isolation_mode":{"type":"string"},"description":{"type":"string","nullable":true},"max_concurrency":{"type":"integer"},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"elastic_provider_kind":{"type":"string","nullable":true},"elastic_config_json":{"type":"string","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},{"type":"object","required":["runners","runner_count_label","modal_capacity","modal_runner_invocations"],"properties":{"runners":{"type":"array","items":{"type":"object","required":["id","organization_id","ci_runner_pool_id","network_peer_id","slug","name","status","kind","os","architecture","version","labels_csv","node_capabilities_csv","node_certificate_fingerprint_sha256","node_certificate_serial","node_certificate_expires_at","bazel_enabled","bazel_properties_json","last_seen_at","online_at","offline_at","cordoned_at","revoked_at","health_state","schedulable","heartbeat_age_seconds","created_at","updated_at","node_certificate_expires_at_label","last_seen_at_label","online_at_label","offline_at_label","cordoned_at_label","revoked_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"network_peer_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"kind":{"type":"string"},"os":{"type":"string","nullable":true},"architecture":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"node_certificate_fingerprint_sha256":{"type":"string","nullable":true},"node_certificate_serial":{"type":"string","nullable":true},"node_certificate_expires_at":{"type":"string","format":"date-time","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"last_seen_at":{"type":"string","format":"date-time","nullable":true},"online_at":{"type":"string","format":"date-time","nullable":true},"offline_at":{"type":"string","format":"date-time","nullable":true},"cordoned_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"health_state":{"type":"string"},"schedulable":{"type":"boolean"},"heartbeat_age_seconds":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"node_certificate_expires_at_label":{"type":"string","nullable":true},"last_seen_at_label":{"type":"string","nullable":true},"online_at_label":{"type":"string","nullable":true},"offline_at_label":{"type":"string","nullable":true},"cordoned_at_label":{"type":"string","nullable":true},"revoked_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}},"runner_count_label":{"type":"string"},"modal_capacity":{"type":"object","required":["queued_jobs","active_or_pending_leases","inflight_modal_invocations","failed_modal_invocations","deficit"],"properties":{"queued_jobs":{"type":"integer"},"active_or_pending_leases":{"type":"integer"},"inflight_modal_invocations":{"type":"integer"},"failed_modal_invocations":{"type":"integer"},"deficit":{"type":"integer"}}},"modal_runner_invocations":{"type":"array","maxItems":50,"items":{"type":"object","required":["id","organization_id","ci_runner_pool_id","ci_runner_id","ci_runner_lease_id","ci_pipeline_run_id","ci_job_id","status","modal_app_name","modal_function_name","modal_environment_name","modal_call_id","modal_sandbox_id","runtime_kind","image_version","failure_kind","runner_slug","resource_class","cpu_millicores","memory_mb","ephemeral_disk_mb","retry_count","last_error","spawned_at","claimed_at","finished_at","created_at","updated_at","spawned_at_label","claimed_at_label","finished_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"ci_runner_id":{"type":"string","nullable":true},"ci_runner_lease_id":{"type":"string","nullable":true},"ci_pipeline_run_id":{"type":"string","nullable":true},"ci_job_id":{"type":"string","nullable":true},"status":{"type":"string"},"modal_app_name":{"type":"string"},"modal_function_name":{"type":"string"},"modal_environment_name":{"type":"string","nullable":true},"modal_call_id":{"type":"string","nullable":true},"modal_sandbox_id":{"type":"string","nullable":true},"runtime_kind":{"type":"string","enum":["modal_function","modal_vm_sandbox"]},"image_version":{"type":"string"},"failure_kind":{"type":"string","enum":["provider","bootstrap","job","transport"],"nullable":true},"runner_slug":{"type":"string"},"resource_class":{"type":"string"},"cpu_millicores":{"type":"integer"},"memory_mb":{"type":"integer"},"ephemeral_disk_mb":{"type":"integer"},"retry_count":{"type":"integer"},"last_error":{"type":"string","nullable":true},"spawned_at":{"type":"string","format":"date-time","nullable":true},"claimed_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"spawned_at_label":{"type":"string","nullable":true},"claimed_at_label":{"type":"string","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"status":{"type":"string"},"runner_kind":{"type":"string"},"isolation_mode":{"type":"string"},"description":{"type":"string","nullable":true},"max_concurrency":{"type":"integer"},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"elastic_provider_kind":{"type":"string","nullable":true},"elastic_config_json":{"type":"string","nullable":true}}}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_ci_runner_pools_id_","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools/{id}/promote_reconciliation_runtime":{"post":{"operationId":"promote_reconciliation_runtime_api_v1_runner_pool","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Verified runtime promoted for future reconciliation generations","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["runner_pool_id","runtime"],"properties":{"runner_pool_id":{"type":"string"},"runtime":{"type":"object","required":["image_id","image_version","runtime_kind","retained_reconciliation_images"],"properties":{"image_id":{"type":"string"},"image_version":{"type":"string"},"runtime_kind":{"type":"string"},"retained_reconciliation_images":{"type":"boolean"}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Platform administrator required"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"409":{"description":"Runtime verification or expected configuration no longer matches"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_image_version","image_version"],"properties":{"expected_image_version":{"type":"string"},"image_version":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Promote a verified reconciliation image for a system runner pool","description":"Platform administrators only. Verifies deployed retained-image support and rejects concurrent pool configuration changes."}},"/api/v1/ci/runner_pools/{runner_pool_id}/node_enrollment_tokens":{"get":{"operationId":"api_v1_runner_pool_node_enrollment_tokens","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI node enrollment tokens","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["node_enrollment_tokens"],"properties":{"node_enrollment_tokens":{"type":"array","items":{"type":"object","required":["id","organization_id","ci_runner_pool_id","creator_user_id","name","description","status","kind","capabilities_csv","token_hint","usage_count","expires_at","last_used_at","revoked_at","raw_token","created_at","updated_at","expires_at_label","last_used_at_label","created_at_label","updated_at_label","usage_count_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"name":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string"},"kind":{"type":"string"},"capabilities_csv":{"type":"string","nullable":true},"token_hint":{"type":"string"},"usage_count":{"type":"integer"},"expires_at":{"type":"string","format":"date-time","nullable":true},"last_used_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"raw_token":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"expires_at_label":{"type":"string","nullable":true},"last_used_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true},"usage_count_label":{"type":"string"}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_runner_pools_runner_pool_id_node_enrollment_tokens","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI node enrollment token","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["node_enrollment_token"],"properties":{"node_enrollment_token":{"type":"object","required":["id","organization_id","ci_runner_pool_id","creator_user_id","name","description","status","kind","capabilities_csv","token_hint","usage_count","expires_at","last_used_at","revoked_at","raw_token","created_at","updated_at","expires_at_label","last_used_at_label","created_at_label","updated_at_label","usage_count_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"name":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string"},"kind":{"type":"string"},"capabilities_csv":{"type":"string","nullable":true},"token_hint":{"type":"string"},"usage_count":{"type":"integer"},"expires_at":{"type":"string","format":"date-time","nullable":true},"last_used_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"raw_token":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"expires_at_label":{"type":"string","nullable":true},"last_used_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true},"usage_count_label":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"CI node enrollment token","content":{"application/json":{"schema":{"type":"object","required":["node_enrollment_token"],"properties":{"node_enrollment_token":{"type":"object","required":["id","organization_id","ci_runner_pool_id","creator_user_id","name","description","status","kind","capabilities_csv","token_hint","usage_count","expires_at","last_used_at","revoked_at","raw_token","created_at","updated_at","expires_at_label","last_used_at_label","created_at_label","updated_at_label","usage_count_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"name":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string"},"kind":{"type":"string"},"capabilities_csv":{"type":"string","nullable":true},"token_hint":{"type":"string"},"usage_count":{"type":"integer"},"expires_at":{"type":"string","format":"date-time","nullable":true},"last_used_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"raw_token":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"expires_at_label":{"type":"string","nullable":true},"last_used_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true},"usage_count_label":{"type":"string"}}}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["name"],"properties":{"name":{"type":"string"},"capabilities_csv":{"type":"string"},"expires_at":{"type":"string","format":"date-time","nullable":true},"kind":{"type":"string"},"description":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools/{runner_pool_id}/node_enrollment_tokens/{id}/revoke":{"post":{"operationId":"revoke_api_v1_runner_pool_node_enrollment_token","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI node enrollment token","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["node_enrollment_token"],"properties":{"node_enrollment_token":{"type":"object","required":["id","organization_id","ci_runner_pool_id","creator_user_id","name","description","status","kind","capabilities_csv","token_hint","usage_count","expires_at","last_used_at","revoked_at","raw_token","created_at","updated_at","expires_at_label","last_used_at_label","created_at_label","updated_at_label","usage_count_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"name":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string"},"kind":{"type":"string"},"capabilities_csv":{"type":"string","nullable":true},"token_hint":{"type":"string"},"usage_count":{"type":"integer"},"expires_at":{"type":"string","format":"date-time","nullable":true},"last_used_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"raw_token":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"expires_at_label":{"type":"string","nullable":true},"last_used_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true},"usage_count_label":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools/{runner_pool_id}/runners":{"get":{"operationId":"api_v1_runner_pool_runners","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_runner_pools_runner_pool_id_runners","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools/{runner_pool_id}/runners/{id}":{"get":{"operationId":"api_v1_runner_pool_runner","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_ci_runner_pools_runner_pool_id_runners_id_","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_ci_runner_pools_runner_pool_id_runners_id_","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools/{runner_pool_id}/runners/{id}/heartbeat":{"post":{"operationId":"heartbeat_api_v1_runner_pool_runner","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools/{runner_pool_id}/runners/{runner_id}/leases":{"get":{"operationId":"api_v1_runner_pool_runner_leases","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"runner_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_runner_pools_runner_pool_id_runners_runner_id_leases","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"runner_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools/{runner_pool_id}/runners/{runner_id}/leases/{id}/claim":{"post":{"operationId":"claim_api_v1_runner_pool_runner_lease","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"runner_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools/{runner_pool_id}/runners/{runner_id}/leases/{id}/heartbeat":{"post":{"operationId":"heartbeat_api_v1_runner_pool_runner_lease","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"runner_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools/{runner_pool_id}/runners/{runner_id}/leases/{id}/release":{"post":{"operationId":"release_api_v1_runner_pool_runner_lease","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"runner_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/cli_releases":{"get":{"operationId":"api_v1_cli_releases","tags":["cli_releases"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_cli_releases","tags":["cli_releases"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/cli_releases/latest":{"get":{"operationId":"latest_api_v1_cli_releases","tags":["cli_releases"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/contact_submissions":{"post":{"operationId":"api_v1_contact_submissions","tags":["contact_submissions"],"parameters":[],"responses":{"201":{"description":"The message was accepted (or silently discarded as spam).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactSubmissionCreated"}}}},"400":{"description":"A required field was missing from the request body."},"422":{"description":"A field failed validation."},"429":{"description":"Too many submissions from this IP."}},"security":[],"summary":"Send a message from the public marketing contact form","description":"Unauthenticated and CSRF-exempt: the marketing site posts this straight from a browser with no Vex session. Rate limited per IP (5 per minute). `website` is a honeypot — a field no human sees. When it is filled in the response is an ordinary 201 and nothing is stored, so a bot learns nothing from the reply.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactSubmissionRequest"}}}}}},"/api/v1/edge/tls-check":{"get":{"operationId":"api_v1_edge_tls_check","tags":["edge"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/email_verifications/verify":{"get":{"operationId":"api_v1_email_verifications_verify","tags":["email_verifications"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/desired_states":{"get":{"operationId":"api_v1_desired_states","tags":["execution"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_execution_desired_states","tags":["execution"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/desired_states/{id}":{"get":{"operationId":"api_v1_desired_state","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_execution_desired_states_id_","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_execution_desired_states_id_","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_execution_desired_states_id_","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/desired_states/{id}/reconcile":{"post":{"operationId":"reconcile_api_v1_desired_state","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/reconciler_ticks":{"get":{"operationId":"api_v1_reconciler_ticks","tags":["execution"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_execution_reconciler_ticks","tags":["execution"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/reconciler_ticks/{id}":{"get":{"operationId":"api_v1_reconciler_tick","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/releases":{"get":{"operationId":"api_v1_releases","tags":["execution"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_execution_releases","tags":["execution"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/releases/{id}":{"get":{"operationId":"api_v1_release","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/releases/{id}/activate":{"post":{"operationId":"activate_api_v1_release","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/releases/{id}/fail":{"post":{"operationId":"fail_api_v1_release","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/releases/{id}/mark_ready":{"post":{"operationId":"mark_ready_api_v1_release","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/releases/{release_id}/rollouts":{"get":{"operationId":"api_v1_release_rollouts","tags":["execution"],"parameters":[{"name":"release_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_execution_releases_release_id_rollouts","tags":["execution"],"parameters":[{"name":"release_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/releases/{release_id}/rollouts/{id}":{"get":{"operationId":"api_v1_release_rollout","tags":["execution"],"parameters":[{"name":"release_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/releases/{release_id}/rollouts/{id}/complete":{"post":{"operationId":"complete_api_v1_release_rollout","tags":["execution"],"parameters":[{"name":"release_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/releases/{release_id}/rollouts/{id}/fail":{"post":{"operationId":"fail_api_v1_release_rollout","tags":["execution"],"parameters":[{"name":"release_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/releases/{release_id}/rollouts/{id}/start":{"post":{"operationId":"start_api_v1_release_rollout","tags":["execution"],"parameters":[{"name":"release_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/runtime_instances":{"get":{"operationId":"api_v1_runtime_instances","tags":["execution"],"parameters":[{"name":"hosted_app_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"app_environment_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"app_service_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Recent and live runtime instances","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["runtime_instances","pagination"],"properties":{"runtime_instances":{"type":"array","items":{"$ref":"#/components/schemas/RuntimeInstance"}},"pagination":{"type":"object","additionalProperties":true,"required":["page","limit","count","last"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":100},"count":{"type":"integer","minimum":0},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","minimum":1,"nullable":true},"next":{"type":"integer","minimum":1,"nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_execution_runtime_instances","tags":["execution"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/runtime_instances/{id}":{"get":{"operationId":"api_v1_runtime_instance","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_execution_runtime_instances_id_","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_execution_runtime_instances_id_","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_execution_runtime_instances_id_","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/runtime_instances/{id}/refresh":{"post":{"operationId":"refresh_api_v1_runtime_instance","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/runtime_instances/{id}/terminate":{"post":{"operationId":"terminate_api_v1_runtime_instance","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/runtime_instances/{runtime_instance_id}/health_snapshots":{"get":{"operationId":"api_v1_runtime_instance_health_snapshots","tags":["execution"],"parameters":[{"name":"runtime_instance_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_execution_runtime_instances_runtime_instance_id_health_snapshots","tags":["execution"],"parameters":[{"name":"runtime_instance_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/git_import_workers/credentials":{"post":{"operationId":"api_v1_git_import_workers_credentials","tags":["git_import_workers"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/git_import_workers/publications":{"post":{"operationId":"api_v1_git_import_workers_publications","tags":["git_import_workers"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/git_imports/{id}":{"get":{"operationId":"api_v1_git_import","tags":["git_imports"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Git durability and native readiness","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/GitImportStatus"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Git durability and native readiness"}},"/api/v1/git_imports/{id}/complete":{"post":{"operationId":"complete_api_v1_git_import","tags":["git_imports"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Git is durable; conversion proceeds asynchronously","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitImportStatus"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Git is durable; conversion proceeds asynchronously"}},"/api/v1/git_imports/{id}/retry":{"post":{"operationId":"retry_api_v1_git_import","tags":["git_imports"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Native repair queued from retained Git storage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitImportStatus"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Native repair queued from retained Git storage"}},"/api/v1/github/repository_lookup":{"get":{"operationId":"api_v1_github_repository_lookup","tags":["github"],"parameters":[{"name":"owner","in":"query","required":true,"schema":{"type":"string"}},{"name":"name","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The one Vex repository this GitHub remote resolves to","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization_slug","repository_slug","virtual_repository_slug","github_full_name"],"properties":{"organization_slug":{"type":"string"},"repository_slug":{"type":"string"},"virtual_repository_slug":{"type":"string"},"github_full_name":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"No organization the caller belongs to has imported this remote","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"409":{"description":"More than one reachable repository syncs this remote","content":{"application/json":{"schema":{"type":"object","required":["error","candidates"],"properties":{"error":{"type":"string"},"candidates":{"type":"array","items":{"type":"object","required":["organization_slug","repository_slug"],"properties":{"organization_slug":{"type":"string"},"repository_slug":{"type":"string"}}}}}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/github_app/importable_repositories":{"get":{"operationId":"api_v1_github_app_importable_repositories","tags":["github_app"],"parameters":[{"name":"github_app_installation_id","in":"query","required":false,"description":"When set with page, returns one installation page for client-side streaming.","schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"GitHub installation-repositories page (1-based). Defaults to 1.","schema":{"type":"integer","minimum":1,"default":1}}],"responses":{"200":{"description":"Importable GitHub repositories grouped by installation account","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["accounts"],"properties":{"accounts":{"type":"array","items":{"type":"object","required":["github_app_installation_id","account_login","repositories","next_page"],"properties":{"github_app_installation_id":{"type":"string"},"account_login":{"type":"string"},"next_page":{"type":"integer","nullable":true,"description":"Next GitHub page for this installation","or null when exhausted":null},"repositories":{"type":"array","items":{"type":"object","required":["owner","name","full_name","default_branch","visibility","private","empty","html_url","updated_at","already_imported"],"properties":{"owner":{"type":"string"},"name":{"type":"string"},"full_name":{"type":"string"},"default_branch":{"type":"string","nullable":true},"visibility":{"type":"string","nullable":true},"private":{"type":"boolean","nullable":true},"empty":{"type":"boolean","nullable":true},"html_url":{"type":"string","nullable":true},"updated_at":{"type":"string","nullable":true},"already_imported":{"type":"boolean"}}}}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/github_app/installation_authorizations":{"post":{"operationId":"api_v1_github_app_installation_authorizations","tags":["github_app"],"parameters":[],"responses":{"200":{"description":"GitHub App installation URL with opaque setup state","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["installation_url"],"properties":{"installation_url":{"type":"string","format":"uri"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"GitHub App installation URL with opaque setup state","content":{"application/json":{"schema":{"type":"object","required":["installation_url"],"properties":{"installation_url":{"type":"string","format":"uri"}}}}}},"503":{"description":"GitHub App or durable authorization state is not configured"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization_slug","return_target"],"properties":{"organization_slug":{"type":"string","description":"Vex organization slug whose installation will be linked."},"return_target":{"type":"string","description":"Server-validated Vex application target used after verification."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Start verified GitHub App installation linking","description":"Creates a short-lived, user-bound setup state for an organization administrator and returns the server-generated GitHub App installation URL. Requires an authenticated Vex session or bearer token."}},"/api/v1/github_app/installation_authorizations/complete":{"post":{"operationId":"api_v1_github_app_installation_authorizations_complete","tags":["github_app"],"parameters":[],"responses":{"200":{"description":"Existing verified installation link refreshed","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["return_target"],"properties":{"github_app_installation":{"type":"object","required":["id","organization_id","installation_id","account_login","account_id","account_avatar_url","manage_access_url","status","permissions","permission_entries","installed_at","installed_at_label","suspended_at","suspended_at_label","created_at","created_at_label","updated_at","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"installation_id":{"type":"string"},"account_login":{"type":"string"},"account_id":{"type":"string","nullable":true},"account_avatar_url":{"type":"string","format":"uri","nullable":true},"manage_access_url":{"type":"string","format":"uri"},"status":{"type":"string","enum":["active","suspended"]},"permissions":{"type":"object","additionalProperties":true},"permission_entries":{"description":"GitHub's permission hash as a display-ready list, sorted by name.","type":"array","items":{"type":"object","required":["key","name","access"],"properties":{"key":{"type":"string"},"name":{"type":"string"},"access":{"type":"string"}}}},"installed_at":{"type":"string","format":"date-time","nullable":true},"installed_at_label":{"type":"string","nullable":true},"suspended_at":{"type":"string","format":"date-time","nullable":true},"suspended_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","nullable":true}}},"github_user_authorization_connected":{"type":"boolean"},"return_target":{"type":"string"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Verified installation link created","content":{"application/json":{"schema":{"type":"object","required":["return_target"],"properties":{"github_app_installation":{"type":"object","required":["id","organization_id","installation_id","account_login","account_id","account_avatar_url","manage_access_url","status","permissions","permission_entries","installed_at","installed_at_label","suspended_at","suspended_at_label","created_at","created_at_label","updated_at","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"installation_id":{"type":"string"},"account_login":{"type":"string"},"account_id":{"type":"string","nullable":true},"account_avatar_url":{"type":"string","format":"uri","nullable":true},"manage_access_url":{"type":"string","format":"uri"},"status":{"type":"string","enum":["active","suspended"]},"permissions":{"type":"object","additionalProperties":true},"permission_entries":{"description":"GitHub's permission hash as a display-ready list, sorted by name.","type":"array","items":{"type":"object","required":["key","name","access"],"properties":{"key":{"type":"string"},"name":{"type":"string"},"access":{"type":"string"}}}},"installed_at":{"type":"string","format":"date-time","nullable":true},"installed_at_label":{"type":"string","nullable":true},"suspended_at":{"type":"string","format":"date-time","nullable":true},"suspended_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","nullable":true}}},"github_user_authorization_connected":{"type":"boolean"},"return_target":{"type":"string"}}}}}},"409":{"description":"The GitHub account is already linked to another Vex organization"},"503":{"description":"GitHub App OAuth or durable authorization state is not configured"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["state"],"properties":{"code":{"type":"string","description":"GitHub App user authorization code when authorization succeeds."},"error":{"type":"string","description":"GitHub OAuth error when the user denies or cannot grant authorization."},"state":{"type":"string","description":"Opaque one-time verification state returned by GitHub OAuth."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Verify ownership and link a GitHub App installation","description":"Consumes the one-time verification state and GitHub OAuth result, verifies the current GitHub identity, organization ownership or personal-account identity, complete repository visibility, and repository administration before creating or refreshing the Vex link."}},"/api/v1/github_app/installation_authorizations/setup":{"post":{"operationId":"api_v1_github_app_installation_authorizations_setup","tags":["github_app"],"parameters":[],"responses":{"200":{"description":"PKCE-protected GitHub App user authorization URL","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["authorization_url"],"properties":{"authorization_url":{"type":"string","format":"uri"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"PKCE-protected GitHub App user authorization URL","content":{"application/json":{"schema":{"type":"object","required":["authorization_url"],"properties":{"authorization_url":{"type":"string","format":"uri"}}}}}},"503":{"description":"GitHub App OAuth or durable authorization state is not configured"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["installation_id","setup_action","state"],"properties":{"installation_id":{"type":"string"},"setup_action":{"type":"string","enum":["install","update"]},"state":{"type":"string","description":"Opaque one-time state returned in the GitHub Setup URL callback."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Begin GitHub user verification for an installation","description":"Consumes the one-time installation setup state, records the App-owned installation snapshot, and returns a PKCE-protected GitHub App user authorization URL. No installation is linked at this stage."}},"/api/v1/github_app/user_authorizations":{"post":{"operationId":"api_v1_github_app_user_authorizations","tags":["github_app"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"GitHub App user authorization started","content":{"application/json":{"schema":{"type":"object","required":["authorization_url"],"properties":{"authorization_url":{"type":"string","format":"uri"}}}}}},"503":{"description":"GitHub App OAuth or durable authorization state is not configured"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Connect the current user's GitHub identity for PR authorship","description":"Creates a short-lived PKCE-protected GitHub App user authorization state. Requires an authenticated Vex session or bearer token."}},"/api/v1/github_app/webhook":{"post":{"operationId":"api_v1_github_app_webhook","tags":["github_app"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/gitlab/materialization_publications":{"post":{"operationId":"api_v1_gitlab_materialization_publications","tags":["gitlab"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or inactive run grant"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"204":{"description":"Publication accepted; Cache-Control no-store"},"409":{"description":"Connection changed, source moved, or publication refused"},"503":{"description":"Temporary provider or backend failure"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["updates","source_git_tip"],"properties":{"source_git_tip":{"type":"string","pattern":"^[0-9a-f]{40}$"},"updates":{"type":"array","minItems":1,"maxItems":1000,"items":{"type":"object","required":["name","new_target_commit_id"],"properties":{"name":{"type":"string"},"expected_version":{"type":"integer","minimum":0,"nullable":true},"new_target_commit_id":{"type":"string","pattern":"^[0-9a-f]{64}$"},"delete":{"type":"boolean","enum":[false]}}}}}}}}},"security":[{"bearerAuth":[]},{"bearerAuth":[]}],"summary":"Publish active GitLab materialization refs through the cancellation fence"}},"/api/v1/gitlab/oauth/callback":{"get":{"operationId":"api_v1_gitlab_oauth_callback","tags":["gitlab"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/gitlab/source_credentials":{"post":{"operationId":"api_v1_gitlab_source_credentials","tags":["gitlab"],"parameters":[],"responses":{"200":{"description":"Fresh source credentials; Cache-Control no-store","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["username","token"],"properties":{"username":{"type":"string"},"token":{"type":"string","format":"password"}}}}}},"401":{"description":"Invalid, expired, terminal, or fenced run grant"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"503":{"description":"GitLab temporarily unavailable; retry the same grant later.","headers":{"Retry-After":{"schema":{"type":"string"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]},{"bearerAuth":[]}],"summary":"Resolve credentials for an active GitLab materialization run"}},"/api/v1/hosting/app_runs":{"get":{"operationId":"api_v1_app_runs","tags":["hosting"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_app_runs","tags":["hosting"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"402":{"description":"The organization's billing limit refuses this usage; see `error.upgrade_path`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingLimitExceededError"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/app_runs/{id}":{"get":{"operationId":"api_v1_app_run","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/app_runs/{id}/cancel":{"post":{"operationId":"cancel_api_v1_app_run","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps":{"get":{"operationId":"api_v1_apps","tags":["hosting"],"parameters":[{"name":"organization_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Hosted apps visible to the current user","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["apps"],"properties":{"apps":{"type":"array","items":{"$ref":"#/components/schemas/HostedApp"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps","tags":["hosting"],"parameters":[],"responses":{"200":{"description":"Hosted app created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["app"],"properties":{"app":{"$ref":"#/components/schemas/HostedApp"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Hosted app created","content":{"application/json":{"schema":{"type":"object","required":["app"],"properties":{"app":{"$ref":"#/components/schemas/HostedApp"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/HostedAppCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/catalog":{"get":{"operationId":"api_v1_app_catalog","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Hosted app configuration catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["app"],"properties":{"app":{"$ref":"#/components/schemas/HostedAppCatalog"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/catalog/selectors":{"get":{"operationId":"selectors_api_v1_app_catalog","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Target selectors without deployment history or configuration values","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["app"],"properties":{"app":{"type":"object","additionalProperties":false,"required":["id","services","environments","locations"],"properties":{"id":{"type":"string"},"services":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","slug","name"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}}},"environments":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","slug","name"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}}},"locations":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","code","name"],"properties":{"id":{"type":"string"},"code":{"type":"string"},"name":{"type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read the service, environment and location identities for a hosted app"}},"/api/v1/hosting/apps/{app_id}/cdns":{"get":{"operationId":"api_v1_app_cdns","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_cdns","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App CDN distribution created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["cdn"],"properties":{"cdn":{"$ref":"#/components/schemas/AppCdnDistribution"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"CDN request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"201":{"description":"App CDN distribution created","content":{"application/json":{"schema":{"type":"object","required":["cdn"],"properties":{"cdn":{"$ref":"#/components/schemas/AppCdnDistribution"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppCdnDistributionCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{cdn_id}/deployments":{"get":{"operationId":"api_v1_app_cdn_deployments","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cdn_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_cdns_cdn_id_deployments","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cdn_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{cdn_id}/deployments/{id}":{"get":{"operationId":"api_v1_app_cdn_deployment","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cdn_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{cdn_id}/hostnames":{"get":{"operationId":"api_v1_app_cdn_hostnames","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cdn_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_cdns_cdn_id_hostnames","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cdn_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App CDN hostname created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["hostname"],"properties":{"hostname":{"$ref":"#/components/schemas/AppCdnHostname"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"CDN request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"201":{"description":"App CDN hostname created","content":{"application/json":{"schema":{"type":"object","required":["hostname"],"properties":{"hostname":{"$ref":"#/components/schemas/AppCdnHostname"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppCdnHostnameCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{cdn_id}/hostnames/{id}":{"get":{"operationId":"api_v1_app_cdn_hostname","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cdn_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_hosting_apps_app_id_cdns_cdn_id_hostnames_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cdn_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_cdns_cdn_id_hostnames_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cdn_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_hosting_apps_app_id_cdns_cdn_id_hostnames_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cdn_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"204":{"description":"App CDN hostname deleted"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{id}":{"get":{"operationId":"api_v1_app_cdn","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_hosting_apps_app_id_cdns_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app CDN distribution","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["cdn"],"properties":{"cdn":{"$ref":"#/components/schemas/AppCdnDistribution"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"CDN request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppCdnDistributionUpdatePayload"}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_cdns_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app CDN distribution","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["cdn"],"properties":{"cdn":{"$ref":"#/components/schemas/AppCdnDistribution"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"CDN request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppCdnDistributionUpdatePayload"}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_hosting_apps_app_id_cdns_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{id}/archive":{"post":{"operationId":"archive_api_v1_app_cdn","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app CDN distribution","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["cdn"],"properties":{"cdn":{"$ref":"#/components/schemas/AppCdnDistribution"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{id}/pause":{"post":{"operationId":"pause_api_v1_app_cdn","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app CDN distribution","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["cdn"],"properties":{"cdn":{"$ref":"#/components/schemas/AppCdnDistribution"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{id}/provision":{"post":{"operationId":"provision_api_v1_app_cdn","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App CDN deployment action completed","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["deployment"],"properties":{"deployment":{"$ref":"#/components/schemas/AppCdnDeployment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"CDN request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppCdnDeploymentPayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{id}/purge":{"post":{"operationId":"purge_api_v1_app_cdn","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App CDN deployment action completed","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["deployment"],"properties":{"deployment":{"$ref":"#/components/schemas/AppCdnDeployment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"CDN request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppCdnPurgePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{id}/resume":{"post":{"operationId":"resume_api_v1_app_cdn","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app CDN distribution","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["cdn"],"properties":{"cdn":{"$ref":"#/components/schemas/AppCdnDistribution"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{id}/sync":{"post":{"operationId":"sync_api_v1_app_cdn","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App CDN deployment action completed","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["deployment"],"properties":{"deployment":{"$ref":"#/components/schemas/AppCdnDeployment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"CDN request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppCdnDeploymentPayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/config_variables":{"get":{"operationId":"api_v1_app_config_variables","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_config_variables","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App configuration variable created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["config_variable"],"properties":{"config_variable":{"$ref":"#/components/schemas/AppConfigVariable"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Hosting delivery request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"201":{"description":"App configuration variable created","content":{"application/json":{"schema":{"type":"object","required":["config_variable"],"properties":{"config_variable":{"$ref":"#/components/schemas/AppConfigVariable"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppConfigVariableCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/config_variables/{id}":{"get":{"operationId":"api_v1_app_config_variable","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_hosting_apps_app_id_config_variables_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_config_variables_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_hosting_apps_app_id_config_variables_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/config_variables/{id}/disable":{"post":{"operationId":"disable_api_v1_app_config_variable","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app configuration variable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["config_variable"],"properties":{"config_variable":{"$ref":"#/components/schemas/AppConfigVariable"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/config_variables/{id}/rotate":{"post":{"operationId":"rotate_api_v1_app_config_variable","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app configuration variable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["config_variable"],"properties":{"config_variable":{"$ref":"#/components/schemas/AppConfigVariable"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Hosting delivery request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppConfigVariableRotatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/data_resources":{"get":{"operationId":"api_v1_app_data_resources","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_data_resources","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App data resource created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["data_resource"],"properties":{"data_resource":{"$ref":"#/components/schemas/AppDataResource"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Infrastructure request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Data resource provider request failed","content":{"application/json":{"schema":{"type":"object","required":["data_resource"],"properties":{"data_resource":{"$ref":"#/components/schemas/AppDataResource"}}}}}},"201":{"description":"App data resource created","content":{"application/json":{"schema":{"type":"object","required":["data_resource"],"properties":{"data_resource":{"$ref":"#/components/schemas/AppDataResource"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppDataResourceCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/data_resources/{id}":{"get":{"operationId":"api_v1_app_data_resource","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_hosting_apps_app_id_data_resources_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_data_resources_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_hosting_apps_app_id_data_resources_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/data_resources/{id}/archive":{"post":{"operationId":"archive_api_v1_app_data_resource","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/data_resources/{id}/refresh":{"post":{"operationId":"refresh_api_v1_app_data_resource","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app data resource","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["data_resource"],"properties":{"data_resource":{"$ref":"#/components/schemas/AppDataResource"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Data resource provider request failed","content":{"application/json":{"schema":{"type":"object","required":["data_resource"],"properties":{"data_resource":{"$ref":"#/components/schemas/AppDataResource"}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/data_resources/{id}/restore":{"post":{"operationId":"restore_api_v1_app_data_resource","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Restored app data resource created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["data_resource"],"properties":{"data_resource":{"$ref":"#/components/schemas/AppDataResource"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Infrastructure request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Data resource provider request failed","content":{"application/json":{"schema":{"type":"object","required":["data_resource"],"properties":{"data_resource":{"$ref":"#/components/schemas/AppDataResource"}}}}}},"201":{"description":"Restored app data resource created","content":{"application/json":{"schema":{"type":"object","required":["data_resource"],"properties":{"data_resource":{"$ref":"#/components/schemas/AppDataResource"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppDataResourceRestorePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/data_resources/{id}/resume":{"post":{"operationId":"resume_api_v1_app_data_resource","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/data_resources/{id}/rotate_credentials":{"post":{"operationId":"rotate_credentials_api_v1_app_data_resource","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app data resource","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["data_resource"],"properties":{"data_resource":{"$ref":"#/components/schemas/AppDataResource"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Data resource provider request failed","content":{"application/json":{"schema":{"type":"object","required":["data_resource"],"properties":{"data_resource":{"$ref":"#/components/schemas/AppDataResource"}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/data_resources/{id}/suspend":{"post":{"operationId":"suspend_api_v1_app_data_resource","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_dashboard":{"get":{"operationId":"api_v1_app_deployment_dashboard","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"metrics_range","in":"query","required":false,"schema":{"type":"string","enum":["1h","6h","24h","7d"]}}],"responses":{"200":{"description":"Hosted app deployment dashboard","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DeploymentDashboard"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_dashboard/nomad/allocation":{"get":{"operationId":"nomad_allocation_api_v1_app_deployment_dashboard","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"service","in":"query","required":false,"schema":{"type":"string"},"description":"Service id","slug":null,"or name.":null},{"name":"environment","in":"query","required":false,"schema":{"type":"string"},"description":"Environment id","slug":null,"or name.":null},{"name":"location","in":"query","required":false,"schema":{"type":"string"},"description":"Location code or name."}],"responses":{"200":{"description":"Live Nomad allocation details","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/NomadAllocationDetails"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"The app, allocation, or selector names nothing","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Nomad request failed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"400":{"description":"The selectors match more than one service","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"410":{"description":"Nomad no longer holds the allocation, so its logs are gone","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_dashboard/nomad/allocations/{allocation_id}":{"get":{"operationId":"get_api_v1_hosting_apps_app_id_deployment_dashboard_nomad_allocations_allocation_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"allocation_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Live Nomad allocation details","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/NomadAllocationDetails"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"The app, allocation, or selector names nothing","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Nomad request failed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"410":{"description":"Nomad no longer holds the allocation, so its logs are gone","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_dashboard/nomad/allocations/{allocation_id}/logs":{"get":{"operationId":"get_api_v1_hosting_apps_app_id_deployment_dashboard_nomad_allocations_allocation_id_logs","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"allocation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"task","in":"query","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["stdout","stderr"],"default":"stdout"}},{"name":"origin","in":"query","required":false,"schema":{"type":"string","enum":["start","end"],"default":"end"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":262144,"default":65536}}],"responses":{"200":{"description":"Live Nomad task logs","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/NomadAllocationLogs"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"The app, allocation, or selector names nothing","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Nomad request failed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"400":{"description":"Invalid task or log options -- including a task name the allocation does not have","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"410":{"description":"Nomad no longer holds the allocation, so its logs are gone","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_dashboard/nomad/logs":{"get":{"operationId":"nomad_logs_api_v1_app_deployment_dashboard","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"service","in":"query","required":false,"schema":{"type":"string"},"description":"Service id","slug":null,"or name.":null},{"name":"environment","in":"query","required":false,"schema":{"type":"string"},"description":"Environment id","slug":null,"or name.":null},{"name":"location","in":"query","required":false,"schema":{"type":"string"},"description":"Location code or name."},{"name":"task","in":"query","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["stdout","stderr"],"default":"stdout"}},{"name":"origin","in":"query","required":false,"schema":{"type":"string","enum":["start","end"],"default":"end"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":262144,"default":65536}}],"responses":{"200":{"description":"Live Nomad task logs","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/NomadAllocationLogs"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"The app, allocation, or selector names nothing","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Nomad request failed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"400":{"description":"The selectors match more than one service","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"410":{"description":"Nomad no longer holds the allocation, so its logs are gone","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_operations":{"get":{"operationId":"api_v1_app_deployment_operations","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Logical deployment operations","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["operations","pagination"],"properties":{"operations":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentOperation"}},"pagination":{"type":"object","additionalProperties":true,"required":["page","limit","count","last"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":100},"count":{"type":"integer","minimum":0},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","minimum":1,"nullable":true},"next":{"type":"integer","minimum":1,"nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_deployment_operations","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"402":{"description":"The organization's billing limit refuses this usage; see `error.upgrade_path`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingLimitExceededError"}}}},"201":{"description":"Logical deployment operation","content":{"application/json":{"schema":{"type":"object","required":["operation"],"properties":{"operation":{"$ref":"#/components/schemas/DeploymentOperation"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"409":{"description":"Idempotency key already names a different deployment","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Deployment request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppDeploymentCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_operations/{operation_id}":{"get":{"operationId":"api_v1_app_deployment_operation","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"operation_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Logical deployment operation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["operation"],"properties":{"operation":{"$ref":"#/components/schemas/DeploymentOperation"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_operations/{operation_id}/cancel":{"post":{"operationId":"cancel_api_v1_app_deployment_operation","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"operation_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Logical deployment operation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["operation"],"properties":{"operation":{"$ref":"#/components/schemas/DeploymentOperation"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_operations/{operation_id}/live":{"get":{"operationId":"live_api_v1_app_deployment_operation","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"operation_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Aggregate deployment operation live status","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_operations/{operation_id}/redeploy":{"post":{"operationId":"redeploy_api_v1_app_deployment_operation","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"operation_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Logical deployment operation","content":{"application/json":{"schema":{"type":"object","required":["operation"],"properties":{"operation":{"$ref":"#/components/schemas/DeploymentOperation"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"409":{"description":"Idempotency key already names a different deployment","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Deployment request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"idempotency_key":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_operations/{operation_id}/rollback":{"post":{"operationId":"rollback_api_v1_app_deployment_operation","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"operation_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Logical deployment operation","content":{"application/json":{"schema":{"type":"object","required":["operation"],"properties":{"operation":{"$ref":"#/components/schemas/DeploymentOperation"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"409":{"description":"Idempotency key already names a different deployment","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Deployment request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DeploymentRollbackPayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_rollbacks":{"post":{"operationId":"api_v1_app_deployment_rollbacks","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Existing idempotent deployment rollback","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DeploymentRollbackResult"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Deployment request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"201":{"description":"Deployment rollback created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentRollbackResult"}}}},"409":{"description":"Idempotency key already names a different deployment","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DeploymentRollbackPayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_rollbacks/plan":{"post":{"operationId":"api_v1_app_deployment_rollbacks_plan","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Deployment rollback plan","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DeploymentRollbackPlan"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DeploymentRollbackPayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployments":{"get":{"operationId":"api_v1_app_deployments","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_deployments","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App deployment created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["deployment"],"properties":{"deployment":{"$ref":"#/components/schemas/AppDeployment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Deployment request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"402":{"description":"The organization's billing limit refuses this usage; see `error.upgrade_path`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingLimitExceededError"}}}},"201":{"description":"App deployment created","content":{"application/json":{"schema":{"type":"object","required":["deployment"],"properties":{"deployment":{"$ref":"#/components/schemas/AppDeployment"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppDeploymentCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployments/{deployment_id}/live":{"get":{"operationId":"get_api_v1_hosting_apps_app_id_deployments_deployment_id_live","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"deployment_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployments/{id}":{"get":{"operationId":"api_v1_app_deployment","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_hosting_apps_app_id_deployments_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_deployments_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_hosting_apps_app_id_deployments_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployments/{id}/cancel":{"post":{"operationId":"cancel_api_v1_app_deployment","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app deployment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["deployment"],"properties":{"deployment":{"$ref":"#/components/schemas/AppDeployment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployments/{id}/fail":{"post":{"operationId":"fail_api_v1_app_deployment","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app deployment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["deployment"],"properties":{"deployment":{"$ref":"#/components/schemas/AppDeployment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployments/{id}/succeed":{"post":{"operationId":"succeed_api_v1_app_deployment","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app deployment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["deployment"],"properties":{"deployment":{"$ref":"#/components/schemas/AppDeployment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deploys":{"post":{"operationId":"api_v1_app_deploys","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/domains":{"get":{"operationId":"api_v1_app_domains","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_domains","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App domain created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["domain"],"properties":{"domain":{"$ref":"#/components/schemas/AppDomain"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Hosting delivery request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"201":{"description":"App domain created","content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"$ref":"#/components/schemas/AppDomain"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppDomainCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/domains/{domain_id}/path_rules":{"get":{"operationId":"api_v1_app_domain_path_rules","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Path rules for the domain, in routing precedence (most-specific prefix first, \"/\" catch-all last)","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["path_rules"],"properties":{"path_rules":{"type":"array","items":{"$ref":"#/components/schemas/AppDomainPathRule"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_domains_domain_id_path_rules","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Path rule created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["path_rule"],"properties":{"path_rule":{"$ref":"#/components/schemas/AppDomainPathRule"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Hosting delivery request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"201":{"description":"Path rule created","content":{"application/json":{"schema":{"type":"object","required":["path_rule"],"properties":{"path_rule":{"$ref":"#/components/schemas/AppDomainPathRule"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppDomainPathRuleUpsertPayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/domains/{domain_id}/path_rules/{id}":{"get":{"operationId":"api_v1_app_domain_path_rule","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App domain path rule","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["path_rule"],"properties":{"path_rule":{"$ref":"#/components/schemas/AppDomainPathRule"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_hosting_apps_app_id_domains_domain_id_path_rules_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App domain path rule","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["path_rule"],"properties":{"path_rule":{"$ref":"#/components/schemas/AppDomainPathRule"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Hosting delivery request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppDomainPathRuleUpsertPayload"}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_domains_domain_id_path_rules_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App domain path rule","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["path_rule"],"properties":{"path_rule":{"$ref":"#/components/schemas/AppDomainPathRule"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Hosting delivery request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppDomainPathRuleUpsertPayload"}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_hosting_apps_app_id_domains_domain_id_path_rules_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Hosting delivery request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"204":{"description":"Path rule deleted"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/domains/{id}":{"get":{"operationId":"api_v1_app_domain","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_hosting_apps_app_id_domains_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_domains_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_hosting_apps_app_id_domains_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/domains/{id}/disable":{"post":{"operationId":"disable_api_v1_app_domain","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app domain","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["domain"],"properties":{"domain":{"$ref":"#/components/schemas/AppDomain"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/domains/{id}/enable":{"post":{"operationId":"enable_api_v1_app_domain","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app domain","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["domain"],"properties":{"domain":{"$ref":"#/components/schemas/AppDomain"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/domains/{id}/verify":{"post":{"operationId":"verify_api_v1_app_domain","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Domain verification scheduled","content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"$ref":"#/components/schemas/AppDomain"}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Recheck custom-domain ownership and resume certificate provisioning"}},"/api/v1/hosting/apps/{app_id}/environments":{"get":{"operationId":"api_v1_app_environments","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_environments","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App environment created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["environment"],"properties":{"environment":{"$ref":"#/components/schemas/AppEnvironment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Deployment request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"201":{"description":"App environment created","content":{"application/json":{"schema":{"type":"object","required":["environment"],"properties":{"environment":{"$ref":"#/components/schemas/AppEnvironment"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppEnvironmentCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/environments/{id}":{"get":{"operationId":"api_v1_app_environment","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_hosting_apps_app_id_environments_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app environment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["environment"],"properties":{"environment":{"$ref":"#/components/schemas/AppEnvironment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Deployment request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppEnvironmentUpdatePayload"}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_environments_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app environment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["environment"],"properties":{"environment":{"$ref":"#/components/schemas/AppEnvironment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Deployment request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppEnvironmentUpdatePayload"}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_hosting_apps_app_id_environments_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/environments/{id}/archive":{"post":{"operationId":"archive_api_v1_app_environment","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app environment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["environment"],"properties":{"environment":{"$ref":"#/components/schemas/AppEnvironment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/environments/{id}/pause":{"post":{"operationId":"pause_api_v1_app_environment","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app environment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["environment"],"properties":{"environment":{"$ref":"#/components/schemas/AppEnvironment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/environments/{id}/resume":{"post":{"operationId":"resume_api_v1_app_environment","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app environment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["environment"],"properties":{"environment":{"$ref":"#/components/schemas/AppEnvironment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/locations":{"get":{"operationId":"api_v1_app_locations","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Available hosting locations","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["locations"],"properties":{"locations":{"type":"array","items":{"$ref":"#/components/schemas/HostingLocation"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_locations","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Hosting location enabled for an app","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["location"],"properties":{"location":{"$ref":"#/components/schemas/HostingLocation"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Hosting location enabled for an app","content":{"application/json":{"schema":{"type":"object","required":["location"],"properties":{"location":{"$ref":"#/components/schemas/HostingLocation"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/HostedAppLocationPayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/locations/{id}":{"delete":{"operationId":"api_v1_app_location","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"204":{"description":"Hosting location disabled for an app"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/metrics/query_range":{"get":{"operationId":"get_api_v1_hosting_apps_app_id_metrics_query_range","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/secrets":{"get":{"operationId":"api_v1_app_secrets","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"List of secret metadata objects","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["secrets"],"properties":{"secrets":{"type":"array","items":{"type":"object","required":["id","hosted_app_id","organization_id","slug","name","scope_kind","status"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"organization_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"env_key":{"type":"string","nullable":true},"scope_kind":{"type":"string"},"status":{"type":"string"},"description":{"type":"string","nullable":true},"rotation_policy":{"type":"string","nullable":true},"expose_to_build":{"type":"boolean"},"has_value":{"type":"boolean"},"value_kind":{"type":"string","nullable":true},"value_digest":{"type":"string","nullable":true},"latest_version_number":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List app secrets (metadata only)"},"post":{"operationId":"post_api_v1_hosting_apps_app_id_secrets","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Created secret metadata","content":{"application/json":{"schema":{"type":"object","required":["id","hosted_app_id","organization_id","slug","name","scope_kind","status"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"organization_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"env_key":{"type":"string","nullable":true},"scope_kind":{"type":"string"},"status":{"type":"string"},"description":{"type":"string","nullable":true},"rotation_policy":{"type":"string","nullable":true},"expose_to_build":{"type":"boolean"},"has_value":{"type":"boolean"},"value_kind":{"type":"string","nullable":true},"value_digest":{"type":"string","nullable":true},"latest_version_number":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["slug","name"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"env_key":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"rotation_policy":{"type":"string","nullable":true},"expose_to_build":{"type":"boolean"},"value":{"type":"string","writeOnly":true},"value_kind":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Create an app secret"}},"/api/v1/hosting/apps/{app_id}/secrets/bulk":{"post":{"operationId":"bulk_api_v1_app_secrets","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Bulk import result summary","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["dotenv"],"properties":{"dotenv":{"type":"string"},"dry_run":{"type":"boolean","default":false},"prune":{"type":"boolean","default":false}}}}}},"security":[{"bearerAuth":[]}],"summary":"Bulk import secrets from dotenv text"}},"/api/v1/hosting/apps/{app_id}/secrets/dotenv":{"get":{"operationId":"dotenv_api_v1_app_secrets","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Dotenv-formatted secrets (KEY=value pairs)","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/plain":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Export all active app secrets as dotenv text (audited)"}},"/api/v1/hosting/apps/{app_id}/secrets/{id}":{"get":{"operationId":"api_v1_app_secret","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Secret metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","hosted_app_id","organization_id","slug","name","scope_kind","status"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"organization_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"env_key":{"type":"string","nullable":true},"scope_kind":{"type":"string"},"status":{"type":"string"},"description":{"type":"string","nullable":true},"rotation_policy":{"type":"string","nullable":true},"expose_to_build":{"type":"boolean"},"has_value":{"type":"boolean"},"value_kind":{"type":"string","nullable":true},"value_digest":{"type":"string","nullable":true},"latest_version_number":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Get a single app secret (metadata only)"},"patch":{"operationId":"patch_api_v1_hosting_apps_app_id_secrets_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated secret metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","hosted_app_id","organization_id","slug","name","scope_kind","status"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"organization_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"env_key":{"type":"string","nullable":true},"scope_kind":{"type":"string"},"status":{"type":"string"},"description":{"type":"string","nullable":true},"rotation_policy":{"type":"string","nullable":true},"expose_to_build":{"type":"boolean"},"has_value":{"type":"boolean"},"value_kind":{"type":"string","nullable":true},"value_digest":{"type":"string","nullable":true},"latest_version_number":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string"},"env_key":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"rotation_policy":{"type":"string","nullable":true},"expose_to_build":{"type":"boolean"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Update app secret metadata"},"put":{"operationId":"put_api_v1_hosting_apps_app_id_secrets_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated secret metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","hosted_app_id","organization_id","slug","name","scope_kind","status"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"organization_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"env_key":{"type":"string","nullable":true},"scope_kind":{"type":"string"},"status":{"type":"string"},"description":{"type":"string","nullable":true},"rotation_policy":{"type":"string","nullable":true},"expose_to_build":{"type":"boolean"},"has_value":{"type":"boolean"},"value_kind":{"type":"string","nullable":true},"value_digest":{"type":"string","nullable":true},"latest_version_number":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string"},"env_key":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"rotation_policy":{"type":"string","nullable":true},"expose_to_build":{"type":"boolean"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Update app secret metadata (full replacement)"},"delete":{"operationId":"delete_api_v1_hosting_apps_app_id_secrets_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"204":{"description":"Secret deleted"}},"security":[{"bearerAuth":[]}],"summary":"Delete an app secret"}},"/api/v1/hosting/apps/{app_id}/secrets/{id}/set_value":{"post":{"operationId":"set_value_api_v1_app_secret","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Updated secret metadata after new version","content":{"application/json":{"schema":{"type":"object","required":["id","hosted_app_id","organization_id","slug","name","scope_kind","status"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"organization_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"env_key":{"type":"string","nullable":true},"scope_kind":{"type":"string"},"status":{"type":"string"},"description":{"type":"string","nullable":true},"rotation_policy":{"type":"string","nullable":true},"expose_to_build":{"type":"boolean"},"has_value":{"type":"boolean"},"value_kind":{"type":"string","nullable":true},"value_digest":{"type":"string","nullable":true},"latest_version_number":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["value"],"properties":{"value":{"type":"string","writeOnly":true},"value_kind":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Write a new secret version (audited)"}},"/api/v1/hosting/apps/{app_id}/secrets/{id}/value":{"get":{"operationId":"value_api_v1_app_secret","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Raw secret value for the current active version","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","slug","version_number","value","value_kind"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"env_key":{"type":"string","nullable":true},"version_number":{"type":"integer"},"value":{"type":"string"},"value_kind":{"type":"string"},"value_digest":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"No active version found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read raw secret value (audited, admin-only)"}},"/api/v1/hosting/apps/{app_id}/service_bindings":{"get":{"operationId":"api_v1_app_service_bindings","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_service_bindings","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/service_bindings/{id}":{"get":{"operationId":"api_v1_app_service_binding","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_hosting_apps_app_id_service_bindings_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_service_bindings_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_hosting_apps_app_id_service_bindings_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/service_bindings/{id}/disable":{"post":{"operationId":"disable_api_v1_app_service_binding","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/service_bindings/{id}/enable":{"post":{"operationId":"enable_api_v1_app_service_binding","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/service_placements":{"get":{"operationId":"api_v1_app_service_placements","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Service placements","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["placements"],"properties":{"placements":{"type":"array","items":{"$ref":"#/components/schemas/AppServicePlacement"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/service_placements/configure":{"put":{"operationId":"configure_api_v1_app_service_placements","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Configured service placement","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["placement"],"properties":{"placement":{"$ref":"#/components/schemas/AppServicePlacement"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Deployment request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppServicePlacementPayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/service_placements/{id}":{"get":{"operationId":"api_v1_app_service_placement","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Service placement","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["placement"],"properties":{"placement":{"$ref":"#/components/schemas/AppServicePlacement"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/services":{"get":{"operationId":"api_v1_app_services","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_services","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App service created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["service"],"properties":{"service":{"$ref":"#/components/schemas/AppService"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Infrastructure request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"201":{"description":"App service created","content":{"application/json":{"schema":{"type":"object","required":["service"],"properties":{"service":{"$ref":"#/components/schemas/AppService"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppServiceCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/services/{id}":{"get":{"operationId":"api_v1_app_service","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_hosting_apps_app_id_services_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app service","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["service"],"properties":{"service":{"$ref":"#/components/schemas/AppService"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Deployment request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppServiceUpdatePayload"}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_services_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app service","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["service"],"properties":{"service":{"$ref":"#/components/schemas/AppService"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Deployment request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppServiceUpdatePayload"}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_hosting_apps_app_id_services_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/services/{id}/archive":{"post":{"operationId":"archive_api_v1_app_service","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app service","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["service"],"properties":{"service":{"$ref":"#/components/schemas/AppService"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/services/{id}/pause":{"post":{"operationId":"pause_api_v1_app_service","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app service","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["service"],"properties":{"service":{"$ref":"#/components/schemas/AppService"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/services/{id}/resume":{"post":{"operationId":"resume_api_v1_app_service","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app service","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["service"],"properties":{"service":{"$ref":"#/components/schemas/AppService"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/services/{service_id}/endpoints":{"get":{"operationId":"api_v1_app_service_endpoints","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"service_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_services_service_id_endpoints","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"service_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/services/{service_id}/endpoints/{id}":{"get":{"operationId":"api_v1_app_service_endpoint","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"service_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_hosting_apps_app_id_services_service_id_endpoints_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"service_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_services_service_id_endpoints_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"service_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_hosting_apps_app_id_services_service_id_endpoints_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"service_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/storage_resources":{"get":{"operationId":"api_v1_app_storage_resources","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_storage_resources","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App storage resource created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["storage_resource"],"properties":{"storage_resource":{"$ref":"#/components/schemas/AppStorageResource"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Infrastructure request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"201":{"description":"App storage resource created","content":{"application/json":{"schema":{"type":"object","required":["storage_resource"],"properties":{"storage_resource":{"$ref":"#/components/schemas/AppStorageResource"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppStorageResourceCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/storage_resources/{id}":{"get":{"operationId":"api_v1_app_storage_resource","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_hosting_apps_app_id_storage_resources_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_storage_resources_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_hosting_apps_app_id_storage_resources_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/storage_resources/{id}/archive":{"post":{"operationId":"archive_api_v1_app_storage_resource","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Storage resource archived","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["storage_resource"],"properties":{"storage_resource":{"$ref":"#/components/schemas/AppStorageResource"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Infrastructure request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Volume archives are destructive (detach + cloud delete) and must send confirm=archive; bucket archives need no body","properties":{"confirm":{"type":"string","enum":["archive"]}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/storage_resources/{id}/issue_access_key":{"post":{"operationId":"issue_access_key_api_v1_app_storage_resource","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/storage_resources/{id}/resume":{"post":{"operationId":"resume_api_v1_app_storage_resource","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/storage_resources/{id}/suspend":{"post":{"operationId":"suspend_api_v1_app_storage_resource","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{id}":{"get":{"operationId":"api_v1_app","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_hosting_apps_id_","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Hosted app updated","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["app"],"properties":{"app":{"$ref":"#/components/schemas/HostedApp"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/HostedAppUpdatePayload"}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_id_","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Hosted app updated","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["app"],"properties":{"app":{"$ref":"#/components/schemas/HostedApp"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/HostedAppUpdatePayload"}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_hosting_apps_id_","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{id}/activate":{"post":{"operationId":"activate_api_v1_app","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{id}/archive":{"post":{"operationId":"archive_api_v1_app","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/locations":{"get":{"operationId":"api_v1_locations","tags":["hosting"],"parameters":[],"responses":{"200":{"description":"Available hosting locations","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["locations"],"properties":{"locations":{"type":"array","items":{"$ref":"#/components/schemas/HostingLocation"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/metrics/queries":{"get":{"operationId":"api_v1_metrics_queries","tags":["hosting"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/catalog":{"get":{"operationId":"api_v1_organization_catalog","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/identity_certificates":{"get":{"operationId":"api_v1_organization_identity_certificates","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_identity_organizations_organization_id_identity_certificates","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/identity_certificates/{id}":{"get":{"operationId":"api_v1_organization_identity_certificate","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_identity_organizations_organization_id_identity_certificates_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_identity_organizations_organization_id_identity_certificates_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_identity_organizations_organization_id_identity_certificates_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/identity_certificates/{id}/expire":{"post":{"operationId":"expire_api_v1_organization_identity_certificate","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/identity_certificates/{id}/revoke":{"post":{"operationId":"revoke_api_v1_organization_identity_certificate","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/oidc_trusts":{"get":{"operationId":"api_v1_organization_oidc_trusts","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_identity_organizations_organization_id_oidc_trusts","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/oidc_trusts/{id}":{"get":{"operationId":"api_v1_organization_oidc_trust","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_identity_organizations_organization_id_oidc_trusts_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_identity_organizations_organization_id_oidc_trusts_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_identity_organizations_organization_id_oidc_trusts_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/oidc_trusts/{id}/activate":{"post":{"operationId":"activate_api_v1_organization_oidc_trust","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/oidc_trusts/{id}/pause":{"post":{"operationId":"pause_api_v1_organization_oidc_trust","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/oidc_trusts/{id}/revoke":{"post":{"operationId":"revoke_api_v1_organization_oidc_trust","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/secrets":{"get":{"operationId":"api_v1_organization_secrets","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization secrets page (organization summary plus secret metadata)","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization","secrets"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"},"secrets":{"type":"array","items":{"type":"object","required":["id","organization_id","hosted_app_id","app_environment_id","app_service_id","owner_service_account_id","slug","name","env_key","scope_kind","status","description","rotation_policy","expose_to_build","expose_to_ci","latest_version_number","current_version","created_by","last_accessed_by","created_at","updated_at","last_accessed_at","created_at_label","updated_at_label","last_accessed_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string","nullable":true},"hosted_app_id":{"type":"string","nullable":true},"app_environment_id":{"type":"string","nullable":true},"app_service_id":{"type":"string","nullable":true},"owner_service_account_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"env_key":{"type":"string"},"scope_kind":{"type":"string"},"status":{"type":"string"},"description":{"type":"string","nullable":true},"rotation_policy":{"type":"string","nullable":true},"expose_to_build":{"type":"boolean"},"expose_to_ci":{"type":"boolean"},"latest_version_number":{"type":"integer","nullable":true},"current_version":{"type":"object","nullable":true,"required":["id","secret_id","version_number","value","has_value","value_kind","value_digest","status","created_by_user_id","expires_at","rotated_at","created_at","updated_at"],"properties":{"id":{"type":"string"},"secret_id":{"type":"string"},"version_number":{"type":"integer"},"value":{"type":"string","nullable":true,"writeOnly":true},"has_value":{"type":"boolean"},"value_kind":{"type":"string"},"value_digest":{"type":"string","nullable":true},"status":{"type":"string"},"created_by_user_id":{"type":"string","nullable":true},"expires_at":{"type":"string","format":"date-time","nullable":true},"rotated_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"created_by":{"type":"object","nullable":true,"required":["id","name","email","picture_url"],"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"last_accessed_by":{"type":"object","nullable":true,"required":["id","name","email","picture_url"],"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"last_accessed_at":{"type":"string","format":"date-time","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true},"last_accessed_at_label":{"type":"string","nullable":true}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List organization secrets"},"post":{"operationId":"post_api_v1_identity_organizations_organization_id_secrets","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/secrets/dotenv":{"get":{"operationId":"dotenv_api_v1_organization_secrets","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/secrets/upsert":{"post":{"operationId":"upsert_api_v1_organization_secrets","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated organization secret metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["secret"],"properties":{"secret":{"type":"object","required":["id","organization_id","hosted_app_id","app_environment_id","app_service_id","owner_service_account_id","slug","name","env_key","scope_kind","status","description","rotation_policy","expose_to_build","expose_to_ci","latest_version_number","current_version","created_by","last_accessed_by","created_at","updated_at","last_accessed_at","created_at_label","updated_at_label","last_accessed_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string","nullable":true},"hosted_app_id":{"type":"string","nullable":true},"app_environment_id":{"type":"string","nullable":true},"app_service_id":{"type":"string","nullable":true},"owner_service_account_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"env_key":{"type":"string"},"scope_kind":{"type":"string"},"status":{"type":"string"},"description":{"type":"string","nullable":true},"rotation_policy":{"type":"string","nullable":true},"expose_to_build":{"type":"boolean"},"expose_to_ci":{"type":"boolean"},"latest_version_number":{"type":"integer","nullable":true},"current_version":{"type":"object","nullable":true,"required":["id","secret_id","version_number","value","has_value","value_kind","value_digest","status","created_by_user_id","expires_at","rotated_at","created_at","updated_at"],"properties":{"id":{"type":"string"},"secret_id":{"type":"string"},"version_number":{"type":"integer"},"value":{"type":"string","nullable":true,"writeOnly":true},"has_value":{"type":"boolean"},"value_kind":{"type":"string"},"value_digest":{"type":"string","nullable":true},"status":{"type":"string"},"created_by_user_id":{"type":"string","nullable":true},"expires_at":{"type":"string","format":"date-time","nullable":true},"rotated_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"created_by":{"type":"object","nullable":true,"required":["id","name","email","picture_url"],"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"last_accessed_by":{"type":"object","nullable":true,"required":["id","name","email","picture_url"],"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"last_accessed_at":{"type":"string","format":"date-time","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true},"last_accessed_at_label":{"type":"string","nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Created organization secret metadata","content":{"application/json":{"schema":{"type":"object","required":["secret"],"properties":{"secret":{"type":"object","required":["id","organization_id","hosted_app_id","app_environment_id","app_service_id","owner_service_account_id","slug","name","env_key","scope_kind","status","description","rotation_policy","expose_to_build","expose_to_ci","latest_version_number","current_version","created_by","last_accessed_by","created_at","updated_at","last_accessed_at","created_at_label","updated_at_label","last_accessed_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string","nullable":true},"hosted_app_id":{"type":"string","nullable":true},"app_environment_id":{"type":"string","nullable":true},"app_service_id":{"type":"string","nullable":true},"owner_service_account_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"env_key":{"type":"string"},"scope_kind":{"type":"string"},"status":{"type":"string"},"description":{"type":"string","nullable":true},"rotation_policy":{"type":"string","nullable":true},"expose_to_build":{"type":"boolean"},"expose_to_ci":{"type":"boolean"},"latest_version_number":{"type":"integer","nullable":true},"current_version":{"type":"object","nullable":true,"required":["id","secret_id","version_number","value","has_value","value_kind","value_digest","status","created_by_user_id","expires_at","rotated_at","created_at","updated_at"],"properties":{"id":{"type":"string"},"secret_id":{"type":"string"},"version_number":{"type":"integer"},"value":{"type":"string","nullable":true,"writeOnly":true},"has_value":{"type":"boolean"},"value_kind":{"type":"string"},"value_digest":{"type":"string","nullable":true},"status":{"type":"string"},"created_by_user_id":{"type":"string","nullable":true},"expires_at":{"type":"string","format":"date-time","nullable":true},"rotated_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"created_by":{"type":"object","nullable":true,"required":["id","name","email","picture_url"],"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"last_accessed_by":{"type":"object","nullable":true,"required":["id","name","email","picture_url"],"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"last_accessed_at":{"type":"string","format":"date-time","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true},"last_accessed_at_label":{"type":"string","nullable":true}}}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["env_key","value"],"properties":{"env_key":{"type":"string"},"name":{"type":"string"},"scope_kind":{"type":"string","enum":["organization"]},"expose_to_ci":{"type":"boolean"},"value":{"type":"string","writeOnly":true}}}}}},"security":[{"bearerAuth":[]}],"summary":"Create or rotate an organization secret by environment key"}},"/api/v1/identity/organizations/{organization_id}/secrets/{id}":{"get":{"operationId":"api_v1_organization_secret","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_identity_organizations_organization_id_secrets_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_identity_organizations_organization_id_secrets_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_identity_organizations_organization_id_secrets_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"204":{"description":"Organization secret deleted"}},"security":[{"bearerAuth":[]}],"summary":"Delete an organization secret"}},"/api/v1/identity/organizations/{organization_id}/secrets/{id}/disable":{"post":{"operationId":"disable_api_v1_organization_secret","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/secrets/{id}/enable":{"post":{"operationId":"enable_api_v1_organization_secret","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/secrets/{id}/rotate":{"post":{"operationId":"rotate_api_v1_organization_secret","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/secrets/{id}/value":{"get":{"operationId":"value_api_v1_organization_secret","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/secrets/{secret_id}/grants":{"get":{"operationId":"api_v1_organization_secret_grants","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_identity_organizations_organization_id_secrets_secret_id_grants","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/secrets/{secret_id}/grants/{id}":{"get":{"operationId":"api_v1_organization_secret_grant","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_identity_organizations_organization_id_secrets_secret_id_grants_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_identity_organizations_organization_id_secrets_secret_id_grants_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_identity_organizations_organization_id_secrets_secret_id_grants_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/secrets/{secret_id}/grants/{id}/restore":{"post":{"operationId":"restore_api_v1_organization_secret_grant","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/secrets/{secret_id}/grants/{id}/revoke":{"post":{"operationId":"revoke_api_v1_organization_secret_grant","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/secrets/{secret_id}/grants/{id}/suspend":{"post":{"operationId":"suspend_api_v1_organization_secret_grant","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/secrets/{secret_id}/versions":{"get":{"operationId":"api_v1_organization_secret_versions","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_identity_organizations_organization_id_secrets_secret_id_versions","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/secrets/{secret_id}/versions/{id}":{"get":{"operationId":"api_v1_organization_secret_version","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_identity_organizations_organization_id_secrets_secret_id_versions_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_identity_organizations_organization_id_secrets_secret_id_versions_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_identity_organizations_organization_id_secrets_secret_id_versions_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/secrets/{secret_id}/versions/{id}/redact":{"post":{"operationId":"redact_api_v1_organization_secret_version","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/secrets/{secret_id}/versions/{id}/revoke":{"post":{"operationId":"revoke_api_v1_organization_secret_version","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/service_accounts":{"get":{"operationId":"api_v1_organization_service_accounts","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_identity_organizations_organization_id_service_accounts","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/service_accounts/{id}":{"get":{"operationId":"api_v1_organization_service_account","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_identity_organizations_organization_id_service_accounts_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_identity_organizations_organization_id_service_accounts_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_identity_organizations_organization_id_service_accounts_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/service_accounts/{id}/activate":{"post":{"operationId":"activate_api_v1_organization_service_account","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/service_accounts/{id}/revoke":{"post":{"operationId":"revoke_api_v1_organization_service_account","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/service_accounts/{id}/suspend":{"post":{"operationId":"suspend_api_v1_organization_service_account","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/workload_identities":{"get":{"operationId":"api_v1_organization_workload_identities","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_identity_organizations_organization_id_workload_identities","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/workload_identities/token_exchange":{"post":{"operationId":"token_exchange_api_v1_organization_workload_identities","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/workload_identities/{id}":{"get":{"operationId":"api_v1_organization_workload_identity","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_identity_organizations_organization_id_workload_identities_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_identity_organizations_organization_id_workload_identities_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_identity_organizations_organization_id_workload_identities_id_","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/workload_identities/{id}/activate":{"post":{"operationId":"activate_api_v1_organization_workload_identity","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/workload_identities/{id}/issue_exchange_token":{"post":{"operationId":"issue_exchange_token_api_v1_organization_workload_identity","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/workload_identities/{id}/materialize":{"post":{"operationId":"materialize_api_v1_organization_workload_identity","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/workload_identities/{id}/revoke":{"post":{"operationId":"revoke_api_v1_organization_workload_identity","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/identity/organizations/{organization_id}/workload_identities/{id}/suspend":{"post":{"operationId":"suspend_api_v1_organization_workload_identity","tags":["identity"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/jj/begin_upload":{"post":{"operationId":"api_v1_jj_begin_upload","tags":["jj"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/jj/commit_operation":{"post":{"operationId":"api_v1_jj_commit_operation","tags":["jj"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/jj/discover":{"get":{"operationId":"api_v1_jj_discover","tags":["jj"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/jj/finalize_upload":{"post":{"operationId":"api_v1_jj_finalize_upload","tags":["jj"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/jj/get_objects":{"post":{"operationId":"api_v1_jj_get_objects","tags":["jj"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/jj/op_heads":{"get":{"operationId":"api_v1_jj_op_heads","tags":["jj"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/jj/resolve_refs":{"post":{"operationId":"api_v1_jj_resolve_refs","tags":["jj"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/jj/update_refs":{"patch":{"operationId":"api_v1_jj_update_refs","tags":["jj"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/mcp":{"get|post|delete":{"operationId":"api_v1_mcp","tags":["mcp"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/me":{"get":{"operationId":"api_v1_me","tags":["me"],"parameters":[],"responses":{"200":{"description":"Current authenticated session","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AuthSession","required":["id","email","name","picture_url","github_prs_authored_by_change_author","github_pr_user_authorization_connected","github_pr_user_authorization_login","organizations","active_organization","pending_organization_invitation_count","pending_organization_invitation_count_label"],"properties":{"id":{"type":"string"},"email":{"type":"string","format":"email"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true},"github_prs_authored_by_change_author":{"type":"boolean"},"github_pr_user_authorization_connected":{"type":"boolean"},"github_pr_user_authorization_login":{"type":"string","nullable":true},"superadmin":{"type":"boolean"},"organizations":{"type":"array","items":{"type":"object","required":["id","slug","name","logo_url","role","personal","member_count","pending_invitation_count","activated_products","can_activate_products","github_prs_authored_by_change_author","allow_author_self_review_on_main_repo","author_self_review_on_main_repo_effective","allow_author_self_review_on_home_repository","author_self_review_on_home_repository_effective","main_repository_slug","main_repository_display_name","home_repository_slug","home_repository_display_name","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"personal":{"type":"boolean"},"member_count":{"type":"integer","minimum":0},"pending_invitation_count":{"type":"integer","minimum":0},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"github_prs_authored_by_change_author":{"type":"boolean"},"allow_author_self_review_on_main_repo":{"type":"boolean"},"author_self_review_on_main_repo_effective":{"type":"boolean"},"allow_author_self_review_on_home_repository":{"type":"boolean"},"author_self_review_on_home_repository_effective":{"type":"boolean"},"main_repository_slug":{"type":"string"},"main_repository_display_name":{"type":"string"},"home_repository_slug":{"type":"string"},"home_repository_display_name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}},"active_organization":{"oneOf":[{"type":"object","required":["id","slug","name","logo_url","role","personal","member_count","pending_invitation_count","activated_products","can_activate_products","github_prs_authored_by_change_author","allow_author_self_review_on_main_repo","author_self_review_on_main_repo_effective","allow_author_self_review_on_home_repository","author_self_review_on_home_repository_effective","main_repository_slug","main_repository_display_name","home_repository_slug","home_repository_display_name","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"personal":{"type":"boolean"},"member_count":{"type":"integer","minimum":0},"pending_invitation_count":{"type":"integer","minimum":0},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"github_prs_authored_by_change_author":{"type":"boolean"},"allow_author_self_review_on_main_repo":{"type":"boolean"},"author_self_review_on_main_repo_effective":{"type":"boolean"},"allow_author_self_review_on_home_repository":{"type":"boolean"},"author_self_review_on_home_repository_effective":{"type":"boolean"},"main_repository_slug":{"type":"string"},"main_repository_display_name":{"type":"string"},"home_repository_slug":{"type":"string"},"home_repository_display_name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},{"type":"null"}]},"pending_organization_invitation_count":{"type":"integer","minimum":0},"pending_organization_invitation_count_label":{"type":"string"},"api_token":{"type":"string"},"api_base_url":{"type":"string","format":"uri"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_me","tags":["me"],"parameters":[],"responses":{"200":{"description":"Updated authenticated session","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","email","name","picture_url","github_prs_authored_by_change_author","github_pr_user_authorization_connected","github_pr_user_authorization_login","organizations","active_organization","pending_organization_invitation_count","pending_organization_invitation_count_label"],"properties":{"id":{"type":"string"},"email":{"type":"string","format":"email"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true},"github_prs_authored_by_change_author":{"type":"boolean"},"github_pr_user_authorization_connected":{"type":"boolean"},"github_pr_user_authorization_login":{"type":"string","nullable":true},"superadmin":{"type":"boolean"},"organizations":{"type":"array","items":{"type":"object","required":["id","slug","name","logo_url","role","personal","member_count","pending_invitation_count","activated_products","can_activate_products","github_prs_authored_by_change_author","allow_author_self_review_on_main_repo","author_self_review_on_main_repo_effective","allow_author_self_review_on_home_repository","author_self_review_on_home_repository_effective","main_repository_slug","main_repository_display_name","home_repository_slug","home_repository_display_name","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"personal":{"type":"boolean"},"member_count":{"type":"integer","minimum":0},"pending_invitation_count":{"type":"integer","minimum":0},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"github_prs_authored_by_change_author":{"type":"boolean"},"allow_author_self_review_on_main_repo":{"type":"boolean"},"author_self_review_on_main_repo_effective":{"type":"boolean"},"allow_author_self_review_on_home_repository":{"type":"boolean"},"author_self_review_on_home_repository_effective":{"type":"boolean"},"main_repository_slug":{"type":"string"},"main_repository_display_name":{"type":"string"},"home_repository_slug":{"type":"string"},"home_repository_display_name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}},"active_organization":{"oneOf":[{"type":"object","required":["id","slug","name","logo_url","role","personal","member_count","pending_invitation_count","activated_products","can_activate_products","github_prs_authored_by_change_author","allow_author_self_review_on_main_repo","author_self_review_on_main_repo_effective","allow_author_self_review_on_home_repository","author_self_review_on_home_repository_effective","main_repository_slug","main_repository_display_name","home_repository_slug","home_repository_display_name","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"personal":{"type":"boolean"},"member_count":{"type":"integer","minimum":0},"pending_invitation_count":{"type":"integer","minimum":0},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"github_prs_authored_by_change_author":{"type":"boolean"},"allow_author_self_review_on_main_repo":{"type":"boolean"},"author_self_review_on_main_repo_effective":{"type":"boolean"},"allow_author_self_review_on_home_repository":{"type":"boolean"},"author_self_review_on_home_repository_effective":{"type":"boolean"},"main_repository_slug":{"type":"string"},"main_repository_display_name":{"type":"string"},"home_repository_slug":{"type":"string"},"home_repository_display_name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},{"type":"null"}]},"pending_organization_invitation_count":{"type":"integer","minimum":0},"pending_organization_invitation_count_label":{"type":"string"},"api_token":{"type":"string"},"api_base_url":{"type":"string","format":"uri"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/me/active_organization":{"put":{"operationId":"api_v1_me_active_organization","tags":["me"],"parameters":[],"responses":{"200":{"description":"Active organization updated","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["active_organization"],"properties":{"active_organization":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSummary"},{"type":"null"}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ActiveOrganizationPayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/me/emails":{"get":{"operationId":"api_v1_user_emails","tags":["me"],"parameters":[],"responses":{"200":{"description":"Account emails","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AccountEmailsPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List emails registered on the current account"},"post":{"operationId":"post_api_v1_me_emails","tags":["me"],"parameters":[],"responses":{"200":{"description":"Email registered and verification sent","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AccountEmailsPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Email registered and verification sent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountEmailsPage"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["email"],"properties":{"email":{"type":"string","format":"email"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Register an additional email address"}},"/api/v1/me/emails/{id}":{"patch":{"operationId":"api_v1_user_email","tags":["me"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated account emails","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AccountEmailsPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"oneOf":[{"type":"object","required":["account"],"properties":{"account":{"type":"boolean"}}},{"type":"object","required":["commit_author"],"properties":{"commit_author":{"type":"boolean"}}}]}}}},"security":[{"bearerAuth":[]}],"summary":"Set a verified email as the account or commit author address"},"put":{"operationId":"put_api_v1_me_emails_id_","tags":["me"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_me_emails_id_","tags":["me"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated account emails","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AccountEmailsPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Remove an additional email address"}},"/api/v1/me/emails/{id}/resend_verification":{"post":{"operationId":"resend_verification_api_v1_user_email","tags":["me"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated account emails","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AccountEmailsPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Resend the verification email for an unverified address"}},"/api/v1/me/profile_image":{"put":{"operationId":"api_v1_me_profile_image","tags":["me"],"parameters":[],"responses":{"200":{"description":"Authenticated session","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AuthSession"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/ImageUploadPayload"}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_me_profile_image","tags":["me"],"parameters":[],"responses":{"200":{"description":"Authenticated session","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AuthSession"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/metronome/webhooks":{"post":{"operationId":"api_v1_metronome_webhooks","tags":["metronome"],"parameters":[],"responses":{"200":{"description":"Event stored; processing runs in a job."},"400":{"description":"Malformed body."},"401":{"description":"Signature invalid or the secret is not configured."}},"security":[],"summary":"Metronome event destination (signature verified)"}},"/api/v1/networking/spaces":{"get":{"operationId":"api_v1_spaces","tags":["networking"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_networking_spaces","tags":["networking"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{id}":{"get":{"operationId":"api_v1_space","tags":["networking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_networking_spaces_id_","tags":["networking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_networking_spaces_id_","tags":["networking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_networking_spaces_id_","tags":["networking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{id}/activate":{"post":{"operationId":"activate_api_v1_space","tags":["networking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{id}/archive":{"post":{"operationId":"archive_api_v1_space","tags":["networking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{id}/pause":{"post":{"operationId":"pause_api_v1_space","tags":["networking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{id}/validate_route":{"post":{"operationId":"validate_route_api_v1_space","tags":["networking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/catalog":{"get":{"operationId":"api_v1_space_catalog","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/dns_records":{"get":{"operationId":"api_v1_space_dns_records","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_networking_spaces_space_id_dns_records","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/dns_records/config":{"get":{"operationId":"config_api_v1_space_dns_records","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/dns_records/sync_report":{"post":{"operationId":"sync_report_api_v1_space_dns_records","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/dns_records/{id}":{"get":{"operationId":"api_v1_space_dns_record","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_networking_spaces_space_id_dns_records_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_networking_spaces_space_id_dns_records_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_networking_spaces_space_id_dns_records_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/enrollment_tokens":{"get":{"operationId":"api_v1_space_enrollment_tokens","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_networking_spaces_space_id_enrollment_tokens","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/enrollment_tokens/{id}":{"get":{"operationId":"api_v1_space_enrollment_token","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_networking_spaces_space_id_enrollment_tokens_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_networking_spaces_space_id_enrollment_tokens_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_networking_spaces_space_id_enrollment_tokens_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/enrollment_tokens/{id}/revoke":{"post":{"operationId":"revoke_api_v1_space_enrollment_token","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/gateways":{"get":{"operationId":"api_v1_space_gateways","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_networking_spaces_space_id_gateways","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/gateways/{id}":{"get":{"operationId":"api_v1_space_gateway","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_networking_spaces_space_id_gateways_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_networking_spaces_space_id_gateways_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_networking_spaces_space_id_gateways_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/gateways/{id}/config":{"get":{"operationId":"config_api_v1_space_gateway","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/gateways/{id}/heartbeat":{"post":{"operationId":"heartbeat_api_v1_space_gateway","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/gateways/{id}/sync":{"post":{"operationId":"sync_api_v1_space_gateway","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/group_memberships":{"get":{"operationId":"api_v1_space_group_memberships","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_networking_spaces_space_id_group_memberships","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/group_memberships/{id}":{"patch":{"operationId":"api_v1_space_group_membership","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_networking_spaces_space_id_group_memberships_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_networking_spaces_space_id_group_memberships_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/groups":{"get":{"operationId":"api_v1_space_groups","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_networking_spaces_space_id_groups","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/groups/{id}":{"patch":{"operationId":"api_v1_space_group","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_networking_spaces_space_id_groups_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_networking_spaces_space_id_groups_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/peer_attachments":{"get":{"operationId":"api_v1_space_peer_attachments","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_networking_spaces_space_id_peer_attachments","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/peer_attachments/{id}":{"patch":{"operationId":"api_v1_space_peer_attachment","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_networking_spaces_space_id_peer_attachments_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_networking_spaces_space_id_peer_attachments_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/peers":{"get":{"operationId":"api_v1_space_peers","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_networking_spaces_space_id_peers","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/peers/enroll":{"post":{"operationId":"enroll_api_v1_space_peers","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/peers/{id}":{"get":{"operationId":"api_v1_space_peer","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_networking_spaces_space_id_peers_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_networking_spaces_space_id_peers_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_networking_spaces_space_id_peers_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/peers/{id}/approve":{"post":{"operationId":"approve_api_v1_space_peer","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/peers/{id}/bootstrap":{"get":{"operationId":"bootstrap_api_v1_space_peer","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/peers/{id}/revoke":{"post":{"operationId":"revoke_api_v1_space_peer","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/peers/{id}/suspend":{"post":{"operationId":"suspend_api_v1_space_peer","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/policies":{"get":{"operationId":"api_v1_space_policies","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_networking_spaces_space_id_policies","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/policies/{id}":{"get":{"operationId":"api_v1_space_policy","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_networking_spaces_space_id_policies_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_networking_spaces_space_id_policies_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_networking_spaces_space_id_policies_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/policies/{id}/activate":{"post":{"operationId":"activate_api_v1_space_policy","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/policies/{id}/archive":{"post":{"operationId":"archive_api_v1_space_policy","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/policies/{id}/pause":{"post":{"operationId":"pause_api_v1_space_policy","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/segments":{"get":{"operationId":"api_v1_space_segments","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_networking_spaces_space_id_segments","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/segments/{id}":{"get":{"operationId":"api_v1_space_segment","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_networking_spaces_space_id_segments_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_networking_spaces_space_id_segments_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_networking_spaces_space_id_segments_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/clickhouse_clusters":{"get":{"operationId":"api_v1_clickhouse_clusters","tags":["observability"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_clickhouse_clusters","tags":["observability"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/clickhouse_clusters/{id}":{"get":{"operationId":"api_v1_clickhouse_cluster","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_observability_clickhouse_clusters_id_","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_observability_clickhouse_clusters_id_","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_observability_clickhouse_clusters_id_","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/clickhouse_clusters/{id}/activate":{"post":{"operationId":"activate_api_v1_clickhouse_cluster","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/clickhouse_clusters/{id}/archive":{"post":{"operationId":"archive_api_v1_clickhouse_cluster","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/clickhouse_clusters/{id}/deploy":{"post":{"operationId":"deploy_api_v1_clickhouse_cluster","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/clickhouse_clusters/{id}/pause":{"post":{"operationId":"pause_api_v1_clickhouse_cluster","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/quickwit_clusters":{"get":{"operationId":"api_v1_quickwit_clusters","tags":["observability"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_quickwit_clusters","tags":["observability"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/quickwit_clusters/{id}":{"get":{"operationId":"api_v1_quickwit_cluster","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_observability_quickwit_clusters_id_","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_observability_quickwit_clusters_id_","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_observability_quickwit_clusters_id_","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/quickwit_clusters/{id}/activate":{"post":{"operationId":"activate_api_v1_quickwit_cluster","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/quickwit_clusters/{id}/archive":{"post":{"operationId":"archive_api_v1_quickwit_cluster","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/quickwit_clusters/{id}/deploy":{"post":{"operationId":"deploy_api_v1_quickwit_cluster","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/quickwit_clusters/{id}/pause":{"post":{"operationId":"pause_api_v1_quickwit_cluster","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces":{"get":{"operationId":"get_api_v1_observability_spaces","tags":["observability"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_spaces","tags":["observability"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{id}":{"get":{"operationId":"get_api_v1_observability_spaces_id_","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_observability_spaces_id_","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_observability_spaces_id_","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_observability_spaces_id_","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{id}/activate":{"post":{"operationId":"post_api_v1_observability_spaces_id_activate","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{id}/archive":{"post":{"operationId":"post_api_v1_observability_spaces_id_archive","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{id}/pause":{"post":{"operationId":"post_api_v1_observability_spaces_id_pause","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/alert_rules":{"get":{"operationId":"api_v1_space_alert_rules","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_spaces_space_id_alert_rules","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/alert_rules/{alert_rule_id}/events":{"get":{"operationId":"api_v1_space_alert_rule_events","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_spaces_space_id_alert_rules_alert_rule_id_events","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/alert_rules/{alert_rule_id}/events/{id}":{"get":{"operationId":"api_v1_space_alert_rule_event","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_observability_spaces_space_id_alert_rules_alert_rule_id_events_id_","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/alert_rules/{alert_rule_id}/events/{id}/acknowledge":{"post":{"operationId":"acknowledge_api_v1_space_alert_rule_event","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/alert_rules/{alert_rule_id}/events/{id}/resolve":{"post":{"operationId":"resolve_api_v1_space_alert_rule_event","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/alert_rules/{alert_rule_id}/events/{id}/silence":{"post":{"operationId":"silence_api_v1_space_alert_rule_event","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/alert_rules/{id}":{"get":{"operationId":"api_v1_space_alert_rule","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_observability_spaces_space_id_alert_rules_id_","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_observability_spaces_space_id_alert_rules_id_","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_observability_spaces_space_id_alert_rules_id_","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/alert_rules/{id}/activate":{"post":{"operationId":"activate_api_v1_space_alert_rule","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/alert_rules/{id}/archive":{"post":{"operationId":"archive_api_v1_space_alert_rule","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/alert_rules/{id}/pause":{"post":{"operationId":"pause_api_v1_space_alert_rule","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/audit_events":{"get":{"operationId":"api_v1_space_audit_events","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_spaces_space_id_audit_events","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/log_streams":{"get":{"operationId":"api_v1_space_log_streams","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_spaces_space_id_log_streams","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/log_streams/{log_stream_id}/chunks":{"get":{"operationId":"api_v1_space_log_stream_chunks","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"log_stream_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_spaces_space_id_log_streams_log_stream_id_chunks","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"log_stream_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/log_streams/{log_stream_id}/chunks/{id}":{"get":{"operationId":"api_v1_space_log_stream_chunk","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"log_stream_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/metric_series":{"get":{"operationId":"api_v1_space_metric_series_index","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_spaces_space_id_metric_series","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/otel_collectors":{"get":{"operationId":"api_v1_space_otel_collectors","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_spaces_space_id_otel_collectors","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/otel_collectors/{id}":{"get":{"operationId":"api_v1_space_otel_collector","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_observability_spaces_space_id_otel_collectors_id_","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_observability_spaces_space_id_otel_collectors_id_","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_observability_spaces_space_id_otel_collectors_id_","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/otel_collectors/{id}/activate":{"post":{"operationId":"activate_api_v1_space_otel_collector","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/otel_collectors/{id}/archive":{"post":{"operationId":"archive_api_v1_space_otel_collector","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/otel_collectors/{id}/bootstrap_config":{"get":{"operationId":"bootstrap_config_api_v1_space_otel_collector","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/otel_collectors/{id}/deploy":{"post":{"operationId":"deploy_api_v1_space_otel_collector","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/otel_collectors/{id}/heartbeat":{"post":{"operationId":"heartbeat_api_v1_space_otel_collector","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/otel_collectors/{id}/nomad_spec":{"get":{"operationId":"nomad_spec_api_v1_space_otel_collector","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/otel_collectors/{id}/pause":{"post":{"operationId":"pause_api_v1_space_otel_collector","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/otel_collectors/{id}/rendered_config":{"get":{"operationId":"rendered_config_api_v1_space_otel_collector","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/trace_spans":{"get":{"operationId":"api_v1_space_trace_spans","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_spaces_space_id_trace_spans","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/open_source_publish_contracts":{"get":{"operationId":"api_v1_open_source_publish_contracts","tags":["open_source_publish_contracts"],"parameters":[{"name":"organization_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"repository_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["active","paused","archived"]}}],"responses":{"200":{"description":"Open source publish contracts","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["open_source_publish_contracts"],"properties":{"open_source_publish_contracts":{"type":"array","items":{"type":"object","required":["id","organization_id","repository_id","repository_slug","virtual_repository_id","name","folder_path","source_bookmark","target_repository_owner","target_repository_name","target_repository_full_name","target_branch","target_visibility","target_remote_url","provision_mode","divergence_policy","divergence_state","divergence_detected_at","divergence_detected_at_label","divergence_remote_sha","diverged","status","auto_sync_enabled","acknowledged_public_exposure","acknowledged_at","acknowledged_at_label","github_app_installation_id","github_app_account_login","publishable","baseline_source_commit_id","baseline_source_change_id","baseline_source_git_sha","baseline_remote_sha","last_sync_run_id","last_synced_at","last_synced_at_label","last_error_message","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"virtual_repository_id":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"folder_path":{"type":"string"},"source_bookmark":{"type":"string"},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"target_visibility":{"type":"string","enum":["private","public"]},"target_remote_url":{"type":"string"},"provision_mode":{"type":"string","enum":["create","attach","create_or_attach"]},"divergence_policy":{"type":"string","enum":["block","overwrite"]},"divergence_state":{"type":"string","enum":["clean","diverged"]},"divergence_detected_at":{"type":"string","format":"date-time","nullable":true},"divergence_detected_at_label":{"type":"string","nullable":true},"divergence_remote_sha":{"type":"string","nullable":true},"diverged":{"type":"boolean"},"status":{"type":"string","enum":["active","paused","archived"]},"auto_sync_enabled":{"type":"boolean"},"acknowledged_public_exposure":{"type":"boolean"},"acknowledged_at":{"type":"string","format":"date-time","nullable":true},"acknowledged_at_label":{"type":"string","nullable":true},"github_app_installation_id":{"type":"string","nullable":true},"github_app_account_login":{"type":"string","nullable":true},"publishable":{"type":"boolean"},"baseline_source_commit_id":{"type":"string","nullable":true},"baseline_source_change_id":{"type":"string","nullable":true},"baseline_source_git_sha":{"type":"string","nullable":true},"baseline_remote_sha":{"type":"string","nullable":true},"last_sync_run_id":{"type":"string","nullable":true},"last_synced_at":{"type":"string","format":"date-time","nullable":true},"last_synced_at_label":{"type":"string","nullable":true},"last_error_message":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_open_source_publish_contracts","tags":["open_source_publish_contracts"],"parameters":[],"responses":{"200":{"description":"Open source publish contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","organization_id","repository_id","repository_slug","virtual_repository_id","name","folder_path","source_bookmark","target_repository_owner","target_repository_name","target_repository_full_name","target_branch","target_visibility","target_remote_url","provision_mode","divergence_policy","divergence_state","divergence_detected_at","divergence_detected_at_label","divergence_remote_sha","diverged","status","auto_sync_enabled","acknowledged_public_exposure","acknowledged_at","acknowledged_at_label","github_app_installation_id","github_app_account_login","publishable","baseline_source_commit_id","baseline_source_change_id","baseline_source_git_sha","baseline_remote_sha","last_sync_run_id","last_synced_at","last_synced_at_label","last_error_message","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"virtual_repository_id":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"folder_path":{"type":"string"},"source_bookmark":{"type":"string"},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"target_visibility":{"type":"string","enum":["private","public"]},"target_remote_url":{"type":"string"},"provision_mode":{"type":"string","enum":["create","attach","create_or_attach"]},"divergence_policy":{"type":"string","enum":["block","overwrite"]},"divergence_state":{"type":"string","enum":["clean","diverged"]},"divergence_detected_at":{"type":"string","format":"date-time","nullable":true},"divergence_detected_at_label":{"type":"string","nullable":true},"divergence_remote_sha":{"type":"string","nullable":true},"diverged":{"type":"boolean"},"status":{"type":"string","enum":["active","paused","archived"]},"auto_sync_enabled":{"type":"boolean"},"acknowledged_public_exposure":{"type":"boolean"},"acknowledged_at":{"type":"string","format":"date-time","nullable":true},"acknowledged_at_label":{"type":"string","nullable":true},"github_app_installation_id":{"type":"string","nullable":true},"github_app_account_login":{"type":"string","nullable":true},"publishable":{"type":"boolean"},"baseline_source_commit_id":{"type":"string","nullable":true},"baseline_source_change_id":{"type":"string","nullable":true},"baseline_source_git_sha":{"type":"string","nullable":true},"baseline_remote_sha":{"type":"string","nullable":true},"last_sync_run_id":{"type":"string","nullable":true},"last_synced_at":{"type":"string","format":"date-time","nullable":true},"last_synced_at_label":{"type":"string","nullable":true},"last_error_message":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Open source publish contract","content":{"application/json":{"schema":{"type":"object","required":["id","organization_id","repository_id","repository_slug","virtual_repository_id","name","folder_path","source_bookmark","target_repository_owner","target_repository_name","target_repository_full_name","target_branch","target_visibility","target_remote_url","provision_mode","divergence_policy","divergence_state","divergence_detected_at","divergence_detected_at_label","divergence_remote_sha","diverged","status","auto_sync_enabled","acknowledged_public_exposure","acknowledged_at","acknowledged_at_label","github_app_installation_id","github_app_account_login","publishable","baseline_source_commit_id","baseline_source_change_id","baseline_source_git_sha","baseline_remote_sha","last_sync_run_id","last_synced_at","last_synced_at_label","last_error_message","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"virtual_repository_id":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"folder_path":{"type":"string"},"source_bookmark":{"type":"string"},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"target_visibility":{"type":"string","enum":["private","public"]},"target_remote_url":{"type":"string"},"provision_mode":{"type":"string","enum":["create","attach","create_or_attach"]},"divergence_policy":{"type":"string","enum":["block","overwrite"]},"divergence_state":{"type":"string","enum":["clean","diverged"]},"divergence_detected_at":{"type":"string","format":"date-time","nullable":true},"divergence_detected_at_label":{"type":"string","nullable":true},"divergence_remote_sha":{"type":"string","nullable":true},"diverged":{"type":"boolean"},"status":{"type":"string","enum":["active","paused","archived"]},"auto_sync_enabled":{"type":"boolean"},"acknowledged_public_exposure":{"type":"boolean"},"acknowledged_at":{"type":"string","format":"date-time","nullable":true},"acknowledged_at_label":{"type":"string","nullable":true},"github_app_installation_id":{"type":"string","nullable":true},"github_app_account_login":{"type":"string","nullable":true},"publishable":{"type":"boolean"},"baseline_source_commit_id":{"type":"string","nullable":true},"baseline_source_change_id":{"type":"string","nullable":true},"baseline_source_git_sha":{"type":"string","nullable":true},"baseline_remote_sha":{"type":"string","nullable":true},"last_sync_run_id":{"type":"string","nullable":true},"last_synced_at":{"type":"string","format":"date-time","nullable":true},"last_synced_at_label":{"type":"string","nullable":true},"last_error_message":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization_id","repository_id","folder_path","target_repository_owner","target_repository_name"],"properties":{"organization_id":{"type":"string"},"repository_id":{"type":"string"},"github_app_installation_id":{"type":"string","nullable":true},"virtual_repository_id":{"type":"string","nullable":true},"name":{"type":"string"},"folder_path":{"type":"string"},"source_bookmark":{"type":"string"},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_branch":{"type":"string"},"target_visibility":{"type":"string","enum":["private","public"]},"provision_mode":{"type":"string","enum":["create","attach","create_or_attach"]},"divergence_policy":{"type":"string","enum":["block","overwrite"]},"auto_sync_enabled":{"type":"boolean"},"acknowledged_public_exposure":{"type":"boolean"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/open_source_publish_contracts/{id}":{"get":{"operationId":"api_v1_open_source_publish_contract","tags":["open_source_publish_contracts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Open source publish contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","organization_id","repository_id","repository_slug","virtual_repository_id","name","folder_path","source_bookmark","target_repository_owner","target_repository_name","target_repository_full_name","target_branch","target_visibility","target_remote_url","provision_mode","divergence_policy","divergence_state","divergence_detected_at","divergence_detected_at_label","divergence_remote_sha","diverged","status","auto_sync_enabled","acknowledged_public_exposure","acknowledged_at","acknowledged_at_label","github_app_installation_id","github_app_account_login","publishable","baseline_source_commit_id","baseline_source_change_id","baseline_source_git_sha","baseline_remote_sha","last_sync_run_id","last_synced_at","last_synced_at_label","last_error_message","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"virtual_repository_id":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"folder_path":{"type":"string"},"source_bookmark":{"type":"string"},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"target_visibility":{"type":"string","enum":["private","public"]},"target_remote_url":{"type":"string"},"provision_mode":{"type":"string","enum":["create","attach","create_or_attach"]},"divergence_policy":{"type":"string","enum":["block","overwrite"]},"divergence_state":{"type":"string","enum":["clean","diverged"]},"divergence_detected_at":{"type":"string","format":"date-time","nullable":true},"divergence_detected_at_label":{"type":"string","nullable":true},"divergence_remote_sha":{"type":"string","nullable":true},"diverged":{"type":"boolean"},"status":{"type":"string","enum":["active","paused","archived"]},"auto_sync_enabled":{"type":"boolean"},"acknowledged_public_exposure":{"type":"boolean"},"acknowledged_at":{"type":"string","format":"date-time","nullable":true},"acknowledged_at_label":{"type":"string","nullable":true},"github_app_installation_id":{"type":"string","nullable":true},"github_app_account_login":{"type":"string","nullable":true},"publishable":{"type":"boolean"},"baseline_source_commit_id":{"type":"string","nullable":true},"baseline_source_change_id":{"type":"string","nullable":true},"baseline_source_git_sha":{"type":"string","nullable":true},"baseline_remote_sha":{"type":"string","nullable":true},"last_sync_run_id":{"type":"string","nullable":true},"last_synced_at":{"type":"string","format":"date-time","nullable":true},"last_synced_at_label":{"type":"string","nullable":true},"last_error_message":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_open_source_publish_contracts_id_","tags":["open_source_publish_contracts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Open source publish contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","organization_id","repository_id","repository_slug","virtual_repository_id","name","folder_path","source_bookmark","target_repository_owner","target_repository_name","target_repository_full_name","target_branch","target_visibility","target_remote_url","provision_mode","divergence_policy","divergence_state","divergence_detected_at","divergence_detected_at_label","divergence_remote_sha","diverged","status","auto_sync_enabled","acknowledged_public_exposure","acknowledged_at","acknowledged_at_label","github_app_installation_id","github_app_account_login","publishable","baseline_source_commit_id","baseline_source_change_id","baseline_source_git_sha","baseline_remote_sha","last_sync_run_id","last_synced_at","last_synced_at_label","last_error_message","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"virtual_repository_id":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"folder_path":{"type":"string"},"source_bookmark":{"type":"string"},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"target_visibility":{"type":"string","enum":["private","public"]},"target_remote_url":{"type":"string"},"provision_mode":{"type":"string","enum":["create","attach","create_or_attach"]},"divergence_policy":{"type":"string","enum":["block","overwrite"]},"divergence_state":{"type":"string","enum":["clean","diverged"]},"divergence_detected_at":{"type":"string","format":"date-time","nullable":true},"divergence_detected_at_label":{"type":"string","nullable":true},"divergence_remote_sha":{"type":"string","nullable":true},"diverged":{"type":"boolean"},"status":{"type":"string","enum":["active","paused","archived"]},"auto_sync_enabled":{"type":"boolean"},"acknowledged_public_exposure":{"type":"boolean"},"acknowledged_at":{"type":"string","format":"date-time","nullable":true},"acknowledged_at_label":{"type":"string","nullable":true},"github_app_installation_id":{"type":"string","nullable":true},"github_app_account_login":{"type":"string","nullable":true},"publishable":{"type":"boolean"},"baseline_source_commit_id":{"type":"string","nullable":true},"baseline_source_change_id":{"type":"string","nullable":true},"baseline_source_git_sha":{"type":"string","nullable":true},"baseline_remote_sha":{"type":"string","nullable":true},"last_sync_run_id":{"type":"string","nullable":true},"last_synced_at":{"type":"string","format":"date-time","nullable":true},"last_synced_at_label":{"type":"string","nullable":true},"last_error_message":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"repository_id":{"type":"string"},"github_app_installation_id":{"type":"string","nullable":true},"virtual_repository_id":{"type":"string","nullable":true},"name":{"type":"string"},"folder_path":{"type":"string"},"source_bookmark":{"type":"string"},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_branch":{"type":"string"},"target_visibility":{"type":"string","enum":["private","public"]},"provision_mode":{"type":"string","enum":["create","attach","create_or_attach"]},"divergence_policy":{"type":"string","enum":["block","overwrite"]},"status":{"type":"string","enum":["active","paused","archived"]},"auto_sync_enabled":{"type":"boolean"},"acknowledged_public_exposure":{"type":"boolean"}}}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_open_source_publish_contracts_id_","tags":["open_source_publish_contracts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Open source publish contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","organization_id","repository_id","repository_slug","virtual_repository_id","name","folder_path","source_bookmark","target_repository_owner","target_repository_name","target_repository_full_name","target_branch","target_visibility","target_remote_url","provision_mode","divergence_policy","divergence_state","divergence_detected_at","divergence_detected_at_label","divergence_remote_sha","diverged","status","auto_sync_enabled","acknowledged_public_exposure","acknowledged_at","acknowledged_at_label","github_app_installation_id","github_app_account_login","publishable","baseline_source_commit_id","baseline_source_change_id","baseline_source_git_sha","baseline_remote_sha","last_sync_run_id","last_synced_at","last_synced_at_label","last_error_message","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"virtual_repository_id":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"folder_path":{"type":"string"},"source_bookmark":{"type":"string"},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"target_visibility":{"type":"string","enum":["private","public"]},"target_remote_url":{"type":"string"},"provision_mode":{"type":"string","enum":["create","attach","create_or_attach"]},"divergence_policy":{"type":"string","enum":["block","overwrite"]},"divergence_state":{"type":"string","enum":["clean","diverged"]},"divergence_detected_at":{"type":"string","format":"date-time","nullable":true},"divergence_detected_at_label":{"type":"string","nullable":true},"divergence_remote_sha":{"type":"string","nullable":true},"diverged":{"type":"boolean"},"status":{"type":"string","enum":["active","paused","archived"]},"auto_sync_enabled":{"type":"boolean"},"acknowledged_public_exposure":{"type":"boolean"},"acknowledged_at":{"type":"string","format":"date-time","nullable":true},"acknowledged_at_label":{"type":"string","nullable":true},"github_app_installation_id":{"type":"string","nullable":true},"github_app_account_login":{"type":"string","nullable":true},"publishable":{"type":"boolean"},"baseline_source_commit_id":{"type":"string","nullable":true},"baseline_source_change_id":{"type":"string","nullable":true},"baseline_source_git_sha":{"type":"string","nullable":true},"baseline_remote_sha":{"type":"string","nullable":true},"last_sync_run_id":{"type":"string","nullable":true},"last_synced_at":{"type":"string","format":"date-time","nullable":true},"last_synced_at_label":{"type":"string","nullable":true},"last_error_message":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"repository_id":{"type":"string"},"github_app_installation_id":{"type":"string","nullable":true},"virtual_repository_id":{"type":"string","nullable":true},"name":{"type":"string"},"folder_path":{"type":"string"},"source_bookmark":{"type":"string"},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_branch":{"type":"string"},"target_visibility":{"type":"string","enum":["private","public"]},"provision_mode":{"type":"string","enum":["create","attach","create_or_attach"]},"divergence_policy":{"type":"string","enum":["block","overwrite"]},"status":{"type":"string","enum":["active","paused","archived"]},"auto_sync_enabled":{"type":"boolean"},"acknowledged_public_exposure":{"type":"boolean"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/open_source_publish_contracts/{id}/adopt":{"post":{"operationId":"adopt_api_v1_open_source_publish_contract","tags":["open_source_publish_contracts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Open source publish contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","organization_id","repository_id","repository_slug","virtual_repository_id","name","folder_path","source_bookmark","target_repository_owner","target_repository_name","target_repository_full_name","target_branch","target_visibility","target_remote_url","provision_mode","divergence_policy","divergence_state","divergence_detected_at","divergence_detected_at_label","divergence_remote_sha","diverged","status","auto_sync_enabled","acknowledged_public_exposure","acknowledged_at","acknowledged_at_label","github_app_installation_id","github_app_account_login","publishable","baseline_source_commit_id","baseline_source_change_id","baseline_source_git_sha","baseline_remote_sha","last_sync_run_id","last_synced_at","last_synced_at_label","last_error_message","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"virtual_repository_id":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"folder_path":{"type":"string"},"source_bookmark":{"type":"string"},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"target_visibility":{"type":"string","enum":["private","public"]},"target_remote_url":{"type":"string"},"provision_mode":{"type":"string","enum":["create","attach","create_or_attach"]},"divergence_policy":{"type":"string","enum":["block","overwrite"]},"divergence_state":{"type":"string","enum":["clean","diverged"]},"divergence_detected_at":{"type":"string","format":"date-time","nullable":true},"divergence_detected_at_label":{"type":"string","nullable":true},"divergence_remote_sha":{"type":"string","nullable":true},"diverged":{"type":"boolean"},"status":{"type":"string","enum":["active","paused","archived"]},"auto_sync_enabled":{"type":"boolean"},"acknowledged_public_exposure":{"type":"boolean"},"acknowledged_at":{"type":"string","format":"date-time","nullable":true},"acknowledged_at_label":{"type":"string","nullable":true},"github_app_installation_id":{"type":"string","nullable":true},"github_app_account_login":{"type":"string","nullable":true},"publishable":{"type":"boolean"},"baseline_source_commit_id":{"type":"string","nullable":true},"baseline_source_change_id":{"type":"string","nullable":true},"baseline_source_git_sha":{"type":"string","nullable":true},"baseline_remote_sha":{"type":"string","nullable":true},"last_sync_run_id":{"type":"string","nullable":true},"last_synced_at":{"type":"string","format":"date-time","nullable":true},"last_synced_at_label":{"type":"string","nullable":true},"last_error_message":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/open_source_publish_contracts/{id}/archive":{"post":{"operationId":"archive_api_v1_open_source_publish_contract","tags":["open_source_publish_contracts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Open source publish contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","organization_id","repository_id","repository_slug","virtual_repository_id","name","folder_path","source_bookmark","target_repository_owner","target_repository_name","target_repository_full_name","target_branch","target_visibility","target_remote_url","provision_mode","divergence_policy","divergence_state","divergence_detected_at","divergence_detected_at_label","divergence_remote_sha","diverged","status","auto_sync_enabled","acknowledged_public_exposure","acknowledged_at","acknowledged_at_label","github_app_installation_id","github_app_account_login","publishable","baseline_source_commit_id","baseline_source_change_id","baseline_source_git_sha","baseline_remote_sha","last_sync_run_id","last_synced_at","last_synced_at_label","last_error_message","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"virtual_repository_id":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"folder_path":{"type":"string"},"source_bookmark":{"type":"string"},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"target_visibility":{"type":"string","enum":["private","public"]},"target_remote_url":{"type":"string"},"provision_mode":{"type":"string","enum":["create","attach","create_or_attach"]},"divergence_policy":{"type":"string","enum":["block","overwrite"]},"divergence_state":{"type":"string","enum":["clean","diverged"]},"divergence_detected_at":{"type":"string","format":"date-time","nullable":true},"divergence_detected_at_label":{"type":"string","nullable":true},"divergence_remote_sha":{"type":"string","nullable":true},"diverged":{"type":"boolean"},"status":{"type":"string","enum":["active","paused","archived"]},"auto_sync_enabled":{"type":"boolean"},"acknowledged_public_exposure":{"type":"boolean"},"acknowledged_at":{"type":"string","format":"date-time","nullable":true},"acknowledged_at_label":{"type":"string","nullable":true},"github_app_installation_id":{"type":"string","nullable":true},"github_app_account_login":{"type":"string","nullable":true},"publishable":{"type":"boolean"},"baseline_source_commit_id":{"type":"string","nullable":true},"baseline_source_change_id":{"type":"string","nullable":true},"baseline_source_git_sha":{"type":"string","nullable":true},"baseline_remote_sha":{"type":"string","nullable":true},"last_sync_run_id":{"type":"string","nullable":true},"last_synced_at":{"type":"string","format":"date-time","nullable":true},"last_synced_at_label":{"type":"string","nullable":true},"last_error_message":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/open_source_publish_contracts/{id}/plan":{"post":{"operationId":"plan_api_v1_open_source_publish_contract","tags":["open_source_publish_contracts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Open source publish readiness plan","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"allOf":[{"type":"object","required":["id","organization_id","repository_id","repository_slug","virtual_repository_id","name","folder_path","source_bookmark","target_repository_owner","target_repository_name","target_repository_full_name","target_branch","target_visibility","target_remote_url","provision_mode","divergence_policy","divergence_state","divergence_detected_at","divergence_detected_at_label","divergence_remote_sha","diverged","status","auto_sync_enabled","acknowledged_public_exposure","acknowledged_at","acknowledged_at_label","github_app_installation_id","github_app_account_login","publishable","baseline_source_commit_id","baseline_source_change_id","baseline_source_git_sha","baseline_remote_sha","last_sync_run_id","last_synced_at","last_synced_at_label","last_error_message","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"virtual_repository_id":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"folder_path":{"type":"string"},"source_bookmark":{"type":"string"},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"target_visibility":{"type":"string","enum":["private","public"]},"target_remote_url":{"type":"string"},"provision_mode":{"type":"string","enum":["create","attach","create_or_attach"]},"divergence_policy":{"type":"string","enum":["block","overwrite"]},"divergence_state":{"type":"string","enum":["clean","diverged"]},"divergence_detected_at":{"type":"string","format":"date-time","nullable":true},"divergence_detected_at_label":{"type":"string","nullable":true},"divergence_remote_sha":{"type":"string","nullable":true},"diverged":{"type":"boolean"},"status":{"type":"string","enum":["active","paused","archived"]},"auto_sync_enabled":{"type":"boolean"},"acknowledged_public_exposure":{"type":"boolean"},"acknowledged_at":{"type":"string","format":"date-time","nullable":true},"acknowledged_at_label":{"type":"string","nullable":true},"github_app_installation_id":{"type":"string","nullable":true},"github_app_account_login":{"type":"string","nullable":true},"publishable":{"type":"boolean"},"baseline_source_commit_id":{"type":"string","nullable":true},"baseline_source_change_id":{"type":"string","nullable":true},"baseline_source_git_sha":{"type":"string","nullable":true},"baseline_remote_sha":{"type":"string","nullable":true},"last_sync_run_id":{"type":"string","nullable":true},"last_synced_at":{"type":"string","format":"date-time","nullable":true},"last_synced_at_label":{"type":"string","nullable":true},"last_error_message":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},{"type":"object","required":["plan"],"properties":{"plan":{"type":"object","required":["ok","publishable","status","folder_path","source_bookmark","target_repository_full_name","target_branch","target_visibility","provision_mode","divergence_policy","blockers","warnings"],"properties":{"ok":{"type":"boolean"},"publishable":{"type":"boolean"},"status":{"type":"string"},"folder_path":{"type":"string"},"source_bookmark":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"target_visibility":{"type":"string","enum":["private","public"]},"provision_mode":{"type":"string","enum":["create","attach","create_or_attach"]},"divergence_policy":{"type":"string","enum":["block","overwrite"]},"inspected_file_count":{"type":"integer","nullable":true},"blockers":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}},"warnings":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}}}}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"file_paths":{"type":"array","items":{"type":"string"}},"file_contents":{"type":"object","additionalProperties":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/open_source_publish_contracts/{id}/sync":{"post":{"operationId":"sync_api_v1_open_source_publish_contract","tags":["open_source_publish_contracts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Created virtual repository sync run","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["sync_run"],"properties":{"sync_run":{"type":"object","required":["id","organization_id","virtual_repository_id","creator_user_id","trigger_kind","status","kind","sync_provider_kind","sync_mode","source_bookmark","staging_bookmark","merge_commit_id","projection_target_commit_id","source_op_head_ids","source_commit_id","source_change_id","source_git_sha","target_repository_owner","target_repository_name","target_repository_full_name","target_branch","remote_url","remote_before_sha","remote_after_sha","github_before_sha","github_after_sha","force","pulled_commit_count","projected_commit_count","skipped_commit_count","error_message","metadata","log_lines","started_at","started_at_label","finished_at","finished_at_label","created_at","created_at_label","updated_at","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"virtual_repository_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"trigger_kind":{"type":"string","enum":["manual","auto"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","skipped","canceled"]},"kind":{"type":"string","enum":["pull_sync","push_projection","materialization"]},"sync_provider_kind":{"type":"string","enum":["github","git"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"source_bookmark":{"type":"string"},"staging_bookmark":{"type":"string","nullable":true},"merge_commit_id":{"type":"string","nullable":true},"projection_target_commit_id":{"type":"string","nullable":true},"source_op_head_ids":{"type":"array","items":{"type":"string"}},"source_commit_id":{"type":"string","nullable":true},"source_change_id":{"type":"string","nullable":true},"source_git_sha":{"type":"string","nullable":true},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"remote_url":{"type":"string"},"remote_before_sha":{"type":"string","nullable":true},"remote_after_sha":{"type":"string","nullable":true},"github_before_sha":{"type":"string","nullable":true},"github_after_sha":{"type":"string","nullable":true},"force":{"type":"boolean"},"pulled_commit_count":{"type":"integer"},"projected_commit_count":{"type":"integer"},"skipped_commit_count":{"type":"integer"},"error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"log_lines":{"type":"array","items":{"type":"object","required":["timestamp","level","message"],"properties":{"timestamp":{"type":"string"},"timestamp_label":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"}}}},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Created virtual repository sync run","content":{"application/json":{"schema":{"type":"object","required":["sync_run"],"properties":{"sync_run":{"type":"object","required":["id","organization_id","virtual_repository_id","creator_user_id","trigger_kind","status","kind","sync_provider_kind","sync_mode","source_bookmark","staging_bookmark","merge_commit_id","projection_target_commit_id","source_op_head_ids","source_commit_id","source_change_id","source_git_sha","target_repository_owner","target_repository_name","target_repository_full_name","target_branch","remote_url","remote_before_sha","remote_after_sha","github_before_sha","github_after_sha","force","pulled_commit_count","projected_commit_count","skipped_commit_count","error_message","metadata","log_lines","started_at","started_at_label","finished_at","finished_at_label","created_at","created_at_label","updated_at","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"virtual_repository_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"trigger_kind":{"type":"string","enum":["manual","auto"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","skipped","canceled"]},"kind":{"type":"string","enum":["pull_sync","push_projection","materialization"]},"sync_provider_kind":{"type":"string","enum":["github","git"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"source_bookmark":{"type":"string"},"staging_bookmark":{"type":"string","nullable":true},"merge_commit_id":{"type":"string","nullable":true},"projection_target_commit_id":{"type":"string","nullable":true},"source_op_head_ids":{"type":"array","items":{"type":"string"}},"source_commit_id":{"type":"string","nullable":true},"source_change_id":{"type":"string","nullable":true},"source_git_sha":{"type":"string","nullable":true},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"remote_url":{"type":"string"},"remote_before_sha":{"type":"string","nullable":true},"remote_after_sha":{"type":"string","nullable":true},"github_before_sha":{"type":"string","nullable":true},"github_after_sha":{"type":"string","nullable":true},"force":{"type":"boolean"},"pulled_commit_count":{"type":"integer"},"projected_commit_count":{"type":"integer"},"skipped_commit_count":{"type":"integer"},"error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"log_lines":{"type":"array","items":{"type":"object","required":["timestamp","level","message"],"properties":{"timestamp":{"type":"string"},"timestamp_label":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"}}}},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","nullable":true}}}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/openapi":{"get":{"operationId":"api_v1_openapi","tags":["openapi"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/org_invitations/{token}":{"get":{"operationId":"get_api_v1_org_invitations_token_","tags":["org_invitations"],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization invitation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["invitation"],"properties":{"invitation":{"$ref":"#/components/schemas/OrganizationInvitation"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/org_invitations/{token}/accept":{"post":{"operationId":"post_api_v1_org_invitations_token_accept","tags":["org_invitations"],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Accepted organization invitation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["invitation","organization"],"properties":{"invitation":{"$ref":"#/components/schemas/OrganizationInvitation"},"organization":{"$ref":"#/components/schemas/OrganizationSummary"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"402":{"description":"The organization's billing limit refuses this usage; see `error.upgrade_path`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingLimitExceededError"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations":{"get":{"operationId":"api_v1_organizations","tags":["organizations"],"parameters":[],"responses":{"200":{"description":"Organizations visible to the current user","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organizations","active_organization"],"properties":{"organizations":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationSummary"}},"active_organization":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSummary"},{"type":"null"}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations","tags":["organizations"],"parameters":[],"responses":{"200":{"description":"Organization","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Organization","content":{"application/json":{"schema":{"type":"object","required":["organization"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OrganizationCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{id}":{"get":{"operationId":"api_v1_organization","tags":["organizations"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization detail","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization","organization"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary","type":"object","required":["id","slug","name","logo_url","role","personal","member_count","pending_invitation_count","activated_products","can_activate_products","github_prs_authored_by_change_author","allow_author_self_review_on_main_repo","author_self_review_on_main_repo_effective","allow_author_self_review_on_home_repository","author_self_review_on_home_repository_effective","main_repository_slug","main_repository_display_name","home_repository_slug","home_repository_display_name","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"personal":{"type":"boolean"},"member_count":{"type":"integer","minimum":0},"pending_invitation_count":{"type":"integer","minimum":0},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"github_prs_authored_by_change_author":{"type":"boolean"},"allow_author_self_review_on_main_repo":{"type":"boolean"},"author_self_review_on_main_repo_effective":{"type":"boolean"},"allow_author_self_review_on_home_repository":{"type":"boolean"},"author_self_review_on_home_repository_effective":{"type":"boolean"},"main_repository_slug":{"type":"string"},"main_repository_display_name":{"type":"string"},"home_repository_slug":{"type":"string"},"home_repository_display_name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_organizations_id_","tags":["organizations"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OrganizationUpdatePayload"}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_id_","tags":["organizations"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OrganizationUpdatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/cdn_spaces":{"get":{"operationId":"api_v1_cdn_spaces","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_org_slug_cdn_spaces","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/changes":{"get":{"operationId":"api_v1_changes","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"source","in":"query","schema":{"type":"string","enum":["all","vex","github"]}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["open","needs_review","changes_requested","approved","ready_to_land","landed","abandoned","folded","orphaned","needs_restack"]}},{"name":"repo","in":"query","required":false,"schema":{"type":"string"}},{"name":"author","in":"query","required":false,"description":"Public ID of the user who created the change.","schema":{"type":"string"}},{"name":"mine","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"tips_only","in":"query","required":false,"description":"Show only active stack tips and standalone changes.","schema":{"type":"boolean"}},{"name":"awaiting_review","in":"query","required":false,"description":"Only open changes that explicitly request a current patchset review from the signed-in user. Excludes changes authored by that user.","schema":{"type":"boolean"}},{"name":"target","in":"query","required":false,"schema":{"type":"string"}},{"name":"stack","in":"query","required":false,"description":"Durable stack code or the stack's optional human alias.","schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["submitted","updated","number"],"default":"submitted"}},{"name":"direction","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"view","in":"query","required":false,"description":"Return paginated groups instead of the flat change list. `stack` groups by active stack, `author` by the user who created each change, and `created_time` by rolling period.","schema":{"type":"string","enum":["list","stack","author","created_time"],"default":"list"}},{"name":"number","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"label","in":"query","required":false,"description":"Label slug. Repeat the parameter or comma-separate values to require every label.","schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"Outer page. Selects changes in the list view and group keys in a grouped view. Ignored by `created_time`, whose four periods are all returned.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"group_pages","in":"query","required":false,"description":"Inner page positions, as a comma-separated list of `key:page` pairs such as `usr_a:3,usr_b:2`. Keys are the group keys this endpoint returned. Unknown, duplicate, malformed, and currently invisible keys are ignored, and a page past the end of a group resolves to that group's last page.","schema":{"type":"string"}}],"responses":{"200":{"description":"One page of the organization change queue, flat or grouped","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["result","counts","filters"],"properties":{"github_sync":{"$ref":"#/components/schemas/GithubReviewSync"},"result":{"description":"What this page is a page of. `kind` states what the top-level pagination describes: changes in the list view, group keys in a grouped view.","oneOf":[{"$ref":"#/components/schemas/VcsOrganizationChangeListResult"},{"$ref":"#/components/schemas/VcsOrganizationChangeGroupedResult"}]},"counts":{"type":"object","description":"Counts for each state across the active non-state filters.","additionalProperties":false,"required":["all","open","needs_review","changes_requested","approved","ready_to_land","landed","abandoned","folded","orphaned","needs_restack"],"properties":{"all":{"type":"integer","minimum":0},"open":{"type":"integer","minimum":0},"needs_review":{"type":"integer","minimum":0},"changes_requested":{"type":"integer","minimum":0},"approved":{"type":"integer","minimum":0},"ready_to_land":{"type":"integer","minimum":0},"landed":{"type":"integer","minimum":0},"abandoned":{"type":"integer","minimum":0},"folded":{"type":"integer","minimum":0},"orphaned":{"type":"integer","minimum":0},"needs_restack":{"type":"integer","minimum":0}}},"filters":{"type":"object","required":["repos","labels","authors"],"properties":{"repos":{"type":"array","items":{"type":"object","required":["slug","name"],"properties":{"slug":{"type":"string"},"name":{"type":"string"}}}},"labels":{"type":"array","items":{"$ref":"#/components/schemas/VcsLabelFacet"}},"authors":{"type":"array","items":{"$ref":"#/components/schemas/VcsActorSummary"}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List changes across an organization"}},"/api/v1/organizations/{org_slug}/gh/{github_owner}/{github_repo}/{number}":{"get":{"operationId":"get_api_v1_organizations_org_slug_gh_github_owner_github_repo_number_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"github_owner","in":"path","required":true,"schema":{"type":"string"}},{"name":"github_repo","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"org_slug","required":true,"schema":{"type":"string"}},{"in":"path","required":true,"schema":{"type":"string"},"name":"github_owner"},{"in":"path","required":true,"schema":{"type":"string"},"name":"github_repo"},{"in":"path","name":"number","required":true,"schema":{"type":"string"}},{"in":"query","name":"section","schema":{"type":"string"}},{"in":"query","name":"page","schema":{"type":"integer"}},{"in":"query","name":"cursor","schema":{"type":"string"}},{"name":"thread_id","in":"query","schema":{"type":"string"}},{"name":"check_id","in":"query","schema":{"type":"string"}},{"in":"query","name":"run_id","schema":{"type":"string"}},{"in":"query","name":"job_id","schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub review response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/GithubReviewPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read a GitHub pull request inside Vex"}},"/api/v1/organizations/{org_slug}/github/pull_requests/refresh":{"post":{"operationId":"api_v1_github_pull_requests_refresh","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"GitHub review response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"}},"required":["status"]}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Discover GitHub pull requests"}},"/api/v1/organizations/{org_slug}/github/pull_requests/{github_repository_id}/{number}":{"get":{"operationId":"get_api_v1_organizations_org_slug_github_pull_requests_github_repository_id_number_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"github_repository_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"org_slug","required":true,"schema":{"type":"string"}},{"in":"path","name":"github_repository_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"number","required":true,"schema":{"type":"string"}},{"in":"query","name":"section","schema":{"type":"string"}},{"in":"query","name":"page","schema":{"type":"integer"}},{"in":"query","name":"cursor","schema":{"type":"string"}},{"name":"thread_id","in":"query","schema":{"type":"string"}},{"name":"check_id","in":"query","schema":{"type":"string"}},{"in":"query","name":"run_id","schema":{"type":"string"}},{"in":"query","name":"job_id","schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub review response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/GithubReviewPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read a GitHub pull request inside Vex"}},"/api/v1/organizations/{org_slug}/github/pull_requests/{github_repository_id}/{number}/actions":{"post":{"operationId":"post_api_v1_organizations_org_slug_github_pull_requests_github_repository_id_number_actions","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"github_repository_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"org_slug","required":true,"schema":{"type":"string"}},{"in":"path","name":"github_repository_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"number","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub review response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/GithubReviewOperation"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"GitHub review response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GithubReviewOperation"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/GithubReviewMutation"}}}},"security":[{"bearerAuth":[]}],"summary":"Comment or review on GitHub as the current user"}},"/api/v1/organizations/{org_slug}/gitlab":{"get":{"operationId":"get_api_v1_organizations_org_slug_gitlab","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer"}},{"name":"search","in":"query","schema":{"type":"string"}},{"name":"integration_id","in":"query","schema":{"type":"string"}},{"name":"connection_ids","in":"query","schema":{"type":"string"},"description":"Comma-separated import connection IDs to resume; scoped to this organization."},{"name":"sort","in":"query","schema":{"type":"string","enum":["newest","alphabetical"]}}],"responses":{"200":{"description":"GitLab source integration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/GitlabPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/gitlab/authorize":{"post":{"operationId":"api_v1_authorize","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"GitLab source integration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitlabAuthorizationUrl"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/gitlab/connections/{connection_id}/control":{"post":{"operationId":"post_api_v1_organizations_org_slug_gitlab_connections_connection_id_control","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"204":{"description":"Sync control applied"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["action_name"],"properties":{"action_name":{"type":"string","enum":["pause","resume","disconnect","sync","replace","remap"]},"integration_id":{"type":"string"},"source_branch":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/gitlab/connections/{connection_id}/retry":{"post":{"operationId":"post_api_v1_organizations_org_slug_gitlab_connections_connection_id_retry","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"GitLab source integration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitlabConnection"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/gitlab/imports":{"post":{"operationId":"api_v1_imports","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"GitLab source integration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitlabConnection"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["integration_id","project_id"],"properties":{"integration_id":{"type":"string"},"project_id":{"type":"integer"},"source_branch":{"type":"string"},"include_in_home":{"type":"boolean"},"repo_slug":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/image_repositories":{"get":{"operationId":"api_v1_image_repositories","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Image repositories for an organization","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["image_repositories"],"properties":{"image_repositories":{"type":"array","items":{"$ref":"#/components/schemas/ImageRepository"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_org_slug_image_repositories","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Image repository created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["image_repository"],"properties":{"image_repository":{"$ref":"#/components/schemas/ImageRepository"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Image repository created","content":{"application/json":{"schema":{"type":"object","required":["image_repository"],"properties":{"image_repository":{"$ref":"#/components/schemas/ImageRepository"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ImageRepositoryCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/labels":{"get":{"operationId":"api_v1_labels","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_unused","in":"query","required":false,"description":"Include labels no change currently carries.","schema":{"type":"boolean","default":false}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}}],"responses":{"200":{"description":"Organization change labels","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["labels"],"properties":{"labels":{"type":"array","items":{"$ref":"#/components/schemas/VcsLabel"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List the organization's change labels","description":"Ordered by how many changes carry each label, for facet lists and label autocomplete."}},"/api/v1/organizations/{org_slug}/pages/agent_usage":{"get":{"operationId":"api_v1_pages_agent_usage","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"window","required":false,"description":"`7d` (default) or `30d`.","schema":{"type":"string","enum":["7d","30d"]}}],"responses":{"200":{"description":"The analytics page.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AgentUsagePage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Organization not found or not accessible."},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Unknown window."}},"security":[{"bearerAuth":[]}],"summary":"Organization agent usage analytics page contract","description":"Coding-agent token usage and estimated cost per day and per person, split by model, over the last 7 or 30 days. Rows are per-checkpoint deltas priced at capture time, so every figure is a plain sum; `source` says whether Tinybird or the Rails outbox served them. Organization membership required; the outbox path is restricted to the organization's readable repositories."}},"/api/v1/organizations/{org_slug}/pages/deployments/architecture":{"get":{"operationId":"api_v1_pages_deployments_architecture","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"app","required":false,"schema":{"type":"string"}},{"in":"query","name":"service","required":false,"schema":{"type":"string"}},{"in":"query","name":"environment","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Deployments Architecture page contract. The view draws one of two canvases and never both: `map` is the organization topology and is present exactly when no app was selected, and everything below it is the selected app's topology. A scope value that names nothing is ignored rather than rejected.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["filters","deploy_targets","app_id","map","locations","environments","service_views","data_resources","storage_resources","connections","managed_database_catalog"],"properties":{"filters":{"$ref":"#/components/schemas/DeploymentFilters"},"deploy_targets":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentTarget"}},"app_id":{"type":"string","nullable":true},"map":{"oneOf":[{"$ref":"#/components/schemas/DeploymentOrganizationMap"},{"type":"null"}]},"locations":{"type":"array","items":{"$ref":"#/components/schemas/HostingLocation"}},"environments":{"type":"array","items":{"$ref":"#/components/schemas/AppEnvironment"}},"service_views":{"type":"array","items":{"$ref":"#/components/schemas/ArchitectureServiceView"}},"data_resources":{"type":"array","items":{"$ref":"#/components/schemas/AppDataResource"}},"storage_resources":{"type":"array","items":{"$ref":"#/components/schemas/AppStorageResource"}},"connections":{"type":"array","items":{"$ref":"#/components/schemas/ServiceConnection"}},"managed_database_catalog":{"oneOf":[{"$ref":"#/components/schemas/ManagedDatabaseCatalog"},{"type":"null"}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/pages/deployments/details":{"get":{"operationId":"api_v1_pages_deployments_details","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"app","required":false,"schema":{"type":"string"}},{"in":"query","name":"service","required":false,"schema":{"type":"string"}},{"in":"query","name":"environment","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Deployments Details page contract: the live operational state of the app, service and stage the request names. Every collection is already narrowed to that scope, so nothing is filtered again after it arrives. A scope value that names nothing is ignored rather than rejected.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["filters","deploy_targets","app_id","app","health","nomad","capacity","environments","placements","desired_states","service_views","operations","deployments","releases","runtime_instances","reconciler_ticks","audit_events","service_bindings","data_resources","storage_resources","activity"],"properties":{"filters":{"$ref":"#/components/schemas/DeploymentFilters"},"deploy_targets":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentTarget"}},"app_id":{"type":"string","nullable":true},"app":{"oneOf":[{"$ref":"#/components/schemas/HostedApp"},{"type":"null"}]},"health":{"$ref":"#/components/schemas/DeploymentScopeHealth"},"nomad":{"$ref":"#/components/schemas/DeploymentScopeNomad"},"capacity":{"$ref":"#/components/schemas/DeploymentCapacity"},"environments":{"type":"array","items":{"$ref":"#/components/schemas/AppEnvironment"}},"placements":{"type":"array","items":{"$ref":"#/components/schemas/AppServicePlacement"}},"desired_states":{"type":"array","items":{"$ref":"#/components/schemas/AppDesiredState"}},"service_views":{"type":"array","items":{"$ref":"#/components/schemas/DetailsServiceView"}},"operations":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentOperation"}},"deployments":{"type":"array","items":{"$ref":"#/components/schemas/DetailsDeploymentRow"}},"releases":{"type":"array","items":{"$ref":"#/components/schemas/DetailsReleaseRow"}},"runtime_instances":{"type":"array","items":{"$ref":"#/components/schemas/RuntimeInstance"}},"reconciler_ticks":{"type":"array","items":{"$ref":"#/components/schemas/ReconcilerTick"}},"audit_events":{"type":"array","items":{"$ref":"#/components/schemas/AuditEvent"}},"service_bindings":{"type":"array","items":{"$ref":"#/components/schemas/AppServiceBinding"}},"data_resources":{"type":"array","items":{"$ref":"#/components/schemas/AppDataResource"}},"storage_resources":{"type":"array","items":{"$ref":"#/components/schemas/AppStorageResource"}},"activity":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentActivityItem"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/pages/deployments/feed":{"get":{"operationId":"api_v1_pages_deployments_feed","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"app","required":false,"schema":{"type":"string"}},{"in":"query","name":"service","required":false,"schema":{"type":"string"}},{"in":"query","name":"environment","required":false,"schema":{"type":"string"}},{"in":"query","name":"page","required":false,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Organization deployment feed page contract. `operations` is one page of deployment operations for the requested app, service and environment; a scope value that names nothing is ignored rather than rejected.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["filters","deploy_targets","operations","pagination"],"properties":{"filters":{"$ref":"#/components/schemas/DeploymentFilters"},"deploy_targets":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentTarget"}},"operations":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentOperation"}},"pagination":{"type":"object","required":["page","limit","count","count_label","last","series"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"count":{"type":"integer","minimum":0},"count_label":{"type":"string"},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","nullable":true,"minimum":1},"next":{"type":"integer","nullable":true,"minimum":1},"series":{"type":"array","items":{"oneOf":[{"type":"integer","minimum":1},{"type":"string","enum":["gap"]}]}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/pages/deployments/logs":{"get":{"operationId":"api_v1_pages_deployments_logs","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"app","required":false,"schema":{"type":"string"}},{"in":"query","name":"service","required":false,"schema":{"type":"string"}},{"in":"query","name":"environment","required":false,"schema":{"type":"string"}},{"in":"query","name":"log_service","required":false,"description":"Public id of the service to read. Ignored when it has no allocations; the first service that does answers instead.","schema":{"type":"string"}},{"in":"query","name":"log_location","required":false,"description":"Restricts the merge to allocations in one location.","schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"description":"Merged lines to keep, counted from the end.","schema":{"type":"integer","minimum":1,"maximum":5000,"default":800}}],"responses":{"200":{"description":"Deployments Logs page contract. `lines` is the stdout and stderr of every allocation serving `app_service_id`, merged and numbered across the whole stream before truncation; a scope value that names nothing is ignored rather than rejected.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["filters","deploy_targets","log_services","app_service_id","allocations","lines","summary"],"properties":{"filters":{"$ref":"#/components/schemas/DeploymentFilters"},"deploy_targets":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentTarget"}},"log_services":{"type":"array","items":{"type":"object","required":["id","name","allocation_count"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"allocation_count":{"type":"integer","minimum":0}}}},"app_service_id":{"type":"string","nullable":true},"allocations":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentServiceLogAllocation"}},"lines":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentServiceLogLine"}},"summary":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/pages/deployments/metrics":{"get":{"operationId":"api_v1_pages_deployments_metrics","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"app","required":false,"schema":{"type":"string"}},{"in":"query","name":"service","required":false,"schema":{"type":"string"}},{"in":"query","name":"environment","required":false,"schema":{"type":"string"}},{"in":"query","name":"metrics_range","required":false,"description":"Window for the observed-usage charts. An unknown value falls back to the default.","schema":{"type":"string","enum":["1h","6h","24h","7d"]}}],"responses":{"200":{"description":"Deployments Metrics page contract: observed usage, reserved capacity, and the one Grafana embed for the scope the page draws. A scope value that names nothing is ignored rather than rejected.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["filters","deploy_targets","app_id","app_name","summary","capacity","service_views","observed_metrics","grafana_embed"],"properties":{"filters":{"$ref":"#/components/schemas/DeploymentFilters"},"deploy_targets":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentTarget"}},"app_id":{"type":"string","nullable":true},"app_name":{"type":"string","nullable":true},"summary":{"$ref":"#/components/schemas/DeploymentMetricsSummary"},"capacity":{"$ref":"#/components/schemas/DeploymentCapacity"},"service_views":{"type":"array","items":{"$ref":"#/components/schemas/MetricsServiceView"}},"observed_metrics":{"oneOf":[{"$ref":"#/components/schemas/ObservedMetricsSnapshot"},{"type":"null"}]},"grafana_embed":{"oneOf":[{"$ref":"#/components/schemas/GrafanaEmbed"},{"type":"null"}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/pages/deployments/settings":{"get":{"operationId":"api_v1_pages_deployments_settings","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"app","required":false,"schema":{"type":"string"}},{"in":"query","name":"service","required":false,"schema":{"type":"string"}},{"in":"query","name":"environment","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Deployments Settings page contract. Everything below `app_id` is empty or null until an app is selected; a scope value that names nothing is ignored rather than rejected.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["filters","deploy_targets","app_id","locations","available_locations","environments","services","scoped_service","scoped_environment","placement","desired_state_count","domains","config_variables","cdns","cdn_deployments"],"properties":{"filters":{"$ref":"#/components/schemas/DeploymentFilters"},"deploy_targets":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentTarget"}},"app_id":{"type":"string","nullable":true},"locations":{"type":"array","items":{"$ref":"#/components/schemas/HostingLocation"}},"available_locations":{"type":"array","items":{"$ref":"#/components/schemas/HostingLocation"}},"environments":{"type":"array","items":{"$ref":"#/components/schemas/AppEnvironment"}},"services":{"type":"array","items":{"$ref":"#/components/schemas/AppService"}},"scoped_service":{"oneOf":[{"$ref":"#/components/schemas/AppService"},{"type":"null"}]},"scoped_environment":{"oneOf":[{"$ref":"#/components/schemas/AppEnvironment"},{"type":"null"}]},"placement":{"oneOf":[{"$ref":"#/components/schemas/AppServicePlacement"},{"type":"null"}]},"desired_state_count":{"type":"integer","minimum":0},"domains":{"type":"array","items":{"$ref":"#/components/schemas/AppDomain"}},"config_variables":{"type":"array","items":{"$ref":"#/components/schemas/AppConfigVariable"}},"cdns":{"type":"array","items":{"$ref":"#/components/schemas/AppCdnDistribution"}},"cdn_deployments":{"type":"array","items":{"$ref":"#/components/schemas/AppCdnDeployment"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/pages/deployments/{deployment_id}":{"get":{"operationId":"get_api_v1_organizations_org_slug_pages_deployments_deployment_id_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"deployment_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Deployment operation detail page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["operation"],"properties":{"operation":{"$ref":"#/components/schemas/DeploymentOperation"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/pages/github_integrations":{"get":{"operationId":"get_api_v1_organizations_org_slug_pages_github_integrations","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub organization settings overview page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization","github_installations"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"},"github_installations":{"type":"array","items":{"$ref":"#/components/schemas/GithubIntegrationSummary"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/pages/github_integrations/{github_app_installation_id}":{"get":{"operationId":"get_api_v1_organizations_org_slug_pages_github_integrations_github_app_installation_id_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"github_app_installation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"GitHub organization settings detail page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization","github_installation","repositories","pagination"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"},"github_installation":{"$ref":"#/components/schemas/GithubIntegrationDetail"},"repositories":{"type":"array","items":{"$ref":"#/components/schemas/GithubIntegrationRepository"}},"pagination":{"type":"object","required":["page","limit","count","last","previous","next","series"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"count":{"type":"integer","minimum":0},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","nullable":true,"minimum":1},"next":{"type":"integer","nullable":true,"minimum":1},"series":{"type":"array","items":{"oneOf":[{"type":"integer","minimum":1},{"type":"string","enum":["gap"]}]}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/pages/github_onboarding":{"get":{"operationId":"api_v1_pages_github_onboarding","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"github_app_installation_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"github_import_batch_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization GitHub onboarding page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization","onboarding"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"},"onboarding":{"$ref":"#/components/schemas/GithubOnboardingState"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/pages/inbox":{"get":{"operationId":"api_v1_pages_inbox","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"state","in":"query","schema":{"type":"string","enum":["needs_action","handled"]}},{"name":"kind","in":"query","schema":{"type":"string","enum":["review_requested","changes_requested"]}},{"name":"notifications_page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"events_page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"live_page","in":"query","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Membership Inbox with independently paginated notifications and operations","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/InboxPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/pages/now":{"get":{"operationId":"api_v1_pages_now","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"page","required":false,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Organization Now page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["summary","needs_attention","shipping_now","recently_landed","pagination"],"properties":{"summary":{"type":"object","required":["needs_attention_count","shipping_count","landed_count"],"properties":{"needs_attention_count":{"type":"integer"},"shipping_count":{"type":"integer"},"landed_count":{"type":"integer"}}},"needs_attention":{"type":"array","items":{"$ref":"#/components/schemas/NowMergeQueueItem"}},"shipping_now":{"type":"array","items":{"$ref":"#/components/schemas/NowMergeQueueItem"}},"recently_landed":{"type":"array","items":{"$ref":"#/components/schemas/NowMergeQueueItem"}},"pagination":{"type":"object","additionalProperties":true,"required":["page","limit","count","count_label","last","series"],"properties":{"page":{"type":"integer"},"limit":{"type":"integer"},"count":{"type":"integer"},"count_label":{"type":"string"},"last":{"type":"integer"},"previous":{"type":"integer","nullable":true},"next":{"type":"integer","nullable":true},"series":{"type":"array","items":{"oneOf":[{"type":"integer"},{"type":"string"}]}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/pages/pull_zones":{"get":{"operationId":"api_v1_pages_pull_zones","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"app","schema":{"type":"string"}}],"responses":{"200":{"description":"Organization pull zones and the selected app's CDN configuration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["apps","selected_app_id","cdns","cdn_deployments","services","environments"],"properties":{"selected_app_id":{"type":"string","nullable":true},"apps":{"type":"array","items":{"type":"object","required":["id","name","slug"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}}},"services":{"type":"array","items":{"type":"object","required":["id","name","slug"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}}},"environments":{"type":"array","items":{"type":"object","required":["id","name","slug"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}}},"cdns":{"type":"array","items":{"$ref":"#/components/schemas/AppCdnDistribution"}},"cdn_deployments":{"type":"array","items":{"$ref":"#/components/schemas/AppCdnDeployment"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/pages/registry":{"get":{"operationId":"api_v1_pages_registry","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"page","required":false,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Organization registry page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["repositories","repository_count","active_repository_count","pagination","error"],"properties":{"repositories":{"type":"array","items":{"$ref":"#/components/schemas/ImageRepository"}},"repository_count":{"type":"integer","minimum":0},"active_repository_count":{"type":"integer","minimum":0},"pagination":{"type":"object","required":["page","limit","count","count_label","last","previous","next","series"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"count":{"type":"integer","minimum":0},"count_label":{"type":"string"},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","nullable":true,"minimum":1},"next":{"type":"integer","nullable":true,"minimum":1},"series":{"type":"array","items":{"oneOf":[{"type":"integer","minimum":1},{"type":"string","enum":["gap"]}]}}}},"error":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/pages/repository_import":{"get":{"operationId":"api_v1_pages_repository_import","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"search","in":"query","required":false,"schema":{"type":"string"}},{"name":"accounts_only","in":"query","required":false,"schema":{"type":"boolean"},"description":"Return accounts and resumable imports without fetching provider repository inventories."}],"responses":{"200":{"description":"Connected source accounts for repository import","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RepositoryImportPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/pages/session/{session_id}":{"get":{"operationId":"get_api_v1_organizations_org_slug_pages_session_session_id_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"session_id","required":true,"description":"Public id of the session to show.","schema":{"type":"string"}},{"in":"query","name":"checkpoint","required":false,"description":"Public id of a specific uploaded checkpoint to resolve the transcript against. Defaults to the session's latest uploaded checkpoint.","schema":{"type":"string"}},{"in":"query","name":"around_event","schema":{"type":"integer","minimum":0},"description":"Search citation event index; requires checkpoint and event_digest."},{"in":"query","name":"event_digest","schema":{"type":"string","pattern":"^[0-9a-f]{64}$"},"description":"Verifies that the cited event still matches before opening the page."}],"responses":{"200":{"description":"Fullscreen session detail page contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/SessionShowPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"The session does not exist in a repository the caller can read.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Fullscreen session detail page contract","description":"Composes everything the fullscreen session page needs from Rails-owned records: the session (serialized identically to the org sessions page's expanded session so the web reuses one builder), the \"Jump to checkpoint\" markers, session-level token usage for the header cost estimate, and the resolved checkpoint's transcript-index state plus derived header stats (files/lines/duration + prompt/response/step counts). The resolved checkpoint is an explicit `checkpoint` (public id) or the session's latest uploaded checkpoint; when its index is not yet current a build is lazily enqueued and the state reads `preparing`. Fail-closed authorization: a session outside the caller's readable organization repositories resolves to 404. Payloads carry sanitized provenance only — no storage keys, checksums, or archive/chunk URLs."}},"/api/v1/organizations/{org_slug}/pages/sessions":{"get":{"operationId":"api_v1_pages_sessions","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"repo","required":false,"description":"Repository slug filter.","schema":{"type":"string"}},{"in":"query","name":"adapter","required":false,"description":"Agent adapter/harness filter (codex, claude, cursor, roder, grok).","schema":{"type":"string"}},{"in":"query","name":"user_id","required":false,"description":"Public id of the session owner to filter by.","schema":{"type":"string"}},{"in":"query","name":"status","required":false,"description":"Session status filter (active, completed, abandoned).","schema":{"type":"string"}},{"in":"query","name":"from","required":false,"description":"ISO8601 lower bound (inclusive) on session started_at.","schema":{"type":"string"}},{"in":"query","name":"to","required":false,"description":"ISO8601 upper bound (inclusive) on session started_at.","schema":{"type":"string"}},{"in":"query","name":"offset","required":false,"schema":{"type":"integer","minimum":0}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"in":"query","name":"session","required":false,"description":"Public id of a session to expand with its checkpoint timeline.","schema":{"type":"string"}}],"responses":{"200":{"description":"Organization sessions page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["sessions","pagination","facets","session"],"properties":{"sessions":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationSessionSummary"}},"pagination":{"type":"object","required":["offset","limit","has_more"],"properties":{"offset":{"type":"integer"},"limit":{"type":"integer"},"has_more":{"type":"boolean"}}},"facets":{"type":"object","required":["adapters","repositories","users"],"properties":{"adapters":{"type":"array","items":{"type":"string"}},"repositories":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/OrganizationSessionRepository"},{"type":"object","required":["session_count"],"properties":{"session_count":{"type":"integer"}}}]}},"users":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/OrganizationSessionUser"},{"type":"object","required":["session_count"],"properties":{"session_count":{"type":"integer"}}}]}}}},"session":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSessionDetail"},{"type":"null"}]},"search_enabled":{"type":"boolean"},"search":{"nullable":true,"oneOf":[{"$ref":"#/components/schemas/TranscriptSearchResult"},{"$ref":"#/components/schemas/TranscriptSearchError"}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Organization agent sessions page contract","description":"Cross-repo browser of captured agent sessions for one organization, restricted to repositories the current user can read. Returns the filtered/paginated session list with per-session stats, filter facets, and — when `session` is supplied — the expanded session's checkpoint timeline, its server-derived git `commits` and `pull_requests`, and its native `linked_commits`. Each expanded checkpoint carries the native commit ids it is attached to (`linked_commits`), resolved through the reverse checkpoint→commit lookup; `linked_commits_available` is false and the lists are empty when that lookup is unavailable. Payloads carry sanitized provenance only (no storage keys, checksums, or archive URLs)."},"post":{"operationId":"post_api_v1_organizations_org_slug_pages_sessions","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"org_slug","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Composed transcript search page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["sessions","pagination","facets","session"],"properties":{"sessions":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationSessionSummary"}},"pagination":{"type":"object","required":["offset","limit","has_more"],"properties":{"offset":{"type":"integer"},"limit":{"type":"integer"},"has_more":{"type":"boolean"}}},"facets":{"type":"object","required":["adapters","repositories","users"],"properties":{"adapters":{"type":"array","items":{"type":"string"}},"repositories":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/OrganizationSessionRepository"},{"type":"object","required":["session_count"],"properties":{"session_count":{"type":"integer"}}}]}},"users":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/OrganizationSessionUser"},{"type":"object","required":["session_count"],"properties":{"session_count":{"type":"integer"}}}]}}}},"session":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSessionDetail"},{"type":"null"}]},"search_enabled":{"type":"boolean"},"search":{"nullable":true,"oneOf":[{"$ref":"#/components/schemas/TranscriptSearchResult"},{"$ref":"#/components/schemas/TranscriptSearchError"}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"query":{"type":"string","minLength":1,"maxLength":4000},"mode":{"type":"string","enum":["hybrid","keyword","semantic"],"default":"hybrid"},"repo":{"type":"string"},"adapter":{"type":"string"},"status":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"cursor":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":50,"default":20},"max_bytes":{"type":"integer","minimum":8192,"maximum":131072,"default":32768},"user_id":{"type":"string"},"offset":{"type":"integer"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Search transcripts with permitted page facets"}},"/api/v1/organizations/{org_slug}/pages/sites":{"get":{"operationId":"api_v1_pages_sites","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"site","required":false,"description":"Public id of the site to open. A value naming nothing is ignored and the first site answers instead.","schema":{"type":"string"}}],"responses":{"200":{"description":"Organization Sites page contract. `domains` and `deployments` belong to `selected_site_id`, which names one of `sites`.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization_id","sites","selected_site_id","domains","deployments","cloudflare_connected","summary"],"properties":{"organization_id":{"type":"string"},"sites":{"type":"array","items":{"$ref":"#/components/schemas/StaticSite"}},"selected_site_id":{"type":"string","nullable":true},"domains":{"type":"array","items":{"$ref":"#/components/schemas/StaticSiteDomain"}},"deployments":{"type":"array","items":{"$ref":"#/components/schemas/StaticSiteDeployment"}},"cloudflare_connected":{"type":"boolean"},"summary":{"type":"object","required":["total","active","failed"],"properties":{"total":{"type":"integer","minimum":0},"active":{"type":"integer","minimum":0},"failed":{"type":"integer","minimum":0}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/pages/workspace_activity":{"get":{"operationId":"api_v1_pages_workspace_activity","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Sidebar Workspace Activity page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/WorkspaceActivityPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos":{"get":{"operationId":"api_v1_repos","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["name","github"],"default":"name"}},{"name":"direction","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"asc"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}}],"responses":{"200":{"description":"Paginated workspace Repo inventory","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["repos","pagination"],"properties":{"repos":{"type":"array","items":{"type":"object","required":["id","slug","name","icon_name","github_repository","sync_status","sync_error_message","can_retry_sync","can_retry_import","import_item_id","import_session_id","execution_source","import_phase","is_home","disclaimer","federated_in_home","root_path"],"properties":{"id":{"type":"string","description":"Virtual repository public ID for non-Home rows; Home uses the physical repository public ID."},"slug":{"type":"string"},"name":{"type":"string"},"icon_name":{"type":"string"},"github_repository":{"type":"string","nullable":true},"sync_provider":{"type":"string","enum":["none","github","git","gitlab"]},"remote_repository":{"type":"string","nullable":true},"sync_status":{"type":"string","enum":["none","importing","syncing","failed","ready"]},"sync_error_message":{"type":"string","nullable":true},"can_retry_sync":{"type":"boolean","description":"True when the latest sync run failed and can be retried."},"can_retry_import":{"type":"boolean","description":"True when a failed client import can be requeued for CLI resume."},"import_item_id":{"type":"string","nullable":true},"import_session_id":{"type":"string","nullable":true},"execution_source":{"type":"string","enum":["client","cloud"],"nullable":true},"import_phase":{"type":"string","nullable":true},"is_home":{"type":"boolean"},"disclaimer":{"type":"string","nullable":true},"federated_in_home":{"type":"boolean","description":"True when this Space is a folder virtual repository inside the organization Home monorepo. False for Home itself and for standalone physical companions."},"root_path":{"type":"string","nullable":true,"description":"Home-relative folder path when federated_in_home is true; null otherwise."}}}},"pagination":{"type":"object","required":["page","limit","count","count_label","last","series"],"additionalProperties":true,"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"count":{"type":"integer","minimum":0},"count_label":{"type":"string"},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","nullable":true},"next":{"type":"integer","nullable":true},"series":{"type":"array","items":{"oneOf":[{"type":"integer"},{"type":"string"}]}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/access_tokens":{"get":{"operationId":"api_v1_repository_access_tokens","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Manual repository access tokens","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["access_tokens"],"properties":{"access_tokens":{"type":"array","items":{"type":"object","required":["id","name","permission_level","token_preview","active","expires_at","last_used_at","revoked_at","created_at","updated_at","expires_at_label","last_used_at_label","revoked_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"permission_level":{"type":"string","enum":["read_only","read_write"]},"token_preview":{"type":"string"},"active":{"type":"boolean"},"expires_at":{"type":"string","format":"date-time","nullable":true},"last_used_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"expires_at_label":{"type":"string","nullable":true},"last_used_at_label":{"type":"string","nullable":true},"revoked_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_access_tokens","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Created repository access token","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["access_token","plain_text_token"],"properties":{"access_token":{"type":"object","required":["id","name","permission_level","token_preview","active","expires_at","last_used_at","revoked_at","created_at","updated_at","expires_at_label","last_used_at_label","revoked_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"permission_level":{"type":"string","enum":["read_only","read_write"]},"token_preview":{"type":"string"},"active":{"type":"boolean"},"expires_at":{"type":"string","format":"date-time","nullable":true},"last_used_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"expires_at_label":{"type":"string","nullable":true},"last_used_at_label":{"type":"string","nullable":true},"revoked_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"plain_text_token":{"type":"string"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Created repository access token","content":{"application/json":{"schema":{"type":"object","required":["access_token","plain_text_token"],"properties":{"access_token":{"type":"object","required":["id","name","permission_level","token_preview","active","expires_at","last_used_at","revoked_at","created_at","updated_at","expires_at_label","last_used_at_label","revoked_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"permission_level":{"type":"string","enum":["read_only","read_write"]},"token_preview":{"type":"string"},"active":{"type":"boolean"},"expires_at":{"type":"string","format":"date-time","nullable":true},"last_used_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"expires_at_label":{"type":"string","nullable":true},"last_used_at_label":{"type":"string","nullable":true},"revoked_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"plain_text_token":{"type":"string"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["name","permission_level"],"properties":{"name":{"type":"string"},"permission_level":{"type":"string","enum":["read_only","read_write"]},"expires_in_days":{"type":"integer","minimum":1,"nullable":true}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/access_tokens/{id}":{"delete":{"operationId":"api_v1_repository_access_token","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"204":{"description":"Repository access token revoked"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/agent_checkpoints/{id}":{"get":{"operationId":"api_v1_agent_checkpoint","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/agent_checkpoints/{id}/download":{"get":{"operationId":"download_api_v1_agent_checkpoint","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/agent_sessions":{"get":{"operationId":"api_v1_agent_sessions","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_agent_sessions","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/agent_sessions/{agent_session_id}/checkpoints":{"get":{"operationId":"api_v1_agent_session_checkpoints","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_session_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_agent_sessions_agent_session_id_checkpoints","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_session_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/agent_sessions/{agent_session_id}/checkpoints/{id}":{"get":{"operationId":"api_v1_agent_session_checkpoint","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_session_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/agent_sessions/{agent_session_id}/checkpoints/{id}/download":{"get":{"operationId":"download_api_v1_agent_session_checkpoint","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_session_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/agent_sessions/{agent_session_id}/checkpoints/{id}/finalize":{"post":{"operationId":"finalize_api_v1_agent_session_checkpoint","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_session_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/agent_sessions/{id}":{"get":{"operationId":"api_v1_agent_session","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_organizations_org_slug_repos_repo_slug_agent_sessions_id_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The updated agent session","content":{"application/json":{"schema":{"type":"object","required":["agent_session"],"properties":{"agent_session":{"type":"object","properties":{"id":{"type":"string"},"adapter":{"type":"string"},"external_session_id":{"type":"string"},"status":{"type":"string"},"title":{"type":"string","nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"}},"security":[{"bearerAuth":[]}],"summary":"Update an agent session title","description":"Sets the scrubbed, human-readable title derived by the CLI collector. Owner-only. Title is intentionally not accepted on the create path.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["agent_session"],"properties":{"agent_session":{"type":"object","required":["title"],"properties":{"title":{"type":"string","maxLength":120,"nullable":true}}}}}}}}},"put":{"operationId":"put_api_v1_organizations_org_slug_repos_repo_slug_agent_sessions_id_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/agent_sessions/{id}/complete":{"post":{"operationId":"complete_api_v1_agent_session","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/agent_sessions/{id}/roder_handoffs":{"post":{"operationId":"roder_handoffs_api_v1_agent_session","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"The session checkpoint handoff coordinate could not be resolved.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"},"201":{"description":"Roder browser connection seeded with the session handoff capability.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionRoderHandoff"}}}},"409":{"description":"The session has no uploaded checkpoint to hand off.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"checkpoint_id":{"type":"string","description":"Public id of the checkpoint to hand off. Defaults to the latest uploaded."},"purpose":{"type":"string","enum":["ask_why","continue"],"description":"Handoff intent; defaults to `continue`."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Seed a Roder conversation scoped to this session's checkpoint","description":"Mints a short-lived, single-tool, one-time capability scoped to one of the session's checkpoints and returns the vex-roder browser connection for the org Agents workspace to open. The capability authorizes exactly the `get_session_agent_checkpoint_handoff_context` MCP tool for exactly this checkpoint and is consumed at most once. When `checkpoint_id` is omitted the session's latest uploaded checkpoint is used."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/agent_sessions/{id}/transcript":{"get":{"operationId":"transcript_api_v1_agent_session","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"description":"Opaque backward-pagination cursor from a previous response's `prev_cursor`. Omit for the latest (tail) page.","schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"description":"Events per page (default 200).","schema":{"type":"integer","minimum":1,"maximum":500}},{"in":"query","name":"checkpoint","required":false,"description":"Public id of a specific uploaded checkpoint to read. Defaults to the session's latest uploaded checkpoint.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of transcript events, newest-last within the page.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AgentSessionTranscriptPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"The checkpoint archive could not be read.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"},"409":{"description":"The session has no uploaded checkpoint transcript available yet.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Browsable transcript for one captured agent session","description":"Returns the whole sanitized transcript captured in one of the session's checkpoints, as a normalized, paginated event list. The default page is the TAIL (latest events); pass the returned `prev_cursor` as `cursor` to walk backward through older events. When `checkpoint` is omitted the session's latest uploaded checkpoint is used, since each checkpoint archive is self-contained and the newest carries the fullest transcript. Payloads are parsed server-side and carry sanitized event text only — no storage keys, checksums, or archive URLs."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/agent_sessions/{id}/transcript_export":{"get":{"operationId":"transcript_export_api_v1_agent_session","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"checkpoint","required":false,"description":"Public id of a specific uploaded checkpoint to export.","schema":{"type":"string"}},{"in":"query","name":"format","required":false,"description":"Export format. Defaults to Markdown.","schema":{"type":"string","enum":["markdown","jsonl"],"default":"markdown"}}],"responses":{"200":{"description":"Transcript file attachment.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/markdown":{"schema":{"type":"string"}},"application/x-ndjson":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"The checkpoint archive could not be read.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"},"400":{"description":"The requested export format is unsupported.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"409":{"description":"The session has no uploaded checkpoint transcript available yet.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Download one captured agent transcript","description":"Downloads the sanitized, normalized transcript from one uploaded checkpoint as agent-readable Markdown or newline-delimited JSON. When `checkpoint` is omitted the latest uploaded checkpoint is used."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/agent_sessions/{id}/transcript_index":{"get":{"operationId":"transcript_index_api_v1_agent_session","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"id","required":true,"description":"Public id of the session.","schema":{"type":"string"}},{"in":"query","name":"checkpoint","required":false,"description":"Public id of a specific uploaded checkpoint. Defaults to the session's latest uploaded checkpoint.","schema":{"type":"string"}},{"in":"query","name":"chunk","required":false,"description":"Sequence number of a single chunk to serve instead of the index body. Must be a non-negative integer listed in the manifest's `chunks`; anything else is a 404. Clients follow the `url` from the index response rather than building this themselves.","schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"Without `chunk`: the transcript index state — when `state` is `ready` the `manifest` and the per-chunk `chunks` URLs are included, otherwise only `state`, `session_id`, and `checkpoint_id`. With `chunk`: that chunk object's raw JSON, zstd-encoded when the client accepts it.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"oneOf":[{"$ref":"#/components/schemas/SessionTranscriptIndexResponse"},{"$ref":"#/components/schemas/TranscriptIndexChunk"}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"The session is not readable, the pinned checkpoint does not exist, or the requested `chunk` is not in the manifest (or its object is gone)."},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"409":{"description":"The session has no uploaded checkpoint to index yet.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Derived transcript index for one checkpoint (manifest + chunk bytes)","description":"Returns the derived, chunked transcript index for one of the session's checkpoints: the manifest inline plus a same-origin URL per chunk. Those URLs point back at this same operation with `chunk=<seq>` appended, which serves the chunk object's bytes through the API — object storage answers signed GETs without CORS headers, so no signed URL is minted or returned here. When `checkpoint` is omitted the session's latest uploaded checkpoint is used. While the index is still being derived (or a build failed) the response is a bare `{state}` body (`preparing`/`failed`) and a build is lazily enqueued; poll until `state` is `ready`. Chunk bytes are zstd-compressed JSON: a client that advertises `zstd` in `Accept-Encoding` gets the stored bytes with `content-encoding: zstd`, any other client gets the same JSON decompressed. Chunk responses are immutable and cacheable (`private, max-age=86400, immutable`) because chunk objects are content-addressed."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/bookmark_protection_events":{"get":{"operationId":"api_v1_bookmark_protection_events","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"bookmark","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}}],"responses":{"200":{"description":"Recent bookmark protection events","content":{"application/json":{"schema":{"type":"array","additionalProperties":true,"items":{"type":"object","required":["id","bookmark_protection_rule_id","organization_id","repository_id","actor_user_id","bookmark_name","action","old_target","new_target","actor_kind","actor_label","intent","decision","source_request_id","created_at","updated_at","created_at_label","updated_at_label","reason_codes","metadata"],"properties":{"id":{"type":"string"},"bookmark_protection_rule_id":{"type":"string","nullable":true},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"actor_user_id":{"type":"string","nullable":true},"bookmark_name":{"type":"string"},"action":{"type":"string"},"old_target":{"type":"string","nullable":true},"new_target":{"type":"string","nullable":true},"actor_kind":{"type":"string","enum":["user","vex_automation","system","github_app","service"]},"actor_label":{"type":"string","nullable":true},"intent":{"type":"string","nullable":true},"decision":{"type":"string","enum":["allowed","denied","bypassed","simulated"]},"source_request_id":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true},"reason_codes":{"type":"array","items":{"type":"string"}},"metadata":{"type":"object","additionalProperties":true}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/bookmark_protections":{"get":{"operationId":"api_v1_bookmark_protections","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Bookmark protection rules","content":{"application/json":{"schema":{"type":"array","additionalProperties":true,"items":{"type":"object","required":["id","organization_id","repository_id","created_by_user_id","updated_by_user_id","name","enabled","priority","target_kind","target_pattern","bypass_mode","created_at","updated_at","requirements","actor_policy"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"created_by_user_id":{"type":"string","nullable":true},"updated_by_user_id":{"type":"string","nullable":true},"name":{"type":"string"},"enabled":{"type":"boolean"},"priority":{"type":"integer"},"target_kind":{"type":"string","enum":["exact","pattern","default_branch"]},"target_pattern":{"type":"string","nullable":true},"bypass_mode":{"type":"string","enum":["admins","none"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"requirements":{"type":"object","additionalProperties":true,"properties":{"ci":{"$ref":"#/components/schemas/BookmarkProtectionCiRequirements"}}},"actor_policy":{"type":"object","additionalProperties":true}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_bookmark_protections","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Bookmark protection rule created","content":{"application/json":{"schema":{"type":"object","required":["id","organization_id","repository_id","created_by_user_id","updated_by_user_id","name","enabled","priority","target_kind","target_pattern","bypass_mode","created_at","updated_at","requirements","actor_policy"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"created_by_user_id":{"type":"string","nullable":true},"updated_by_user_id":{"type":"string","nullable":true},"name":{"type":"string"},"enabled":{"type":"boolean"},"priority":{"type":"integer"},"target_kind":{"type":"string","enum":["exact","pattern","default_branch"]},"target_pattern":{"type":"string","nullable":true},"bypass_mode":{"type":"string","enum":["admins","none"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"requirements":{"type":"object","additionalProperties":true,"properties":{"ci":{"$ref":"#/components/schemas/BookmarkProtectionCiRequirements"}}},"actor_policy":{"type":"object","additionalProperties":true}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string"},"enabled":{"type":"boolean"},"priority":{"type":"integer"},"target_kind":{"type":"string","enum":["exact","pattern","default_branch"]},"target_pattern":{"type":"string","nullable":true},"bypass_mode":{"type":"string","enum":["admins","none"]},"requirements":{"type":"object","additionalProperties":true,"properties":{"ci":{"$ref":"#/components/schemas/BookmarkProtectionCiRequirements"}}},"actor_policy":{"type":"object","additionalProperties":true}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/bookmark_protections/refresh_github_required_checks":{"post":{"operationId":"refresh_github_required_checks_api_v1_bookmark_protections","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub required-check policy snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/GithubRequiredCheckSnapshot"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"github_branch":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/bookmark_protections/simulate":{"post":{"operationId":"simulate_api_v1_bookmark_protections","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Bookmark protection evaluation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["evaluation"],"properties":{"evaluation":{"type":"object","required":["allowed","bypassed","action","rule_id","reasons","metadata"],"properties":{"allowed":{"type":"boolean"},"bypassed":{"type":"boolean"},"action":{"type":"string"},"rule_id":{"type":"string","nullable":true},"reasons":{"type":"array","items":{"type":"object","required":["code","message","severity","details"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"severity":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}},"metadata":{"type":"object","additionalProperties":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["bookmark","to"],"properties":{"bookmark":{"type":"string"},"to":{"type":"string"},"from":{"type":"string","nullable":true},"intent":{"type":"string","nullable":true},"actor_kind":{"type":"string","nullable":true},"change_id":{"type":"string","nullable":true}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/bookmark_protections/{id}":{"get":{"operationId":"api_v1_bookmark_protection","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Bookmark protection rule","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","organization_id","repository_id","created_by_user_id","updated_by_user_id","name","enabled","priority","target_kind","target_pattern","bypass_mode","created_at","updated_at","requirements","actor_policy"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"created_by_user_id":{"type":"string","nullable":true},"updated_by_user_id":{"type":"string","nullable":true},"name":{"type":"string"},"enabled":{"type":"boolean"},"priority":{"type":"integer"},"target_kind":{"type":"string","enum":["exact","pattern","default_branch"]},"target_pattern":{"type":"string","nullable":true},"bypass_mode":{"type":"string","enum":["admins","none"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"requirements":{"type":"object","additionalProperties":true,"properties":{"ci":{"$ref":"#/components/schemas/BookmarkProtectionCiRequirements"}}},"actor_policy":{"type":"object","additionalProperties":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_organizations_org_slug_repos_repo_slug_bookmark_protections_id_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Bookmark protection rule updated","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","organization_id","repository_id","created_by_user_id","updated_by_user_id","name","enabled","priority","target_kind","target_pattern","bypass_mode","created_at","updated_at","requirements","actor_policy"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"created_by_user_id":{"type":"string","nullable":true},"updated_by_user_id":{"type":"string","nullable":true},"name":{"type":"string"},"enabled":{"type":"boolean"},"priority":{"type":"integer"},"target_kind":{"type":"string","enum":["exact","pattern","default_branch"]},"target_pattern":{"type":"string","nullable":true},"bypass_mode":{"type":"string","enum":["admins","none"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"requirements":{"type":"object","additionalProperties":true,"properties":{"ci":{"$ref":"#/components/schemas/BookmarkProtectionCiRequirements"}}},"actor_policy":{"type":"object","additionalProperties":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string"},"enabled":{"type":"boolean"},"priority":{"type":"integer"},"target_kind":{"type":"string","enum":["exact","pattern","default_branch"]},"target_pattern":{"type":"string","nullable":true},"bypass_mode":{"type":"string","enum":["admins","none"]},"requirements":{"type":"object","additionalProperties":true,"properties":{"ci":{"$ref":"#/components/schemas/BookmarkProtectionCiRequirements"}}},"actor_policy":{"type":"object","additionalProperties":true}}}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_org_slug_repos_repo_slug_bookmark_protections_id_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Bookmark protection rule updated","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","organization_id","repository_id","created_by_user_id","updated_by_user_id","name","enabled","priority","target_kind","target_pattern","bypass_mode","created_at","updated_at","requirements","actor_policy"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"created_by_user_id":{"type":"string","nullable":true},"updated_by_user_id":{"type":"string","nullable":true},"name":{"type":"string"},"enabled":{"type":"boolean"},"priority":{"type":"integer"},"target_kind":{"type":"string","enum":["exact","pattern","default_branch"]},"target_pattern":{"type":"string","nullable":true},"bypass_mode":{"type":"string","enum":["admins","none"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"requirements":{"type":"object","additionalProperties":true,"properties":{"ci":{"$ref":"#/components/schemas/BookmarkProtectionCiRequirements"}}},"actor_policy":{"type":"object","additionalProperties":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string"},"enabled":{"type":"boolean"},"priority":{"type":"integer"},"target_kind":{"type":"string","enum":["exact","pattern","default_branch"]},"target_pattern":{"type":"string","nullable":true},"bypass_mode":{"type":"string","enum":["admins","none"]},"requirements":{"type":"object","additionalProperties":true,"properties":{"ci":{"$ref":"#/components/schemas/BookmarkProtectionCiRequirements"}}},"actor_policy":{"type":"object","additionalProperties":true}}}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_organizations_org_slug_repos_repo_slug_bookmark_protections_id_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"204":{"description":"Bookmark protection rule deleted"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/ci/status/changes/{id}":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_ci_status_changes_id_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI status for a change","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["change_id","status","status_label","status_state","status_tone","patchsets"],"properties":{"change_id":{"type":"string"},"status":{"type":"string","enum":["absent","queued","running","succeeded","failed","canceled"]},"status_label":{"type":"string"},"status_state":{"type":"string"},"status_tone":{"type":"string"},"patchsets":{"type":"array","items":{"allOf":[{"type":"object","required":["status","status_label","status_state","status_tone","total","counts","checks"],"properties":{"status":{"type":"string","enum":["absent","queued","running","succeeded","failed","canceled"]},"status_label":{"type":"string"},"status_state":{"type":"string"},"status_tone":{"type":"string"},"total":{"type":"integer","minimum":0},"counts":{"type":"object","additionalProperties":{"type":"integer","minimum":0}},"checks":{"type":"array","items":{"type":"object","required":["run_id","run_slug","run_number","job_id","job_slug","name","status"],"properties":{"run_id":{"type":"string"},"run_slug":{"type":"string"},"run_number":{"type":"integer","minimum":1},"job_id":{"type":"string"},"job_slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","canceled","blocked"]},"conclusion":{"type":"string"},"allow_failure":{"type":"boolean"},"pipeline_id":{"type":"string"},"pipeline_slug":{"type":"string"},"ref_name":{"type":"string"},"commit_sha":{"type":"string"},"started_at":{"type":"string","format":"date-time"},"finished_at":{"type":"string","format":"date-time"},"source":{"type":"string"},"details_url":{"type":"string","format":"uri"},"external_id":{"type":"string"},"app_id":{"type":"integer"},"expected":{"type":"boolean"},"expected_since":{"type":"string","format":"date-time"},"requirement_source":{"type":"string"},"requirement_state":{"type":"string"}}}}}},{"type":"object","required":["patchset_id","commit_sha","checks_status"],"properties":{"patchset_id":{"type":"string"},"commit_sha":{"type":"string","nullable":true},"checks_status":{"type":"string","nullable":true}}}]}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/ci/status/commits/{commit_sha}":{"get":{"operationId":"api_v1_org_repo_ci_status","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"commit_sha","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI status for a commit","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"allOf":[{"type":"object","required":["status","status_label","status_state","status_tone","total","counts","checks"],"properties":{"status":{"type":"string","enum":["absent","queued","running","succeeded","failed","canceled"]},"status_label":{"type":"string"},"status_state":{"type":"string"},"status_tone":{"type":"string"},"total":{"type":"integer","minimum":0},"counts":{"type":"object","additionalProperties":{"type":"integer","minimum":0}},"checks":{"type":"array","items":{"type":"object","required":["run_id","run_slug","run_number","job_id","job_slug","name","status"],"properties":{"run_id":{"type":"string"},"run_slug":{"type":"string"},"run_number":{"type":"integer","minimum":1},"job_id":{"type":"string"},"job_slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","canceled","blocked"]},"conclusion":{"type":"string"},"allow_failure":{"type":"boolean"},"pipeline_id":{"type":"string"},"pipeline_slug":{"type":"string"},"ref_name":{"type":"string"},"commit_sha":{"type":"string"},"started_at":{"type":"string","format":"date-time"},"finished_at":{"type":"string","format":"date-time"},"source":{"type":"string"},"details_url":{"type":"string","format":"uri"},"external_id":{"type":"string"},"app_id":{"type":"integer"},"expected":{"type":"boolean"},"expected_since":{"type":"string","format":"date-time"},"requirement_source":{"type":"string"},"requirement_state":{"type":"string"}}}}}},{"type":"object","required":["commit_sha"],"properties":{"commit_sha":{"type":"string"}}}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/ci/status/patchsets/{id}":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_ci_status_patchsets_id_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI status for a patchset","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"allOf":[{"type":"object","required":["status","status_label","status_state","status_tone","total","counts","checks"],"properties":{"status":{"type":"string","enum":["absent","queued","running","succeeded","failed","canceled"]},"status_label":{"type":"string"},"status_state":{"type":"string"},"status_tone":{"type":"string"},"total":{"type":"integer","minimum":0},"counts":{"type":"object","additionalProperties":{"type":"integer","minimum":0}},"checks":{"type":"array","items":{"type":"object","required":["run_id","run_slug","run_number","job_id","job_slug","name","status"],"properties":{"run_id":{"type":"string"},"run_slug":{"type":"string"},"run_number":{"type":"integer","minimum":1},"job_id":{"type":"string"},"job_slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","canceled","blocked"]},"conclusion":{"type":"string"},"allow_failure":{"type":"boolean"},"pipeline_id":{"type":"string"},"pipeline_slug":{"type":"string"},"ref_name":{"type":"string"},"commit_sha":{"type":"string"},"started_at":{"type":"string","format":"date-time"},"finished_at":{"type":"string","format":"date-time"},"source":{"type":"string"},"details_url":{"type":"string","format":"uri"},"external_id":{"type":"string"},"app_id":{"type":"integer"},"expected":{"type":"boolean"},"expected_since":{"type":"string","format":"date-time"},"requirement_source":{"type":"string"},"requirement_state":{"type":"string"}}}}}},{"type":"object","required":["patchset_id","commit_sha","checks_status"],"properties":{"patchset_id":{"type":"string"},"commit_sha":{"type":"string","nullable":true},"checks_status":{"type":"string","nullable":true}}}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/ci/status/ref":{"get":{"operationId":"api_v1_org_repo_ci_status_ref","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"ref","in":"query","required":false,"description":"Ref to summarize. Omitted, the repository's default branch is resolved server-side and echoed back as `ref_name`.","schema":{"type":"string"}}],"responses":{"200":{"description":"CI status for a ref","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"allOf":[{"type":"object","required":["status","status_label","status_state","status_tone","total","counts","checks"],"properties":{"status":{"type":"string","enum":["absent","queued","running","succeeded","failed","canceled"]},"status_label":{"type":"string"},"status_state":{"type":"string"},"status_tone":{"type":"string"},"total":{"type":"integer","minimum":0},"counts":{"type":"object","additionalProperties":{"type":"integer","minimum":0}},"checks":{"type":"array","items":{"type":"object","required":["run_id","run_slug","run_number","job_id","job_slug","name","status"],"properties":{"run_id":{"type":"string"},"run_slug":{"type":"string"},"run_number":{"type":"integer","minimum":1},"job_id":{"type":"string"},"job_slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","canceled","blocked"]},"conclusion":{"type":"string"},"allow_failure":{"type":"boolean"},"pipeline_id":{"type":"string"},"pipeline_slug":{"type":"string"},"ref_name":{"type":"string"},"commit_sha":{"type":"string"},"started_at":{"type":"string","format":"date-time"},"finished_at":{"type":"string","format":"date-time"},"source":{"type":"string"},"details_url":{"type":"string","format":"uri"},"external_id":{"type":"string"},"app_id":{"type":"integer"},"expected":{"type":"boolean"},"expected_since":{"type":"string","format":"date-time"},"requirement_source":{"type":"string"},"requirement_state":{"type":"string"}}}}}},{"type":"object","required":["ref_name"],"properties":{"ref_name":{"type":"string"}}}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/cloud_workspace_backups":{"get":{"operationId":"api_v1_cloud_workspace_backups","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_cloud_workspace_backups","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/cloud_workspace_backups/{backup_key}":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_cloud_workspace_backups_backup_key_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"backup_key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/cloud_workspace_backups/{backup_key}/objects/{object_key}":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_cloud_workspace_backups_backup_key_objects_object_key_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"backup_key","in":"path","required":true,"schema":{"type":"string"}},{"name":"object_key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/cloud_workspace_backups/{backup_key}/restore_request":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_cloud_workspace_backups_backup_key_restore_request","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"backup_key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/publications":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_publications","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_acceptance_baseline":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_acceptance_baseline","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Bounded retained protobuf bytes under the current worker lease","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["generation","encoding","sha256","payload"],"properties":{"generation":{"type":"integer","minimum":1},"encoding":{"type":"string","enum":["protobuf-baseline-v1"]},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"payload":{"type":"string","maxLength":5592408,"description":"Strict base64 of at most max_bytes bytes"}}}}}},"401":{"description":"Worker capability invalid","expired or for another repository":null},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid cursor","limits or request fields":null},"409":{"description":"Lease or native binding changed while reading"},"503":{"description":"Retained storage unavailable or response unconfirmed"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["max_bytes"],"properties":{"max_bytes":{"type":"integer","minimum":1,"maximum":4194304}}}}}},"security":[{"bearerAuth":[]}],"summary":"Read retained Git acceptance baseline under a repository worker lease","description":"Internal operation requiring activated mirror ownership. Repository and sync generation are derived from the capability and ownership is rechecked after storage. Returns no-store base64 protobuf and SHA256. The consumer must decode and validate the protobuf. This read neither activates retention nor acknowledges native completion. No caller-supplied storage identity is accepted."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_acceptance_boundary":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_acceptance_boundary","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current committed acceptance history boundary","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["repo","object_format","generation","writer_generation","seq","baseline_seq","baseline_sha256","history_sha256"],"properties":{"repo":{"type":"string","description":"Exact storage repository identity"},"object_format":{"type":"string","enum":["sha1","sha256"]},"generation":{"type":"integer","minimum":1},"writer_generation":{"type":"integer","minimum":0,"maximum":18446744073709551615},"seq":{"type":"integer","minimum":0,"maximum":18446744073709551615},"baseline_seq":{"type":"integer","minimum":0,"maximum":18446744073709551614,"description":"Must not exceed seq"},"baseline_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"history_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}}}}}},"401":{"description":"Worker capability invalid, expired or for another repository"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Unexpected request fields"},"409":{"description":"Lease or native binding changed while reading"},"503":{"description":"Retained storage unavailable or response unconfirmed"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"security":[{"bearerAuth":[]}],"summary":"Read committed Git history identity under a repository worker lease","description":"Internal read requiring activated mirror ownership, rechecked after storage. Scope and generation derive from the worker capability. Returns no-store metadata from one committed manifest; this is not proof of native completion or permission to retire source storage. Concurrent pushes may advance it."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_acceptance_log":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_acceptance_log","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Bounded retained protobuf bytes under the current worker lease","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["generation","encoding","sha256","payload"],"properties":{"generation":{"type":"integer","minimum":1},"encoding":{"type":"string","enum":["protobuf-log-v1"]},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"payload":{"type":"string","maxLength":5592408,"description":"Strict base64 of at most max_bytes bytes"}}}}}},"401":{"description":"Worker capability invalid","expired or for another repository":null},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid cursor","limits or request fields":null},"409":{"description":"Lease or native binding changed while reading"},"503":{"description":"Retained storage unavailable or response unconfirmed"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["after","max_bytes","max_segments"],"properties":{"max_bytes":{"type":"integer","minimum":1,"maximum":4194304},"after":{"type":"integer","minimum":0,"maximum":18446744073709551615},"max_segments":{"type":"integer","minimum":1,"maximum":64}}}}}},"security":[{"bearerAuth":[]}],"summary":"Read retained Git acceptance log under a repository worker lease","description":"Internal operation requiring activated mirror ownership. Repository and sync generation are derived from the capability and ownership is rechecked after storage. Returns no-store base64 protobuf and SHA256. The consumer must decode and validate the protobuf. This read neither activates retention nor acknowledges native completion. No caller-supplied storage identity is accepted."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_acceptance_pack":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_acceptance_pack","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Verified chunk under the current lease; Cache-Control no-store","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["generation","checksum","part","offset","object_size","sha256","payload"],"properties":{"generation":{"type":"integer","minimum":1},"checksum":{"type":"string","pattern":"^(?:[0-9a-f]{40}|[0-9a-f]{64})$"},"part":{"type":"string","enum":["pack","index"]},"offset":{"type":"integer","minimum":0,"maximum":18446744073709551615},"object_size":{"type":"integer","minimum":1,"maximum":18446744073709551615},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"payload":{"type":"string","maxLength":5592408,"description":"Strict base64 encoding of exactly length bytes"}}}}}},"401":{"description":"Worker capability invalid","expired or for another repository":null},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid source","range or extra request fields":null},"409":{"description":"Ownership or native binding changed during transfer"},"503":{"description":"Git storage unavailable or response unconfirmed"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["source","part","offset","length"],"properties":{"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","seq"],"properties":{"kind":{"type":"string","enum":["publication"]},"seq":{"type":"integer","minimum":1,"maximum":18446744073709551615}}},{"type":"object","additionalProperties":false,"required":["kind","checksum"],"properties":{"kind":{"type":"string","enum":["baseline"]},"checksum":{"type":"string","pattern":"^(?:[0-9a-f]{40}|[0-9a-f]{64})$"}}}]},"part":{"type":"string","enum":["pack","index"]},"offset":{"type":"integer","minimum":0,"maximum":18446744073709551615},"length":{"type":"integer","minimum":1,"maximum":4194304}}}}}},"security":[{"bearerAuth":[]}],"summary":"Read a bounded retained Git pack range using a repository worker lease","description":"Internal operation deriving repository and generation from an activated worker capability. Ownership and native binding are rechecked after storage. The source must identify an accepted publication or a pack in the immutable baseline. Returns a verified chunk, not proof of complete pack integrity or native completion."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_acceptance_replay":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_acceptance_replay","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Exact captured bytes verified against the immutable read manifest","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["generation","capture_id","capture_sha256","page","history_sha256","encoding","sha256","payload"],"properties":{"generation":{"type":"integer","minimum":1},"capture_id":{"type":"integer","minimum":1},"history_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"capture_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"page":{"type":"integer","minimum":0,"maximum":1024},"encoding":{"type":"string","enum":["protobuf-baseline-v1","protobuf-log-v1"]},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"payload":{"type":"string","maxLength":5592408,"description":"Strict base64 of at most 4 MiB"}}}}}},"401":{"description":"Worker capability invalid","expired or for another repository":null},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid request or capture/page unavailable in this repository"},"409":{"description":"Ownership changed or captured replay evidence is unconfirmed"},"503":{"description":"Retained artifact storage unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["capture_id","page"],"properties":{"capture_id":{"type":"integer","minimum":1,"maximum":9223372036854775807},"page":{"type":"integer","minimum":0,"maximum":1024}}}}}},"security":[{"bearerAuth":[]}],"summary":"Recover an immutable captured Git history page under current worker ownership","description":"Reads retained content-addressed artifacts from a repository-scoped capture. Page zero is the baseline; positive pages are the original log pages. Captures remain readable across worker replacement only under the same native repository binding. Every chunk and the full page are verified, with ownership rechecked before response. This does not acknowledge native publication."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_artifacts":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_artifacts","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current owner confirmed checksum-verified durable artifact","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["generation","digest","artifact"],"properties":{"generation":{"type":"integer","minimum":1},"digest":{"type":"string","pattern":"^[0-9a-f]{64}$"},"artifact":{"type":"string","maxLength":349528}}}}}},"401":{"description":"Worker capability expired or invalid"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid recovery artifact request"},"409":{"description":"Ownership or binding changed during storage operation"},"503":{"description":"Git storage unavailable or artifact unconfirmed"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["digest"],"properties":{"digest":{"type":"string","pattern":"^[0-9a-f]{64}$"},"artifact":{"type":"string","maxLength":349528,"description":"Strict base64 encoding of at most 262144 bytes"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Store or retrieve immutable Git mirror recovery metadata","description":"Internal operation requiring an activated mirror worker capability. Repository and generation are derived from that capability and rechecked after storage. Omit artifact to read; supply strict base64 to write. Decoded bytes are limited to 256 KiB and must match the lowercase SHA256 digest. This does not advance refs or checkpoints. An ambiguous write may leave an immutable artifact."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_divergences":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_divergences","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Divergence confirmed and synchronization paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["diverged","generation"],"properties":{"diverged":{"type":"boolean"},"generation":{"type":"integer","minimum":1}}}}}},"401":{"description":"Worker capability or ownership invalid"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid divergence report"},"409":{"description":"Current state does not confirm divergence"},"503":{"description":"Destination readback unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["ref_name","checkpoint_version"],"properties":{"ref_name":{"type":"string","maxLength":1024},"checkpoint_version":{"type":"integer","minimum":0}}}}}},"security":[{"bearerAuth":[]}],"summary":"Verify independent ref changes and pause mirror synchronization","description":"Requires activated mirror ownership. Rails reads both destinations, then rechecks ownership and checkpoint version under lock. Both heads must have changed since the checkpoint and no publication may be pending. Confirmation preserves checkpoint heads, marks the mirror diverged and clears its lease. The existing capability becomes invalid. Ref objects are not modified."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_git_completions":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_git_completions","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Git target confirmed and checkpoint completed","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["ok","checkpoint_version"],"properties":{"ok":{"type":"boolean"},"checkpoint_version":{"type":"integer","minimum":2}}}}}},"401":{"description":"Worker capability expired or invalid"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid publication request"},"409":{"description":"Ownership","checkpoint":null,"destination or ref changed":null},"503":{"description":"Git storage unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["ref_name","checkpoint_version"],"properties":{"ref_name":{"type":"string","maxLength":1024},"checkpoint_version":{"type":"integer","minimum":1},"sequence":{"type":"integer","minimum":1,"maximum":9223372036854775807}}}}}},"security":[{"bearerAuth":[]}],"summary":"Confirm a persisted Git sync intent using durable storage readback","description":"Internal operation requiring a short-lived activated mirror capability. The target comes from the persisted NativeToGit checkpoint, not the request. Durable owner-routed ref readback must match before completion. Ownership, binding and intent are rechecked before saving. Stale retries must reload their checkpoint through worker_snapshots. Home completion also verifies the bounded recovery artifact, native record identities, manifest metadata and prior-source ancestry. Optional sequence selects a retained publication; the coordinator verifies its principal, fence, ref transition and absence of intervening input, starting from the stored sequence or activation baseline. Live ref readback is unnecessary for that mode. This does not enable fleet rollout."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_home_receive_completion":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_home_receive_completion","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Completed operation and authoritative checkpoint version.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["operation","checkpoint_version"],"properties":{"operation":{"type":"object","additionalProperties":true},"checkpoint_version":{"type":"integer","minimum":1}}}}}},"401":{"description":"Expired or mismatched worker ownership"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid request"},"409":{"description":"Publication not confirmed or checkpoint changed"},"503":{"description":"Git storage or native selection unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["ref_name","checkpoint_version","sequence"],"properties":{"ref_name":{"type":"string","maxLength":1024},"checkpoint_version":{"type":"integer","minimum":0},"chain_position":{"type":"integer","minimum":0,"maximum":2147483647,"default":0,"description":"Exact receive position within the branch export checkpoint. Zero selects the original operation."},"sequence":{"type":"integer","minimum":1,"maximum":9223372036854775807}}}}}},"security":[{"bearerAuth":[]}],"summary":"Complete a reserved Home export from durable Git publication evidence","description":"Sequence is only a discovery hint. Rails reads accepted Git storage and verifies the exact original and exported refs, mirror principal and writer generation before advancing the checkpoint. Retained receipts support retries even if a later push has moved the branch. Worker-supplied publication receipts are ignored."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_home_receive_export":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_home_receive_export","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Persisted receive operation; no destination publication is implied.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["operation"],"properties":{"operation":{"type":"object","nullable":true,"properties":{"ref_name":{"type":"string"},"checkpoint_version":{"type":"integer"},"chain_position":{"type":"integer","minimum":0,"maximum":2147483647},"status":{"type":"string","enum":["pending","native_complete","complete","included","diverged"]},"intent":{"type":"object","additionalProperties":true},"receipts":{"type":"object","additionalProperties":{"type":"string"}},"export_state":{"type":"object","nullable":true,"additionalProperties":true},"export_publication":{"type":"object","nullable":true,"additionalProperties":true}}}}}}}},"401":{"description":"Expired or mismatched worker ownership"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid export state or composition"},"409":{"description":"Operation or destination changed"},"503":{"description":"Native source or storage unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["ref_name","checkpoint_version","state"],"properties":{"ref_name":{"type":"string","maxLength":1024},"checkpoint_version":{"type":"integer","minimum":0},"chain_position":{"type":"integer","minimum":0,"maximum":2147483647,"default":0,"description":"Exact receive position within the branch export checkpoint. Zero selects the original operation."},"state":{"type":"object","additionalProperties":true},"home_selection":{"type":"object","required":["manifest_json","access_token"],"properties":{"manifest_json":{"type":"string","maxLength":262144},"access_token":{"type":"string","maxLength":131072,"description":"Selected read credential; never log or persist."}}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Reserve the composed Git export after native Home publication","description":"Verifies current selected native refs, confirmed partitions, exact composed recovery objects and unchanged accepted Git destination before reserving the immutable export target. Does not publish a Git ref or advance the checkpoint."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_home_receive_publication":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_home_receive_publication","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Publication recovery result and latest operation state.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["published","operation"],"properties":{"published":{"type":"boolean"},"operation":{"type":"object","additionalProperties":true}}}}}},"401":{"description":"Expired or mismatched worker ownership"},"403":{"description":"Bookmark protection rejected publication"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid request or original push authority"},"409":{"description":"Prepared operation or native ref changed"},"503":{"description":"Native publication or receipt unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["ref_name","checkpoint_version","repository_id"],"properties":{"ref_name":{"type":"string","maxLength":1024},"checkpoint_version":{"type":"integer","minimum":0},"chain_position":{"type":"integer","minimum":0,"maximum":2147483647,"default":0,"description":"Exact receive position within the branch export checkpoint. Zero selects the original operation."},"repository_id":{"type":"string","pattern":"^[1-9][0-9]{0,19}$"},"recover_only":{"type":"boolean","default":true,"description":"Publication only; false explicitly requests protected dispatch."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Recover or publish a prepared native Home partition","description":"Defaults to receipt recovery without dispatching a new ref update. Explicit recover_only=false permits protected publication attributed to the original accepted Git pusher. Rails validates the exact immutable partition, parent, tree and version, applies the native writer fence, and records only backend-confirmed receipts. The Git checkpoint remains unchanged."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_home_receive_refresh":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_home_receive_refresh","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Persisted receive operation; no destination publication is implied.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["operation"],"properties":{"operation":{"type":"object","nullable":true,"properties":{"ref_name":{"type":"string"},"checkpoint_version":{"type":"integer"},"chain_position":{"type":"integer","minimum":0,"maximum":2147483647},"status":{"type":"string","enum":["pending","native_complete","complete","included","diverged"]},"intent":{"type":"object","additionalProperties":true},"receipts":{"type":"object","additionalProperties":{"type":"string"}},"export_state":{"type":"object","nullable":true,"additionalProperties":true},"export_publication":{"type":"object","nullable":true,"additionalProperties":true}}}}}}}},"401":{"description":"Expired or mismatched worker ownership"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid receive selector"},"409":{"description":"Receive or checkpoint changed"},"503":{"description":"Manifest publication unavailable; receipts retained for retry"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["ref_name","checkpoint_version"],"properties":{"ref_name":{"type":"string","maxLength":1024},"checkpoint_version":{"type":"integer","minimum":0},"chain_position":{"type":"integer","minimum":0,"maximum":2147483647,"default":0}}}}}},"security":[{"bearerAuth":[]}],"summary":"Refresh the Home manifest after confirmed native partition publications","description":"Requires current worker ownership and the native-complete receive tail. Publishes the current native selection before export reservation. Retries preserve receipts and the original checkpoint; a reserved export is never replaced. This does not publish Git refs."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_home_receive_status":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_home_receive_status","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Persisted receive operation; no destination publication is implied.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["operation"],"properties":{"operation":{"type":"object","nullable":true,"properties":{"ref_name":{"type":"string"},"checkpoint_version":{"type":"integer"},"chain_position":{"type":"integer","minimum":0,"maximum":2147483647},"status":{"type":"string","enum":["pending","native_complete","complete","included","diverged"]},"intent":{"type":"object","additionalProperties":true},"receipts":{"type":"object","additionalProperties":{"type":"string"}},"export_state":{"type":"object","nullable":true,"additionalProperties":true},"export_publication":{"type":"object","nullable":true,"additionalProperties":true}}}}}}}},"401":{"description":"Expired or mismatched worker ownership"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid request"},"409":{"description":"Ownership or source changed"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["ref_name","checkpoint_version"],"properties":{"resume":{"type":"boolean","default":false,"description":"Select the latest native-complete receive. Cannot be combined with chain_position."},"ref_name":{"type":"string","maxLength":1024},"checkpoint_version":{"type":"integer","minimum":0},"chain_position":{"type":"integer","minimum":0,"maximum":2147483647,"default":0,"description":"Exact receive position within the branch export checkpoint. Zero selects the original operation."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Recover a Home receive operation under current worker ownership","description":"Selects only this mirror's exact ref, checkpoint version and chain position. A missing operation returns null. With resume true and no chain_position, returns the latest native-complete operation after checking the original checkpoint. No native publication or checkpoint advancement occurs."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_home_receive_targets":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_home_receive_targets","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Selection-bound physical targets and current CAS versions.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["manifest_generation","manifest_digest","targets"],"properties":{"manifest_generation":{"type":"integer","minimum":1},"manifest_digest":{"type":"string","pattern":"^[0-9a-f]{64}$"},"targets":{"type":"array","maxItems":256,"items":{"type":"object","required":["repository_id","root_path","parent","ref_name","ref_version"],"properties":{"repository_id":{"type":"string"},"root_path":{"type":"string"},"parent":{"type":"string"},"ref_name":{"type":"string"},"ref_version":{"type":"integer","minimum":1}}}}}}}}},"401":{"description":"Expired or mismatched worker ownership"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid boundary or selected ref"},"409":{"description":"Selected native ref or checkpoint changed"},"503":{"description":"Source selection or native read unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["ref_name","checkpoint_version","source_boundary"],"properties":{"ref_name":{"type":"string","maxLength":1024},"checkpoint_version":{"type":"integer","minimum":0},"chain_position":{"type":"integer","minimum":0,"maximum":2147483647,"default":0,"description":"Exact receive position within the branch export checkpoint. Zero selects the original operation."},"source_boundary":{"type":"string","pattern":"^home:[1-9][0-9]{0,19}:[0-9a-f]{64}$"},"home_selection":{"type":"object","additionalProperties":true}}}}}},"security":[{"bearerAuth":[]}],"summary":"Read exact selected native bookmark versions for Home receive planning","description":"Rails uses internal read credentials to verify each physical native repository and selected bookmark. Rejects a ref moved beyond the selected revision and rechecks the Home checkpoint and membership. Returns no native credentials and performs no publication."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_home_receive_upload":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_home_receive_upload","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Scoped object write credential.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["tenant_id","repo_id","repo_slug","access_token","expires_in"],"properties":{"tenant_id":{"type":"string"},"repo_id":{"type":"string"},"repo_slug":{"type":"string"},"access_token":{"type":"string"},"expires_in":{"type":"integer","enum":[60]}}}}}},"401":{"description":"Expired or mismatched worker ownership"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid or unselected partition"},"409":{"description":"Prepared operation or authority changed"},"503":{"description":"Source or storage unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["ref_name","checkpoint_version","repository_id"],"properties":{"ref_name":{"type":"string","maxLength":1024},"checkpoint_version":{"type":"integer","minimum":0},"chain_position":{"type":"integer","minimum":0,"maximum":2147483647,"default":0,"description":"Exact receive position within the branch export checkpoint. Zero selects the original operation."},"repository_id":{"type":"string","pattern":"^[1-9][0-9]{0,19}$"},"recover_only":{"type":"boolean","default":true,"description":"Publication only; false explicitly requests protected dispatch."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Issue a scoped object-upload credential for a prepared Home partition","description":"Revalidates the original pusher, retained selection, pending partition and live worker ownership. The 60-second credential can write objects only in the selected native repository; it cannot publish refs. Never log or persist the credential."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_home_receives":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_home_receives","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Persisted receive operation; no destination publication is implied.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["operation"],"properties":{"operation":{"type":"object","nullable":true,"properties":{"ref_name":{"type":"string"},"checkpoint_version":{"type":"integer"},"chain_position":{"type":"integer","minimum":0,"maximum":2147483647},"status":{"type":"string","enum":["pending","native_complete","complete","included","diverged"]},"intent":{"type":"object","additionalProperties":true},"receipts":{"type":"object","additionalProperties":{"type":"string"}},"export_state":{"type":"object","nullable":true,"additionalProperties":true},"export_publication":{"type":"object","nullable":true,"additionalProperties":true}}}}}}}},"401":{"description":"Expired or mismatched worker ownership"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid receive or object proof"},"409":{"description":"Checkpoint or source selection changed"},"503":{"description":"Source or object storage unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["ref_name","checkpoint_version","intent","proof_digest"],"properties":{"ref_name":{"type":"string","maxLength":1024},"checkpoint_version":{"type":"integer","minimum":0},"chain_position":{"type":"integer","minimum":0,"maximum":2147483647,"default":0,"description":"Exact receive position within the branch export checkpoint. Zero selects the original operation."},"intent":{"type":"object","additionalProperties":true},"proof_digest":{"type":"string","pattern":"^[0-9a-f]{64}$"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Validate and retain a Home Git receive plan","description":"Requires activated scoped mirror worker ownership. Rails authenticates accepted Git history, the original pusher, retained Home selection and exact native conversion and partition proofs. This records the operation but does not publish native refs or advance the Git checkpoint. A positive chain_position requires the preceding durable receive; Rails proves the next accepted input against that predecessor. Native read credentials are issued by Rails."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_intents":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_intents","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Pending checkpoint recorded, destination publication not yet acknowledged","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["ok","checkpoint_version"],"properties":{"ok":{"type":"boolean"},"checkpoint_version":{"type":"integer","minimum":1}}}}}},"401":{"description":"Invalid or expired scoped worker capability"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid conversion intent"},"409":{"description":"Source","ownership":null,"checkpoint or immutable identity changed":null},"503":{"description":"Source readback unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["ref_name","checkpoint_version","pending","identities"],"properties":{"ref_name":{"type":"string","maxLength":1024},"checkpoint_version":{"type":"integer","minimum":0},"home_selection":{"type":"object","additionalProperties":false,"required":["manifest_json","access_token"],"properties":{"manifest_json":{"type":"string","maxLength":262144},"access_token":{"type":"string","maxLength":131072,"description":"Still-valid selected mirror read token; never log or persist."}}},"pending":{"type":"object","additionalProperties":false,"required":["direction","before","after","native_version"],"properties":{"direction":{"type":"string","enum":["GitToNative","NativeToGit"]},"native_version":{"type":"integer","minimum":0},"before":{"type":"object","additionalProperties":false,"required":["git","native"],"properties":{"git":{"type":"string","nullable":true,"pattern":"^[0-9a-f]{40}$"},"native":{"type":"string","nullable":true,"pattern":"^[0-9a-f]{64}$"}}},"after":{"type":"object","additionalProperties":false,"required":["git","native"],"properties":{"git":{"type":"string","nullable":true,"pattern":"^[0-9a-f]{40}$"},"native":{"type":"string","nullable":true,"pattern":"^[0-9a-f]{64}$"}}},"component_source":{"type":"object","additionalProperties":false,"required":["before","after"],"properties":{"before":{"type":"string","nullable":true,"pattern":"^[0-9a-f]{64}$"},"after":{"type":"string","nullable":true,"pattern":"^[0-9a-f]{64}$"}}},"home_source":{"type":"object","additionalProperties":false,"description":"Aggregate Home only; mutually exclusive with component_source.","required":["before","after"],"properties":{"after":{"type":"object","additionalProperties":false,"required":["manifest_generation","manifest_digest","composed","source","artifact_digest"],"properties":{"manifest_generation":{"type":"integer","minimum":1},"manifest_digest":{"type":"string","pattern":"^[0-9a-f]{64}$"},"composed":{"type":"string","pattern":"^[0-9a-f]{64}$"},"source":{"type":"string","pattern":"^[0-9a-f]{64}$"},"artifact_digest":{"type":"string","pattern":"^[0-9a-f]{64}$"}}},"before":{"type":"object","additionalProperties":false,"required":["manifest_generation","manifest_digest","composed","source","artifact_digest"],"properties":{"manifest_generation":{"type":"integer","minimum":1},"manifest_digest":{"type":"string","pattern":"^[0-9a-f]{64}$"},"composed":{"type":"string","pattern":"^[0-9a-f]{64}$"},"source":{"type":"string","pattern":"^[0-9a-f]{64}$"},"artifact_digest":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"nullable":true}}}}},"identities":{"type":"object","maxProperties":1000,"description":"Immutable native commit ID to Git commit ID mappings from the trusted converter","additionalProperties":{"type":"string","pattern":"^[0-9a-f]{40}$"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Record pending conversion from a trusted scoped mirror worker","description":"Requires activated internal mirror ownership. Conversion identities are assertions from the trusted converter, not independent byte attestations. Rails verifies the observed refs and native version before recording pending intent and immutable mappings atomically. This does not acknowledge destination publication. Home export uses its selected manifest generation rather than a physical Home ref version. An older selection requires home_selection proof; the canonical manifest must already be stored through worker_artifacts under its SHA-256 digest. Current membership and native identities must still match, and the checkpoint and Git destination must not change. Conflicts require a checkpoint reload. Fleet provisioning remains disabled."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_publications":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_publications","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Native publication confirmed and checkpoint completed","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["ok","checkpoint_version"],"properties":{"ok":{"type":"boolean"},"checkpoint_version":{"type":"integer","minimum":2}}}}}},"401":{"description":"Worker capability expired or invalid"},"403":{"description":"Bookmark protection denied publication"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid publication request"},"409":{"description":"Ownership","checkpoint":null,"destination or ref changed":null},"503":{"description":"Native publication unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["ref_name","checkpoint_version"],"properties":{"ref_name":{"type":"string","maxLength":1024},"checkpoint_version":{"type":"integer","minimum":1}}}}}},"security":[{"bearerAuth":[]}],"summary":"Publish a persisted native sync intent using activated worker ownership","description":"Internal mirror worker operation requiring a short-lived mirror capability. Target IDs and ref CAS come from the persisted checkpoint. Bookmark protection and the server-owned publication fence apply. A durable native receipt completes the checkpoint; retries of that completed version return its acknowledgement without another ref update. Worker provisioning and the production fleet rollout are not enabled by this endpoint."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_readiness":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_readiness","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_ref_inventories":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_ref_inventories","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Bounded checkpoint names and exclusive continuation cursor","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["generation","refs","next_after_key"],"properties":{"generation":{"type":"integer","minimum":1},"refs":{"type":"array","maxItems":64,"items":{"type":"object","required":["key","name","settled_heads"],"properties":{"key":{"type":"string","pattern":"^[0-9a-f]{64}$"},"name":{"type":"string","maxLength":1024},"settled_heads":{"type":["object","null"],"required":["git","native"],"properties":{"git":{"type":["string","null"],"pattern":"^[0-9a-f]{40}$"},"native":{"type":["string","null"],"pattern":"^[0-9a-f]{64}$"}}}}}},"next_after_key":{"type":"string","pattern":"^([0-9a-f]{64})?$"}}}}}},"401":{"description":"Worker capability or ownership invalid"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid cursor or page limit"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"after_key":{"type":"string","default":"","pattern":"^([0-9a-f]{64})?$"},"limit":{"type":"integer","default":64,"minimum":1,"maximum":64}}}}}},"security":[{"bearerAuth":[]}],"summary":"Page through mirror checkpoint names and settled heads","description":"Requires current activated mirror ownership. Includes names absent from both destinations so replacement workers can recover unresolved checkpoints. Pages use the existing mirror/ref-key index and do not renew ownership. Settled heads are null for pending work, newer publications and Home composition; they may suppress work only after complete fresh native and Git inventories agree. Each page observes current authority; repeat sweeps after concurrent changes. A full final page requires one more request to observe exhaustion."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_releases":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_releases","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current ownership released","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["released","generation"],"properties":{"released":{"type":"boolean","enum":[true]},"generation":{"type":"integer","minimum":1}}}}}},"401":{"description":"Capability or ownership expired","invalid":null,"replaced or rebound":null},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Release the current mirror worker's ownership","description":"Requires the current activated mirror capability and unchanged repository binding. An old or expired owner cannot release a replacement. Pending checkpoints and object identities remain available to the next owner."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_renewals":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_renewals","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current ownership extended for 60 seconds","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["token","native_token","expires_in","generation"],"properties":{"token":{"type":"string"},"native_token":{"type":"string","description":"Short-lived repository object upload and read credential; cannot publish native refs"},"expires_in":{"type":"integer","enum":[60]},"generation":{"type":"integer","minimum":1}}}}}},"401":{"description":"Capability or ownership expired","invalid":null,"replaced or rebound":null},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"503":{"description":"Native credential signing unavailable; ownership not extended"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Renew activated mirror worker ownership and its capability","description":"Internal workers must renew before their current capability and lease expire. Requires the existing mirror capability; normal user tokens cannot acquire ownership here. Preserves the generation and repository binding. Does not provision workers or enable the production synchronization fleet."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/git_sync/worker_snapshots":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_git_sync_worker_snapshots","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current persisted state and requested identities","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["generation","checkpoint","identities"],"properties":{"generation":{"type":"integer","minimum":1},"checkpoint":{"type":"object","nullable":true,"required":["ref_name","version","publication_generation","native_publication_id","git_publication_sequence","state"],"properties":{"ref_name":{"type":"string"},"version":{"type":"integer","minimum":1},"publication_generation":{"type":"integer","minimum":0},"native_publication_id":{"type":"string","nullable":true},"git_publication_sequence":{"type":"integer","minimum":1,"nullable":true,"description":"Verified Git publication sequence for this checkpoint; null requires explicit replay bootstrap."},"state":{"type":"object","additionalProperties":true}}},"home_source":{"type":"object","description":"Present only for an available aggregate Home selection.","required":["format_version","generation","manifest_artifact_suffix","manifest_content_sha256","manifest_json","repositories","source_boundary","access_token","expires_in"],"properties":{"format_version":{"type":"integer","enum":[1]},"generation":{"type":"integer","minimum":1},"manifest_artifact_suffix":{"type":"string"},"manifest_content_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"manifest_json":{"type":"string","maxLength":262144},"source_boundary":{"type":"string"},"access_token":{"type":"string","description":"Short-lived read credential; never persist or log."},"expires_in":{"type":"integer","enum":[60]},"repositories":{"type":"array","maxItems":256,"items":{"type":"object","required":["repo_id","repo_slug","root_path"],"properties":{"repo_id":{"type":"string"},"repo_slug":{"type":"string"},"root_path":{"type":"string"}}}}}},"identities":{"type":"array","maxItems":1000,"items":{"type":"object","required":["native_commit_id","git_commit_id"],"properties":{"native_commit_id":{"type":"string","pattern":"^[0-9a-f]{64}$"},"git_commit_id":{"type":"string","pattern":"^[0-9a-f]{40}$"}}}}}}}}},"401":{"description":"Worker capability or ownership invalid"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid or oversized snapshot request"},"409":{"description":"Checkpoint ownership or reverse identity is inconsistent, or Home selection unavailable or changed"},"503":{"description":"Durable Home recovery manifest unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["ref_name"],"properties":{"ref_name":{"type":"string","maxLength":1024},"include_home_source":{"type":"boolean","default":true},"home_source_boundary":{"type":"string","pattern":"^home:[1-9][0-9]{0,19}:[0-9a-f]{64}$"},"home_selection":{"type":"object","additionalProperties":false,"required":["manifest_json","access_token"],"properties":{"manifest_json":{"type":"string","maxLength":262144},"access_token":{"type":"string","maxLength":131072,"description":"Still-valid selected mirror read credential; never log or persist."}}},"native_commit_ids":{"type":"array","maxItems":1000,"items":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"git_commit_ids":{"type":"array","maxItems":1000,"items":{"type":"string","pattern":"^[0-9a-f]{40}$"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Read a mirror checkpoint and selected commit identities","description":"Internal operation requiring an activated mirror worker capability. Reads under the ownership lock without renewing it. At most 1000 identity IDs in total may be requested. Missing identities are omitted; a missing checkpoint is null. Ambiguous Git-to-native mappings return a conflict. Home snapshots also carry the exact published manifest and a short-lived selected-history read credential. Supply home_source_boundary on refresh to reject a changed selection. To renew an in-flight older selection, also supply home_selection with its canonical manifest and still-valid mirror read token. Current membership, native identities and active worker ownership must still match. Expired tokens cannot renew a selection. Without home_selection, an older boundary can only be recovered when it matches this branch's persisted pending or completed Home checkpoint and its digest-verified manifest remains in Git storage. Active ownership and current membership still apply; an arbitrary retained artifact is not authority. This does not renew the worker lease. Set include_home_source=false without a boundary or proof to read checkpoint state while Home publication is unavailable. No source credential is issued. This endpoint does not authorize checkpoint writes or provision workers."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/knowledge_settings":{"get":{"operationId":"api_v1_knowledge_settings","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repository Knowledge folder settings","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["folders","configured","can_manage"],"properties":{"folders":{"type":"array","items":{"type":"string"}},"configured":{"type":"boolean"},"can_manage":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read the repository's shared Knowledge folder settings"},"patch":{"operationId":"patch_api_v1_organizations_org_slug_repos_repo_slug_knowledge_settings","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated repository Knowledge folder settings","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["folders","configured","can_manage"],"properties":{"folders":{"type":"array","items":{"type":"string"}},"configured":{"type":"boolean"},"can_manage":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["folders"],"properties":{"folders":{"type":"array","items":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Update the repository's shared Knowledge folder settings"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/pages/access":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_pages_access","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"org_slug","required":true,"schema":{"type":"string"}},{"in":"path","name":"repo_slug","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repository access page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["catalog","selected_entry","catalog_error","supports_manual_transport","tokens","tokens_error"],"properties":{"catalog":{"type":"array","items":{"$ref":"#/components/schemas/RepositoryAccessEntry"}},"selected_entry":{"oneOf":[{"$ref":"#/components/schemas/RepositoryAccessEntry"},{"type":"null"}]},"catalog_error":{"type":"string","nullable":true},"supports_manual_transport":{"type":"boolean"},"tokens":{"type":"array","items":{"$ref":"#/components/schemas/RepositoryAccessToken"}},"tokens_error":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/pages/actions":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_pages_actions","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"range","schema":{"type":"string","enum":["7d","14d","30d"]}},{"in":"query","name":"pipeline_id","schema":{"type":"string"}}],"responses":{"200":{"description":"Actions page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["analytics","default_branch","can_retry_ci","repository_id","pipelines","action_runs","error","organization_id","virtual_repositories","github_installations","github_installations_error","github_ci_repositories","github_ci_runner_pools","github_ci_error","github_ci_compatibility_reports_by_repository","github_ci_compatibility_error_by_repository"],"properties":{"analytics":{"type":"object","required":["range","sample_count","successful_count","truncated","median_seconds","p95_seconds","median_change_percent","success_rate","median_wait_seconds","daily","slow_jobs"],"properties":{"range":{"type":"string"},"sample_count":{"type":"integer"},"successful_count":{"type":"integer"},"truncated":{"type":"boolean"},"median_seconds":{"type":"number","nullable":true},"p95_seconds":{"type":"number","nullable":true},"median_change_percent":{"type":"number","nullable":true},"success_rate":{"type":"number","nullable":true},"median_wait_seconds":{"type":"number","nullable":true},"daily":{"type":"array","items":{"type":"object","required":["date","median_seconds","p95_seconds","succeeded","failed","canceled"],"properties":{"date":{"type":"string"},"median_seconds":{"type":"number","nullable":true},"p95_seconds":{"type":"number","nullable":true},"succeeded":{"type":"integer"},"failed":{"type":"integer"},"canceled":{"type":"integer"}}}},"slow_jobs":{"type":"array","items":{"type":"object","required":["name","pipeline_name","pipeline_id","run_id","run_number","sample_count","median_seconds","p95_seconds","peak_seconds","total_seconds","median_wait_seconds"],"properties":{"name":{"type":"string"},"pipeline_name":{"type":"string"},"pipeline_id":{"type":"string"},"run_id":{"type":"string"},"run_number":{"type":"integer"},"sample_count":{"type":"integer"},"median_seconds":{"type":"number"},"p95_seconds":{"type":"number"},"peak_seconds":{"type":"number"},"total_seconds":{"type":"number"},"median_wait_seconds":{"type":"number","nullable":true}}}}}},"default_branch":{"type":"string"},"can_retry_ci":{"type":"boolean"},"repository_id":{"type":"string"},"pipelines":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/CiPipeline"},{"type":"object","required":["runner_pool","runs"],"properties":{"runner_pool":{"oneOf":[{"$ref":"#/components/schemas/CiRunnerPool"},{"type":"null"}]},"runs":{"type":"array","items":{"$ref":"#/components/schemas/CiPipelineRun"}}}}]}},"action_runs":{"type":"array","items":{"type":"object","required":["pipeline","run"],"properties":{"pipeline":{"$ref":"#/components/schemas/CiPipeline"},"run":{"$ref":"#/components/schemas/CiPipelineRun"}}}},"error":{"type":"string","nullable":true},"organization_id":{"type":"string"},"virtual_repositories":{"type":"array","items":{"$ref":"#/components/schemas/VirtualRepository"}},"github_installations":{"type":"array","items":{"$ref":"#/components/schemas/GithubAppInstallation"}},"github_installations_error":{"type":"string","nullable":true},"github_ci_repositories":{"type":"array","items":{"$ref":"#/components/schemas/GithubCiRepository"}},"github_ci_runner_pools":{"type":"array","items":{"$ref":"#/components/schemas/CiRunnerPool"}},"github_ci_error":{"type":"string","nullable":true},"github_ci_compatibility_reports_by_repository":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/GithubCiCompatibilityReport"}}},"github_ci_compatibility_error_by_repository":{"type":"object","additionalProperties":{"type":"string","nullable":true}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/pages/knowledge":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_pages_knowledge","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"ref","in":"query","required":false,"schema":{"type":"string"}},{"name":"path","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Authorized Knowledge page snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["state","repository","settings","branches","ref","catalog","catalog_complete","requested_path","selected_path","selected_document"],"properties":{"state":{"type":"string","enum":["ready","empty","missing","unprovisioned"]},"repository":{"type":"object","required":["organization_slug","repository_slug"],"properties":{"organization_slug":{"type":"string"},"repository_slug":{"type":"string"}}},"settings":{"type":"object","required":["folders","configured","can_manage"],"properties":{"folders":{"type":"array","items":{"type":"string"}},"configured":{"type":"boolean"},"can_manage":{"type":"boolean"}}},"branches":{"type":"object","required":["branches","branches_count_label","default_branch","protected_bookmarks","setup_required"],"properties":{"branches":{"type":"array","items":{"type":"object","required":["name","tip_id","target_commit_id"],"properties":{"name":{"type":"string"},"tip_id":{"type":"string"},"target_commit_id":{"type":"string"}}}},"branches_count_label":{"type":"string"},"default_branch":{"type":"string","nullable":true},"protected_bookmarks":{"type":"array","items":{"type":"string"}},"setup_required":{"type":"boolean"}}},"ref":{"type":"object","nullable":true,"required":["name","resolved_commit_id","default_branch"],"properties":{"name":{"type":"string"},"resolved_commit_id":{"type":"string","nullable":true},"default_branch":{"type":"string","nullable":true}}},"catalog":{"type":"object","required":["folders","candidates","document_paths","documents","tree","document_count","document_count_label"],"properties":{"folders":{"type":"array","items":{"type":"string"}},"candidates":{"type":"array","items":{"type":"object","required":["path","document_count"],"properties":{"path":{"type":"string"},"document_count":{"type":"integer"}}}},"document_paths":{"type":"array","items":{"type":"string"}},"documents":{"type":"array","items":{"type":"object","required":["path","title"],"properties":{"path":{"type":"string"},"title":{"type":"string"}}}},"tree":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeTreeNode"}},"document_count":{"type":"integer"},"document_count_label":{"type":"string"}}},"catalog_complete":{"type":"boolean"},"requested_path":{"type":"string","nullable":true},"selected_path":{"type":"string","nullable":true},"selected_document":{"type":"object","nullable":true,"required":["path","kind","encoding","size_bytes","size_label","line_count","line_count_label","raw_url"],"properties":{"path":{"type":"string"},"kind":{"type":"string"},"encoding":{"type":"string","nullable":true},"size_bytes":{"type":"integer","nullable":true},"size_label":{"type":"string","nullable":true},"line_count":{"type":"integer","nullable":true},"line_count_label":{"type":"string","nullable":true},"raw_url":{"type":"string","nullable":true},"file":{"type":"object","required":["name","contents","cacheKey"],"properties":{"name":{"type":"string"},"contents":{"type":"string"},"cacheKey":{"type":"string"},"lang":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Repository, ref, or organization not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read the repository Knowledge page snapshot"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/pages/knowledge/backlinks":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_pages_knowledge_backlinks","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"ref","in":"query","required":true,"schema":{"type":"string"}},{"name":"path","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Backlinks and bounded scan metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["state","ref","selected_path","backlinks","backlink_count","backlink_count_label","document_count","documents_scanned","documents_read","bytes_read","documents_skipped_for_bytes","byte_limited","max_document_bytes","max_total_bytes","partial","source"],"properties":{"state":{"type":"string","enum":["ready","missing","unprovisioned"]},"ref":{"type":"object","required":["name","resolved_commit_id"],"properties":{"name":{"type":"string"},"resolved_commit_id":{"type":"string","nullable":true}}},"selected_path":{"type":"string"},"backlinks":{"type":"array","items":{"type":"object","required":["path","title"],"properties":{"path":{"type":"string"},"title":{"type":"string"}}}},"backlink_count":{"type":"integer"},"backlink_count_label":{"type":"string"},"document_count":{"type":"integer"},"documents_scanned":{"type":"integer"},"documents_read":{"type":"integer"},"bytes_read":{"type":"integer"},"documents_skipped_for_bytes":{"type":"integer"},"byte_limited":{"type":"boolean"},"max_document_bytes":{"type":"integer"},"max_total_bytes":{"type":"integer"},"partial":{"type":"boolean"},"source":{"type":"string","nullable":true,"enum":["jj","git"]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Repository, ref, or organization not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read backlinks for one repository Knowledge document"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/pages/knowledge/blame":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_pages_knowledge_blame","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"ref","in":"query","required":true,"schema":{"type":"string"}},{"name":"path","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Bounded Knowledge line blame projection","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["state","ref","selected_path","lines","revisions","truncated","commits_truncated","lines_truncated","commit_limit","line_limit","source"],"properties":{"state":{"type":"string","enum":["ready","missing","unprovisioned"]},"ref":{"type":"object","required":["name","resolved_commit_id","default_branch"],"properties":{"name":{"type":"string"},"resolved_commit_id":{"type":"string","nullable":true},"default_branch":{"type":"string","nullable":true}}},"selected_path":{"type":"string"},"lines":{"type":"array","maxItems":5000,"items":{"type":"object","required":["number","text","revision_id"],"properties":{"number":{"type":"integer"},"text":{"type":"string"},"revision_id":{"type":"string","nullable":true}}}},"revisions":{"type":"array","maxItems":80,"items":{"type":"object","required":["id","short_id","message","author","author_initial","iso_date","date_label","additions","deletions"],"properties":{"id":{"type":"string"},"short_id":{"type":"string"},"message":{"type":"string"},"author":{"type":"string"},"author_initial":{"type":"string"},"iso_date":{"type":"string","nullable":true},"date_label":{"type":"string","nullable":true},"additions":{"type":"integer","nullable":true},"deletions":{"type":"integer","nullable":true}}}},"truncated":{"type":"boolean"},"commits_truncated":{"type":"boolean"},"lines_truncated":{"type":"boolean"},"commit_limit":{"type":"integer","enum":[80]},"line_limit":{"type":"integer","enum":[5000]},"source":{"type":"string","nullable":true,"enum":["jj","git"]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Repository, ref, or organization not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read bounded line blame for one repository Knowledge document"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/pages/knowledge/catalog":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_pages_knowledge_catalog","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"ref","in":"query","required":true,"schema":{"type":"string"}},{"name":"path","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Knowledge document paths and default selection","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["state","ref","catalog","catalog_complete","selected_path"],"properties":{"state":{"type":"string","enum":["ready","empty","unprovisioned"]},"ref":{"type":"object","nullable":true,"required":["name","resolved_commit_id","default_branch"],"properties":{"name":{"type":"string"},"resolved_commit_id":{"type":"string","nullable":true},"default_branch":{"type":"string","nullable":true}}},"catalog":{"type":"object","required":["folders","candidates","document_paths","documents","tree","document_count","document_count_label"],"properties":{"folders":{"type":"array","items":{"type":"string"}},"candidates":{"type":"array","items":{"type":"object","required":["path","document_count"],"properties":{"path":{"type":"string"},"document_count":{"type":"integer"}}}},"document_paths":{"type":"array","items":{"type":"string"}},"documents":{"type":"array","items":{"type":"object","required":["path","title"],"properties":{"path":{"type":"string"},"title":{"type":"string"}}}},"tree":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeTreeNode"}},"document_count":{"type":"integer"},"document_count_label":{"type":"string"}}},"catalog_complete":{"type":"boolean"},"selected_path":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Repository, ref, or organization not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read the cacheable Knowledge document catalog at one ref"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/pages/knowledge/context":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_pages_knowledge_context","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"ref","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Authorized Knowledge repository, settings, branches, and resolved ref","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["state","repository","settings","branches","ref"],"properties":{"state":{"type":"string","enum":["ready","unprovisioned"]},"repository":{"type":"object","required":["organization_slug","repository_slug"],"properties":{"organization_slug":{"type":"string"},"repository_slug":{"type":"string"}}},"settings":{"type":"object","required":["folders","configured","can_manage"],"properties":{"folders":{"type":"array","items":{"type":"string"}},"configured":{"type":"boolean"},"can_manage":{"type":"boolean"}}},"branches":{"type":"object","required":["branches","branches_count_label","default_branch","protected_bookmarks","setup_required"],"properties":{"branches":{"type":"array","items":{"type":"object","required":["name","tip_id","target_commit_id"],"properties":{"name":{"type":"string"},"tip_id":{"type":"string"},"target_commit_id":{"type":"string"}}}},"branches_count_label":{"type":"string"},"default_branch":{"type":"string","nullable":true},"protected_bookmarks":{"type":"array","items":{"type":"string"}},"setup_required":{"type":"boolean"}}},"ref":{"type":"object","nullable":true,"required":["name","resolved_commit_id","default_branch"],"properties":{"name":{"type":"string"},"resolved_commit_id":{"type":"string","nullable":true},"default_branch":{"type":"string","nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Repository, ref, or organization not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read the fast repository Knowledge page context"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/pages/knowledge/document":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_pages_knowledge_document","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"ref","in":"query","required":true,"schema":{"type":"string"}},{"name":"path","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Selected Knowledge document contents and metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["state","ref","requested_path","selected_path","selected_document","selected_error"],"properties":{"state":{"type":"string","enum":["ready","empty","missing","unprovisioned"]},"ref":{"type":"object","nullable":true,"required":["name","resolved_commit_id","default_branch"],"properties":{"name":{"type":"string"},"resolved_commit_id":{"type":"string","nullable":true},"default_branch":{"type":"string","nullable":true}}},"requested_path":{"type":"string","nullable":true},"selected_path":{"type":"string","nullable":true},"selected_document":{"type":"object","nullable":true,"required":["path","kind","encoding","size_bytes","size_label","line_count","line_count_label","raw_url"],"properties":{"path":{"type":"string"},"kind":{"type":"string"},"encoding":{"type":"string","nullable":true},"size_bytes":{"type":"integer","nullable":true},"size_label":{"type":"string","nullable":true},"line_count":{"type":"integer","nullable":true},"line_count_label":{"type":"string","nullable":true},"raw_url":{"type":"string","nullable":true},"file":{"type":"object","required":["name","contents","cacheKey"],"properties":{"name":{"type":"string"},"contents":{"type":"string"},"cacheKey":{"type":"string"},"lang":{"type":"string"}}}}},"selected_error":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Repository, ref, or organization not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read one cacheable Knowledge document at an exact ref and path"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/pages/knowledge/history":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_pages_knowledge_history","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"ref","in":"query","required":true,"schema":{"type":"string"}},{"name":"path","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Bounded Knowledge revision and patch projection","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["state","ref","selected_path","revisions","patches","truncated","patches_truncated","revision_limit","max_patch_bytes","max_total_patch_bytes","patch_bytes","source"],"properties":{"state":{"type":"string","enum":["ready","missing","unprovisioned"]},"ref":{"type":"object","required":["name","resolved_commit_id","default_branch"],"properties":{"name":{"type":"string"},"resolved_commit_id":{"type":"string","nullable":true},"default_branch":{"type":"string","nullable":true}}},"selected_path":{"type":"string"},"revisions":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","short_id","message","author","author_initial","iso_date","date_label","additions","deletions","patch_truncated"],"properties":{"id":{"type":"string"},"short_id":{"type":"string"},"message":{"type":"string"},"author":{"type":"string"},"author_initial":{"type":"string"},"iso_date":{"type":"string","nullable":true},"date_label":{"type":"string","nullable":true},"additions":{"type":"integer"},"deletions":{"type":"integer"},"patch_truncated":{"type":"boolean"}}}},"patches":{"type":"object","additionalProperties":{"type":"string"}},"truncated":{"type":"boolean"},"patches_truncated":{"type":"boolean"},"revision_limit":{"type":"integer","enum":[12]},"max_patch_bytes":{"type":"integer"},"max_total_patch_bytes":{"type":"integer"},"patch_bytes":{"type":"integer"},"source":{"type":"string","nullable":true,"enum":["jj","git"]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Repository, ref, or organization not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read bounded revision history for one repository Knowledge document"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/pages/publish":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_pages_publish","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"org_slug","required":true,"schema":{"type":"string"}},{"in":"path","name":"repo_slug","required":true,"schema":{"type":"string"}},{"in":"query","name":"ref","required":false,"schema":{"type":"string"}},{"in":"query","name":"folder","required":false,"schema":{"type":"string"}},{"in":"query","name":"path","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Open source publishing page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization_slug","repository_slug","selected_folder_path","source_bookmark","organization_id","repository_id","contracts","github_installations","github_installations_error"],"properties":{"organization_slug":{"type":"string"},"repository_slug":{"type":"string"},"selected_folder_path":{"type":"string"},"source_bookmark":{"type":"string"},"organization_id":{"type":"string","nullable":true},"repository_id":{"type":"string","nullable":true},"contracts":{"type":"array","items":{"$ref":"#/components/schemas/OpenSourcePublishContract"}},"github_installations":{"type":"array","items":{"$ref":"#/components/schemas/GithubAppInstallation"}},"github_installations_error":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/pages/pull_request/{number}/transcripts":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_pages_pull_request_number_transcripts","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"paginated","description":"Opt in to bounded session pages. Omit to retain the legacy complete list.","schema":{"type":"boolean","default":false}},{"in":"query","name":"cursor","description":"Opaque next_cursor from a previous page for this pull request.","schema":{"type":"string"}},{"in":"query","name":"limit","description":"Maximum sessions in paginated mode.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"in":"path","name":"number","required":true,"description":"The pull request number on GitHub.","schema":{"type":"integer"}}],"responses":{"200":{"description":"Pull request agent transcripts page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["pull_request","sessions"],"properties":{"pull_request":{"$ref":"#/components/schemas/OrganizationSessionPullRequest"},"pagination":{"type":"object","description":"Present only when paginated=true.","required":["next_cursor","has_more","limit"],"properties":{"next_cursor":{"type":"string","nullable":true},"has_more":{"type":"boolean"},"limit":{"type":"integer"}}},"sessions":{"type":"array","description":"Sessions linked to this pull request, newest first, in the Transcripts list row shape.","items":{"$ref":"#/components/schemas/OrganizationSessionSummary"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"No such pull request in this repository"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid pagination cursor or limit"}},"security":[{"bearerAuth":[]}],"summary":"Pull request agent transcripts page contract","description":"The page the Vex comment on a GitHub pull request links to: the pull request as the server last recorded it, and every agent session the server derived a link to, in the same row shape as the organization Transcripts list. A pull request with no linked session returns an empty `sessions` array rather than a 404; a number this repository has no pull request for, and one belonging to another organization, are both 404. `repo_slug` addresses the repository the way the CLI does — the backing repository, across every virtual repository synced to GitHub under it."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/pages/sync":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_pages_sync","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Sync page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["sync_targets","recent_runs","error"],"properties":{"sync_targets":{"type":"array","items":{"type":"object","required":["id","slug","name","root_path","provider_label","remote_repository","source_branch","github_repository","github_branch","vex_bookmark","status","status_label","last_successful_sync_at","last_successful_sync_at_label","github_app_installation_id","connection_needs_attention","can_sync"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"root_path":{"type":"string"},"provider_label":{"type":"string"},"remote_repository":{"type":"string","nullable":true},"source_branch":{"type":"string"},"github_repository":{"type":"string","nullable":true},"github_branch":{"type":"string"},"vex_bookmark":{"type":"string"},"status":{"type":"string","enum":["in_sync","syncing","needs_attention","disconnected"]},"status_label":{"type":"string"},"last_successful_sync_at":{"type":"string","format":"date-time","nullable":true},"last_successful_sync_at_label":{"type":"string","nullable":true},"github_app_installation_id":{"type":"string","nullable":true},"connection_needs_attention":{"type":"boolean"},"can_sync":{"type":"boolean"}}}},"recent_runs":{"type":"array","items":{"type":"object","required":["id","status","status_label","kind","kind_label","started_at","started_at_label","finished_at","finished_at_label","created_at","created_at_label","error_message","log_lines"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","skipped","canceled"]},"status_label":{"type":"string"},"kind":{"type":"string","enum":["pull_sync","push_projection","materialization"]},"kind_label":{"type":"string"},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string"},"error_message":{"type":"string","nullable":true},"log_lines":{"type":"array","items":{"type":"object","required":["timestamp","timestamp_label","level","message"],"properties":{"timestamp":{"type":"string"},"timestamp_label":{"type":"string","nullable":true},"level":{"type":"string"},"message":{"type":"string"}}}}}}},"error":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/reset":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_reset","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Home repository reset — child virtual repositories destroyed and the repository's backend contents permanently deleted. Home keeps its id and addresses and starts an empty history.\n","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization_id","repository_id","repository_slug","destroyed_count","deleted_rows","deleted_objects","deleted_artifacts"],"properties":{"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"destroyed_count":{"type":"integer","minimum":0},"deleted_rows":{"type":"integer","minimum":0},"deleted_objects":{"type":"integer","minimum":0},"deleted_artifacts":{"type":"integer","minimum":0}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Repository is not Home"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/settings":{"get":{"operationId":"api_v1_settings","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repository or Space settings snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["org","repo","organization_id","space","repository","can_manage_settings","visibility_settings","default_branch","default_change_land_method","github_installations","github_installations_error","publish_contracts","publish_error","bookmark_protection_rules","bookmark_protection_events","required_check_candidates","github_required_check_snapshot","access_entry","access_catalog_error","access_tokens","access_tokens_error","supports_manual_access_tokens","is_repository_root","is_home","mutation_lease","home_membership"],"properties":{"org":{"type":"string"},"repo":{"type":"string"},"organization_id":{"type":"string"},"space":{"oneOf":[{"$ref":"#/components/schemas/WorkspaceSpace"},{"type":"null"}]},"repository":{"oneOf":[{"$ref":"#/components/schemas/VirtualRepository"},{"type":"null"}]},"can_manage_settings":{"type":"boolean"},"visibility_settings":{"oneOf":[{"$ref":"#/components/schemas/RepositoryVisibility"},{"type":"null"}]},"default_branch":{"type":"string"},"default_change_land_method":{"type":"string","enum":["squash","rebase"]},"github_installations":{"type":"array","items":{"$ref":"#/components/schemas/GithubAppInstallation"}},"github_installations_error":{"type":"string","nullable":true},"publish_contracts":{"type":"array","items":{"$ref":"#/components/schemas/OpenSourcePublishContract"}},"publish_error":{"type":"string","nullable":true},"bookmark_protection_rules":{"type":"array","items":{"$ref":"#/components/schemas/BookmarkProtectionRule"}},"bookmark_protection_events":{"type":"array","items":{"$ref":"#/components/schemas/BookmarkProtectionEvent"}},"required_check_candidates":{"type":"array","items":{"$ref":"#/components/schemas/RequiredCheckCandidate"}},"github_required_check_snapshot":{"oneOf":[{"$ref":"#/components/schemas/GithubRequiredCheckSnapshot"},{"type":"null"}]},"access_entry":{"oneOf":[{"$ref":"#/components/schemas/RepositoryAccessEntry"},{"type":"null"}]},"access_catalog_error":{"type":"string","nullable":true},"access_tokens":{"type":"array","items":{"$ref":"#/components/schemas/RepositoryAccessToken"}},"access_tokens_error":{"type":"string","nullable":true},"supports_manual_access_tokens":{"type":"boolean"},"is_repository_root":{"type":"boolean"},"is_home":{"type":"boolean"},"mutation_lease":{"oneOf":[{"$ref":"#/components/schemas/RepositoryMutationLease"},{"type":"null"}]},"home_membership":{"$ref":"#/components/schemas/RepositoryHomeMembership"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/settings/folder_federation/operations":{"post":{"operationId":"api_v1_settings_folder_federation_operations","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Folder federation confirmation is stale or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryHomeMembershipError"}}}},"502":{"description":"Bad gateway"},"202":{"description":"Durable folder federation operation accepted for asynchronous preparation without cutover","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryFolderFederationOperation"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["root_path","destination_repository_slug","preview_digest","idempotency_key"],"properties":{"root_path":{"type":"string","minLength":1},"destination_repository_slug":{"type":"string","minLength":1},"preview_digest":{"type":"string","pattern":"^[0-9a-f]{64}$"},"idempotency_key":{"type":"string","minLength":1,"maxLength":255}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/settings/folder_federation/operations/{id}":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_settings_folder_federation_operations_id_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current provisioning and materialization status","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RepositoryFolderFederationOperation"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/settings/folder_federation/preview":{"post":{"operationId":"api_v1_settings_folder_federation_preview","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Exact no-write preview for extracting a Home folder into a physical repository","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RepositoryFolderFederationPreview"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Folder federation cannot be previewed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryHomeMembershipError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["root_path"],"properties":{"root_path":{"type":"string","minLength":1},"destination_repository_slug":{"type":"string","minLength":1}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/settings/home_membership":{"post":{"operationId":"api_v1_settings_home_membership","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Repository cannot be federated into Home","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryHomeMembershipError"}}}},"502":{"description":"Bad gateway"},"201":{"description":"Repository federated into Home","content":{"application/json":{"schema":{"type":"object","required":["federated","root_path","selected_bookmark"],"properties":{"federated":{"type":"boolean"},"root_path":{"type":"string"},"selected_bookmark":{"type":"string"}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"root_path":{"type":"string","minLength":1},"selected_bookmark":{"type":"string","minLength":1}}}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_organizations_org_slug_repos_repo_slug_settings_home_membership","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Repository is not part of Home","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryHomeMembershipError"}}}},"502":{"description":"Bad gateway"},"204":{"description":"Repository removed from Home"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/settings/land_method":{"patch":{"operationId":"api_v1_settings_land_method","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Default Change land method updated","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"required":["default_change_land_method"],"properties":{"default_change_land_method":{"type":"string","enum":["squash","rebase"]}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["default_change_land_method"],"properties":{"default_change_land_method":{"type":"string","enum":["squash","rebase"]}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/settings/mutation_lease/clear":{"post":{"operationId":"api_v1_settings_mutation_lease_clear","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Mutation lease cleared and the previous holder fenced off","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["cleared","was_live","fenced_to_version","lease_fingerprint","lease"],"properties":{"cleared":{"type":"boolean"},"was_live":{"type":"boolean"},"fenced_to_version":{"type":"integer"},"lease_fingerprint":{"type":"string","nullable":true},"lease":{"$ref":"#/components/schemas/RepositoryMutationLease"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"No mutation lease to clear","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"reason":{"type":"string","maxLength":2000}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/settings/trunk":{"patch":{"operationId":"api_v1_settings_trunk","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repository trunk updated","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["default_branch"],"properties":{"default_branch":{"type":"string"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["default_branch"],"properties":{"default_branch":{"type":"string","minLength":1}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/settings/visibility":{"get":{"operationId":"api_v1_visibility","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current repository visibility and recent administrative transitions","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RepositoryVisibility"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_organizations_org_slug_repos_repo_slug_settings_visibility","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repository visibility after the authorized transition","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RepositoryVisibility"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"409":{"description":"Another visibility transition superseded the submitted epoch"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["visibility","expected_epoch"],"properties":{"visibility":{"type":"string","enum":["private","public"]},"expected_epoch":{"type":"integer","minimum":0},"acknowledge_public":{"type":"boolean"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/stats":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_stats","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repository statistics snapshot with a downsampled history series","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["repository_stats"],"properties":{"repository_stats":{"$ref":"#/components/schemas/RepositoryStats"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"503":{"description":"jj-backend cannot answer statistics for this repository","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Storage, shape, liveness, and housekeeping statistics for a repository"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/stats/refresh":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_stats_refresh","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repository statistics snapshot with a downsampled history series","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["repository_stats"],"properties":{"repository_stats":{"$ref":"#/components/schemas/RepositoryStats"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"429":{"description":"A recompute was spent for this repository too recently","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"503":{"description":"jj-backend cannot answer statistics for this repository","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Spend a recompute of the repository statistics snapshot","description":"Organization-admin only and rate limited per repository. A recompute spends a full pass over the repository's presence range, so the cost is what is gated rather than the content. Returns the same body as the read endpoint.\n"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/archive.zip":{"get":{"operationId":"api_v1_org_repo_vcs_archive","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Materialized trunk snapshot without repository history or VCS metadata","content":{"application/zip":{"schema":{"type":"string","format":"binary"}}},"headers":{"Content-Disposition":{"description":"Attachment filename containing organization, repository, trunk, and short commit id","schema":{"type":"string"}},"Content-Length":{"description":"Compressed ZIP size in bytes","schema":{"type":"integer","minimum":0}},"X-Vex-Repository-Ref":{"description":"Resolved trunk name","schema":{"type":"string"}},"X-Vex-Repository-Commit":{"description":"Resolved trunk commit id","schema":{"type":"string"}},"X-Vex-Archive-File-Count":{"description":"Number of files in the archive","schema":{"type":"integer","minimum":0}},"X-Vex-Archive-Uncompressed-Bytes":{"description":"Total uncompressed file bytes","schema":{"type":"integer","minimum":0}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"403":{"description":"Repository read access denied","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"404":{"description":"Repository or trunk ref not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Archive contains an unsupported symlink or unsafe path","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Backend repository read failed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"400":{"description":"Invalid virtual-repository path scope","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"413":{"description":"Archive exceeds a configured direct-download limit","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"503":{"description":"Archive generation exceeded its configured deadline","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Download the materialized trunk as a ZIP archive","description":"Requires an authenticated session cookie or bearer token with repository read access. The archive always resolves the repository's current trunk; virtual repositories are scoped and rewritten to their own root."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/blame":{"get":{"operationId":"api_v1_org_repo_vcs_blame","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"ref","in":"query","required":true,"schema":{"type":"string"}},{"name":"path","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Per line file blame","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsBlameResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/blob":{"get":{"operationId":"api_v1_org_repo_vcs_blob","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/branches":{"get":{"operationId":"api_v1_org_repo_vcs_branches","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repository bookmarks","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsBranchesResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_branches","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/branches/{branch_name}":{"delete":{"operationId":"api_v1_org_repo_vcs","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"branch_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"204":{"description":"Bookmark deleted"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/browser/file":{"get":{"operationId":"api_v1_org_repo_vcs_browser_file","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"ref","in":"query","required":true,"schema":{"type":"string"}},{"name":"path","in":"query","required":false,"schema":{"type":"string"}},{"name":"file","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Selected repository browser file","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsBrowserFileResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/browser/tree":{"get":{"operationId":"api_v1_org_repo_vcs_browser_tree","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"ref","in":"query","required":true,"schema":{"type":"string"}},{"name":"knowledge","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"knowledge_configured","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"knowledge_folders[]","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"Repository browser tree","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsBrowserTreeResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/change_groups":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_change_groups","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repository-scoped change groups","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["groups"],"properties":{"groups":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeGroup"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List explicit change groups in a repository"},"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_change_groups","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"},"201":{"description":"Created explicit change group","content":{"application/json":{"schema":{"type":"object","required":["group"],"properties":{"group":{"$ref":"#/components/schemas/VcsChangeGroup"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["name"],"properties":{"name":{"type":"string"},"title":{"type":"string","nullable":true}}}}}},"security":[{"bearerAuth":[]}],"summary":"Create an explicit change group"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/change_groups/{id}":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_change_groups_id_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Created explicit change group","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["group"],"properties":{"group":{"$ref":"#/components/schemas/VcsChangeGroup"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read an explicit change group by number, id, or name"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/change_groups/{id}/members":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_change_groups_id_members","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Created explicit change group","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["group"],"properties":{"group":{"$ref":"#/components/schemas/VcsChangeGroup"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["change_id"],"properties":{"change_id":{"type":"string","description":"Change number","canonical id":null,"or legacy diff id.":null}}}}}},"security":[{"bearerAuth":[]}],"summary":"Add a change to an explicit group"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/change_groups/{id}/members/{change_id}":{"delete":{"operationId":"delete_api_v1_organizations_org_slug_repos_repo_slug_vcs_change_groups_id_members_change_id_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"change_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Created explicit change group","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["group"],"properties":{"group":{"$ref":"#/components/schemas/VcsChangeGroup"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Remove a change from an explicit group"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"mine","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"target","in":"query","required":false,"schema":{"type":"string"}},{"name":"label","in":"query","required":false,"description":"Label slug. Repeat the parameter or comma-separate values to require every label.","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"description":"`orphaned` and `needs_restack` select open changes by their derived state.","schema":{"type":"string","enum":["open","landed","abandoned","folded","orphaned","needs_restack"]}},{"name":"group","in":"query","required":false,"description":"Return active stacks and ungrouped changes from this same filtered list. Unpaged: a row is a stack, and cutting the change relation underneath one would render it as smaller than it is. Sending `page` or `limit` alongside it is rejected rather than answered with truncated stacks.","schema":{"type":"string","enum":["stack"]}},{"name":"page","in":"query","required":false,"description":"Which page of changes to return. Rejected with `group=stack`.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"description":"Changes per page, clamped to 100. Rejected with `group=stack`.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"One page of change summaries, plus status counts for the whole filtered scope","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["counts","visible_count_label"],"properties":{"changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeIndexItem"}},"pagination":{"allOf":[{"$ref":"#/components/schemas/VcsPagination"}],"description":"Present for the flat list, where `count` is every change matching the filters rather than the page's length. Absent under `group=stack`, which is unpaged."},"stacks":{"type":"array","description":"Present when `group=stack`.","items":{"$ref":"#/components/schemas/VcsStack"}},"ungrouped":{"type":"array","description":"Changes without an active stack, present when `group=stack`.","items":{"$ref":"#/components/schemas/VcsChangeIndexItem"}},"counts":{"type":"object","additionalProperties":{"type":"integer"}},"visible_count_label":{"type":"string","description":"How many changes this response carries. `pagination.count_label` names the whole scope."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List reviewable changes in one repository"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/assets":{"post":{"operationId":"api_v1_assets","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"},"201":{"description":"Direct upload instructions and a pending asset binding","content":{"application/json":{"schema":{"type":"object","required":["asset","upload"],"properties":{"asset":{"$ref":"#/components/schemas/VcsChangeAsset"},"upload":{"type":"object","additionalProperties":true}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["alias","filename","content_type","byte_size","checksum_sha256","checksum_md5"],"properties":{"alias":{"type":"string"},"filename":{"type":"string"},"content_type":{"type":"string"},"byte_size":{"type":"integer","minimum":0},"checksum_sha256":{"type":"string"},"checksum_md5":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Reserve a direct upload for a private change-description asset"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/assets/{id}/finalize":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_assets_id_finalize","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Available change asset","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["asset"],"properties":{"asset":{"$ref":"#/components/schemas/VcsChangeAsset"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["blob_signed_id"],"properties":{"blob_signed_id":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Finalize a private change-description direct upload"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/git_branch_submissions":{"post":{"operationId":"api_v1_git_branch_submissions","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/lookup":{"get":{"operationId":"api_v1_lookup","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"legacy_stack_ref","in":"query","required":false,"schema":{"type":"string"}},{"name":"change_keys[]","in":"query","required":false,"schema":{"type":"array","minItems":1,"items":{"type":"string"}}},{"name":"target_branch","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Ordered known and missing JJ change identities, or the canonical first change for a legacy stack","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"oneOf":[{"type":"object","required":["change"],"properties":{"change":{"type":"object","required":["number","public_id"],"properties":{"number":{"type":"integer","minimum":1},"public_id":{"type":"string"}}}}},{"type":"object","required":["changes","missing_change_keys"],"properties":{"changes":{"type":"array","items":{"type":"object","additionalProperties":true}},"missing_change_keys":{"type":"array","items":{"type":"string"}},"target":{"type":"object","nullable":true,"additionalProperties":true}}}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Look up submitted changes or resolve a legacy stack reference","description":"Provide `change_keys[]` for the normal durable-JJ lookup, or `legacy_stack_ref` while resolving a retired stack permalink."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/submit":{"post":{"operationId":"api_v1_submit","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Reviewer was not found in the organization","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"},"201":{"description":"Created or updated change outcomes","content":{"application/json":{"schema":{"type":"object","required":["changes","requested_reviewers","removed_reviewers"],"properties":{"changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeSubmitOutcome"}},"requested_reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsResolvedReviewer"}},"removed_reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsResolvedReviewer"}},"validated_target_commit_id":{"type":"string","description":"Target commit validated during an ordinary submission. Absent for federated Home and older servers."},"expected_ci":{"$ref":"#/components/schemas/VcsExpectedCiEstimate"}}}}}},"409":{"description":"The reviewer name is ambiguous, or the target ref changed; use the error to correct the request","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["error","code"],"properties":{"error":{"type":"string"},"code":{"type":"string","enum":["reviewer_ambiguous"]}}},{"type":"object","required":["error","code","target"],"properties":{"error":{"type":"string"},"code":{"type":"string","enum":["stale_target"]},"target":{"type":"object","additionalProperties":true}}}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"allOf":[{"$ref":"#/components/schemas/VcsOrdinaryChangeSubmitRequest"},{"type":"object","properties":{"federated_home":{"allOf":[{"$ref":"#/components/schemas/VcsFederatedHomeSubmitRequest"}],"description":"Versioned flat-Home fan-out contract. Repository public ids bind Rails control-plane ownership; numeric repository ids bind the exact published jj-backend manifest."}}}]}}}},"security":[{"bearerAuth":[]}],"summary":"Submit arbitrary native JJ revisions as independent changes","description":"Upserts by durable JJ change id and appends a patchset only when the commit changes. The server derives parent-change edges from submitted history."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/sync":{"post":{"operationId":"api_v1_sync","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Created or updated change outcomes","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["changes","requested_reviewers","removed_reviewers"],"properties":{"changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeSubmitOutcome"}},"requested_reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsResolvedReviewer"}},"removed_reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsResolvedReviewer"}},"validated_target_commit_id":{"type":"string","description":"Target commit validated during an ordinary submission. Absent for federated Home and older servers."},"expected_ci":{"$ref":"#/components/schemas/VcsExpectedCiEstimate"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Reviewer was not found in the organization","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"},"409":{"description":"The reviewer name is ambiguous, or the target ref changed; use the error to correct the request","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["error","code"],"properties":{"error":{"type":"string"},"code":{"type":"string","enum":["reviewer_ambiguous"]}}},{"type":"object","required":["error","code","target"],"properties":{"error":{"type":"string"},"code":{"type":"string","enum":["stale_target"]},"target":{"type":"object","additionalProperties":true}}}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsOrdinaryChangeSubmitRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Synchronize submitted native JJ changes","description":"Upserts by durable JJ change id and appends a patchset only when the commit changes. The server derives parent-change edges from submitted history."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{change_id}/diff":{"get":{"operationId":"api_v1_change_diff","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"change_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"base","in":"query","required":false,"schema":{"type":"string"}},{"name":"head","in":"query","required":false,"schema":{"type":"string"}},{"name":"base_patchset_number","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"head_patchset_number","in":"query","required":false,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Selected comparison, picker options, and persisted diff files","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsChangeDiff"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read one Rails-selected Change comparison"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{change_id}/tours":{"get":{"operationId":"api_v1_change_tours","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"change_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"tour_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The selected or latest Tour with retained versions and personal progress","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read the Tour page for one change"},"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_change_id_tours","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"change_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"The Tour request or patchset context is invalid","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"},"202":{"description":"The queued or reused Tour","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsTour"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourCreateRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Generate or reuse a Tour for one patchset"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{change_id}/transcript_chat":{"post":{"operationId":"api_v1_change_transcript_chat","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"change_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"A stateless answer. Accept text/event-stream for start, delta (text), done, and error (message) SSE events.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["answer","checkpoint_id","patchset_number"],"properties":{"answer":{"type":"string"},"checkpoint_id":{"type":"string"},"patchset_number":{"type":"integer"}}}},"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Invalid conversation or unavailable checkpoint context"},"502":{"description":"Bad gateway"},"429":{"description":"Too many questions"},"503":{"description":"Model provider unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["transcript_chat"],"properties":{"transcript_chat":{"type":"object","required":["checkpoint_id","messages"],"properties":{"checkpoint_id":{"type":"string"},"messages":{"type":"array","minItems":1,"maxItems":21,"items":{"type":"object","required":["role","content"],"properties":{"role":{"type":"string","enum":["user","assistant"]},"content":{"type":"string","maxLength":20000}}}}}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Ask a temporary question about an attached checkpoint"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{change_id}/transcripts":{"get":{"operationId":"api_v1_change_transcripts","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"change_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Bounded transcript metadata for the Change","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsChangeTranscripts"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List transcript rows attached to one Change"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}":{"get":{"operationId":"api_v1_change","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Change detail, canonical product path, relation chain, target state, sync preview, and landing closure","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["canonical_path","target_advanced","change","relation_chain","related_changes","landing","activity","target","sync","github_coordination"],"properties":{"review_summary":{"type":"object","properties":{"diff":{"type":["object","null"],"required":["file_count","files","additions","deletions"],"properties":{"file_count":{"type":"integer"},"files":{"type":"array","maxItems":10,"items":{"type":"object","required":["path","change_type","additions","deletions"],"properties":{"path":{"type":"string"},"change_type":{"type":"string","enum":["added","modified","deleted","renamed"]},"additions":{"type":"integer"},"deletions":{"type":"integer"}}}},"additions":{"type":"integer"},"deletions":{"type":"integer"}}},"transcripts":{"type":["object","null"],"required":["session_count","total_tokens","tokens_partial"],"properties":{"session_count":{"type":"integer"},"total_tokens":{"type":["integer","null"]},"tokens_partial":{"type":"boolean"}}}}},"canonical_path":{"type":"string"},"target_advanced":{"type":"boolean"},"change":{"$ref":"#/components/schemas/VcsChangePage"},"relation_chain":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeRelationChainMember"}},"related_changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsRelatedChangeGroup"}},"landing":{"$ref":"#/components/schemas/VcsChangeLanding"},"activity":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeActivityItem"}},"target":{"type":"object","required":["status"],"additionalProperties":true,"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target_branch":{"type":"string"},"target_commit_id":{"type":"string","nullable":true}}},"sync":{"$ref":"#/components/schemas/VcsChangeSync"},"github_coordination":{"oneOf":[{"$ref":"#/components/schemas/VcsGithubCoordination"},{"type":"null"}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read the canonical Change page and Overview representation"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/abandon":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_abandon","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Abandoned change and any directly orphaned changes","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["change","orphaned_changes"],"properties":{"change":{"$ref":"#/components/schemas/VcsChange"},"orphaned_changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeSummary"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Abandon one submitted change and expose explicit orphan descendants"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/accept":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_accept","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Recorded vote. Reread the change page for its updated state.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["vote"],"properties":{"vote":{"type":"object","additionalProperties":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"message":{"type":"string","nullable":true}}}}}},"security":[{"bearerAuth":[]}],"summary":"Accept the current patchset of a change"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/agent_context/checkpoints/{checkpoint_id}/transcript":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_agent_context_checkpoints_checkpoint_id_transcript","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"checkpoint_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"expected_commit_id","in":"query","required":true,"description":"Exact native commit ID reported in the checkpoint's patchset_commit_id. It must be one of this change's patchsets, including superseded patchsets; a commit from another change is denied.","schema":{"type":"string"}},{"name":"max_bytes","in":"query","required":false,"description":"Maximum UTF-8-safe excerpt size. The archive is fully verified while only this prefix is retained.","schema":{"type":"integer","minimum":1,"maximum":49152}}],"responses":{"200":{"description":"A verified bounded excerpt from the selected change patchset's sanitized checkpoint archive","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["context_excerpt","excerpt_bytes","content_truncated"],"properties":{"context_excerpt":{"type":"string","description":"Sanitized native transcript text. It is transient and non-cacheable."},"excerpt_bytes":{"type":"integer","minimum":0},"content_truncated":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"The change, requested patchset, or direct checkpoint attachment is not available to this actor"},"422":{"description":"The selected archive or excerpt budget is unavailable or invalid"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read a bounded sanitized transcript for one change patchset"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/ci":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_ci","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current checks, timing history, and retryable runs","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["change","checks","history","retryable_runs","can_retry_ci"],"properties":{"change":{"type":"object","additionalProperties":true},"checks":{"type":"array","items":{"type":"object","additionalProperties":true}},"history":{"type":"array","items":{"type":"object","additionalProperties":true}},"retryable_runs":{"type":"array","items":{"type":"object","additionalProperties":true}},"can_retry_ci":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Explain current and recent CI performance for a change"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/comments":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_comments","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"path","in":"query","required":false,"schema":{"type":"string"}},{"name":"resolved","in":"query","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Change comment threads","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["comments"],"properties":{"comment":{"$ref":"#/components/schemas/VcsChangeComment"},"comments":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeComment"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List root comment threads on a change"},"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_comments","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor cannot mutate comments on this change","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"},"201":{"description":"Created comment and refreshed change comment threads","content":{"application/json":{"schema":{"type":"object","required":["comments"],"properties":{"comment":{"$ref":"#/components/schemas/VcsChangeComment"},"comments":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeComment"}}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["body"],"properties":{"body":{"type":"string"},"patchset_id":{"type":"string","nullable":true},"path":{"type":"string","nullable":true},"side":{"type":"string","enum":["additions","deletions"],"nullable":true},"line":{"type":"integer","nullable":true},"parent_comment_id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true}}}}}},"security":[{"bearerAuth":[]}],"summary":"Create a general or inline comment on a change"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/comments/{comment_id}/resolve":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_comments_comment_id_resolve","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"comment_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Change comment threads","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["comments"],"properties":{"comment":{"$ref":"#/components/schemas/VcsChangeComment"},"comments":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeComment"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor cannot mutate comments on this change","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Resolve a change comment thread"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/comments/{comment_id}/unresolve":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_comments_comment_id_unresolve","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"comment_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Change comment threads","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["comments"],"properties":{"comment":{"$ref":"#/components/schemas/VcsChangeComment"},"comments":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeComment"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor cannot mutate comments on this change","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Reopen a resolved change comment thread"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/description":{"patch":{"operationId":"patch_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_description","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Detailed canonical change","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["change"],"properties":{"change":{"$ref":"#/components/schemas/VcsChange"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"description":{"type":"string","nullable":true},"assets":{"type":"array","items":{"type":"object","required":["id","alias"],"properties":{"id":{"type":"string"},"alias":{"type":"string"}}}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Update the durable rich-text description of a change"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/file_review_checkpoints":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_file_review_checkpoints","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor cannot mutate comments on this change","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"},"201":{"description":"Recorded checkpoint and refreshed exact-content review projection","content":{"application/json":{"schema":{"type":"object","required":["message","patchset_id","reviewed_files"],"properties":{"message":{"type":"string"},"patchset_id":{"type":"string"},"reviewed_files":{"type":"array","items":{"$ref":"#/components/schemas/VcsReviewedFile"}}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["patchset_id","path","review_action","request_id"],"properties":{"patchset_id":{"type":"string"},"path":{"type":"string"},"review_action":{"type":"string","enum":["reviewed","unreviewed"]},"request_id":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Record a reviewer-private file review checkpoint for one patchset"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/fold":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_fold","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The absorbing change with its new patchset, the folded change, and the changes reparented onto the absorber. For `dry_run`, the plan.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"oneOf":[{"type":"object","required":["change","folded_change","restacked_changes"],"properties":{"change":{"$ref":"#/components/schemas/VcsChange"},"folded_change":{"$ref":"#/components/schemas/VcsChangeSummary"},"restacked_changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeSummary"}}}},{"type":"object","required":["change","absorbing_change","restacked_changes","description"],"properties":{"change":{"$ref":"#/components/schemas/VcsChangeSummary"},"absorbing_change":{"$ref":"#/components/schemas/VcsChangeSummary"},"restacked_changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeSummary"}},"description":{"type":"string"}}}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"The fold was refused. `conflict` names the path that blocked it when the refusal was a merge conflict.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"conflict":{"type":"object","properties":{"path":{"type":"string"},"kind":{"type":"string"}}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"into":{"type":"string","description":"The change this caller believes the parent to be. Refused when it is not, so a stack that moved is not folded somewhere unintended."},"description":{"type":"string","description":"The absorbing change's new message. Composed from both changes when omitted."},"dry_run":{"type":"boolean"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Fold one change into its parent, absorbing its content","description":"Squashes this change into the change below it: the parent gains a patchset holding both, this change closes as `folded`, and this change's open children are reparented onto the parent. `dry_run` answers with the plan and writes nothing."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/git_identity":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_git_identity","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The same review, bound to its verified native identity","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["change"],"properties":{"change":{"allOf":[{"$ref":"#/components/schemas/VcsChangeSummary"},{"type":"object","required":["change_key","jj_change_id","head_commit_id","patchset_number"],"properties":{"change_key":{"type":"string"},"jj_change_id":{"type":"string","pattern":"^[0-9a-f]{32}$"},"head_commit_id":{"type":"string","pattern":"^[0-9a-f]{64}$"},"patchset_number":{"type":"integer","minimum":1}}}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"409":{"description":"Review boundary or identity conflict; refresh before retrying"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_head_commit_id","expected_patchset_number"],"properties":{"expected_head_commit_id":{"type":"string","pattern":"^[0-9a-f]{64}$"},"expected_patchset_number":{"type":"integer","minimum":1}}}}}},"security":[{"bearerAuth":[]}],"summary":"Bind a legacy Git review to its current patchset native identity","description":"Requires repository write access and an exact current head and patchset. Preserves the review number, legacy lookup key, commits and patchsets. Queued, closed, stale and colliding identities are rejected. A retry at the same boundary is idempotent. No caller-supplied native identity is trusted."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/github_projection":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_github_projection","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current per-change GitHub projection state","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["change_id","change_number","github_backed","github_projection"],"properties":{"change_id":{"type":"string"},"change_number":{"type":"integer"},"github_backed":{"type":"boolean"},"github_projection":{"type":"object","nullable":true,"additionalProperties":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read the GitHub pull-request projection for one change"},"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_github_projection","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"202":{"description":"Current per-change GitHub projection state","content":{"application/json":{"schema":{"type":"object","required":["change_id","change_number","github_backed","github_projection"],"properties":{"change_id":{"type":"string"},"change_number":{"type":"integer"},"github_backed":{"type":"boolean"},"github_projection":{"type":"object","nullable":true,"additionalProperties":true}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"enabled":{"type":"boolean","description":"Omit to leave the repository's projection setting unchanged; true or false sets it explicitly."},"repair":{"type":"boolean"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Synchronize the GitHub pull-request projection for one change"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/labels":{"patch":{"operationId":"patch_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_labels","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Detailed canonical change","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["change"],"properties":{"change":{"$ref":"#/components/schemas/VcsChange"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"labels":{"type":"array","items":{"type":"string"}},"add":{"type":"array","items":{"type":"string"}},"remove":{"type":"array","items":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Curate the labels attached to a change","description":"Send `labels` to replace the manually attached set, or `add`/`remove` to adjust it. Labels derived from a `Label:` commit-message trailer are not touched here; they are reconciled on the next submit. Unknown label names are created in the organization."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/landing_hold/release":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_landing_hold_release","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/landing_requests":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_landing_requests","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Landing request created for the complete submitted-together closure","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["request"],"properties":{"request":{"$ref":"#/components/schemas/VcsChangeLandingRequest"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"},"201":{"description":"Landing request created for the complete submitted-together closure","content":{"application/json":{"schema":{"type":"object","required":["request"],"properties":{"request":{"$ref":"#/components/schemas/VcsChangeLandingRequest"}}}}}},"409":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"503":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"expected_scope_version":{"type":"string"},"override_acknowledged":{"type":"boolean"},"expected_requirement_version":{"type":"string"},"override_codes":{"type":"array","items":{"type":"string"}},"priority":{"type":"string","enum":["normal","high"],"default":"normal"},"defer_until_ready":{"type":"boolean","description":"Admit the request while approvals or checks are pending"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Request atomic landing for a change, its ancestors, and its group"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/landing_requests/{entry_id}":{"delete":{"operationId":"delete_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_landing_requests_entry_id_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"entry_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Landing request cancelled","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"},"409":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}}},"security":[{"bearerAuth":[]}],"summary":"Cancel a waiting canonical change landing request","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["expected_version"],"properties":{"expected_version":{"type":"integer","minimum":1}}}}}}}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/patchsets/{patchset_number}/diff/{fingerprint}":{"get":{"operationId":"api_v1_org_repo_change_patchset_diff","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"patchset_number","in":"path","required":true,"schema":{"type":"string"}},{"name":"fingerprint","in":"path","required":true,"schema":{"type":"string"}},{"name":"patchset_number","in":"path","required":true,"schema":{"type":"integer","minimum":1}},{"name":"fingerprint","in":"path","required":true,"description":"Opaque cache token from the patchset's `diff_path`. It is not a capability — every request is authorized like any other read of the change. A fingerprint that no longer matches still returns the current diff, but without the `immutable` directive.","schema":{"type":"string","pattern":"^[0-9a-f]{16}$"}}],"responses":{"200":{"description":"One patchset and its stored file diffs","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["patchset","files"],"properties":{"patchset":{"type":"object","required":["id","number","commit_id"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"commit_id":{"type":"string"},"parent_commit_id":{"type":"string","nullable":true},"base_commit_id":{"type":"string","nullable":true}}},"files":{"type":"array","items":{"$ref":"#/components/schemas/VcsDiffFile"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"The change or the patchset number does not exist","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read the stored diff of one patchset, with patch bodies","description":"Serves the patch text Rails persisted when the patchset was submitted, so viewing a patchset's own diff never depends on jj-backend recomputing it. The change page carries file summaries only and names this path as `diff_path` on each patchset.\nThe fingerprint segment covers everything that determines the bytes, including the diff serialization version, so a body that changes is retired by moving to a new path rather than by a cache entry expiring. A request whose fingerprint matches is therefore answered `immutable` for a year. Request the `diff_path` the change page gave you; do not construct this path."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/ready":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_ready","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Change marked ready","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["message"],"properties":{"message":{"type":"string"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Actor cannot mark this Change ready"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"409":{"description":"Change is no longer open"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Mark an open draft Change ready for review","description":"Idempotent for ready open Changes. Requires organization membership and repository access. Does not enqueue or bypass landing requirements."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/request_changes":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_request_changes","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Recorded vote. Reread the change page for its updated state.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["vote"],"properties":{"vote":{"type":"object","additionalProperties":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"message":{"type":"string","nullable":true}}}}}},"security":[{"bearerAuth":[]}],"summary":"Request changes on the current patchset of a change"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/retry_ci":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_retry_ci","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Existing retries for this request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["pipeline_runs"],"properties":{"pipeline_runs":{"type":"array","items":{"$ref":"#/components/schemas/CiPipelineRun"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"},"201":{"description":"Existing retries for this request","content":{"application/json":{"schema":{"type":"object","required":["pipeline_runs"],"properties":{"pipeline_runs":{"type":"array","items":{"$ref":"#/components/schemas/CiPipelineRun"}}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string","minLength":1,"maxLength":100}}}}}},"security":[{"bearerAuth":[]}],"summary":"Retry every failed, canceled, or blocked current CI run for a change"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/reviewers":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_reviewers","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current requested reviewers","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["reviewers"],"properties":{"reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsResolvedReviewer"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Change was not found in this repository","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List the reviewers requested for a change"},"patch":{"operationId":"patch_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_reviewers","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current requested reviewers and the assignments changed by this request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["reviewers","requested_reviewers","removed_reviewers"],"properties":{"reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsResolvedReviewer"}},"requested_reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsResolvedReviewer"}},"removed_reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsResolvedReviewer"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Change or reviewer was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"},"409":{"description":"The reviewer name is ambiguous","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string"},"code":{"type":"string","enum":["reviewer_ambiguous"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"add":{"type":"array","items":{"type":"string"}},"remove":{"type":"array","items":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Add or remove requested reviewers for a change","description":"Names and emails use the same organization member resolution as submit. Additions preserve existing reviewer requests. Removals affect only the named reviewers. Any organization member who can read the change can use this endpoint."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/state":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_state","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Uncached accepted revision metadata without backend or review-page reads","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["change"],"properties":{"change":{"type":"object","required":["number","reference","status","head_commit_id"],"properties":{"number":{"type":"integer"},"reference":{"type":"string"},"status":{"type":"string","enum":["open","landed","abandoned","folded"]},"head_commit_id":{"type":["string","null"]}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read authoritative Change state for submission checks"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/tours/context_export":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_tours_context_export","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The frozen input manifest and scrubbed source text","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourContextExport"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"The patchset cannot supply the minimum Tour context","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourContextPreviewRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Read the exact frozen context for a local Tour run"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/tours/context_preview":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_tours_context_preview","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The bounded context inventory without source bodies","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourContextPreview"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"The patchset cannot supply the minimum Tour context","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourContextPreviewRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Preview the frozen context for a Tour"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/tours/validate":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_tours_validate","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The validation result, including any manifest errors","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourValidationResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"The context is unavailable or its digest does not match","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourValidationRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Validate a Tour manifest against its exact frozen context"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/tours/{tour_id}/completion":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_tours_tour_id_completion","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"tour_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The ready Tour, or the failed Tour with validation errors","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourCompletionResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"503":{"description":"The exact Tour run capability is not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsTourUnavailable"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourCompletionRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Complete one pending Tour from its detached runner"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/tours/{tour_id}/evidence":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_tours_tour_id_evidence","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"tour_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The idempotently registered source","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourSource"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"503":{"description":"The evidence registry or exact Tour run capability is not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsTourUnavailable"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourEvidenceRegistrationRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Register verified repository evidence for one pending Tour"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/tours/{tour_id}/failure":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_tours_tour_id_failure","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"tour_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The failed Tour","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTour"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"503":{"description":"The exact Tour run capability is not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsTourUnavailable"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourFailureRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Fail one pending Tour from its detached runner"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/tours/{tour_id}/viewer_state":{"patch":{"operationId":"patch_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_tours_tour_id_viewer_state","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"tour_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The current user's saved progress","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourViewerState"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourViewerState"}}}},"security":[{"bearerAuth":[]}],"summary":"Update personal progress through a ready Tour"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/commit_file":{"post":{"operationId":"api_v1_org_repo_vcs_commit_file","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/commits":{"get":{"operationId":"api_v1_org_repo_vcs_commits","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"ref","in":"query","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":100}},{"name":"offset","in":"query","schema":{"type":"integer","default":0}},{"name":"q","in":"query","description":"Filter by commit message, author, or SHA","schema":{"type":"string"}},{"name":"ref","in":"query","required":false,"description":"Bookmark or commit id to walk. Omitted, the repository's authoritative trunk is resolved server-side and echoed back as `ref_name`.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"page","in":"query","required":false,"description":"1-based page number. Prefer this over `offset`.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"offset","in":"query","required":false,"description":"Deprecated alias for `page`; snapped to the page containing this offset. Use `page`.","deprecated":true,"schema":{"type":"integer","minimum":0,"default":0}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"path","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"First parent commit history","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsCommitsResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Paginated, searchable commit history for a ref"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/commits/{id}/diff/{fingerprint}":{"get":{"operationId":"api_v1_org_repo_vcs_commit_range_diff","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"fingerprint","in":"path","required":true,"schema":{"type":"string"}},{"name":"fingerprint","in":"path","required":true,"description":"Opaque cache token from the commit page's `diff_path`. It is not a capability — every request is authorized like any other read of the repository.","schema":{"type":"string","pattern":"^[0-9a-f]{16}$"}},{"name":"parent","in":"query","required":false,"description":"Override the base commit (defaults to the commit's first parent)","schema":{"type":"string"}}],"responses":{"200":{"description":"One commit range and its file diff","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsCommitRangeDiffResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"File diff for one commit range, with no commit metadata","description":"The file bytes of a commit range and nothing a `users` row can touch. The fingerprint segment covers everything that determines those bytes — the repository, the virtual-repository subtree and patch byte budget, the two commits, and the diff serialization version — so a body that changes is retired by moving to a new path rather than by a cache entry expiring. A request whose fingerprint matches a range named by full commit ids is answered `immutable` for a year.\nA range whose base is a moving reference, or a fingerprint that no longer matches, still returns the current diff but is not frozen.\nRequest the `diff_path` the commit page gave you; do not construct this path."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/commits/{id}/page":{"get":{"operationId":"api_v1_org_repo_vcs_commit_page","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"parent","in":"query","required":false,"description":"Override the base commit (defaults to the commit's first parent)","schema":{"type":"string"}}],"responses":{"200":{"description":"Commit metadata and the path serving its file diff","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsCommitPageResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Commit metadata for the commit page, and where its file bytes live","description":"The commit page's own request. It carries the commit's message, author, and resolved avatar — everything about the commit that a `users` row can move — together with `diff_path`, the fingerprinted path serving the file bytes.\nThis response revalidates and is never `immutable`: an author changing their profile picture changes it without any commit id changing, so no URL could express the change. The file bytes are addressed separately for exactly that reason, and can therefore be frozen.\nRequest `diff_path` as given; do not construct it."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/files":{"get":{"operationId":"api_v1_org_repo_vcs_files","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"ref","in":"query","required":true,"schema":{"type":"string"}},{"name":"prefix","in":"query","schema":{"type":"string","default":""}},{"name":"ref","in":"query","required":true,"schema":{"type":"string"}},{"name":"prefix","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Flat repository file index","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsFilesResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Recursive flat list of file paths (fuzzy finder)"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge":{"post":{"operationId":"api_v1_org_repo_vcs_merge","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Bookmark merge result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsMergeResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsMergePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"query","required":false,"description":"Target branch. Omitted","the repository trunk is resolved server-side.":null,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"One-based page of terminal queue outcomes. Active entries are always included.","schema":{"type":"integer","minimum":1}},{"name":"window_days","in":"query","required":false,"description":"Queue analytics window. Unsupported values use the 14-day default.","schema":{"type":"integer","enum":[7,14,30],"default":14}},{"name":"entry_id","in":"query","required":false,"description":"Entry public id to resolve directly. Repeat or comma-separate for several.","schema":{"type":"string"}},{"name":"change","in":"query","required":false,"description":"Change number (`42` / `#42`) or public id whose entries should be resolved directly. Repeat or comma-separate for several.","schema":{"type":"string"}}],"responses":{"200":{"description":"Merge queue snapshot with target picker bookmarks","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","entries","active_entry_count","entry_count_label","terminal_history","recent_events","capabilities"],"properties":{"id":{"type":"string","nullable":true},"target_branch":{"type":"string"},"state":{"type":"string","enum":["active","paused"]},"state_label":{"type":"string"},"state_version":{"type":"integer","minimum":1},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"validation_mode":{"type":"string","enum":["top_only","per_pr"]},"concurrency":{"type":"integer","minimum":1,"maximum":20},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"members":{"type":"array","items":{"type":"object","required":["id","position","state"],"properties":{"id":{"type":"string"},"position":{"type":"integer","minimum":1},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"change_key":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"github_pr_number":{"type":"integer","nullable":true},"state":{"type":"string"},"head_sha":{"type":"string","nullable":true},"checks_status":{"type":"string","nullable":true},"github_merge_commit_sha":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true}}}},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}}},"entry_count_label":{"type":"string"},"terminal_history":{"type":"object","required":["page","limit","count","count_label","last","previous","next"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"count":{"type":"integer","minimum":0},"count_label":{"type":"string"},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","minimum":1,"nullable":true},"next":{"type":"integer","minimum":1,"nullable":true}}},"recent_events":{"type":"array","description":"Newest-first durable queue audit events, limited to 50 records.","maxItems":50,"items":{"type":"object","required":["id","action","entry_id","entry_state","entry_version","created_at"],"properties":{"id":{"type":"string"},"action":{"type":"string"},"entry_id":{"type":"string","nullable":true},"entry_state":{"type":"string","nullable":true},"entry_version":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true}}}},"last_ticked_at":{"type":"string","format":"date-time","nullable":true},"last_error":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}},"policy":{"type":"object","required":["virtual_repository_id","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"virtual_repository_id":{"type":"string","nullable":true},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"queue_validation_mode":{"type":"string","enum":["top_only","per_pr"]},"queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"503":{"description":"Merge queue rollout flag is disabled"}},"security":[{"bearerAuth":[]}],"summary":"Read a merge queue for the queue page","description":"The queue page's one request. `target` is optional — omitted, the repository's authoritative trunk is resolved server-side; the snapshot's `queue.target_branch` echoes the resolution. Also carries `target_branches` for the target picker."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"One-based page of terminal queue outcomes. Active entries are always included.","schema":{"type":"integer","minimum":1}},{"name":"window_days","in":"query","required":false,"description":"Queue analytics window. Unsupported values use the 14-day default.","schema":{"type":"integer","enum":[7,14,30],"default":14}},{"name":"entry_id","in":"query","required":false,"description":"Entry public id to resolve directly. Repeat or comma-separate for several.","schema":{"type":"string"}},{"name":"change","in":"query","required":false,"description":"Change number (`42` / `#42`) or public id whose entries should be resolved directly. Repeat or comma-separate for several.","schema":{"type":"string"}}],"responses":{"200":{"description":"Merge queue snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","entries","active_entry_count","entry_count_label","terminal_history","recent_events","capabilities"],"properties":{"id":{"type":"string","nullable":true},"target_branch":{"type":"string"},"state":{"type":"string","enum":["active","paused"]},"state_label":{"type":"string"},"state_version":{"type":"integer","minimum":1},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"validation_mode":{"type":"string","enum":["top_only","per_pr"]},"concurrency":{"type":"integer","minimum":1,"maximum":20},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"members":{"type":"array","items":{"type":"object","required":["id","position","state"],"properties":{"id":{"type":"string"},"position":{"type":"integer","minimum":1},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"change_key":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"github_pr_number":{"type":"integer","nullable":true},"state":{"type":"string"},"head_sha":{"type":"string","nullable":true},"checks_status":{"type":"string","nullable":true},"github_merge_commit_sha":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true}}}},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}}},"entry_count_label":{"type":"string"},"terminal_history":{"type":"object","required":["page","limit","count","count_label","last","previous","next"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"count":{"type":"integer","minimum":0},"count_label":{"type":"string"},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","minimum":1,"nullable":true},"next":{"type":"integer","minimum":1,"nullable":true}}},"recent_events":{"type":"array","description":"Newest-first durable queue audit events, limited to 50 records.","maxItems":50,"items":{"type":"object","required":["id","action","entry_id","entry_state","entry_version","created_at"],"properties":{"id":{"type":"string"},"action":{"type":"string"},"entry_id":{"type":"string","nullable":true},"entry_state":{"type":"string","nullable":true},"entry_version":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true}}}},"last_ticked_at":{"type":"string","format":"date-time","nullable":true},"last_error":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}},"policy":{"type":"object","required":["virtual_repository_id","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"virtual_repository_id":{"type":"string","nullable":true},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"queue_validation_mode":{"type":"string","enum":["top_only","per_pr"]},"queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"503":{"description":"Merge queue rollout flag is disabled"}},"security":[{"bearerAuth":[]}],"summary":"Read a target branch merge queue","description":"Returns active Change and plain-GitHub-PR entries plus one page of recent terminal outcomes with the current authority policy. Before the first mutation, the queue is an empty read-only snapshot and its id is null. Name an entry or change to have it resolved directly regardless of the paged history."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}/concurrency":{"patch":{"operationId":"patch_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_concurrency","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated queue snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","entries","active_entry_count","entry_count_label","terminal_history","recent_events","capabilities"],"properties":{"id":{"type":"string","nullable":true},"target_branch":{"type":"string"},"state":{"type":"string","enum":["active","paused"]},"state_label":{"type":"string"},"state_version":{"type":"integer","minimum":1},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"validation_mode":{"type":"string","enum":["top_only","per_pr"]},"concurrency":{"type":"integer","minimum":1,"maximum":20},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"members":{"type":"array","items":{"type":"object","required":["id","position","state"],"properties":{"id":{"type":"string"},"position":{"type":"integer","minimum":1},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"change_key":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"github_pr_number":{"type":"integer","nullable":true},"state":{"type":"string"},"head_sha":{"type":"string","nullable":true},"checks_status":{"type":"string","nullable":true},"github_merge_commit_sha":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true}}}},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}}},"entry_count_label":{"type":"string"},"terminal_history":{"type":"object","required":["page","limit","count","count_label","last","previous","next"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"count":{"type":"integer","minimum":0},"count_label":{"type":"string"},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","minimum":1,"nullable":true},"next":{"type":"integer","minimum":1,"nullable":true}}},"recent_events":{"type":"array","description":"Newest-first durable queue audit events, limited to 50 records.","maxItems":50,"items":{"type":"object","required":["id","action","entry_id","entry_state","entry_version","created_at"],"properties":{"id":{"type":"string"},"action":{"type":"string"},"entry_id":{"type":"string","nullable":true},"entry_state":{"type":"string","nullable":true},"entry_version":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true}}}},"last_ticked_at":{"type":"string","format":"date-time","nullable":true},"last_error":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}},"policy":{"type":"object","required":["virtual_repository_id","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"virtual_repository_id":{"type":"string","nullable":true},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"queue_validation_mode":{"type":"string","enum":["top_only","per_pr"]},"queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not allowed to perform this queue mutation"},"404":{"description":"Not found"},"422":{"description":"The requested state transition is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"The queue entry version changed"},"503":{"description":"Merge queue rollout flag is disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_version","concurrency"],"properties":{"expected_version":{"type":"integer"},"concurrency":{"type":"integer","minimum":1,"maximum":20}}}}}},"security":[{"bearerAuth":[]}],"summary":"Set native merge queue candidate concurrency"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}/entries":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_entries","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Queue snapshot after idempotent enqueue","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","entries","active_entry_count","entry_count_label","terminal_history","recent_events","capabilities"],"properties":{"id":{"type":"string","nullable":true},"target_branch":{"type":"string"},"state":{"type":"string","enum":["active","paused"]},"state_label":{"type":"string"},"state_version":{"type":"integer","minimum":1},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"validation_mode":{"type":"string","enum":["top_only","per_pr"]},"concurrency":{"type":"integer","minimum":1,"maximum":20},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"members":{"type":"array","items":{"type":"object","required":["id","position","state"],"properties":{"id":{"type":"string"},"position":{"type":"integer","minimum":1},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"change_key":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"github_pr_number":{"type":"integer","nullable":true},"state":{"type":"string"},"head_sha":{"type":"string","nullable":true},"checks_status":{"type":"string","nullable":true},"github_merge_commit_sha":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true}}}},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}}},"entry_count_label":{"type":"string"},"terminal_history":{"type":"object","required":["page","limit","count","count_label","last","previous","next"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"count":{"type":"integer","minimum":0},"count_label":{"type":"string"},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","minimum":1,"nullable":true},"next":{"type":"integer","minimum":1,"nullable":true}}},"recent_events":{"type":"array","description":"Newest-first durable queue audit events, limited to 50 records.","maxItems":50,"items":{"type":"object","required":["id","action","entry_id","entry_state","entry_version","created_at"],"properties":{"id":{"type":"string"},"action":{"type":"string"},"entry_id":{"type":"string","nullable":true},"entry_state":{"type":"string","nullable":true},"entry_version":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true}}}},"last_ticked_at":{"type":"string","format":"date-time","nullable":true},"last_error":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}},"policy":{"type":"object","required":["virtual_repository_id","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"virtual_repository_id":{"type":"string","nullable":true},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"queue_validation_mode":{"type":"string","enum":["top_only","per_pr"]},"queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"The entry is not eligible for this queue"},"502":{"description":"Bad gateway"},"201":{"description":"Queue snapshot after enqueue","content":{"application/json":{"schema":{"type":"object","required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","entries","active_entry_count","entry_count_label","terminal_history","recent_events","capabilities"],"properties":{"id":{"type":"string","nullable":true},"target_branch":{"type":"string"},"state":{"type":"string","enum":["active","paused"]},"state_label":{"type":"string"},"state_version":{"type":"integer","minimum":1},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"validation_mode":{"type":"string","enum":["top_only","per_pr"]},"concurrency":{"type":"integer","minimum":1,"maximum":20},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"members":{"type":"array","items":{"type":"object","required":["id","position","state"],"properties":{"id":{"type":"string"},"position":{"type":"integer","minimum":1},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"change_key":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"github_pr_number":{"type":"integer","nullable":true},"state":{"type":"string"},"head_sha":{"type":"string","nullable":true},"checks_status":{"type":"string","nullable":true},"github_merge_commit_sha":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true}}}},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}}},"entry_count_label":{"type":"string"},"terminal_history":{"type":"object","required":["page","limit","count","count_label","last","previous","next"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"count":{"type":"integer","minimum":0},"count_label":{"type":"string"},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","minimum":1,"nullable":true},"next":{"type":"integer","minimum":1,"nullable":true}}},"recent_events":{"type":"array","description":"Newest-first durable queue audit events, limited to 50 records.","maxItems":50,"items":{"type":"object","required":["id","action","entry_id","entry_state","entry_version","created_at"],"properties":{"id":{"type":"string"},"action":{"type":"string"},"entry_id":{"type":"string","nullable":true},"entry_state":{"type":"string","nullable":true},"entry_version":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true}}}},"last_ticked_at":{"type":"string","format":"date-time","nullable":true},"last_error":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}},"policy":{"type":"object","required":["virtual_repository_id","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"virtual_repository_id":{"type":"string","nullable":true},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"queue_validation_mode":{"type":"string","enum":["top_only","per_pr"]},"queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"409":{"description":"The queue or authority version changed"},"503":{"description":"Merge queue rollout flag is disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["kind","idempotency_key","expected_version"],"properties":{"kind":{"type":"string","enum":["change","github_pr"]},"change_id":{"type":"string","nullable":true},"github_pr_number":{"type":"integer","minimum":1,"nullable":true},"idempotency_key":{"type":"string"},"expected_version":{"type":"integer","minimum":1},"expected_target_commit_id":{"type":"string","nullable":true},"expected_target_version":{"type":"integer","nullable":true},"when_ready":{"type":"boolean","nullable":true},"priority":{"type":"string","enum":["normal","high"],"default":"normal"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Enqueue a Vex Change or plain GitHub pull request","description":"Change enqueue is atomic over its submitted-together set. Plain GitHub pull requests are accepted only under GitHub-primary authority."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}/entries/{id}":{"delete":{"operationId":"delete_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_entries_id_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated queue snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","entries","active_entry_count","entry_count_label","terminal_history","recent_events","capabilities"],"properties":{"id":{"type":"string","nullable":true},"target_branch":{"type":"string"},"state":{"type":"string","enum":["active","paused"]},"state_label":{"type":"string"},"state_version":{"type":"integer","minimum":1},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"validation_mode":{"type":"string","enum":["top_only","per_pr"]},"concurrency":{"type":"integer","minimum":1,"maximum":20},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"members":{"type":"array","items":{"type":"object","required":["id","position","state"],"properties":{"id":{"type":"string"},"position":{"type":"integer","minimum":1},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"change_key":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"github_pr_number":{"type":"integer","nullable":true},"state":{"type":"string"},"head_sha":{"type":"string","nullable":true},"checks_status":{"type":"string","nullable":true},"github_merge_commit_sha":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true}}}},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}}},"entry_count_label":{"type":"string"},"terminal_history":{"type":"object","required":["page","limit","count","count_label","last","previous","next"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"count":{"type":"integer","minimum":0},"count_label":{"type":"string"},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","minimum":1,"nullable":true},"next":{"type":"integer","minimum":1,"nullable":true}}},"recent_events":{"type":"array","description":"Newest-first durable queue audit events, limited to 50 records.","maxItems":50,"items":{"type":"object","required":["id","action","entry_id","entry_state","entry_version","created_at"],"properties":{"id":{"type":"string"},"action":{"type":"string"},"entry_id":{"type":"string","nullable":true},"entry_state":{"type":"string","nullable":true},"entry_version":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true}}}},"last_ticked_at":{"type":"string","format":"date-time","nullable":true},"last_error":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}},"policy":{"type":"object","required":["virtual_repository_id","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"virtual_repository_id":{"type":"string","nullable":true},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"queue_validation_mode":{"type":"string","enum":["top_only","per_pr"]},"queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not allowed to perform this queue mutation"},"404":{"description":"Not found"},"422":{"description":"The requested state transition is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"The queue entry version changed"},"503":{"description":"Merge queue rollout flag is disabled"}},"security":[{"bearerAuth":[]}],"summary":"Cancel an active merge-queue entry","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["expected_version"],"properties":{"expected_version":{"type":"integer","minimum":1}}}}}}}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}/entries/{id}/merge":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_entries_id_merge","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated queue snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","entries","active_entry_count","entry_count_label","terminal_history","recent_events","capabilities"],"properties":{"id":{"type":"string","nullable":true},"target_branch":{"type":"string"},"state":{"type":"string","enum":["active","paused"]},"state_label":{"type":"string"},"state_version":{"type":"integer","minimum":1},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"validation_mode":{"type":"string","enum":["top_only","per_pr"]},"concurrency":{"type":"integer","minimum":1,"maximum":20},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"members":{"type":"array","items":{"type":"object","required":["id","position","state"],"properties":{"id":{"type":"string"},"position":{"type":"integer","minimum":1},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"change_key":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"github_pr_number":{"type":"integer","nullable":true},"state":{"type":"string"},"head_sha":{"type":"string","nullable":true},"checks_status":{"type":"string","nullable":true},"github_merge_commit_sha":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true}}}},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}}},"entry_count_label":{"type":"string"},"terminal_history":{"type":"object","required":["page","limit","count","count_label","last","previous","next"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"count":{"type":"integer","minimum":0},"count_label":{"type":"string"},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","minimum":1,"nullable":true},"next":{"type":"integer","minimum":1,"nullable":true}}},"recent_events":{"type":"array","description":"Newest-first durable queue audit events, limited to 50 records.","maxItems":50,"items":{"type":"object","required":["id","action","entry_id","entry_state","entry_version","created_at"],"properties":{"id":{"type":"string"},"action":{"type":"string"},"entry_id":{"type":"string","nullable":true},"entry_state":{"type":"string","nullable":true},"entry_version":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true}}}},"last_ticked_at":{"type":"string","format":"date-time","nullable":true},"last_error":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}},"policy":{"type":"object","required":["virtual_repository_id","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"virtual_repository_id":{"type":"string","nullable":true},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"queue_validation_mode":{"type":"string","enum":["top_only","per_pr"]},"queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not allowed to perform this queue mutation"},"404":{"description":"Not found"},"422":{"description":"The requested state transition is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"The queue entry version changed"},"503":{"description":"Merge queue rollout flag is disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_version"],"properties":{"expected_version":{"type":"integer","minimum":1}}}}}},"security":[{"bearerAuth":[]}],"summary":"Merge the ready entry at the front of the queue"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}/entries/{id}/promote":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_entries_id_promote","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated queue snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","entries","active_entry_count","entry_count_label","terminal_history","recent_events","capabilities"],"properties":{"id":{"type":"string","nullable":true},"target_branch":{"type":"string"},"state":{"type":"string","enum":["active","paused"]},"state_label":{"type":"string"},"state_version":{"type":"integer","minimum":1},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"validation_mode":{"type":"string","enum":["top_only","per_pr"]},"concurrency":{"type":"integer","minimum":1,"maximum":20},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"members":{"type":"array","items":{"type":"object","required":["id","position","state"],"properties":{"id":{"type":"string"},"position":{"type":"integer","minimum":1},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"change_key":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"github_pr_number":{"type":"integer","nullable":true},"state":{"type":"string"},"head_sha":{"type":"string","nullable":true},"checks_status":{"type":"string","nullable":true},"github_merge_commit_sha":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true}}}},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}}},"entry_count_label":{"type":"string"},"terminal_history":{"type":"object","required":["page","limit","count","count_label","last","previous","next"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"count":{"type":"integer","minimum":0},"count_label":{"type":"string"},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","minimum":1,"nullable":true},"next":{"type":"integer","minimum":1,"nullable":true}}},"recent_events":{"type":"array","description":"Newest-first durable queue audit events, limited to 50 records.","maxItems":50,"items":{"type":"object","required":["id","action","entry_id","entry_state","entry_version","created_at"],"properties":{"id":{"type":"string"},"action":{"type":"string"},"entry_id":{"type":"string","nullable":true},"entry_state":{"type":"string","nullable":true},"entry_version":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true}}}},"last_ticked_at":{"type":"string","format":"date-time","nullable":true},"last_error":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}},"policy":{"type":"object","required":["virtual_repository_id","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"virtual_repository_id":{"type":"string","nullable":true},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"queue_validation_mode":{"type":"string","enum":["top_only","per_pr"]},"queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not allowed to perform this queue mutation"},"404":{"description":"Not found"},"422":{"description":"The requested state transition is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"The queue entry version changed"},"503":{"description":"Merge queue rollout flag is disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_version"],"properties":{"expected_version":{"type":"integer","minimum":1}}}}}},"security":[{"bearerAuth":[]}],"summary":"Promote an active entry to the front of the queue"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}/entries/{id}/retry":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_entries_id_retry","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated queue snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","entries","active_entry_count","entry_count_label","terminal_history","recent_events","capabilities"],"properties":{"id":{"type":"string","nullable":true},"target_branch":{"type":"string"},"state":{"type":"string","enum":["active","paused"]},"state_label":{"type":"string"},"state_version":{"type":"integer","minimum":1},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"validation_mode":{"type":"string","enum":["top_only","per_pr"]},"concurrency":{"type":"integer","minimum":1,"maximum":20},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"members":{"type":"array","items":{"type":"object","required":["id","position","state"],"properties":{"id":{"type":"string"},"position":{"type":"integer","minimum":1},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"change_key":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"github_pr_number":{"type":"integer","nullable":true},"state":{"type":"string"},"head_sha":{"type":"string","nullable":true},"checks_status":{"type":"string","nullable":true},"github_merge_commit_sha":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true}}}},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}}},"entry_count_label":{"type":"string"},"terminal_history":{"type":"object","required":["page","limit","count","count_label","last","previous","next"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"count":{"type":"integer","minimum":0},"count_label":{"type":"string"},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","minimum":1,"nullable":true},"next":{"type":"integer","minimum":1,"nullable":true}}},"recent_events":{"type":"array","description":"Newest-first durable queue audit events, limited to 50 records.","maxItems":50,"items":{"type":"object","required":["id","action","entry_id","entry_state","entry_version","created_at"],"properties":{"id":{"type":"string"},"action":{"type":"string"},"entry_id":{"type":"string","nullable":true},"entry_state":{"type":"string","nullable":true},"entry_version":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true}}}},"last_ticked_at":{"type":"string","format":"date-time","nullable":true},"last_error":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}},"policy":{"type":"object","required":["virtual_repository_id","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"virtual_repository_id":{"type":"string","nullable":true},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"queue_validation_mode":{"type":"string","enum":["top_only","per_pr"]},"queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not allowed to perform this queue mutation"},"404":{"description":"Not found"},"422":{"description":"The requested state transition is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"The queue entry version changed"},"503":{"description":"Merge queue rollout flag is disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_version"],"properties":{"expected_version":{"type":"integer","minimum":1}}}}}},"security":[{"bearerAuth":[]}],"summary":"Retry an ejected or needs-attention entry"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}/entries/{id}/validate_full":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_entries_id_validate_full","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated queue snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","entries","active_entry_count","entry_count_label","terminal_history","recent_events","capabilities"],"properties":{"id":{"type":"string","nullable":true},"target_branch":{"type":"string"},"state":{"type":"string","enum":["active","paused"]},"state_label":{"type":"string"},"state_version":{"type":"integer","minimum":1},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"validation_mode":{"type":"string","enum":["top_only","per_pr"]},"concurrency":{"type":"integer","minimum":1,"maximum":20},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"members":{"type":"array","items":{"type":"object","required":["id","position","state"],"properties":{"id":{"type":"string"},"position":{"type":"integer","minimum":1},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"change_key":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"github_pr_number":{"type":"integer","nullable":true},"state":{"type":"string"},"head_sha":{"type":"string","nullable":true},"checks_status":{"type":"string","nullable":true},"github_merge_commit_sha":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true}}}},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}}},"entry_count_label":{"type":"string"},"terminal_history":{"type":"object","required":["page","limit","count","count_label","last","previous","next"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"count":{"type":"integer","minimum":0},"count_label":{"type":"string"},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","minimum":1,"nullable":true},"next":{"type":"integer","minimum":1,"nullable":true}}},"recent_events":{"type":"array","description":"Newest-first durable queue audit events, limited to 50 records.","maxItems":50,"items":{"type":"object","required":["id","action","entry_id","entry_state","entry_version","created_at"],"properties":{"id":{"type":"string"},"action":{"type":"string"},"entry_id":{"type":"string","nullable":true},"entry_state":{"type":"string","nullable":true},"entry_version":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true}}}},"last_ticked_at":{"type":"string","format":"date-time","nullable":true},"last_error":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}},"policy":{"type":"object","required":["virtual_repository_id","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"virtual_repository_id":{"type":"string","nullable":true},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"queue_validation_mode":{"type":"string","enum":["top_only","per_pr"]},"queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not allowed to perform this queue mutation"},"404":{"description":"Not found"},"422":{"description":"The requested state transition is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"The queue entry version changed"},"503":{"description":"Merge queue rollout flag is disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_version"],"properties":{"expected_version":{"type":"integer","minimum":1}}}}}},"security":[{"bearerAuth":[]}],"summary":"Request fresh full CI for an active native top-only entry","description":"Administrators only. Preserves order and approvals, invalidates previous candidate validation and dependent followers, and binds full workflow execution to a fresh request identity. Rejects entries already publishing or terminal. Applies through subsequent candidate rebuilds of this entry."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}/pause":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_pause","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated queue snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","entries","active_entry_count","entry_count_label","terminal_history","recent_events","capabilities"],"properties":{"id":{"type":"string","nullable":true},"target_branch":{"type":"string"},"state":{"type":"string","enum":["active","paused"]},"state_label":{"type":"string"},"state_version":{"type":"integer","minimum":1},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"validation_mode":{"type":"string","enum":["top_only","per_pr"]},"concurrency":{"type":"integer","minimum":1,"maximum":20},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"members":{"type":"array","items":{"type":"object","required":["id","position","state"],"properties":{"id":{"type":"string"},"position":{"type":"integer","minimum":1},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"change_key":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"github_pr_number":{"type":"integer","nullable":true},"state":{"type":"string"},"head_sha":{"type":"string","nullable":true},"checks_status":{"type":"string","nullable":true},"github_merge_commit_sha":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true}}}},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}}},"entry_count_label":{"type":"string"},"terminal_history":{"type":"object","required":["page","limit","count","count_label","last","previous","next"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"count":{"type":"integer","minimum":0},"count_label":{"type":"string"},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","minimum":1,"nullable":true},"next":{"type":"integer","minimum":1,"nullable":true}}},"recent_events":{"type":"array","description":"Newest-first durable queue audit events, limited to 50 records.","maxItems":50,"items":{"type":"object","required":["id","action","entry_id","entry_state","entry_version","created_at"],"properties":{"id":{"type":"string"},"action":{"type":"string"},"entry_id":{"type":"string","nullable":true},"entry_state":{"type":"string","nullable":true},"entry_version":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true}}}},"last_ticked_at":{"type":"string","format":"date-time","nullable":true},"last_error":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}},"policy":{"type":"object","required":["virtual_repository_id","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"virtual_repository_id":{"type":"string","nullable":true},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"queue_validation_mode":{"type":"string","enum":["top_only","per_pr"]},"queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not allowed to perform this queue mutation"},"404":{"description":"Not found"},"422":{"description":"The requested state transition is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"The queue entry version changed"},"503":{"description":"Merge queue rollout flag is disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_version"],"properties":{"expected_version":{"type":"integer","minimum":1}}}}}},"security":[{"bearerAuth":[]}],"summary":"Pause queue validation and merging without discarding entries"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}/resume":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_resume","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated queue snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","entries","active_entry_count","entry_count_label","terminal_history","recent_events","capabilities"],"properties":{"id":{"type":"string","nullable":true},"target_branch":{"type":"string"},"state":{"type":"string","enum":["active","paused"]},"state_label":{"type":"string"},"state_version":{"type":"integer","minimum":1},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"validation_mode":{"type":"string","enum":["top_only","per_pr"]},"concurrency":{"type":"integer","minimum":1,"maximum":20},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"members":{"type":"array","items":{"type":"object","required":["id","position","state"],"properties":{"id":{"type":"string"},"position":{"type":"integer","minimum":1},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"change_key":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"github_pr_number":{"type":"integer","nullable":true},"state":{"type":"string"},"head_sha":{"type":"string","nullable":true},"checks_status":{"type":"string","nullable":true},"github_merge_commit_sha":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true}}}},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}}},"entry_count_label":{"type":"string"},"terminal_history":{"type":"object","required":["page","limit","count","count_label","last","previous","next"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"count":{"type":"integer","minimum":0},"count_label":{"type":"string"},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","minimum":1,"nullable":true},"next":{"type":"integer","minimum":1,"nullable":true}}},"recent_events":{"type":"array","description":"Newest-first durable queue audit events, limited to 50 records.","maxItems":50,"items":{"type":"object","required":["id","action","entry_id","entry_state","entry_version","created_at"],"properties":{"id":{"type":"string"},"action":{"type":"string"},"entry_id":{"type":"string","nullable":true},"entry_state":{"type":"string","nullable":true},"entry_version":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true}}}},"last_ticked_at":{"type":"string","format":"date-time","nullable":true},"last_error":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}},"policy":{"type":"object","required":["virtual_repository_id","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"virtual_repository_id":{"type":"string","nullable":true},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"queue_validation_mode":{"type":"string","enum":["top_only","per_pr"]},"queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not allowed to perform this queue mutation"},"404":{"description":"Not found"},"422":{"description":"The requested state transition is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"The queue entry version changed"},"503":{"description":"Merge queue rollout flag is disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_version"],"properties":{"expected_version":{"type":"integer","minimum":1}}}}}},"security":[{"bearerAuth":[]}],"summary":"Resume a paused merge queue"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/op_heads":{"get":{"operationId":"api_v1_org_repo_vcs_op_heads","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/stacks":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_stacks","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Active stacks with their member changes ordered from tip to root","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["stacks"],"properties":{"stacks":{"type":"array","items":{"$ref":"#/components/schemas/VcsStack"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List active graph-derived stacks in one repository"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/stacks/{code}":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_stacks_code_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"code","in":"path","required":true,"schema":{"type":"string"}},{"name":"code","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9]{4}$"}}],"responses":{"200":{"description":"Active stack with member changes ordered from tip to root","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["stack"],"properties":{"stack":{"$ref":"#/components/schemas/VcsStack"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read an active graph-derived stack by durable code"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/stacks/{code}/name":{"patch":{"operationId":"patch_api_v1_organizations_org_slug_repos_repo_slug_vcs_stacks_code_name","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"code","in":"path","required":true,"schema":{"type":"string"}},{"name":"code","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9]{4}$"}}],"responses":{"200":{"description":"The renamed active stack","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["stack"],"properties":{"stack":{"$ref":"#/components/schemas/VcsStack"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"},"409":{"description":"The alias collides with a bookmark, another stack, or a concurrent alias update","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string"},"code":{"type":"string","enum":["bookmark_taken","stack_name_taken","concurrent_update","stack_archived"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["name"],"properties":{"name":{"type":"string","nullable":true}}}}}},"security":[{"bearerAuth":[]}],"summary":"Set or clear a stack's human bookmark alias"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/tree":{"get":{"operationId":"api_v1_org_repo_vcs_tree","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"ref","in":"query","required":true,"schema":{"type":"string"}},{"name":"path","in":"query","schema":{"type":"string","default":""}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Tree entries at path (with per-entry last commit and README)"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/trunk_tip":{"get":{"operationId":"api_v1_org_repo_vcs_trunk_tip","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Trunk tip summary","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTrunkTipResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Latest trunk commit, loaded independently of the browse tree/branches so the browse header strip can stream in without blocking the rest of the page.\n"}},"/api/v1/organizations/{org_slug}/transcripts/search":{"post":{"operationId":"api_v1_transcripts_search","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"org_slug","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Bounded ranked session window and indexing coverage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/TranscriptSearchResult"}}}},"401":{"description":"Authentication required"},"403":{"description":"Forbidden"},"404":{"description":"Missing or inaccessible scope"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid request"},"409":{"description":"Stale cursor"},"429":{"description":"Search quota exceeded"},"503":{"description":"Dependency unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/TranscriptSearchRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Search retained user and assistant transcript messages"}},"/api/v1/organizations/{org_slug}/workspace_activity/notifications/{id}/dismissal":{"patch":{"operationId":"patch_api_v1_organizations_org_slug_workspace_activity_notifications_id_dismissal","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The updated Workspace Activity page after the dismissal","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/WorkspaceActivityPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/workspace_activity/notifications/{id}/viewed":{"patch":{"operationId":"patch_api_v1_organizations_org_slug_workspace_activity_notifications_id_viewed","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"204":{"description":"Viewed timestamp recorded; repeated requests preserve the original timestamp"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Mark a personal notification viewed without resolving or archiving it"}},"/api/v1/organizations/{organization_id}/agent_connections":{"get":{"operationId":"api_v1_organization_agent_connections","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Connection response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"connections":{"type":"array","items":{"$ref":"#/components/schemas/AgentConnectionRecord"}},"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"catalog":{"type":"array","items":{"$ref":"#/components/schemas/AgentIntegrationManifest"}},"provider_triggers_enabled":{"type":"boolean"},"can_manage_safety":{"type":"boolean"},"custody_enabled":{"type":"boolean"}},"required":["connections","pagination","catalog","provider_triggers_enabled","custody_enabled"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Connection owner access required"},"404":{"description":"Connection or feature not found"},"422":{"description":"Invalid connection input"},"502":{"description":"Bad gateway"},"503":{"description":"Connection provider unavailable"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_organization_id_agent_connections","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"}},"required":["connection"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Connection owner access required"},"404":{"description":"Connection or feature not found"},"422":{"description":"Invalid connection input"},"502":{"description":"Bad gateway"},"503":{"description":"Connection provider unavailable"},"201":{"description":"Connection response","content":{"application/json":{"schema":{"type":"object","properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"}},"required":["connection"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"toolkit":{"type":"string","enum":["slack","gmail","notion","linear","github","granola_mcp","discordbot","googlecalendar","googledrive","googlesheets","outlook","jira"]},"name":{"type":"string","minLength":1,"maxLength":100}},"required":["toolkit","name"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/safety_controls":{"get":{"operationId":"safety_controls_api_v1_organization_agent_connections","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Administrator safety metadata only","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["connections","pagination","custody_enabled"],"properties":{"connections":{"type":"array","items":{"$ref":"#/components/schemas/AgentConnectionRecord"}},"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"custody_enabled":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{agent_connection_id}/trigger_subscriptions":{"get":{"operationId":"api_v1_organization_agent_connection_trigger_subscriptions","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_connection_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Owner subscription response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"subscriptions":{"type":"array","items":{"$ref":"#/components/schemas/AgentTriggerSubscriptionRecord"}},"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"catalog":{"type":"array","items":{"$ref":"#/components/schemas/AgentTriggerDefinition"}},"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"},"lifecycle_available":{"type":"boolean"},"health":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AgentTriggerSubscriptionHealth"}}},"required":["subscriptions","pagination","catalog","connection","lifecycle_available","health"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Owner access required"},"404":{"description":"Connection, subscription or feature not found"},"422":{"description":"Invalid subscription input"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_organization_id_agent_connections_agent_connection_id_trigger_subscriptions","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_connection_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Authentication required"},"403":{"description":"Owner access required"},"404":{"description":"Connection, subscription or feature not found"},"422":{"description":"Invalid subscription input"},"502":{"description":"Bad gateway"},"201":{"description":"Owner subscription response","content":{"application/json":{"schema":{"type":"object","properties":{"subscription":{"$ref":"#/components/schemas/AgentTriggerSubscriptionRecord"}},"required":["subscription"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"trigger_slug":{"type":"string"},"configuration":{"type":"object","additionalProperties":true}},"required":["trigger_slug","configuration"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{agent_connection_id}/trigger_subscriptions/{id}":{"patch":{"operationId":"api_v1_organization_agent_connection_trigger_subscription","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_connection_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Owner subscription response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"subscription":{"$ref":"#/components/schemas/AgentTriggerSubscriptionRecord"}},"required":["subscription"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Owner access required"},"404":{"description":"Connection, subscription or feature not found"},"422":{"description":"Invalid subscription input"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"}},"required":["enabled"]}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_agent_connections_agent_connection_id_trigger_subscriptions_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_connection_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Owner subscription response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"subscription":{"$ref":"#/components/schemas/AgentTriggerSubscriptionRecord"}},"required":["subscription"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Owner access required"},"404":{"description":"Connection, subscription or feature not found"},"422":{"description":"Invalid subscription input"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"}},"required":["enabled"]}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_organizations_organization_id_agent_connections_agent_connection_id_trigger_subscriptions_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_connection_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Owner subscription response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"subscription":{"$ref":"#/components/schemas/AgentTriggerSubscriptionRecord"}},"required":["subscription"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Owner access required"},"404":{"description":"Connection, subscription or feature not found"},"422":{"description":"Invalid subscription input"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{agent_connection_id}/trigger_subscriptions/{id}/bind":{"post":{"operationId":"bind_api_v1_organization_agent_connection_trigger_subscription","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_connection_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Owner access required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid revision authorization"},"502":{"description":"Bad gateway"},"201":{"description":"Owner binding response","content":{"application/json":{"schema":{"type":"object","properties":{"binding":{"$ref":"#/components/schemas/AutomationProviderBindingRecord"}},"required":["binding"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"automation":{"type":"string"},"revision":{"type":"integer"},"trigger_key":{"type":"string"}},"required":["automation","revision","trigger_key"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{agent_connection_id}/trigger_subscriptions/{id}/discover":{"post":{"operationId":"discover_api_v1_organization_agent_connection_trigger_subscription","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_connection_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Owner subscription response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"subscription":{"$ref":"#/components/schemas/AgentTriggerSubscriptionRecord"}},"required":["subscription"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Owner access required"},"404":{"description":"Connection, subscription or feature not found"},"422":{"description":"Invalid subscription input"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{agent_connection_id}/trigger_subscriptions/{id}/replace":{"post":{"operationId":"replace_api_v1_organization_agent_connection_trigger_subscription","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_connection_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Authentication required"},"403":{"description":"Owner access required"},"404":{"description":"Connection, subscription or feature not found"},"422":{"description":"Invalid subscription input"},"502":{"description":"Bad gateway"},"201":{"description":"Owner subscription response","content":{"application/json":{"schema":{"type":"object","properties":{"subscription":{"$ref":"#/components/schemas/AgentTriggerSubscriptionRecord"}},"required":["subscription"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"trigger_slug":{"type":"string"},"configuration":{"type":"object","additionalProperties":true},"enabled":{"type":"boolean"}},"required":["trigger_slug","configuration","enabled"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{agent_connection_id}/trigger_subscriptions/{id}/revoke_binding":{"post":{"operationId":"revoke_binding_api_v1_organization_agent_connection_trigger_subscription","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_connection_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Owner binding response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"binding":{"$ref":"#/components/schemas/AutomationProviderBindingRecord"}},"required":["binding"]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Owner access required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid revision authorization"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"binding_id":{"type":"string"}},"required":["binding_id"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}":{"get":{"operationId":"api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"grants_limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"grants_cursor","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"},"provider":{"$ref":"#/components/schemas/AgentIntegrationManifest"},"capabilities":{"type":"object","required":["can_rename","can_reconnect","can_disconnect","can_manage_custody","can_manage_subscriptions","can_manage_safety"],"properties":{"can_rename":{"type":"boolean"},"can_reconnect":{"type":"boolean"},"can_disconnect":{"type":"boolean"},"can_manage_custody":{"type":"boolean"},"can_manage_subscriptions":{"type":"boolean"},"can_manage_safety":{"type":"boolean"}}},"activity":{"type":"array","items":{"type":"object","required":["id","tool","action_name","state","created_at","updated_at","run"],"properties":{"id":{"type":"string"},"tool":{"type":"string","nullable":true},"action_name":{"type":"string"},"state":{"type":"string","enum":["pending","succeeded","failed","uncertain"]},"created_at":{"type":"string","nullable":true},"updated_at":{"type":"string","nullable":true},"run":{"type":"object","required":["id","automation_id","automation_slug","automation_name","revision"],"properties":{"id":{"type":"string"},"automation_id":{"type":"string"},"automation_slug":{"type":"string"},"automation_name":{"type":"string"},"revision":{"type":"integer"}},"nullable":true}}}},"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"grants":{"type":"array","items":{"type":"object","required":["id","status","usable","revision","created_at","revoked_at","can_revoke","automation","actions"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["active","revoked"]},"usable":{"type":"boolean"},"revision":{"type":"integer"},"created_at":{"type":"string","nullable":true},"revoked_at":{"type":"string","nullable":true},"can_revoke":{"type":"boolean"},"automation":{"type":"object","required":["id","slug","name"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}},"nullable":true},"actions":{"type":"array","items":{"type":"object","required":["tool","name","mode"],"properties":{"tool":{"type":"string"},"name":{"type":"string"},"mode":{"type":"string","enum":["approval_required","preauthorized"]}}}}}}},"grants_pagination":{"$ref":"#/components/schemas/AutomationPagination"}},"required":["connection","provider","capabilities","activity","pagination","grants","grants_pagination"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Connection owner access required"},"404":{"description":"Connection or feature not found"},"422":{"description":"Invalid connection input"},"502":{"description":"Bad gateway"},"503":{"description":"Connection provider unavailable"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_organizations_organization_id_agent_connections_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"}},"required":["connection"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Connection owner access required"},"404":{"description":"Connection or feature not found"},"422":{"description":"Invalid connection input"},"502":{"description":"Bad gateway"},"503":{"description":"Connection provider unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string","minLength":1,"maxLength":100}},"required":["name"]}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_agent_connections_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"}},"required":["connection"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Connection owner access required"},"404":{"description":"Connection or feature not found"},"422":{"description":"Invalid connection input"},"502":{"description":"Bad gateway"},"503":{"description":"Connection provider unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string","minLength":1,"maxLength":100}},"required":["name"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/adopt_custody":{"post":{"operationId":"adopt_custody_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated connection custody metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["connection"],"properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["reason"],"properties":{"reason":{"type":"string","minLength":1,"maxLength":500}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/authorize":{"post":{"operationId":"authorize_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"redirect_url":{"type":"string","format":"uri"},"expires_at":{"type":"string","format":"date-time"}},"required":["redirect_url","expires_at"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Connection owner access required"},"404":{"description":"Connection or feature not found"},"422":{"description":"Invalid connection input"},"502":{"description":"Bad gateway"},"503":{"description":"Connection provider unavailable"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/complete":{"post":{"operationId":"complete_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"}},"required":["connection"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Connection owner access required"},"404":{"description":"Connection or feature not found"},"422":{"description":"Invalid connection input"},"502":{"description":"Bad gateway"},"503":{"description":"Connection provider unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"state":{"type":"string","minLength":64,"maxLength":64}},"required":["state"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/custody":{"get":{"operationId":"custody_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Custody permissions and audit history","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"},"events":{"type":"array","items":{"type":"object","properties":{"action":{"type":"string"},"reason":{"type":"string"},"actor_id":{"type":"string"},"actor_name":{"type":"string"},"from_user_id":{"type":"string"},"from_name":{"type":"string"},"to_user_id":{"type":"string"},"to_name":{"type":"string"},"created_at":{"type":"string"}},"required":["action","reason","actor_id","actor_name","from_user_id","from_name","to_user_id","to_name","created_at"]}},"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"can_adopt":{"type":"boolean"},"can_reassign":{"type":"boolean"}},"required":["connection","events","pagination","can_adopt","can_reassign"]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/delegate":{"post":{"operationId":"delegate_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Owner-managed revision delegation","content":{"application/json":{"schema":{"type":"object","properties":{"delegation":{"$ref":"#/components/schemas/AgentConnectionAccessRecord"}},"required":["delegation"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"grant_id":{"type":"string"},"member_id":{"type":"string"},"roles":{"type":"array","items":{"type":"string","enum":["invoke","approve"]},"minItems":1,"maxItems":2,"uniqueItems":true}},"required":["grant_id","member_id","roles"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/delegations":{"get":{"operationId":"delegations_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Owner-managed revision delegation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"delegations":{"type":"array","items":{"$ref":"#/components/schemas/AgentConnectionAccessRecord"}},"pagination":{"$ref":"#/components/schemas/AutomationPagination"}},"required":["delegations","pagination"]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/disconnect":{"post":{"operationId":"disconnect_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"}},"required":["connection"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Connection owner access required"},"404":{"description":"Connection or feature not found"},"422":{"description":"Invalid connection input"},"502":{"description":"Bad gateway"},"503":{"description":"Connection provider unavailable"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/disconnect_impact":{"get":{"operationId":"disconnect_impact_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current disconnect impact","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["automations","subscription_count"],"properties":{"automations":{"type":"array","items":{"type":"object","required":["id","name","slug"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}}},"subscription_count":{"type":"integer","minimum":0}}}}}},"401":{"description":"Authentication required"},"403":{"description":"Forbidden"},"404":{"description":"Connection or feature not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/grant":{"post":{"operationId":"grant_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection grants","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"grant":{"$ref":"#/components/schemas/AutomationConnectionGrantRecord"}},"required":["grant"]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Connection grants","content":{"application/json":{"schema":{"type":"object","properties":{"grant":{"$ref":"#/components/schemas/AutomationConnectionGrantRecord"}},"required":["grant"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"automation":{"type":"string"},"revision":{"type":"integer","minimum":1},"actions":{"type":"array","minItems":1,"maxItems":30,"items":{"type":"object","properties":{"tool":{"type":"string"},"mode":{"type":"string","enum":["approval_required","preauthorized"]},"arguments":{"type":"object","additionalProperties":true}},"required":["tool","mode","arguments"]}},"permissions":{"type":"array","minItems":1,"maxItems":6,"items":{"type":"object","required":["tool","resources"],"properties":{"tool":{"type":"string"},"resources":{"type":"array","items":{"type":"string"}},"property_types":{"type":"object","minProperties":1,"maxProperties":10,"additionalProperties":{"type":"string","enum":["title","rich_text","number","checkbox","date"]},"description":"Required only for Notion entry writes: approved column names mapped to scalar types."},"mode":{"type":"string","enum":["preauthorized","approval_required"]}}}}},"required":["automation","revision"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/grants":{"get":{"operationId":"grants_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection grants","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"grants":{"type":"array","items":{"$ref":"#/components/schemas/AutomationConnectionGrantRecord"}}},"required":["grants"]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/reassign_custody":{"post":{"operationId":"reassign_custody_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated connection custody metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["connection"],"properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["reason","member_id"],"properties":{"reason":{"type":"string","minLength":1,"maxLength":500},"member_id":{"type":"string","minLength":1}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/resources":{"post":{"operationId":"resources_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Owned account resource metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["resources","next_cursor"],"properties":{"resources":{"type":"array","maxItems":50,"items":{"type":"object","required":["id","name","kind"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["channel","page","message"]}}}},"next_cursor":{"type":["string","null"]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":200},"cursor":{"type":["string","null"],"maxLength":2048}}}}}},"security":[{"bearerAuth":[]}],"summary":"Browse resources in an owned integration account"}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/revoke_delegation":{"post":{"operationId":"revoke_delegation_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Owner-managed revision delegation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"delegation":{"$ref":"#/components/schemas/AgentConnectionAccessRecord"}},"required":["delegation"]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"delegation_id":{"type":"string"}},"required":["delegation_id"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/revoke_grant":{"post":{"operationId":"revoke_grant_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection grants","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"grant":{"$ref":"#/components/schemas/AutomationConnectionGrantRecord"}},"required":["grant"]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"grant_id":{"type":"string"}},"required":["grant_id"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/safety_control":{"post":{"operationId":"safety_control_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Administrator safety metadata only","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["connection"],"properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["disabled","reason"],"properties":{"disabled":{"type":"boolean"},"reason":{"type":"string","minLength":1,"maxLength":500}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/artefacts":{"get":{"operationId":"api_v1_organization_artefacts","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Opaque next cursor from the preceding page with the same filters."},{"name":"q","in":"query","schema":{"type":"string","maxLength":200},"description":null,"filename or slug.":null},{"name":"source","in":"query","schema":{"type":"string","enum":["automation","agent","user"]}},{"name":"kind","in":"query","schema":{"type":"string","maxLength":200}},{"name":"harness","in":"query","schema":{"type":"string","maxLength":200}},{"name":"model","in":"query","schema":{"type":"string","maxLength":200}},{"name":"author","in":"query","schema":{"type":"string","maxLength":200},"description":"Publisher public ID, email, or unambiguous name."},{"name":"repo","in":"query","schema":{"type":"string","maxLength":200},"description":"Repository slug or public ID within the organization."},{"name":"slug","in":"query","schema":{"type":"string","maxLength":200},"description":"List available versions of one artefact slug."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"pagination":{"type":"object","required":["limit"],"properties":{"limit":{"type":"integer"},"next":{"type":"string"}}},"artefacts":{"type":"array","items":{"$ref":"#/components/schemas/Artefact"}}},"required":["artefacts","pagination"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Author or admin required"},"404":{"description":"Not found"},"422":{"description":"Invalid document or quota exceeded"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_organization_id_artefacts","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Authentication required"},"403":{"description":"Author or admin required"},"404":{"description":"Not found"},"422":{"description":"Invalid document or quota exceeded"},"502":{"description":"Bad gateway"},"201":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"artefact":{"$ref":"#/components/schemas/Artefact"}},"required":["artefact"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"multipart/form-data":{"schema":{"type":"object","oneOf":[{"required":["file"]},{"required":["files","paths","entrypoint"]}],"properties":{"files":{"type":"array","maxItems":200,"items":{"type":"string","format":"binary"}},"paths":{"type":"string","description":"JSON array of relative paths corresponding to files."},"entrypoint":{"type":"string","description":"Relative path opened by the viewer."},"title":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string"},"kind":{"type":"string"},"source":{"type":"string","enum":["agent","user"]},"harness":{"type":"string"},"harness_version":{"type":"string"},"model":{"type":"string"},"repository_id":{"type":"string","description":"Repository public ID or slug within the publishing organization."},"vcs_agent_session_id":{"type":"string"},"vcs_agent_checkpoint_id":{"type":"string"},"metadata_json":{"type":"object","description":"Allowlisted VcsAgentMetadata provenance; unknown fields are discarded.","additionalProperties":true},"file":{"type":"string","format":"binary"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/artefacts/page":{"get":{"operationId":"page_api_v1_organization_artefacts","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"q","in":"query","schema":{"type":"string","maxLength":200}},{"name":"kind","in":"query","schema":{"type":"string","maxLength":200}},{"name":"harness","in":"query","schema":{"type":"string","maxLength":200}},{"name":"model","in":"query","schema":{"type":"string","maxLength":200}},{"name":"author","in":"query","schema":{"type":"string","maxLength":200}},{"name":"repo","in":"query","schema":{"type":"string","maxLength":200}},{"name":"slug","in":"query","schema":{"type":"string","maxLength":200}},{"name":"source","in":"query","schema":{"type":"string","enum":["automation","agent","user"]}}],"responses":{"200":{"description":"Authorized private Artefacts page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ArtefactIndexPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Resource not found"},"422":{"description":"Invalid selection"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/artefacts/{artefact_ref}":{"get":{"operationId":"api_v1_organization_artefact","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"artefact_ref","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"artefact":{"$ref":"#/components/schemas/Artefact"}},"required":["artefact"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Author or admin required"},"404":{"description":"Not found"},"422":{"description":"Invalid document or quota exceeded"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_organizations_organization_id_artefacts_artefact_ref_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"artefact_ref","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"artefact":{"$ref":"#/components/schemas/Artefact"}},"required":["artefact"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Author or admin required"},"404":{"description":"Not found"},"422":{"description":"Invalid document or quota exceeded"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"title":{"type":"string"},"description":{"type":"string"},"kind":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_artefacts_artefact_ref_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"artefact_ref","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_organizations_organization_id_artefacts_artefact_ref_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"artefact_ref","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Authentication required"},"403":{"description":"Author or admin required"},"404":{"description":"Not found"},"422":{"description":"Invalid document or quota exceeded"},"502":{"description":"Bad gateway"},"204":{"description":"Deleted"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/artefacts/{artefact_ref}/download":{"get":{"operationId":"download_api_v1_organization_artefact","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"artefact_ref","in":"path","required":true,"schema":{"type":"string"}},{"name":"path","in":"query","schema":{"type":"string"},"description":"Exact file path within the selected revision manifest."}],"responses":{"200":{"description":"Private attachment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Authentication required"},"403":{"description":"Author or admin required"},"404":{"description":"Not found"},"422":{"description":"Invalid document or quota exceeded"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/artefacts/{artefact_ref}/page":{"get":{"operationId":"page_api_v1_organization_artefact","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"artefact_ref","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"query","schema":{"type":"integer","minimum":1}},{"name":"versions_page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"file","in":"query","schema":{"type":"string","maxLength":500}}],"responses":{"200":{"description":"Authorized private Artefacts page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ArtefactDetailPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Resource not found"},"422":{"description":"Invalid selection"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/artefacts/{artefact_ref}/view_tokens":{"post":{"operationId":"view_tokens_api_v1_organization_artefact","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"artefact_ref","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Short-lived viewer handshake URL","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["viewer_url","expires_in"],"properties":{"viewer_url":{"type":"string","format":"uri"},"expires_in":{"type":"integer"}}}}}},"401":{"description":"Authentication required"},"403":{"description":"Forbidden"},"404":{"description":"Document or membership unavailable"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations":{"get":{"operationId":"api_v1_organization_automations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_triggerable","in":"query","description":"List active actions published with an Agent trigger.","schema":{"type":"boolean"}},{"name":"limit","in":"query","description":"Records per page, from 1 to 100 (default 100).","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Continue after pagination.next from the previous page in this collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"automations":{"type":"array","items":{"$ref":"#/components/schemas/AutomationRecord"}}},"required":["pagination","automations"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"409":{"description":"Revision or idempotency conflict"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_organization_id_automations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"automation":{"$ref":"#/components/schemas/AutomationRecord"}},"required":["automation"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"201":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","properties":{"automation":{"$ref":"#/components/schemas/AutomationRecord"}},"required":["automation"]}}}},"409":{"description":"Revision or idempotency conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AutomationDefinition"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/catalog":{"get":{"operationId":"catalog_api_v1_organization_automations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Automation event response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization administrator required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid replay request"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/events":{"get":{"operationId":"events_api_v1_organization_automations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Records per page, from 1 to 100 (default 100).","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Continue after pagination.next from the previous page in this collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Automation event response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"events":{"type":"array","items":{"$ref":"#/components/schemas/AutomationEventRecord"}}},"required":["pagination","events"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization administrator required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid replay request"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/new_page":{"get":{"operationId":"new_page_api_v1_organization_automations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Authorized automation page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AutomationNewPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Administrator access required"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/page":{"get":{"operationId":"page_api_v1_organization_automations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Authorized automation page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AutomationIndexPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Administrator access required"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations":{"get":{"operationId":"api_v1_organization_automation_invocations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Records per page, from 1 to 100 (default 100).","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Continue after pagination.next from the previous page in this collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"invocations":{"type":"array","items":{"$ref":"#/components/schemas/AutomationInvocationRecord"}}},"required":["pagination","invocations"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"409":{"description":"Revision or idempotency conflict"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_organization_id_automations_automation_id_invocations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":128}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"invocation":{"$ref":"#/components/schemas/AutomationInvocationRecord"}},"required":["invocation"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"202":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","properties":{"invocation":{"$ref":"#/components/schemas/AutomationInvocationRecord"}},"required":["invocation"]}}}},"409":{"description":"Revision or idempotency conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AutomationInvocationInput"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}":{"get":{"operationId":"api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"invocation":{"$ref":"#/components/schemas/AutomationInvocationRecord"}},"required":["invocation"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"409":{"description":"Revision or idempotency conflict"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/approvals":{"get":{"operationId":"approvals_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Continue from pagination.next in this owner's approval collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Owner-scoped approval payloads and pagination","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["approvals","pagination"],"properties":{"approvals":{"type":"array","items":{"$ref":"#/components/schemas/AutomationActionApprovalRecord"}},"pagination":{"$ref":"#/components/schemas/AutomationPagination"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Invocation or cursor is outside the authorized collection"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List the signed-in owner's action approvals for an invocation"}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/artifacts":{"get":{"operationId":"artifacts_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Records per page, from 1 to 100 (default 100).","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Continue after pagination.next from the previous page in this collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["pagination"],"properties":{"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"artifacts":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/AutomationArtifactManifest"},{"type":"object","properties":{"state":{"type":"string"}}}]}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/artifacts/{automation_artifact_id}":{"get":{"operationId":"get_api_v1_organizations_organization_id_automations_automation_id_invocations_id_artifacts_automation_artifact_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_artifact_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Private attachment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/attempts":{"get":{"operationId":"attempts_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Records per page, from 1 to 100 (default 100).","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Continue after pagination.next from the previous page in this collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Durable execution attempts","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"attempts":{"type":"array","items":{"$ref":"#/components/schemas/AutomationAttemptRecord"}}},"required":["pagination","attempts"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Forbidden"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/cancel":{"post":{"operationId":"cancel_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"invocation":{"$ref":"#/components/schemas/AutomationInvocationRecord"}},"required":["invocation"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"409":{"description":"Revision or idempotency conflict"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/decide_approval":{"post":{"operationId":"decide_approval_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Owner decision for the exact action","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["approval"],"properties":{"approval":{"$ref":"#/components/schemas/AutomationActionApprovalRecord"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["approval","decision"],"properties":{"approval":{"type":"string"},"decision":{"type":"string","enum":["approved","denied"]}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/page":{"get":{"operationId":"page_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"attempt","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"transcript_page","in":"query","required":false,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Authorized automation page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AutomationInvocationPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Administrator access required"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/recover_origin":{"post":{"operationId":"recover_origin_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Provider-verified origin; original receipt remains uncertain","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["origin_verification"],"properties":{"origin_verification":{"$ref":"#/components/schemas/AutomationOriginVerificationRecord"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Current connection authority is required"},"404":{"description":"Original invocation result is not accessible"},"422":{"description":"Original dispatch cannot be uniquely verified"},"502":{"description":"Bad gateway"},"409":{"description":"Provider log or action already verified differently"},"503":{"description":"Provider verification temporarily unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AutomationOriginVerificationInput"}}}},"security":[{"bearerAuth":[]}],"summary":"Verify the successful provider origin of an uncertain action without retrying it"}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/resolve_tool_call":{"post":{"operationId":"resolve_tool_call_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Immutable operator resolution; original receipt remains uncertain","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["resolution"],"properties":{"resolution":{"$ref":"#/components/schemas/AutomationToolResolutionRecord"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Only the current connection owner or custodian may resolve this action"},"404":{"description":"Invocation or action is outside the organization"},"422":{"description":"Action is not uncertain or evidence is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"Action already has a different final resolution"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AutomationToolResolutionInput"}}}},"security":[{"bearerAuth":[]}],"summary":"Record owner evidence for an uncertain action without retrying it"}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/retry":{"post":{"operationId":"retry_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Linked successor invocation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"invocation":{"$ref":"#/components/schemas/AutomationInvocationRecord"}},"required":["invocation"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Administrator required"},"404":{"description":"Resource not found"},"422":{"description":"Retry not allowed"},"502":{"description":"Bad gateway"},"202":{"description":"Linked successor invocation","content":{"application/json":{"schema":{"type":"object","properties":{"invocation":{"$ref":"#/components/schemas/AutomationInvocationRecord"}},"required":["invocation"]}}}},"409":{"description":"Idempotency conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"idempotency_key":{"type":"string"}},"required":["idempotency_key"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/tool_calls":{"get":{"operationId":"tool_calls_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Records per page, from 1 to 100 (default 100).","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Continue after pagination.next from the previous page in this collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Bounded tool call history for this invocation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["pagination"],"properties":{"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"roder_run_id":{"type":"string"},"name":{"type":"string"},"state":{"enum":["pending","succeeded","failed","uncertain"]},"arguments":{"type":"object","additionalProperties":true},"result":{"type":"object","nullable":true,"additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/transcript":{"get":{"operationId":"transcript_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"attempt","in":"query","required":true,"schema":{"type":"integer","minimum":1}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["entries","pagination"],"properties":{"entries":{"type":"array","items":{"$ref":"#/components/schemas/AutomationTranscriptEntry"}},"pagination":{"type":"object","required":["limit"],"properties":{"limit":{"type":"integer"},"next":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{id}":{"get":{"operationId":"api_v1_organization_automation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"automation":{"$ref":"#/components/schemas/AutomationRecord"}},"required":["automation"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"409":{"description":"Revision or idempotency conflict"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_organizations_organization_id_automations_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"automation":{"$ref":"#/components/schemas/AutomationRecord"}},"required":["automation"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"409":{"description":"Revision or idempotency conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"slug":{"type":"string"},"name":{"type":"string"},"configuration":{"$ref":"#/components/schemas/AutomationConfiguration"},"expected_revision":{"type":"integer"}},"required":["expected_revision"]}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_automations_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{id}/activate":{"post":{"operationId":"activate_api_v1_organization_automation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"automation":{"$ref":"#/components/schemas/AutomationRecord"}},"required":["automation"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"409":{"description":"Revision or idempotency conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"expected_revision":{"type":"integer"}},"required":["expected_revision"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{id}/archive":{"post":{"operationId":"archive_api_v1_organization_automation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"automation":{"$ref":"#/components/schemas/AutomationRecord"}},"required":["automation"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"409":{"description":"Revision or idempotency conflict"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{id}/event_deliveries":{"get":{"operationId":"event_deliveries_api_v1_organization_automation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Records per page, from 1 to 100 (default 100).","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Continue after pagination.next from the previous page in this collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Automation event response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"deliveries":{"type":"array","items":{"$ref":"#/components/schemas/AutomationEventDeliveryRecord"}}},"required":["pagination","deliveries"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization administrator required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid replay request"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{id}/page":{"get":{"operationId":"page_api_v1_organization_automation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Authorized automation page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AutomationDetailPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Administrator access required"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{id}/pause":{"post":{"operationId":"pause_api_v1_organization_automation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"automation":{"$ref":"#/components/schemas/AutomationRecord"}},"required":["automation"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"409":{"description":"Revision or idempotency conflict"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{id}/preview":{"post":{"operationId":"preview_api_v1_organization_automation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"cooldown":{"type":"object","properties":{"applicable":{"type":"boolean"},"reason":{"type":"string","nullable":true},"until_at":{"type":"string","format":"date-time","nullable":true}},"required":["applicable","reason","until_at"]},"matches":{"type":"boolean"},"next_due_at":{"type":"string","format":"date-time","nullable":true},"triggers":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"matches":{"type":"boolean"},"next_occurrences":{"type":"array","items":{"type":"string","format":"date-time"}}},"required":["key","matches","next_occurrences"]}}},"required":[]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"409":{"description":"Revision or idempotency conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"input":{},"event":{"type":["object","null"],"additionalProperties":true}},"required":[]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{id}/replay":{"post":{"operationId":"replay_api_v1_organization_automation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization administrator required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid replay request"},"502":{"description":"Bad gateway"},"202":{"description":"Automation event response","content":{"application/json":{"schema":{"type":"object","properties":{"replay":{"type":"object","additionalProperties":true}},"required":["replay"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"event_ids":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"string"}}},"required":["event_ids"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{id}/revisions":{"get":{"operationId":"revisions_api_v1_organization_automation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Records per page, from 1 to 100 (default 100).","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Continue after pagination.next from the previous page in this collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Immutable revisions, newest first","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["pagination","revisions"],"properties":{"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"revisions":{"type":"array","items":{"type":"object","required":["number","configuration","created_at"],"properties":{"number":{"type":"integer"},"skills":{"type":"array","items":{"type":"object","additionalProperties":true}},"configuration":{"$ref":"#/components/schemas/AutomationConfiguration"},"created_at":{"type":"string","format":"date-time"}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{id}/trigger":{"post":{"operationId":"trigger_api_v1_organization_automation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Authentication required"},"403":{"description":"Forbidden"},"404":{"description":"Organization or automation unavailable"},"422":{"description":"Agent action disabled or input invalid"},"502":{"description":"Bad gateway"},"202":{"description":"Accepted agent invocation","content":{"application/json":{"schema":{"type":"object","required":["invocation"],"properties":{"invocation":{"$ref":"#/components/schemas/AutomationInvocationRecord"}}}}}},"409":{"description":"Revision or idempotency conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AutomationInvocationInput"}}}},"security":[{"bearerAuth":[]}],"summary":"Invoke the active Agent action as an organization member"}},"/api/v1/organizations/{organization_id}/billing":{"get":{"operationId":"api_v1_organization_billing","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Billing page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"The billing page contract for an organization","description":"Customer, subscription, the package entitlements are computed from (the subscription's, or the public Team package for an organization that has not subscribed), per-meter entitlements, add-ons, budget, and the Metronome draft-invoice preview. Any member may read it."}},"/api/v1/organizations/{organization_id}/billing/addons/{addon_key}":{"put":{"operationId":"put_api_v1_organizations_organization_id_billing_addons_addon_key_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"addon_key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated billing page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["quantity"],"properties":{"quantity":{"type":"integer","minimum":0}}}}}},"security":[{"bearerAuth":[]}],"summary":"Set an add-on quantity on the subscription (owner); 0 removes it"}},"/api/v1/organizations/{organization_id}/billing/budget":{"patch":{"operationId":"api_v1_organization_billing_budget","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated billing page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Set or clear the monthly usage budget (owner)"},"put":{"operationId":"put_api_v1_organizations_organization_id_billing_budget","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated billing page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"monthly_cap_cents":{"type":["integer","null"],"description":"Null clears the budget."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Set or clear the monthly usage budget (owner)"}},"/api/v1/organizations/{organization_id}/billing/checkout_sessions":{"post":{"operationId":"api_v1_organization_billing_checkout_sessions","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"The hosted Checkout URL to redirect the browser to","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingHostedSession"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"success_url":{"type":"string"},"cancel_url":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Create a setup-mode Stripe Checkout Session (owner)","description":"Collects a card and billing address; nothing is charged. The subscription is provisioned by the `checkout.session.completed` webhook. `success_url` and `cancel_url` are honoured only on the frontend origin."}},"/api/v1/organizations/{organization_id}/billing/invoices":{"get":{"operationId":"api_v1_organization_billing_invoices","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Invoices","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingInvoicesPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"The Metronome draft and the Stripe invoice list","description":"`upcoming` is what Metronome would invoice now (the current draft total, its period, and the credit balance that offsets it), null without a subscription or when the preview is unavailable. `invoices` is the organization's Stripe invoices, newest first, with the hosted page and PDF links; empty without a Stripe customer. Cached for a minute per organization. Any member may read it. This is its own read rather than part of the page contract because Stripe answers slowly and the usage page must not wait on it."}},"/api/v1/organizations/{organization_id}/billing/portal_sessions":{"post":{"operationId":"api_v1_organization_billing_portal_sessions","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"The portal URL to redirect the browser to","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingHostedSession"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"return_url":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Create a Stripe Customer Portal session (owner)"}},"/api/v1/organizations/{organization_id}/billing/subscription":{"patch":{"operationId":"api_v1_organization_billing_subscription","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated billing page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["cancel_at_period_end"],"properties":{"cancel_at_period_end":{"type":"boolean"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Cancel or resume the subscription at period end (owner)"},"put":{"operationId":"put_api_v1_organizations_organization_id_billing_subscription","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated billing page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Cancel or resume the subscription at period end (owner)"}},"/api/v1/organizations/{organization_id}/billing/usage":{"get":{"operationId":"api_v1_organization_billing_usage","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Meters","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingUsage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"The entitlement meter table for the current period"}},"/api/v1/organizations/{organization_id}/billing/usage/breakdown":{"get":{"operationId":"usage_breakdown_api_v1_organization_billing","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"meter","in":"query","required":false,"schema":{"type":"string"},"description":"A meter key; without one the series cover every meter and `subjects` is empty."},{"name":"window","in":"query","required":false,"schema":{"type":"string","enum":["24h","7d","period"],"default":"24h"}}],"responses":{"200":{"description":"Usage breakdown","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingUsageBreakdown"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Unknown meter or window"}},"security":[{"bearerAuth":[]}],"summary":"The live usage breakdown from the Tinybird pipes, or the rollup fallback","description":"The last 24 hours at 5-minute resolution, the hourly series and totals for `window`, and (when `meter` is given) the top subjects for that meter. `source` is `tinybird` when the pipes answered and `rollup` when Rails served its own hourly rollups instead; a rollup-sourced breakdown has no subjects and lags by up to an hour. Any member may read it."}},"/api/v1/organizations/{organization_id}/domain_dns_integrations":{"get":{"operationId":"api_v1_organization_domain_dns_integrations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"DNS integrations in the organization","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["integrations"],"properties":{"integrations":{"type":"array","items":{"$ref":"#/components/schemas/DomainDnsIntegration"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_organization_id_domain_dns_integrations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connected Cloudflare DNS integration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DomainDnsIntegration"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Static site request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaticSiteError"}}}},"502":{"description":"Bad gateway"},"201":{"description":"Connected Cloudflare DNS integration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainDnsIntegration"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["api_token"],"properties":{"api_token":{"type":"string","writeOnly":true},"account_label":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/git_imports":{"post":{"operationId":"api_v1_organization_git_imports","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Scoped Git upload destination","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitImportTransfer"}}}},"202":{"description":"Writer preparation is pending. Repeat the same idempotent creation request after Retry-After; no transfer credential is issued yet.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/GitImportStatus"},{"type":"object","required":["storage_status"],"properties":{"storage_status":{"type":"string","enum":["preparing"]}}}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["idempotency_key","slug","destination_mode","root_path","source_branch"],"properties":{"idempotency_key":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"root_path":{"type":"string"},"source_branch":{"type":"string"},"target_branch":{"type":"string"},"destination_mode":{"type":"string","enum":["standalone","home"]},"git_default_branch":{"type":"string","description":"Original Git symbolic HEAD branch, independent of the branch selected for JJ conversion"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Reserve an isolated Git import destination without contacting JJ"}},"/api/v1/organizations/{organization_id}/github_app/installations":{"get":{"operationId":"api_v1_organization_github_app_installations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub App installations linked to the organization","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["github_app_installations","github_completion_health"],"properties":{"github_app_installations":{"type":"array","items":{"type":"object","required":["id","organization_id","installation_id","account_login","account_id","account_avatar_url","manage_access_url","status","permissions","permission_entries","installed_at","installed_at_label","suspended_at","suspended_at_label","created_at","created_at_label","updated_at","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"installation_id":{"type":"string"},"account_login":{"type":"string"},"account_id":{"type":"string","nullable":true},"account_avatar_url":{"type":"string","format":"uri","nullable":true},"manage_access_url":{"type":"string","format":"uri"},"status":{"type":"string","enum":["active","suspended"]},"permissions":{"type":"object","additionalProperties":true},"permission_entries":{"description":"GitHub's permission hash as a display-ready list, sorted by name.","type":"array","items":{"type":"object","required":["key","name","access"],"properties":{"key":{"type":"string"},"name":{"type":"string"},"access":{"type":"string"}}}},"installed_at":{"type":"string","format":"date-time","nullable":true},"installed_at_label":{"type":"string","nullable":true},"suspended_at":{"type":"string","format":"date-time","nullable":true},"suspended_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","nullable":true}}}},"github_completion_health":{"$ref":"#/components/schemas/GithubCompletionHealth"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/github_app/installations/{id}":{"delete":{"operationId":"api_v1_organization_github_app_installation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"force","in":"query","required":false,"description":"Turn off dependent GitHub sync, CI, and in-flight landings instead of refusing.","schema":{"type":"boolean"}},{"name":"uninstall_on_github","in":"query","required":false,"description":"Also uninstall the App from the GitHub account.","schema":{"type":"boolean"}}],"responses":{"204":{"description":"The installation link was removed"},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not an organization administrator"},"404":{"description":"Not found"},"409":{"description":"The installation is still in use and `force` was not supplied","content":{"application/json":{"schema":{"type":"object","required":["error","blockers"],"properties":{"error":{"type":"string"},"blockers":{"description":"Server-authored sentences naming what a forced disconnect would turn off.","type":"array","items":{"type":"string"}}}}}}},"502":{"description":"GitHub rejected the uninstall request"},"503":{"description":"GitHub App credentials are not configured, or GitHub is unreachable"}},"security":[{"bearerAuth":[]}],"summary":"Disconnect a GitHub App installation from the organization","description":"Requires an organization administrator. Removes the Vex link so the GitHub account can be linked to a different organization, which is not possible while the link exists. Refuses with 409 when GitHub sync, GitHub Actions CI, or an in-flight landing still depends on the installation; `force` turns those off as part of disconnecting. `uninstall_on_github` additionally uninstalls the App from the GitHub account and succeeds when it is already uninstalled.\n"}},"/api/v1/organizations/{organization_id}/github_app/installations/{id}/check_connection":{"post":{"operationId":"check_connection_api_v1_organization_github_app_installation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"202":{"description":"Connection verification requested or already pending","content":{"application/json":{"schema":{"type":"object","required":["health"],"properties":{"health":{"$ref":"#/components/schemas/GithubConnectionHealth"}}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/github_ci_repositories":{"get":{"operationId":"api_v1_organization_github_ci_repositories","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["active","paused","archived"]}},{"name":"adoption_mode","in":"query","required":false,"schema":{"type":"string","enum":["shadow","reporting","required"]}}],"responses":{"200":{"description":"GitHub CI repositories","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["github_ci_repositories"],"properties":{"github_ci_repositories":{"type":"array","items":{"type":"object","required":["id","organization_id","github_app_installation_id","ci_runner_pool_id","github_repository_id","repository_owner","repository_name","repository_full_name","default_branch","status","adoption_mode","check_name_prefix","permission_status","last_webhook_delivery_id","last_webhook_event","last_webhook_action","last_webhook_at","last_webhook_at_label","last_head_sha","last_ref","last_pull_request_number","webhook_delivery_count","last_compatibility_status","last_error_message","metadata","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_app_installation_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"github_repository_id":{"type":"string"},"repository_owner":{"type":"string"},"repository_name":{"type":"string"},"repository_full_name":{"type":"string"},"default_branch":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"adoption_mode":{"type":"string","enum":["shadow","reporting","required"]},"check_name_prefix":{"type":"string"},"permission_status":{"type":"string","enum":["unchecked","ok","missing"]},"last_webhook_delivery_id":{"type":"string","nullable":true},"last_webhook_event":{"type":"string","nullable":true},"last_webhook_action":{"type":"string","nullable":true},"last_webhook_at":{"type":"string","format":"date-time","nullable":true},"last_webhook_at_label":{"type":"string","nullable":true},"last_head_sha":{"type":"string","nullable":true},"last_ref":{"type":"string","nullable":true},"last_pull_request_number":{"type":"integer","nullable":true},"webhook_delivery_count":{"type":"integer"},"last_compatibility_status":{"type":"string","enum":["executable","warning","blocked","error"],"nullable":true},"last_error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_organization_id_github_ci_repositories","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub CI repository","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","organization_id","github_app_installation_id","ci_runner_pool_id","github_repository_id","repository_owner","repository_name","repository_full_name","default_branch","status","adoption_mode","check_name_prefix","permission_status","last_webhook_delivery_id","last_webhook_event","last_webhook_action","last_webhook_at","last_webhook_at_label","last_head_sha","last_ref","last_pull_request_number","webhook_delivery_count","last_compatibility_status","last_error_message","metadata","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_app_installation_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"github_repository_id":{"type":"string"},"repository_owner":{"type":"string"},"repository_name":{"type":"string"},"repository_full_name":{"type":"string"},"default_branch":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"adoption_mode":{"type":"string","enum":["shadow","reporting","required"]},"check_name_prefix":{"type":"string"},"permission_status":{"type":"string","enum":["unchecked","ok","missing"]},"last_webhook_delivery_id":{"type":"string","nullable":true},"last_webhook_event":{"type":"string","nullable":true},"last_webhook_action":{"type":"string","nullable":true},"last_webhook_at":{"type":"string","format":"date-time","nullable":true},"last_webhook_at_label":{"type":"string","nullable":true},"last_head_sha":{"type":"string","nullable":true},"last_ref":{"type":"string","nullable":true},"last_pull_request_number":{"type":"integer","nullable":true},"webhook_delivery_count":{"type":"integer"},"last_compatibility_status":{"type":"string","enum":["executable","warning","blocked","error"],"nullable":true},"last_error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"GitHub CI repository","content":{"application/json":{"schema":{"type":"object","required":["id","organization_id","github_app_installation_id","ci_runner_pool_id","github_repository_id","repository_owner","repository_name","repository_full_name","default_branch","status","adoption_mode","check_name_prefix","permission_status","last_webhook_delivery_id","last_webhook_event","last_webhook_action","last_webhook_at","last_webhook_at_label","last_head_sha","last_ref","last_pull_request_number","webhook_delivery_count","last_compatibility_status","last_error_message","metadata","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_app_installation_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"github_repository_id":{"type":"string"},"repository_owner":{"type":"string"},"repository_name":{"type":"string"},"repository_full_name":{"type":"string"},"default_branch":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"adoption_mode":{"type":"string","enum":["shadow","reporting","required"]},"check_name_prefix":{"type":"string"},"permission_status":{"type":"string","enum":["unchecked","ok","missing"]},"last_webhook_delivery_id":{"type":"string","nullable":true},"last_webhook_event":{"type":"string","nullable":true},"last_webhook_action":{"type":"string","nullable":true},"last_webhook_at":{"type":"string","format":"date-time","nullable":true},"last_webhook_at_label":{"type":"string","nullable":true},"last_head_sha":{"type":"string","nullable":true},"last_ref":{"type":"string","nullable":true},"last_pull_request_number":{"type":"integer","nullable":true},"webhook_delivery_count":{"type":"integer"},"last_compatibility_status":{"type":"string","enum":["executable","warning","blocked","error"],"nullable":true},"last_error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["github_app_installation_id","github_repository_id","repository_owner","repository_name"],"properties":{"github_app_installation_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"github_repository_id":{"type":"string"},"repository_owner":{"type":"string"},"repository_name":{"type":"string"},"default_branch":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"adoption_mode":{"type":"string","enum":["shadow","reporting","required"]},"check_name_prefix":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/github_ci_repositories/{github_ci_repository_id}/compatibility_reports":{"get":{"operationId":"api_v1_organization_github_ci_repository_compatibility_reports","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"github_ci_repository_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["executable","warning","blocked","error"]}},{"name":"source_sha","in":"query","required":false,"schema":{"type":"string"}},{"name":"event_name","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI workflow compatibility reports","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["ci_workflow_compatibility_reports"],"properties":{"ci_workflow_compatibility_reports":{"type":"array","items":{"type":"object","required":["id","organization_id","github_ci_repository_id","ci_pipeline_id","ci_pipeline_run_id","workflow_path","source_sha","source_blob_sha","parser_version","workflow_name","event_name","event_action","ref_name","head_sha","pull_request_number","status","execution_allowed","required_secrets","runner_labels","referenced_actions","supported_features","diagnostics","warnings","errors","metadata","analyzed_at","analyzed_at_label","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_ci_repository_id":{"type":"string"},"ci_pipeline_id":{"type":"string","nullable":true},"ci_pipeline_run_id":{"type":"string","nullable":true},"workflow_path":{"type":"string"},"source_sha":{"type":"string"},"source_blob_sha":{"type":"string","nullable":true},"parser_version":{"type":"string"},"workflow_name":{"type":"string","nullable":true},"event_name":{"type":"string"},"event_action":{"type":"string","nullable":true},"ref_name":{"type":"string","nullable":true},"head_sha":{"type":"string","nullable":true},"pull_request_number":{"type":"integer","nullable":true},"status":{"type":"string","enum":["executable","warning","blocked","error"]},"execution_allowed":{"type":"boolean"},"required_secrets":{"type":"array","items":{"type":"string"}},"runner_labels":{"type":"array","items":{"type":"string"}},"referenced_actions":{"type":"array","items":{"type":"string"}},"supported_features":{"type":"object","additionalProperties":true},"diagnostics":{"type":"array","items":{"type":"object","required":["severity","code","path","message","metadata"],"properties":{"severity":{"type":"string","enum":["error","warning"]},"code":{"type":"string"},"path":{"type":"string"},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}}}},"warnings":{"type":"array","items":{"type":"object","required":["severity","code","path","message","metadata"],"properties":{"severity":{"type":"string","enum":["error","warning"]},"code":{"type":"string"},"path":{"type":"string"},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}}}},"errors":{"type":"array","items":{"type":"object","required":["severity","code","path","message","metadata"],"properties":{"severity":{"type":"string","enum":["error","warning"]},"code":{"type":"string"},"path":{"type":"string"},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}}}},"metadata":{"type":"object","additionalProperties":true},"analyzed_at":{"type":"string","format":"date-time"},"analyzed_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/github_ci_repositories/{github_ci_repository_id}/compatibility_reports/{id}":{"get":{"operationId":"api_v1_organization_github_ci_repository_compatibility_report","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"github_ci_repository_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI workflow compatibility report","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","organization_id","github_ci_repository_id","ci_pipeline_id","ci_pipeline_run_id","workflow_path","source_sha","source_blob_sha","parser_version","workflow_name","event_name","event_action","ref_name","head_sha","pull_request_number","status","execution_allowed","required_secrets","runner_labels","referenced_actions","supported_features","diagnostics","warnings","errors","metadata","analyzed_at","analyzed_at_label","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_ci_repository_id":{"type":"string"},"ci_pipeline_id":{"type":"string","nullable":true},"ci_pipeline_run_id":{"type":"string","nullable":true},"workflow_path":{"type":"string"},"source_sha":{"type":"string"},"source_blob_sha":{"type":"string","nullable":true},"parser_version":{"type":"string"},"workflow_name":{"type":"string","nullable":true},"event_name":{"type":"string"},"event_action":{"type":"string","nullable":true},"ref_name":{"type":"string","nullable":true},"head_sha":{"type":"string","nullable":true},"pull_request_number":{"type":"integer","nullable":true},"status":{"type":"string","enum":["executable","warning","blocked","error"]},"execution_allowed":{"type":"boolean"},"required_secrets":{"type":"array","items":{"type":"string"}},"runner_labels":{"type":"array","items":{"type":"string"}},"referenced_actions":{"type":"array","items":{"type":"string"}},"supported_features":{"type":"object","additionalProperties":true},"diagnostics":{"type":"array","items":{"type":"object","required":["severity","code","path","message","metadata"],"properties":{"severity":{"type":"string","enum":["error","warning"]},"code":{"type":"string"},"path":{"type":"string"},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}}}},"warnings":{"type":"array","items":{"type":"object","required":["severity","code","path","message","metadata"],"properties":{"severity":{"type":"string","enum":["error","warning"]},"code":{"type":"string"},"path":{"type":"string"},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}}}},"errors":{"type":"array","items":{"type":"object","required":["severity","code","path","message","metadata"],"properties":{"severity":{"type":"string","enum":["error","warning"]},"code":{"type":"string"},"path":{"type":"string"},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}}}},"metadata":{"type":"object","additionalProperties":true},"analyzed_at":{"type":"string","format":"date-time"},"analyzed_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/github_ci_repositories/{id}":{"get":{"operationId":"api_v1_organization_github_ci_repository","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub CI repository","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","organization_id","github_app_installation_id","ci_runner_pool_id","github_repository_id","repository_owner","repository_name","repository_full_name","default_branch","status","adoption_mode","check_name_prefix","permission_status","last_webhook_delivery_id","last_webhook_event","last_webhook_action","last_webhook_at","last_webhook_at_label","last_head_sha","last_ref","last_pull_request_number","webhook_delivery_count","last_compatibility_status","last_error_message","metadata","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_app_installation_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"github_repository_id":{"type":"string"},"repository_owner":{"type":"string"},"repository_name":{"type":"string"},"repository_full_name":{"type":"string"},"default_branch":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"adoption_mode":{"type":"string","enum":["shadow","reporting","required"]},"check_name_prefix":{"type":"string"},"permission_status":{"type":"string","enum":["unchecked","ok","missing"]},"last_webhook_delivery_id":{"type":"string","nullable":true},"last_webhook_event":{"type":"string","nullable":true},"last_webhook_action":{"type":"string","nullable":true},"last_webhook_at":{"type":"string","format":"date-time","nullable":true},"last_webhook_at_label":{"type":"string","nullable":true},"last_head_sha":{"type":"string","nullable":true},"last_ref":{"type":"string","nullable":true},"last_pull_request_number":{"type":"integer","nullable":true},"webhook_delivery_count":{"type":"integer"},"last_compatibility_status":{"type":"string","enum":["executable","warning","blocked","error"],"nullable":true},"last_error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_organizations_organization_id_github_ci_repositories_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub CI repository","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","organization_id","github_app_installation_id","ci_runner_pool_id","github_repository_id","repository_owner","repository_name","repository_full_name","default_branch","status","adoption_mode","check_name_prefix","permission_status","last_webhook_delivery_id","last_webhook_event","last_webhook_action","last_webhook_at","last_webhook_at_label","last_head_sha","last_ref","last_pull_request_number","webhook_delivery_count","last_compatibility_status","last_error_message","metadata","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_app_installation_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"github_repository_id":{"type":"string"},"repository_owner":{"type":"string"},"repository_name":{"type":"string"},"repository_full_name":{"type":"string"},"default_branch":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"adoption_mode":{"type":"string","enum":["shadow","reporting","required"]},"check_name_prefix":{"type":"string"},"permission_status":{"type":"string","enum":["unchecked","ok","missing"]},"last_webhook_delivery_id":{"type":"string","nullable":true},"last_webhook_event":{"type":"string","nullable":true},"last_webhook_action":{"type":"string","nullable":true},"last_webhook_at":{"type":"string","format":"date-time","nullable":true},"last_webhook_at_label":{"type":"string","nullable":true},"last_head_sha":{"type":"string","nullable":true},"last_ref":{"type":"string","nullable":true},"last_pull_request_number":{"type":"integer","nullable":true},"webhook_delivery_count":{"type":"integer"},"last_compatibility_status":{"type":"string","enum":["executable","warning","blocked","error"],"nullable":true},"last_error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"ci_runner_pool_id":{"type":"string","nullable":true},"default_branch":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"adoption_mode":{"type":"string","enum":["shadow","reporting","required"]},"check_name_prefix":{"type":"string"},"permission_status":{"type":"string","enum":["unchecked","ok","missing"]}}}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_github_ci_repositories_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub CI repository","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","organization_id","github_app_installation_id","ci_runner_pool_id","github_repository_id","repository_owner","repository_name","repository_full_name","default_branch","status","adoption_mode","check_name_prefix","permission_status","last_webhook_delivery_id","last_webhook_event","last_webhook_action","last_webhook_at","last_webhook_at_label","last_head_sha","last_ref","last_pull_request_number","webhook_delivery_count","last_compatibility_status","last_error_message","metadata","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_app_installation_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"github_repository_id":{"type":"string"},"repository_owner":{"type":"string"},"repository_name":{"type":"string"},"repository_full_name":{"type":"string"},"default_branch":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"adoption_mode":{"type":"string","enum":["shadow","reporting","required"]},"check_name_prefix":{"type":"string"},"permission_status":{"type":"string","enum":["unchecked","ok","missing"]},"last_webhook_delivery_id":{"type":"string","nullable":true},"last_webhook_event":{"type":"string","nullable":true},"last_webhook_action":{"type":"string","nullable":true},"last_webhook_at":{"type":"string","format":"date-time","nullable":true},"last_webhook_at_label":{"type":"string","nullable":true},"last_head_sha":{"type":"string","nullable":true},"last_ref":{"type":"string","nullable":true},"last_pull_request_number":{"type":"integer","nullable":true},"webhook_delivery_count":{"type":"integer"},"last_compatibility_status":{"type":"string","enum":["executable","warning","blocked","error"],"nullable":true},"last_error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"ci_runner_pool_id":{"type":"string","nullable":true},"default_branch":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"adoption_mode":{"type":"string","enum":["shadow","reporting","required"]},"check_name_prefix":{"type":"string"},"permission_status":{"type":"string","enum":["unchecked","ok","missing"]}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/github_completion_streams/{id}/retry":{"post":{"operationId":"retry_api_v1_organization_github_completion_stream","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The stream was resumed, or an earlier successful retry was observed","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["github_completion_retry"],"properties":{"github_completion_retry":{"type":"object","required":["stream_id","retried","state"],"properties":{"stream_id":{"type":"string"},"item_id":{"type":"string","nullable":true},"retried":{"type":"boolean"},"state":{"type":"string","enum":["active","blocked"]}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not an organization administrator"},"404":{"description":"Not found"},"422":{"description":"Live GitHub state does not match the safe retry checkpoint","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Retry the first blocked GitHub completion item","description":"Requires an organization administrator. Verifies the saved checkpoint and live GitHub state before restoring the blocked stage and waking the completion coordinator."}},"/api/v1/organizations/{organization_id}/github_onboarding":{"get":{"operationId":"api_v1_organization_github_onboarding","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub onboarding state","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/GithubOnboardingState"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/github_onboarding/branches":{"get":{"operationId":"api_v1_organization_github_onboarding_branches","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"github_app_installation_id","in":"query","required":true,"schema":{"type":"string"}},{"name":"owner","in":"query","required":true,"schema":{"type":"string"}},{"name":"name","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub repository branches","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["branches"],"properties":{"branches":{"type":"array","items":{"type":"string"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/github_onboarding/import_batches/{github_import_batch_id}":{"get":{"operationId":"get_api_v1_organizations_organization_id_github_onboarding_import_batches_github_import_batch_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"github_import_batch_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub import batch","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["batch"],"properties":{"batch":{"$ref":"#/components/schemas/GithubImportBatch"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/github_onboarding/import_items/{github_import_batch_item_id}/retry":{"post":{"operationId":"post_api_v1_organizations_organization_id_github_onboarding_import_items_github_import_batch_item_id_retry","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"github_import_batch_item_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub import batch","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["batch"],"properties":{"batch":{"$ref":"#/components/schemas/GithubImportBatch"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/github_onboarding/imports":{"post":{"operationId":"api_v1_organization_github_onboarding_imports","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub import batch","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["batch"],"properties":{"batch":{"$ref":"#/components/schemas/GithubImportBatch"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"GitHub import batch","content":{"application/json":{"schema":{"type":"object","required":["batch"],"properties":{"batch":{"$ref":"#/components/schemas/GithubImportBatch"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["github_app_installation_id","repositories"],"properties":{"github_app_installation_id":{"type":"string"},"execution_mode":{"type":"string","enum":["cloud","client"],"default":"cloud"},"repositories":{"oneOf":[{"type":"string","enum":["all"]},{"type":"array","items":{"type":"object","required":["owner","name"],"properties":{"owner":{"type":"string"},"name":{"type":"string"},"root_path":{"type":"string"},"source_branch":{"type":"string"},"include_in_home":{"type":"boolean","default":true}}}}]},"trunk_bookmark":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/import_branch_policy":{"get":{"operationId":"api_v1_organization_import_branch_policy","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization settings page (organization summary plus import branch policy)","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"allOf":[{"$ref":"#/components/schemas/OrganizationImportBranchPolicy"},{"type":"object","required":["organization"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"}}}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_organizations_organization_id_import_branch_policy","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated organization import branch policy","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OrganizationImportBranchPolicy"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OrganizationImportBranchPolicy"}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_import_branch_policy","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/invitations":{"get":{"operationId":"api_v1_organization_invitations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization invitations page (organization summary plus invitations)","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization","invitations"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"},"invitations":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationInvitation"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_organization_id_invitations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization invitation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["invitation"],"properties":{"invitation":{"$ref":"#/components/schemas/OrganizationInvitation"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Organization invitation","content":{"application/json":{"schema":{"type":"object","required":["invitation"],"properties":{"invitation":{"$ref":"#/components/schemas/OrganizationInvitation"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OrganizationInvitationCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/invitations/{id}":{"delete":{"operationId":"api_v1_organization_invitation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"204":{"description":"Organization invitation revoked"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/logo_image":{"put":{"operationId":"put_api_v1_organizations_organization_id_logo_image","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/ImageUploadPayload"}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_organizations_organization_id_logo_image","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/members":{"get":{"operationId":"api_v1_organization_members","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization members page (organization summary plus members)","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization","members"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"},"members":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationMember"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/members/{id}":{"patch":{"operationId":"api_v1_organization_member","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated organization member","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["member"],"properties":{"member":{"$ref":"#/components/schemas/OrganizationMember"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OrganizationMemberUpdatePayload"}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_members_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated organization member","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["member"],"properties":{"member":{"$ref":"#/components/schemas/OrganizationMember"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OrganizationMemberUpdatePayload"}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_organizations_organization_id_members_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"204":{"description":"Organization member removed"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/pages/nodes":{"get":{"operationId":"get_api_v1_organizations_organization_id_pages_nodes","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization nodes page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization","pool_catalogs"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"},"pool_catalogs":{"type":"array","items":{"type":"object","required":["pool","enrollment_tokens"],"properties":{"pool":{"$ref":"#/components/schemas/CiRunnerPoolCatalog"},"enrollment_tokens":{"type":"array","items":{"$ref":"#/components/schemas/CiNodeEnrollmentToken"}}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/products":{"post":{"operationId":"api_v1_organization_products","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Only an organization admin can activate a product"},"404":{"description":"Not found"},"422":{"description":"Unknown product, or a request asking to deactivate one"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OrganizationProductActivationPayload"}}}},"security":[{"bearerAuth":[]}],"description":"Activate a product for the organization. Activation is idempotent, makes the product available without provisioning anything, and has no inverse: there is no deactivation route, and a request carrying `activated: false` is refused."}},"/api/v1/organizations/{organization_id}/repository_import_sessions":{"post":{"operationId":"api_v1_organization_repository_import_sessions","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Repository import session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryImportSession"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RepositoryImportSessionCreateRequest"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/signal_integrations":{"get":{"operationId":"api_v1_organization_signal_integrations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The organization's signal integrations","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["signal_integrations"],"properties":{"signal_integrations":{"type":"array","items":{"$ref":"#/components/schemas/SignalIntegration"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List the organization's third-party signal sources (roadmap 138)","description":"Every configured Sentry/PlanetScale connection with its ingest health. Secret VALUES are never returned — only whether one is stored. `{organization_id}` is the organization's public id (`org_…`) or its slug."},"post":{"operationId":"post_api_v1_organizations_organization_id_signal_integrations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The signal integration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["signal_integration"],"properties":{"signal_integration":{"$ref":"#/components/schemas/SignalIntegration"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The caller is not an administrator of the organization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"404":{"description":"Not found"},"422":{"description":"The request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"502":{"description":"Bad gateway"},"201":{"description":"The signal integration","content":{"application/json":{"schema":{"type":"object","required":["signal_integration"],"properties":{"signal_integration":{"$ref":"#/components/schemas/SignalIntegration"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/SignalIntegrationCreatePayload"}}}},"security":[{"bearerAuth":[]}],"summary":"Connect a third-party signal source (organization admin only)","description":"Creates the integration and stores the supplied credentials as organization-scoped secrets. The response carries the `inbound_url` to paste into the provider's webhook configuration."}},"/api/v1/organizations/{organization_id}/signal_integrations/{id}":{"get":{"operationId":"api_v1_organization_signal_integration","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The signal integration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["signal_integration"],"properties":{"signal_integration":{"$ref":"#/components/schemas/SignalIntegration"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read one signal integration"},"patch":{"operationId":"patch_api_v1_organizations_organization_id_signal_integrations_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The signal integration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["signal_integration"],"properties":{"signal_integration":{"$ref":"#/components/schemas/SignalIntegration"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The caller is not an administrator of the organization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"404":{"description":"Not found"},"422":{"description":"The request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/SignalIntegrationUpdatePayload"}}}},"security":[{"bearerAuth":[]}],"summary":"Update a signal integration (organization admin only)","description":"A blank `webhook_secret` or `api_token` leaves the stored value alone; it never erases one. `provider` is immutable."},"put":{"operationId":"put_api_v1_organizations_organization_id_signal_integrations_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The signal integration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["signal_integration"],"properties":{"signal_integration":{"$ref":"#/components/schemas/SignalIntegration"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The caller is not an administrator of the organization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"404":{"description":"Not found"},"422":{"description":"The request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/SignalIntegrationUpdatePayload"}}}},"security":[{"bearerAuth":[]}],"summary":"Update a signal integration (organization admin only)"},"delete":{"operationId":"delete_api_v1_organizations_organization_id_signal_integrations_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"The caller is not an administrator of the organization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"204":{"description":"The integration and its targets","receipts and cursors were deleted":null}},"security":[{"bearerAuth":[]}],"summary":"Disconnect a signal integration (organization admin only)"}},"/api/v1/organizations/{organization_id}/signal_integrations/{id}/regenerate_inbound_token":{"post":{"operationId":"regenerate_inbound_token_api_v1_organization_signal_integration","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The signal integration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["signal_integration"],"properties":{"signal_integration":{"$ref":"#/components/schemas/SignalIntegration"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The caller is not an administrator of the organization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Rotate the inbound webhook token (organization admin only)","description":"Revokes the current inbound URL. The provider's webhook configuration must be updated with the new URL from the response, or deliveries stop."}},"/api/v1/organizations/{organization_id}/signal_integrations/{id}/verify":{"post":{"operationId":"verify_api_v1_organization_signal_integration","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The signal integration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["signal_integration"],"properties":{"signal_integration":{"$ref":"#/components/schemas/SignalIntegration"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The caller is not an administrator of the organization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"404":{"description":"Not found"},"422":{"description":"The request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Verify the stored credential and discover targets (organization admin only)","description":"Calls the provider with the stored API token, upserts the resources it reports as targets, and marks the integration `active`. A provider whose adapter is not deployed yet answers 422 and records the reason on the integration."}},"/api/v1/organizations/{organization_id}/signal_integrations/{signal_integration_id}/deliveries":{"get":{"operationId":"api_v1_organization_signal_integration_deliveries","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"signal_integration_id","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"The integration's recent deliveries","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["signal_integration_deliveries"],"properties":{"signal_integration_deliveries":{"type":"array","items":{"$ref":"#/components/schemas/SignalIntegrationDelivery"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Recent inbound receipts for one integration","description":"Newest first, bounded (default 50, max 100). Carries no provider content — state, event kind, timings, error and the emitted signal's public id."}},"/api/v1/organizations/{organization_id}/signal_integrations/{signal_integration_id}/targets":{"get":{"operationId":"api_v1_organization_signal_integration_targets","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"signal_integration_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The integration's targets","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["signal_integration_targets"],"properties":{"signal_integration_targets":{"type":"array","items":{"$ref":"#/components/schemas/SignalIntegrationTarget"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List the provider resource to hosted app mapping"},"put":{"operationId":"put_api_v1_organizations_organization_id_signal_integrations_signal_integration_id_targets","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"signal_integration_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The integration's targets","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["signal_integration_targets"],"properties":{"signal_integration_targets":{"type":"array","items":{"$ref":"#/components/schemas/SignalIntegrationTarget"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The caller is not an administrator of the organization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"404":{"description":"Not found"},"422":{"description":"The request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/SignalIntegrationTargetsPayload"}}}},"security":[{"bearerAuth":[]}],"summary":"Replace the target mapping (organization admin only)","description":"The submitted list is the whole mapping — a target it omits is deleted. Use `enabled: false` to keep a target while stopping attribution."}},"/api/v1/organizations/{organization_id}/signal_subscriptions":{"get":{"operationId":"api_v1_organization_signal_subscriptions","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_organization_id_signal_subscriptions","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/signal_subscriptions/{id}":{"get":{"operationId":"api_v1_organization_signal_subscription","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_organizations_organization_id_signal_subscriptions_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_signal_subscriptions_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_organizations_organization_id_signal_subscriptions_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/signals":{"get":{"operationId":"api_v1_organization_signals","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"after_id","required":false,"description":"Exclusive cursor (`sig_…`). Ascending: return signals newer than it. Descending: alias for `before_id`.","schema":{"type":"string"}},{"in":"query","name":"before_id","required":false,"description":"Exclusive cursor (`sig_…`) for `order=desc` — return signals older than it.","schema":{"type":"string"}},{"in":"query","name":"order","required":false,"description":"Scan direction over the id cursor. Defaults to `asc` (oldest-first).","schema":{"type":"string","enum":["asc","desc"]}},{"in":"query","name":"limit","required":false,"description":"Signals per page (default 50, capped at 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"in":"query","name":"kind","required":false,"description":"Exact kind filter from the frozen taxonomy (§1); a single kind or a comma-separated list.","schema":{"type":"string"}},{"in":"query","name":"severity","required":false,"description":"Exact severity filter; a single level or a comma-separated list.","schema":{"type":"string"}},{"in":"query","name":"min_severity","required":false,"description":"Severity floor — this level and everything more severe (§2).","schema":{"$ref":"#/components/schemas/OpsSignalSeverity"}},{"in":"query","name":"hosted_app_id","required":false,"description":"Hosted app filter; accepts an `app_…` public id, a raw id, or the app slug.","schema":{"type":"string"}},{"in":"query","name":"since","required":false,"description":"ISO8601 lower bound on `occurred_at`.","schema":{"type":"string"}},{"in":"query","name":"unacked","required":false,"description":"When true, return only signals with no `acked_at`.","schema":{"type":"boolean"}},{"in":"query","name":"source","required":false,"description":"Signal source provider filter (docs §6e) — a single provider or a comma-separated list. An unrecognized provider is a 422 rather than an empty page.","schema":{"type":"string"}},{"in":"query","name":"integration_id","required":false,"description":"Narrow to one signal integration. Accepts the integration's raw id, and its `sint_…` public id once the integration model ships.","schema":{"type":"string"}},{"in":"query","name":"subscription_id","required":false,"description":"Resume a subscription (`sub_…`): its stored filters supply the defaults for any filter left blank, and its `last_acked_signal_id` becomes the default ascending `after_id`.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of signals, ordered by the id cursor.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OpsSignalPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"A supplied cursor or filter is invalid.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Page the organization's ops signals (docs/ops-signals.md §6)","description":"Cursor-paged signal feed, delegating to `Signals::Query` — the same read service the MCP tools use, so REST and agents never diverge. The cursor is the signal's monotonic id carried as its public id (`sig_…`): `asc` (default) pages forward with `after_id` (exclusive), `desc` pages newest-first with `before_id` (`after_id` is accepted as an alias for the `desc` boundary so a caller can flip `order` alone). In both directions `next_cursor` is the last returned signal's public id, fed straight back as the same-named boundary param. `{organization_id}` is the organization's public id (`org_…`) or its slug."}},"/api/v1/organizations/{organization_id}/signals/ack":{"post":{"operationId":"ack_api_v1_organization_signals","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The number of signals newly acked.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OpsSignalBulkAckResult"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"The request was neither `ids` nor explicitly scoped, or a supplied cursor or filter is invalid.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Bulk-ack signals (docs §6b)","description":"Two mutually exclusive shapes. Explicit `ids` acks exactly those and ignores every other key. Otherwise the request must be explicitly scoped — `before_id`, at least one filter, `recovered_only`, or an opt-in `all: true` — so a request the server did not understand can never silently ack the whole organization.","requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpsSignalBulkAckRequest"}}}}}},"/api/v1/organizations/{organization_id}/signals/{id}":{"get":{"operationId":"api_v1_organization_signal","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The signal, with its additive resource envelopes.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OpsSignalEnvelope"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"One signal by public id"}},"/api/v1/organizations/{organization_id}/signals/{id}/ack":{"post":{"operationId":"ack_api_v1_organization_signal","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The acked signal.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OpsSignalEnvelope"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Ack one signal","description":"Idempotent — re-acking an already-acked signal is a no-op."}},"/api/v1/organizations/{organization_id}/signals/{id}/agent_dispatch":{"post":{"operationId":"agent_dispatch_api_v1_organization_signal","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"An in-flight manual run already exists and was returned unchanged.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OpsSignalAgentDispatch"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"A new agent run was dispatched for the signal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpsSignalAgentDispatch"}}}},"429":{"description":"The organization's daily manual-dispatch budget is exhausted.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Spawn one agent run for a signal (docs §6c)","description":"Same authorization as ack (organization membership). Dedupe: when a manual run for this signal is still in flight the existing run is returned with `dispatched: false` and a 200; a fresh spawn returns `dispatched: true` and a 201."}},"/api/v1/organizations/{organization_id}/signals/{id}/agent_prompt":{"get":{"operationId":"agent_prompt_api_v1_organization_signal","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The agent prompt text.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OpsSignalAgentPrompt"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Copy-prompt text for one signal","description":"Byte-identical to the prompt a manual dispatch hands its agent (`Signals::AgentPromptBuilder`), for the \"Copy prompt\" action."}},"/api/v1/organizations/{organization_id}/static_sites":{"get":{"operationId":"api_v1_organization_static_sites","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Static sites in the organization","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["static_sites"],"properties":{"static_sites":{"type":"array","items":{"$ref":"#/components/schemas/StaticSite"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_organization_id_static_sites","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Static site created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["static_site"],"properties":{"static_site":{"$ref":"#/components/schemas/StaticSite"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Static site request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaticSiteError"}}}},"502":{"description":"Bad gateway"},"201":{"description":"Static site created","content":{"application/json":{"schema":{"type":"object","required":["static_site"],"properties":{"static_site":{"$ref":"#/components/schemas/StaticSite"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/StaticSiteCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/workspace_spaces":{"get":{"operationId":"api_v1_organization_workspace_spaces","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Workspace spaces visible to the current member","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["spaces"],"properties":{"spaces":{"type":"array","items":{"type":"object","required":["id","organization_id","repository_id","repository_slug","slug","name","description","root_path","icon_name","status","sync_provider_kind","sync_mode","sync_repository_full_name","sync_status","sync_run_id","sync_error_message","can_retry_import","hidden","position","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"root_path":{"type":"string"},"icon_name":{"type":"string","enum":["book-open","boxes","briefcase-business","code-xml","file-text","folder","folder-code","globe-2","lightbulb","panel-top","rocket","server","shield-check","sparkles","terminal"]},"status":{"type":"string","enum":["active","archived"]},"sync_provider_kind":{"type":"string","enum":["none","github","git","gitlab"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"sync_repository_full_name":{"type":"string","nullable":true},"sync_status":{"type":"string","enum":["none","importing","syncing","failed","ready"]},"sync_run_id":{"type":"string","nullable":true},"sync_error_message":{"type":"string","nullable":true},"can_retry_import":{"type":"boolean"},"hidden":{"type":"boolean"},"position":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_organization_id_workspace_spaces","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Created workspace space","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["space"],"properties":{"space":{"type":"object","required":["id","organization_id","repository_id","repository_slug","slug","name","description","root_path","icon_name","status","sync_provider_kind","sync_mode","sync_repository_full_name","sync_status","sync_run_id","sync_error_message","can_retry_import","hidden","position","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"root_path":{"type":"string"},"icon_name":{"type":"string","enum":["book-open","boxes","briefcase-business","code-xml","file-text","folder","folder-code","globe-2","lightbulb","panel-top","rocket","server","shield-check","sparkles","terminal"]},"status":{"type":"string","enum":["active","archived"]},"sync_provider_kind":{"type":"string","enum":["none","github","git","gitlab"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"sync_repository_full_name":{"type":"string","nullable":true},"sync_status":{"type":"string","enum":["none","importing","syncing","failed","ready"]},"sync_run_id":{"type":"string","nullable":true},"sync_error_message":{"type":"string","nullable":true},"can_retry_import":{"type":"boolean"},"hidden":{"type":"boolean"},"position":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Created workspace space","content":{"application/json":{"schema":{"type":"object","required":["space"],"properties":{"space":{"type":"object","required":["id","organization_id","repository_id","repository_slug","slug","name","description","root_path","icon_name","status","sync_provider_kind","sync_mode","sync_repository_full_name","sync_status","sync_run_id","sync_error_message","can_retry_import","hidden","position","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"root_path":{"type":"string"},"icon_name":{"type":"string","enum":["book-open","boxes","briefcase-business","code-xml","file-text","folder","folder-code","globe-2","lightbulb","panel-top","rocket","server","shield-check","sparkles","terminal"]},"status":{"type":"string","enum":["active","archived"]},"sync_provider_kind":{"type":"string","enum":["none","github","git","gitlab"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"sync_repository_full_name":{"type":"string","nullable":true},"sync_status":{"type":"string","enum":["none","importing","syncing","failed","ready"]},"sync_run_id":{"type":"string","nullable":true},"sync_error_message":{"type":"string","nullable":true},"can_retry_import":{"type":"boolean"},"hidden":{"type":"boolean"},"position":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["slug","name","icon_name"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"root_path":{"type":"string"},"icon_name":{"type":"string","enum":["book-open","boxes","briefcase-business","code-xml","file-text","folder","folder-code","globe-2","lightbulb","panel-top","rocket","server","shield-check","sparkles","terminal"]},"include_in_home_monorepo":{"type":"boolean","default":true,"description":"When true (default)","create a folder virtual repository inside Home. When false":null,"provision a standalone physical Vex repository.":null}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/workspace_spaces/github_import":{"post":{"operationId":"github_import_api_v1_organization_workspace_spaces","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Imported workspace space","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["space"],"properties":{"space":{"type":"object","required":["id","organization_id","repository_id","repository_slug","slug","name","description","root_path","icon_name","status","sync_provider_kind","sync_mode","sync_repository_full_name","sync_status","sync_run_id","sync_error_message","can_retry_import","hidden","position","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"root_path":{"type":"string"},"icon_name":{"type":"string","enum":["book-open","boxes","briefcase-business","code-xml","file-text","folder","folder-code","globe-2","lightbulb","panel-top","rocket","server","shield-check","sparkles","terminal"]},"status":{"type":"string","enum":["active","archived"]},"sync_provider_kind":{"type":"string","enum":["none","github","git","gitlab"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"sync_repository_full_name":{"type":"string","nullable":true},"sync_status":{"type":"string","enum":["none","importing","syncing","failed","ready"]},"sync_run_id":{"type":"string","nullable":true},"sync_error_message":{"type":"string","nullable":true},"can_retry_import":{"type":"boolean"},"hidden":{"type":"boolean"},"position":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Imported workspace space","content":{"application/json":{"schema":{"type":"object","required":["space"],"properties":{"space":{"type":"object","required":["id","organization_id","repository_id","repository_slug","slug","name","description","root_path","icon_name","status","sync_provider_kind","sync_mode","sync_repository_full_name","sync_status","sync_run_id","sync_error_message","can_retry_import","hidden","position","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"root_path":{"type":"string"},"icon_name":{"type":"string","enum":["book-open","boxes","briefcase-business","code-xml","file-text","folder","folder-code","globe-2","lightbulb","panel-top","rocket","server","shield-check","sparkles","terminal"]},"status":{"type":"string","enum":["active","archived"]},"sync_provider_kind":{"type":"string","enum":["none","github","git","gitlab"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"sync_repository_full_name":{"type":"string","nullable":true},"sync_status":{"type":"string","enum":["none","importing","syncing","failed","ready"]},"sync_run_id":{"type":"string","nullable":true},"sync_error_message":{"type":"string","nullable":true},"can_retry_import":{"type":"boolean"},"hidden":{"type":"boolean"},"position":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["github_app_installation_id","repository_owner","repository_name"],"properties":{"github_app_installation_id":{"type":"string"},"repository_owner":{"type":"string"},"repository_name":{"type":"string"},"trunk_bookmark":{"type":"string"},"source_branch":{"type":"string"},"include_in_home_monorepo":{"type":"boolean","default":true,"description":"When true (default)","import into Home as a folder virtual repository. When false":null,"provision a standalone physical Vex repository and materialize into it.":null}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/workspace_spaces/preferences":{"patch":{"operationId":"preferences_api_v1_organization_workspace_spaces","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated workspace space preferences","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["spaces"],"properties":{"spaces":{"type":"array","items":{"type":"object","required":["id","organization_id","repository_id","repository_slug","slug","name","description","root_path","icon_name","status","sync_provider_kind","sync_mode","sync_repository_full_name","sync_status","sync_run_id","sync_error_message","can_retry_import","hidden","position","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"root_path":{"type":"string"},"icon_name":{"type":"string","enum":["book-open","boxes","briefcase-business","code-xml","file-text","folder","folder-code","globe-2","lightbulb","panel-top","rocket","server","shield-check","sparkles","terminal"]},"status":{"type":"string","enum":["active","archived"]},"sync_provider_kind":{"type":"string","enum":["none","github","git","gitlab"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"sync_repository_full_name":{"type":"string","nullable":true},"sync_status":{"type":"string","enum":["none","importing","syncing","failed","ready"]},"sync_run_id":{"type":"string","nullable":true},"sync_error_message":{"type":"string","nullable":true},"can_retry_import":{"type":"boolean"},"hidden":{"type":"boolean"},"position":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["preferences"],"properties":{"preferences":{"type":"array","items":{"type":"object","required":["space_public_id","hidden","position"],"properties":{"space_public_id":{"type":"string"},"hidden":{"type":"boolean"},"position":{"type":"integer","nullable":true}}}}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/workspace_spaces/{id}":{"get":{"operationId":"api_v1_organization_workspace_space","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Workspace space","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["space"],"properties":{"space":{"type":"object","required":["id","organization_id","repository_id","repository_slug","slug","name","description","root_path","icon_name","status","sync_provider_kind","sync_mode","sync_repository_full_name","sync_status","sync_run_id","sync_error_message","can_retry_import","hidden","position","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"root_path":{"type":"string"},"icon_name":{"type":"string","enum":["book-open","boxes","briefcase-business","code-xml","file-text","folder","folder-code","globe-2","lightbulb","panel-top","rocket","server","shield-check","sparkles","terminal"]},"status":{"type":"string","enum":["active","archived"]},"sync_provider_kind":{"type":"string","enum":["none","github","git","gitlab"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"sync_repository_full_name":{"type":"string","nullable":true},"sync_status":{"type":"string","enum":["none","importing","syncing","failed","ready"]},"sync_run_id":{"type":"string","nullable":true},"sync_error_message":{"type":"string","nullable":true},"can_retry_import":{"type":"boolean"},"hidden":{"type":"boolean"},"position":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_organizations_organization_id_workspace_spaces_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated workspace space","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["space"],"properties":{"space":{"type":"object","required":["id","organization_id","repository_id","repository_slug","slug","name","description","root_path","icon_name","status","sync_provider_kind","sync_mode","sync_repository_full_name","sync_status","sync_run_id","sync_error_message","can_retry_import","hidden","position","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"root_path":{"type":"string"},"icon_name":{"type":"string","enum":["book-open","boxes","briefcase-business","code-xml","file-text","folder","folder-code","globe-2","lightbulb","panel-top","rocket","server","shield-check","sparkles","terminal"]},"status":{"type":"string","enum":["active","archived"]},"sync_provider_kind":{"type":"string","enum":["none","github","git","gitlab"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"sync_repository_full_name":{"type":"string","nullable":true},"sync_status":{"type":"string","enum":["none","importing","syncing","failed","ready"]},"sync_run_id":{"type":"string","nullable":true},"sync_error_message":{"type":"string","nullable":true},"can_retry_import":{"type":"boolean"},"hidden":{"type":"boolean"},"position":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string"},"description":{"type":"string","nullable":true},"icon_name":{"type":"string","enum":["book-open","boxes","briefcase-business","code-xml","file-text","folder","folder-code","globe-2","lightbulb","panel-top","rocket","server","shield-check","sparkles","terminal"]},"status":{"type":"string","enum":["active","archived"]}}}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_workspace_spaces_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/workspace_spaces/{id}/failed_import":{"delete":{"operationId":"failed_import_api_v1_organization_workspace_space","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Workspace spaces after clearing the failed import","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["spaces"],"properties":{"spaces":{"type":"array","items":{"type":"object","required":["id","organization_id","repository_id","repository_slug","slug","name","description","root_path","icon_name","status","sync_provider_kind","sync_mode","sync_repository_full_name","sync_status","sync_run_id","sync_error_message","can_retry_import","hidden","position","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"root_path":{"type":"string"},"icon_name":{"type":"string","enum":["book-open","boxes","briefcase-business","code-xml","file-text","folder","folder-code","globe-2","lightbulb","panel-top","rocket","server","shield-check","sparkles","terminal"]},"status":{"type":"string","enum":["active","archived"]},"sync_provider_kind":{"type":"string","enum":["none","github","git","gitlab"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"sync_repository_full_name":{"type":"string","nullable":true},"sync_status":{"type":"string","enum":["none","importing","syncing","failed","ready"]},"sync_run_id":{"type":"string","nullable":true},"sync_error_message":{"type":"string","nullable":true},"can_retry_import":{"type":"boolean"},"hidden":{"type":"boolean"},"position":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/personal_access_tokens":{"get":{"operationId":"api_v1_personal_access_tokens","tags":["personal_access_tokens"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_personal_access_tokens","tags":["personal_access_tokens"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/personal_access_tokens/{id}":{"delete":{"operationId":"api_v1_personal_access_token","tags":["personal_access_tokens"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/public/organizations/{org_slug}/repos/{repo_slug}":{"get":{"operationId":"get_api_v1_public_organizations_org_slug_repos_repo_slug_","tags":["public"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Minimal public repository discovery without membership or credentials","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PublicRepository"}}}},"401":{"description":"An explicitly supplied credential is invalid or revoked"},"403":{"description":"Forbidden"},"404":{"description":"Repository is unavailable for public discovery"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[]}},"/api/v1/public/organizations/{org_slug}/repos/{repo_slug}/archive":{"get":{"operationId":"api_v1_public_repository_archive","tags":["public"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"ref","in":"query","schema":{"type":"string","maxLength":1024}}],"responses":{"200":{"description":"Uncached ZIP of the pinned published source tree","content":{"application/zip":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Explicit credential is invalid"},"404":{"description":"Published source is unavailable"},"413":{"description":"Public archive limits exceeded"},"422":{"description":"Source contains unsupported or unsafe archive entries"},"429":{"description":"Public source request budget or archive capacity exceeded","headers":{"Retry-After":{"description":"Seconds before retrying","schema":{"type":"integer","minimum":1}}}},"503":{"description":"Archive preparation timed out"}},"security":[]}},"/api/v1/public/organizations/{org_slug}/repos/{repo_slug}/download":{"get":{"operationId":"api_v1_public_repository_download","tags":["public"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"ref","in":"query","schema":{"type":"string","maxLength":1024}},{"name":"path","in":"query","required":true,"schema":{"type":"string","maxLength":4096}}],"responses":{"200":{"description":"Published file bytes as a non-cacheable attachment","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"An explicitly supplied credential is invalid or revoked"},"404":{"description":"Source is unavailable or exceeds the download limit"},"429":{"description":"Public source request budget exceeded","headers":{"Retry-After":{"description":"Seconds before retrying","schema":{"type":"integer","minimum":1}}}}},"security":[]}},"/api/v1/public/organizations/{org_slug}/repos/{repo_slug}/source":{"get":{"operationId":"get_api_v1_public_organizations_org_slug_repos_repo_slug_source","tags":["public"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"ref","in":"query","schema":{"type":"string","maxLength":1024}},{"name":"path","in":"query","schema":{"type":"string","maxLength":4096}},{"name":"source_path","in":"query","description":"Combined published ref and file path for legacy source URLs","schema":{"type":"string","maxLength":5121}},{"name":"view","in":"query","schema":{"type":"string","enum":["source","diff","history"]}}],"responses":{"200":{"description":"Public source page, without member or workflow metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PublicSourcePage"}}}},"401":{"description":"An explicitly supplied credential is invalid or revoked"},"403":{"description":"Forbidden"},"404":{"description":"Source is unavailable"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"429":{"description":"Public source request budget exceeded","headers":{"Retry-After":{"description":"Seconds before retrying","schema":{"type":"integer","minimum":1}}}}},"security":[]}},"/api/v1/registry/namespace":{"get":{"operationId":"api_v1_registry_namespace","tags":["registry"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/registry/token":{"get|post":{"operationId":"api_v1_registry_token","tags":["registry"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/relay/pairings":{"get":{"operationId":"api_v1_pairings","tags":["relay"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_relay_pairings","tags":["relay"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/relay/pairings/claim":{"post":{"operationId":"claim_api_v1_pairings","tags":["relay"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/relay/pairings/{id}":{"get":{"operationId":"api_v1_pairing","tags":["relay"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/relay/pairings/{id}/events":{"get":{"operationId":"events_api_v1_pairing","tags":["relay"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/relay/signals":{"post":{"operationId":"api_v1_signals","tags":["relay"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/repositories/{repository}/sandbox_environments/validate":{"post":{"operationId":"post_api_v1_repositories_repository_sandbox_environments_validate","tags":["repositories"],"parameters":[{"name":"repository","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/repositories/{repository}/sandbox_environments/{profile}":{"get":{"operationId":"get_api_v1_repositories_repository_sandbox_environments_profile_","tags":["repositories"],"parameters":[{"name":"repository","in":"path","required":true,"schema":{"type":"string"}},{"name":"profile","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/repository_access/authorize":{"post":{"operationId":"api_v1_repository_access_authorize","tags":["repository_access"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/repository_access/authorize_git":{"post":{"operationId":"api_v1_repository_access_authorize_git","tags":["repository_access"],"parameters":[{"in":"header","name":"X-Vex-Git-Read-Grant-Protocol","required":false,"description":"Value 1 advertises absolute-deadline enforcement; other values do not enable reuse.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}},"headers":{"X-Vex-Git-Read-Grant-Expires-At":{"description":"Optional absolute Unix timestamp in seconds for a completed member-read grant. Absent means no reuse. Hits must not renew this deadline. Generic HTTP caches must continue honoring Cache-Control no-store.","schema":{"type":"string","pattern":"^[1-9][0-9]*$"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"description":"Authorize one Git request. With server rollout enabled, a gateway advertising read-grant protocol 1 may receive a reusable member-read decision. Its absolute deadline is at most five seconds from issuance and never exceeds token expiry. Requests are still freshly authorized by Rails; only a gateway enforcing this protocol may reuse a completed decision for the same credential and repository. Writes, public-source grants, import capabilities, Home/component capabilities and sync-worker fencing decisions do not receive a reusable deadline."}},"/api/v1/repository_access/catalog":{"get":{"operationId":"api_v1_repository_access_catalog","tags":["repository_access"],"parameters":[{"name":"organization_slug","in":"query","required":false,"schema":{"type":"string"}},{"name":"repository_scope_kind","in":"query","required":false,"schema":{"type":"string","enum":["repository","virtual_repository"]}}],"responses":{"200":{"description":"Repository access catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["repositories"],"properties":{"repositories":{"type":"array","items":{"type":"object","required":["organization_id","organization_slug","organization_name","membership_role","repository_id","repository_slug","repository_name","repository_kind","repository_role","repository_scope_kind","is_organization_home_repository","canonical_repository_slug","repository_slug_aliases","app_rooting_strategy","deployable_units_kind","git_https_clone_url","canonical_git_https_clone_url","git_https_supported","jj_grpc_endpoint","jj_repo_path","canonical_jj_repo_path","jj_grpc_supported","git_auth_username","backing_repository_id","backing_repository_slug","canonical_backing_repository_slug","backing_repository_name","backing_repository_kind","effective_root_path","default_branch","virtual_repository_id","sync_provider_kind","sync_mode","sync_repository_owner","sync_repository_name","sync_repository_full_name","sync_remote_url","sync_remote_display_name","sync_auth_username","sync_auth_secret_id","sync_default_branch","github_app_installation_id","sync_source_bookmark","sync_target_branch","sync_auto_enabled","sync_configured","projection_status","projection_source_bookmark","effective_projection_source_bookmark","last_projected_source_commit_id","last_projected_virtual_commit_id","last_projected_git_sha"],"properties":{"organization_id":{"type":"string"},"organization_slug":{"type":"string"},"organization_name":{"type":"string"},"membership_role":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"repository_name":{"type":"string"},"repository_kind":{"type":"string"},"repository_role":{"type":"string"},"github_access_warnings":{"type":"array","items":{"$ref":"#/components/schemas/GithubRepositoryAccessHealth"}},"repository_scope_kind":{"type":"string","enum":["repository","virtual_repository"]},"is_organization_home_repository":{"type":"boolean"},"canonical_repository_slug":{"type":"string"},"repository_slug_aliases":{"type":"array","items":{"type":"string"}},"app_rooting_strategy":{"type":"string"},"deployable_units_kind":{"type":"string"},"git_https_clone_url":{"type":"string","format":"uri"},"canonical_git_https_clone_url":{"type":"string","format":"uri"},"git_https_supported":{"type":"boolean"},"jj_grpc_endpoint":{"type":"string","nullable":true},"jj_repo_path":{"type":"string"},"canonical_jj_repo_path":{"type":"string"},"jj_grpc_supported":{"type":"boolean"},"git_auth_username":{"type":"string"},"backing_repository_id":{"type":"string"},"backing_repository_slug":{"type":"string"},"canonical_backing_repository_slug":{"type":"string"},"backing_repository_name":{"type":"string"},"backing_repository_kind":{"type":"string"},"effective_root_path":{"type":"string"},"default_branch":{"type":"string"},"virtual_repository_id":{"type":"string","nullable":true},"sync_provider_kind":{"type":"string","enum":["none","github","git","gitlab"]},"sync_mode":{"type":"string","nullable":true},"sync_repository_owner":{"type":"string","nullable":true},"sync_repository_name":{"type":"string","nullable":true},"sync_repository_full_name":{"type":"string","nullable":true},"sync_remote_url":{"type":"string","nullable":true},"sync_remote_display_name":{"type":"string","nullable":true},"sync_auth_username":{"type":"string","nullable":true},"sync_auth_secret_id":{"type":"string","nullable":true},"sync_default_branch":{"type":"string","nullable":true},"github_app_installation_id":{"type":"string","nullable":true},"sync_source_bookmark":{"type":"string","nullable":true},"sync_target_branch":{"type":"string","nullable":true},"sync_auto_enabled":{"type":"boolean"},"sync_configured":{"type":"boolean"},"projection_status":{"type":"string","nullable":true},"projection_source_bookmark":{"type":"string","nullable":true},"effective_projection_source_bookmark":{"type":"string","nullable":true},"last_projected_source_commit_id":{"type":"string","nullable":true},"last_projected_virtual_commit_id":{"type":"string","nullable":true},"last_projected_git_sha":{"type":"string","nullable":true}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/repository_access/resolve/{org_slug}/{repo_slug}":{"get":{"operationId":"get_api_v1_repository_access_resolve_org_slug_repo_slug_","tags":["repository_access"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Canonical repository address and access contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["address","repository"],"properties":{"address":{"type":"object","required":["organization_slug","requested_repository_slug","canonical_repository_slug","repository_slug_aliases","resolution","repository_scope_kind"],"properties":{"organization_slug":{"type":"string"},"requested_repository_slug":{"type":"string"},"canonical_repository_slug":{"type":"string"},"repository_slug_aliases":{"type":"array","items":{"type":"string"}},"resolution":{"type":"string","enum":["physical_canonical","physical_alias","virtual"]},"repository_scope_kind":{"type":"string","enum":["repository","virtual_repository"]}}},"repository":{"type":"object","required":["organization_id","organization_slug","organization_name","membership_role","repository_id","repository_slug","repository_name","repository_kind","repository_role","repository_scope_kind","is_organization_home_repository","canonical_repository_slug","repository_slug_aliases","app_rooting_strategy","deployable_units_kind","git_https_clone_url","canonical_git_https_clone_url","git_https_supported","jj_grpc_endpoint","jj_repo_path","canonical_jj_repo_path","jj_grpc_supported","git_auth_username","backing_repository_id","backing_repository_slug","canonical_backing_repository_slug","backing_repository_name","backing_repository_kind","effective_root_path","default_branch","virtual_repository_id","sync_provider_kind","sync_mode","sync_repository_owner","sync_repository_name","sync_repository_full_name","sync_remote_url","sync_remote_display_name","sync_auth_username","sync_auth_secret_id","sync_default_branch","github_app_installation_id","sync_source_bookmark","sync_target_branch","sync_auto_enabled","sync_configured","projection_status","projection_source_bookmark","effective_projection_source_bookmark","last_projected_source_commit_id","last_projected_virtual_commit_id","last_projected_git_sha"],"properties":{"organization_id":{"type":"string"},"organization_slug":{"type":"string"},"organization_name":{"type":"string"},"membership_role":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"repository_name":{"type":"string"},"repository_kind":{"type":"string"},"repository_role":{"type":"string"},"github_access_warnings":{"type":"array","items":{"$ref":"#/components/schemas/GithubRepositoryAccessHealth"}},"repository_scope_kind":{"type":"string","enum":["repository","virtual_repository"]},"is_organization_home_repository":{"type":"boolean"},"canonical_repository_slug":{"type":"string"},"repository_slug_aliases":{"type":"array","items":{"type":"string"}},"app_rooting_strategy":{"type":"string"},"deployable_units_kind":{"type":"string"},"git_https_clone_url":{"type":"string","format":"uri"},"canonical_git_https_clone_url":{"type":"string","format":"uri"},"git_https_supported":{"type":"boolean"},"jj_grpc_endpoint":{"type":"string","nullable":true},"jj_repo_path":{"type":"string"},"canonical_jj_repo_path":{"type":"string"},"jj_grpc_supported":{"type":"boolean"},"git_auth_username":{"type":"string"},"backing_repository_id":{"type":"string"},"backing_repository_slug":{"type":"string"},"canonical_backing_repository_slug":{"type":"string"},"backing_repository_name":{"type":"string"},"backing_repository_kind":{"type":"string"},"effective_root_path":{"type":"string"},"default_branch":{"type":"string"},"virtual_repository_id":{"type":"string","nullable":true},"sync_provider_kind":{"type":"string","enum":["none","github","git","gitlab"]},"sync_mode":{"type":"string","nullable":true},"sync_repository_owner":{"type":"string","nullable":true},"sync_repository_name":{"type":"string","nullable":true},"sync_repository_full_name":{"type":"string","nullable":true},"sync_remote_url":{"type":"string","nullable":true},"sync_remote_display_name":{"type":"string","nullable":true},"sync_auth_username":{"type":"string","nullable":true},"sync_auth_secret_id":{"type":"string","nullable":true},"sync_default_branch":{"type":"string","nullable":true},"github_app_installation_id":{"type":"string","nullable":true},"sync_source_bookmark":{"type":"string","nullable":true},"sync_target_branch":{"type":"string","nullable":true},"sync_auto_enabled":{"type":"boolean"},"sync_configured":{"type":"boolean"},"projection_status":{"type":"string","nullable":true},"projection_source_bookmark":{"type":"string","nullable":true},"effective_projection_source_bookmark":{"type":"string","nullable":true},"last_projected_source_commit_id":{"type":"string","nullable":true},"last_projected_virtual_commit_id":{"type":"string","nullable":true},"last_projected_git_sha":{"type":"string","nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/repository_access/submit_catalog":{"get":{"operationId":"api_v1_repository_access_submit_catalog","tags":["repository_access"],"parameters":[{"name":"organization_slug","in":"query","required":false,"schema":{"type":"string"}},{"name":"repository_slugs[]","in":"query","required":false,"description":"Addresses needed for explicit repository selection; omit for full discovery.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"Compact repository discovery for native submit","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["repositories"],"properties":{"repositories":{"type":"array","items":{"type":"object","required":["organization_id","organization_slug","repository_id","repository_slug","repository_kind","repository_scope_kind","is_organization_home_repository","canonical_repository_slug","repository_slug_aliases","jj_grpc_supported","backing_repository_id","backing_repository_slug","canonical_backing_repository_slug","effective_root_path","default_branch","virtual_repository_id","sync_provider_kind","sync_configured"],"properties":{"organization_id":{"type":"string"},"organization_slug":{"type":"string"},"organization_name":{"type":"string"},"membership_role":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"repository_name":{"type":"string"},"repository_kind":{"type":"string"},"repository_role":{"type":"string"},"github_access_warnings":{"type":"array","items":{"$ref":"#/components/schemas/GithubRepositoryAccessHealth"}},"repository_scope_kind":{"type":"string","enum":["repository","virtual_repository"]},"is_organization_home_repository":{"type":"boolean"},"canonical_repository_slug":{"type":"string"},"repository_slug_aliases":{"type":"array","items":{"type":"string"}},"app_rooting_strategy":{"type":"string"},"deployable_units_kind":{"type":"string"},"git_https_clone_url":{"type":"string","format":"uri"},"canonical_git_https_clone_url":{"type":"string","format":"uri"},"git_https_supported":{"type":"boolean"},"jj_grpc_endpoint":{"type":"string","nullable":true},"jj_repo_path":{"type":"string"},"canonical_jj_repo_path":{"type":"string"},"jj_grpc_supported":{"type":"boolean"},"git_auth_username":{"type":"string"},"backing_repository_id":{"type":"string"},"backing_repository_slug":{"type":"string"},"canonical_backing_repository_slug":{"type":"string"},"backing_repository_name":{"type":"string"},"backing_repository_kind":{"type":"string"},"effective_root_path":{"type":"string"},"default_branch":{"type":"string"},"virtual_repository_id":{"type":"string","nullable":true},"sync_provider_kind":{"type":"string","enum":["none","github","git","gitlab"]},"sync_mode":{"type":"string","nullable":true},"sync_repository_owner":{"type":"string","nullable":true},"sync_repository_name":{"type":"string","nullable":true},"sync_repository_full_name":{"type":"string","nullable":true},"sync_remote_url":{"type":"string","nullable":true},"sync_remote_display_name":{"type":"string","nullable":true},"sync_auth_username":{"type":"string","nullable":true},"sync_auth_secret_id":{"type":"string","nullable":true},"sync_default_branch":{"type":"string","nullable":true},"github_app_installation_id":{"type":"string","nullable":true},"sync_source_bookmark":{"type":"string","nullable":true},"sync_target_branch":{"type":"string","nullable":true},"sync_auto_enabled":{"type":"boolean"},"sync_configured":{"type":"boolean"},"projection_status":{"type":"string","nullable":true},"projection_source_bookmark":{"type":"string","nullable":true},"effective_projection_source_bookmark":{"type":"string","nullable":true},"last_projected_source_commit_id":{"type":"string","nullable":true},"last_projected_virtual_commit_id":{"type":"string","nullable":true},"last_projected_git_sha":{"type":"string","nullable":true}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/repository_events/jj":{"post":{"operationId":"api_v1_repository_events_jj","tags":["repository_events"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/repository_import_sessions/{id}":{"get":{"operationId":"api_v1_repository_import_session","tags":["repository_import_sessions"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repository import session","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RepositoryImportSession"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/repository_import_sessions/{id}/authorization":{"post":{"operationId":"authorization_api_v1_repository_import_session","tags":["repository_import_sessions"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"One-time GitHub App installation continuation URL. Never contains API bearer credentials.","content":{"application/json":{"schema":{"type":"object","required":["installation_url"],"properties":{"installation_url":{"type":"string","format":"uri","description":"Short-lived signed browser URL. Treat as sensitive and do not log."}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/repository_import_sessions/{id}/cancel":{"post":{"operationId":"cancel_api_v1_repository_import_session","tags":["repository_import_sessions"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repository import session","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RepositoryImportSession"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"message":{"type":"string","maxLength":500}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/repository_import_sessions/{id}/claim_next":{"post":{"operationId":"claim_next_api_v1_repository_import_session","tags":["repository_import_sessions"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Short-lived, response-only credentials for one claimed import item. The response is not cacheable.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RepositoryImportClaim"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/repository_import_sessions/{id}/items/{item_id}/claim":{"post":{"operationId":"post_api_v1_repository_import_sessions_id_items_item_id_claim","tags":["repository_import_sessions"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"item_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Short-lived, response-only credentials for one claimed import item. The response is not cacheable.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RepositoryImportClaim"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/repository_import_sessions/{id}/items/{item_id}/complete":{"post":{"operationId":"post_api_v1_repository_import_sessions_id_items_item_id_complete","tags":["repository_import_sessions"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"item_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repository import session","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RepositoryImportSession"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["lease_generation","result"],"properties":{"lease_generation":{"type":"string"},"result":{"type":"object","additionalProperties":true}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/repository_import_sessions/{id}/items/{item_id}/fail":{"post":{"operationId":"post_api_v1_repository_import_sessions_id_items_item_id_fail","tags":["repository_import_sessions"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"item_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repository import session","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RepositoryImportSession"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"message":{"type":"string","maxLength":500}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/repository_import_sessions/{id}/items/{item_id}/heartbeat":{"post":{"operationId":"post_api_v1_repository_import_sessions_id_items_item_id_heartbeat","tags":["repository_import_sessions"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"item_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repository import session","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RepositoryImportSession"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"allOf":[{"$ref":"#/components/schemas/RepositoryImportLeaseRequest"},{"type":"object","properties":{"phase":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":500}}}]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/repository_import_sessions/{id}/items/{item_id}/refresh_credentials":{"post":{"operationId":"post_api_v1_repository_import_sessions_id_items_item_id_refresh_credentials","tags":["repository_import_sessions"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"item_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Short-lived, response-only credentials for one claimed import item. The response is not cacheable.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RepositoryImportClaim"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"allOf":[{"$ref":"#/components/schemas/RepositoryImportLeaseRequest"},{"type":"object","required":["sync_run_id"]}]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/repository_import_sessions/{id}/repositories":{"get":{"operationId":"repositories_api_v1_repository_import_session","tags":["repository_import_sessions"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Session-scoped GitHub App repository inventory","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RepositoryImportInventory"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/repository_import_sessions/{id}/retry":{"post":{"operationId":"retry_api_v1_repository_import_session","tags":["repository_import_sessions"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repository import session","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RepositoryImportSession"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["item_id"],"properties":{"item_id":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/repository_import_sessions/{id}/selections":{"post":{"operationId":"selections_api_v1_repository_import_session","tags":["repository_import_sessions"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Repository import session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryImportSession"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RepositoryImportSelectionRequest"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/roder/run/automation_tool":{"post":{"summary":"Execute a granted automation repository tool","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["call_id","name","arguments"],"properties":{"call_id":{"type":"string","maxLength":128},"name":{"enum":["repository_list_files","repository_read_file","repository_compare_file","repository_changed_files","repository_file_diff","emit_signal","publish_output","propose_change","integration_catalog","integration_execute"]},"arguments":{"type":"object","additionalProperties":true}}}}}},"responses":{"200":{"description":"Cached or newly completed tool result","content":{"application/json":{"schema":{"type":"object","required":["is_error"],"properties":{"is_error":{"type":"boolean"},"value":{},"error":{"type":"string"}}}}}},"401":{"description":"Run or tool authority is unavailable"},"409":{"description":"The same tool call is still executing"},"422":{"description":"Invalid tool request or exhausted tool budget"}}}},"/api/v1/signals":{"post":{"operationId":"post_api_v1_signals","tags":["signals"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/signals/inbound/{provider}/{inbound_token}":{"post":{"operationId":"post_api_v1_signals_inbound_provider_inbound_token_","tags":["signals"],"parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string"}},{"name":"inbound_token","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"provider","required":true,"schema":{"type":"string","enum":["sentry","planetscale"]}},{"in":"path","name":"inbound_token","required":true,"description":"The integration's random inbound token. Not a public id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"The signature is missing or does not match the stored webhook secret","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"403":{"description":"Forbidden"},"404":{"description":"No usable integration for this token — unknown, provider mismatch, or disabled. The three are deliberately indistinguishable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Recorded. `state` is `pending` for an event that will become a signal and `ignored` for one the adapter recognizes and does not act on (a provider test ping, an installation notice).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationInboundAccepted"}}}},"409":{"description":"The same delivery id was replayed with different content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"413":{"description":"The request body exceeds 1 MB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"429":{"description":"Too many deliveries for this integration in the current minute","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"503":{"description":"Signal integrations are disabled (VEX_SIGNAL_INTEGRATIONS_DISABLED)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}},"description":"The provider's raw event body, capped at 1 MB."},"security":[{"bearerAuth":[]}],"summary":"Provider webhook ingest (no user authentication)","description":"The endpoint Sentry and PlanetScale post to. There is no user session and no CSRF: the random `inbound_token` addresses the integration and the provider's HMAC-SHA256 over the RAW request body authenticates it. The response is returned before any normalization work, inside PlanetScale's two-second budget."}},"/api/v1/static_sites/{id}":{"get":{"operationId":"api_v1_static_site","tags":["static_sites"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_static_sites_id_","tags":["static_sites"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_static_sites_id_","tags":["static_sites"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_static_sites_id_","tags":["static_sites"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/static_sites/{id}/provision":{"post":{"operationId":"provision_api_v1_static_site","tags":["static_sites"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Provisioned static site","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["static_site"],"properties":{"static_site":{"$ref":"#/components/schemas/StaticSite"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Static site request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaticSiteError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/static_sites/{static_site_id}/deployments":{"get":{"operationId":"api_v1_static_site_deployments","tags":["static_sites"],"parameters":[{"name":"static_site_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Recent static site deployments","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["deployments"],"properties":{"deployments":{"type":"array","items":{"$ref":"#/components/schemas/StaticSiteDeployment"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_static_sites_static_site_id_deployments","tags":["static_sites"],"parameters":[{"name":"static_site_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/static_sites/{static_site_id}/deployments/{id}":{"get":{"operationId":"api_v1_static_site_deployment","tags":["static_sites"],"parameters":[{"name":"static_site_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/static_sites/{static_site_id}/deployments/{id}/activate":{"post":{"operationId":"activate_api_v1_static_site_deployment","tags":["static_sites"],"parameters":[{"name":"static_site_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Activated static site deployment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["deployment"],"properties":{"deployment":{"$ref":"#/components/schemas/StaticSiteDeployment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Static site request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaticSiteError"}}}},"502":{"description":"CDN provider activation failed","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/StaticSiteError"},{"type":"object","properties":{"deployment":{"$ref":"#/components/schemas/StaticSiteDeployment"}}}]}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/static_sites/{static_site_id}/deployments/{id}/cancel":{"post":{"operationId":"cancel_api_v1_static_site_deployment","tags":["static_sites"],"parameters":[{"name":"static_site_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/static_sites/{static_site_id}/deployments/{id}/files":{"put":{"operationId":"files_api_v1_static_site_deployment","tags":["static_sites"],"parameters":[{"name":"static_site_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/static_sites/{static_site_id}/deployments/{id}/finalize":{"post":{"operationId":"finalize_api_v1_static_site_deployment","tags":["static_sites"],"parameters":[{"name":"static_site_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/static_sites/{static_site_id}/domains":{"get":{"operationId":"api_v1_static_site_domains","tags":["static_sites"],"parameters":[{"name":"static_site_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Static site domains","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["domains"],"properties":{"domains":{"type":"array","items":{"$ref":"#/components/schemas/StaticSiteDomain"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_static_sites_static_site_id_domains","tags":["static_sites"],"parameters":[{"name":"static_site_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Static site domain created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["domain"],"properties":{"domain":{"$ref":"#/components/schemas/StaticSiteDomain"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Static site request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaticSiteError"}}}},"502":{"description":"Bad gateway"},"201":{"description":"Static site domain created","content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"$ref":"#/components/schemas/StaticSiteDomain"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/StaticSiteDomainCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/static_sites/{static_site_id}/domains/{id}":{"get":{"operationId":"api_v1_static_site_domain","tags":["static_sites"],"parameters":[{"name":"static_site_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_static_sites_static_site_id_domains_id_","tags":["static_sites"],"parameters":[{"name":"static_site_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_static_sites_static_site_id_domains_id_","tags":["static_sites"],"parameters":[{"name":"static_site_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_static_sites_static_site_id_domains_id_","tags":["static_sites"],"parameters":[{"name":"static_site_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"204":{"description":"Static site domain deleted"}},"security":[{"bearerAuth":[]}]}},"/api/v1/static_sites/{static_site_id}/domains/{id}/provision":{"post":{"operationId":"provision_api_v1_static_site_domain","tags":["static_sites"],"parameters":[{"name":"static_site_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated static site domain","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["domain"],"properties":{"domain":{"$ref":"#/components/schemas/StaticSiteDomain"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Static site request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaticSiteError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/static_sites/{static_site_id}/domains/{id}/verify":{"post":{"operationId":"verify_api_v1_static_site_domain","tags":["static_sites"],"parameters":[{"name":"static_site_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated static site domain","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["domain"],"properties":{"domain":{"$ref":"#/components/schemas/StaticSiteDomain"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Static site request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaticSiteError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/stripe/webhooks":{"post":{"operationId":"api_v1_stripe_webhooks","tags":["stripe"],"parameters":[],"responses":{"200":{"description":"Event stored; processing runs in a job."},"400":{"description":"Malformed body."},"401":{"description":"Signature invalid or the secret is not configured."}},"security":[],"summary":"Stripe event destination (Stripe-Signature verified)"}},"/api/v1/submit_telemetry":{"post":{"operationId":"api_v1_submit_telemetry","tags":["submit_telemetry"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/transcripts":{"get":{"operationId":"api_v1_transcripts","tags":["transcripts"],"parameters":[{"in":"query","name":"repo","required":true,"schema":{"type":"string"}},{"in":"query","name":"change","schema":{"type":"string"}},{"in":"query","name":"pr","schema":{"type":"string"},"description":"GitHub PR number or URL."},{"in":"query","name":"commit","schema":{"type":"string"},"description":"Complete native commit ID or Git SHA."},{"in":"query","name":"patchset","schema":{"type":"integer","minimum":1}},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"in":"query","name":"cursor","schema":{"type":"string"}},{"in":"query","name":"session","schema":{"type":"string"},"description":"Select a linked session when paging its matching checkpoints."},{"in":"query","name":"checkpoint_cursor","schema":{"type":"string"}}],"responses":{"200":{"description":"A bounded page of associated conversations, including an empty known target.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/TranscriptDiscoveryPage"}}}},"401":{"description":"Authentication required."},"403":{"description":"Forbidden"},"404":{"description":"Missing or inaccessible target."},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid or conflicting selectors","ambiguous PR number":null,"or invalid cursor.":null},"503":{"description":"Association lookup is temporarily unavailable."}},"security":[{"bearerAuth":[]}],"summary":"Discover saved conversations associated with one repository target","description":"Requires a Vex tenant/repository slug and exactly one of change, pr, or commit. Returns observed associations without synchronization. A selected checkpoint belongs to the target; a session-only link never substitutes unrelated context. Commit IDs must be complete. Resolve short IDs in the checkout before requesting this endpoint."}},"/api/v1/transcripts/read":{"get":{"operationId":"api_v1_transcripts_read","tags":["transcripts"],"parameters":[{"$ref":"#/components/parameters/TranscriptReadSource"},{"$ref":"#/components/parameters/TranscriptReadCursor"},{"$ref":"#/components/parameters/TranscriptReadLimit"},{"$ref":"#/components/parameters/TranscriptReadBytes"},{"$ref":"#/components/parameters/TranscriptReadTools"},{"$ref":"#/components/parameters/TranscriptReadAround"},{"$ref":"#/components/parameters/TranscriptReadDigest"}],"responses":{"200":{"description":"Indexed events or an explicit content availability state.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/TranscriptReadPage"}}}},"401":{"description":"Authentication required."},"403":{"description":"Forbidden"},"404":{"description":"Missing or inaccessible session or checkpoint."},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid limits or source reference."},"409":{"description":"The cursor no longer identifies the same content or filters."},"413":{"description":"Increase max_bytes to fit the next complete indexed event."}},"security":[{"bearerAuth":[]}],"summary":"Read a saved conversation using its opaque source reference","description":"Uses the same authorized indexed reader as the session route."}},"/api/v1/virtual_repositories":{"get":{"operationId":"api_v1_virtual_repositories","tags":["virtual_repositories"],"parameters":[{"name":"organization_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"repository_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"organization_slug","in":"query","required":false,"schema":{"type":"string"}},{"name":"repository_slug","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["active","archived"]}}],"responses":{"200":{"description":"Accessible virtual repositories","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["virtual_repositories"],"properties":{"organization_id":{"type":"string"},"virtual_repositories":{"type":"array","items":{"type":"object","required":["id","organization_id","organization_slug","organization_name","repository_id","repository_slug","repository_name","slug","name","description","root_path","icon_name","status","sync_provider_kind","sync_mode","sync_repository_owner","sync_repository_name","sync_repository_full_name","sync_remote_url","sync_remote_display_name","sync_auth_username","sync_auth_secret_id","sync_default_branch","github_app_installation_id","sync_source_bookmark","sync_target_branch","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","auto_land_enabled","github_primary_eligible","sync_auto_enabled","sync_configured","sync_discover_cursor","projection_status","projection_version","projection_source_bookmark","effective_projection_source_bookmark","last_projected_source_commit_id","last_projected_virtual_commit_id","last_projected_git_sha","last_projection_error","last_sync_run_id","last_projected_at","last_projected_at_label","last_synced_at","last_synced_at_label","merge_policy_updated_at","merge_policy_updated_at_label","created_at","created_at_label","updated_at","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"organization_slug":{"type":"string"},"organization_name":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"repository_name":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"root_path":{"type":"string"},"icon_name":{"type":"string"},"status":{"type":"string","enum":["active","archived"]},"sync_provider_kind":{"type":"string","enum":["none","github","git","gitlab"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"sync_repository_owner":{"type":"string","nullable":true},"sync_repository_name":{"type":"string","nullable":true},"sync_repository_full_name":{"type":"string","nullable":true},"sync_remote_url":{"type":"string","nullable":true},"sync_remote_display_name":{"type":"string","nullable":true},"sync_auth_username":{"type":"string","nullable":true},"sync_auth_secret_id":{"type":"string","nullable":true},"sync_default_branch":{"type":"string","nullable":true},"github_app_installation_id":{"type":"string","nullable":true},"sync_source_bookmark":{"type":"string","nullable":true},"sync_target_branch":{"type":"string","nullable":true},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer"},"merge_policy_version":{"type":"integer"},"queue_validation_mode":{"type":"string","enum":["top_only","per_pr"]},"queue_concurrency":{"type":"integer"},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"sync_auto_enabled":{"type":"boolean"},"sync_configured":{"type":"boolean"},"sync_discover_cursor":{"type":"integer"},"projection_status":{"type":"string","enum":["pending","projecting","ready","failed","diverged"]},"projection_version":{"type":"integer"},"projection_source_bookmark":{"type":"string","nullable":true},"effective_projection_source_bookmark":{"type":"string"},"last_projected_source_commit_id":{"type":"string","nullable":true},"last_projected_virtual_commit_id":{"type":"string","nullable":true},"last_projected_git_sha":{"type":"string","nullable":true},"last_projection_error":{"type":"string","nullable":true},"last_sync_run_id":{"type":"string","nullable":true},"last_projected_at":{"type":"string","format":"date-time","nullable":true},"last_projected_at_label":{"type":"string","nullable":true},"last_synced_at":{"type":"string","format":"date-time","nullable":true},"last_synced_at_label":{"type":"string","nullable":true},"merge_policy_updated_at":{"type":"string","format":"date-time","nullable":true},"merge_policy_updated_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","nullable":true}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_virtual_repositories","tags":["virtual_repositories"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/virtual_repositories/{id}":{"get":{"operationId":"api_v1_virtual_repository","tags":["virtual_repositories"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_virtual_repositories_id_","tags":["virtual_repositories"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated virtual repository","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["virtual_repository"],"properties":{"virtual_repository":{"type":"object","required":["id","organization_id","organization_slug","organization_name","repository_id","repository_slug","repository_name","slug","name","description","root_path","icon_name","status","sync_provider_kind","sync_mode","sync_repository_owner","sync_repository_name","sync_repository_full_name","sync_remote_url","sync_remote_display_name","sync_auth_username","sync_auth_secret_id","sync_default_branch","github_app_installation_id","sync_source_bookmark","sync_target_branch","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","auto_land_enabled","github_primary_eligible","sync_auto_enabled","sync_configured","sync_discover_cursor","projection_status","projection_version","projection_source_bookmark","effective_projection_source_bookmark","last_projected_source_commit_id","last_projected_virtual_commit_id","last_projected_git_sha","last_projection_error","last_sync_run_id","last_projected_at","last_projected_at_label","last_synced_at","last_synced_at_label","merge_policy_updated_at","merge_policy_updated_at_label","created_at","created_at_label","updated_at","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"organization_slug":{"type":"string"},"organization_name":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"repository_name":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"root_path":{"type":"string"},"icon_name":{"type":"string"},"status":{"type":"string","enum":["active","archived"]},"sync_provider_kind":{"type":"string","enum":["none","github","git","gitlab"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"sync_repository_owner":{"type":"string","nullable":true},"sync_repository_name":{"type":"string","nullable":true},"sync_repository_full_name":{"type":"string","nullable":true},"sync_remote_url":{"type":"string","nullable":true},"sync_remote_display_name":{"type":"string","nullable":true},"sync_auth_username":{"type":"string","nullable":true},"sync_auth_secret_id":{"type":"string","nullable":true},"sync_default_branch":{"type":"string","nullable":true},"github_app_installation_id":{"type":"string","nullable":true},"sync_source_bookmark":{"type":"string","nullable":true},"sync_target_branch":{"type":"string","nullable":true},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer"},"merge_policy_version":{"type":"integer"},"queue_validation_mode":{"type":"string","enum":["top_only","per_pr"]},"queue_concurrency":{"type":"integer"},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"sync_auto_enabled":{"type":"boolean"},"sync_configured":{"type":"boolean"},"sync_discover_cursor":{"type":"integer"},"projection_status":{"type":"string","enum":["pending","projecting","ready","failed","diverged"]},"projection_version":{"type":"integer"},"projection_source_bookmark":{"type":"string","nullable":true},"effective_projection_source_bookmark":{"type":"string"},"last_projected_source_commit_id":{"type":"string","nullable":true},"last_projected_virtual_commit_id":{"type":"string","nullable":true},"last_projected_git_sha":{"type":"string","nullable":true},"last_projection_error":{"type":"string","nullable":true},"last_sync_run_id":{"type":"string","nullable":true},"last_projected_at":{"type":"string","format":"date-time","nullable":true},"last_projected_at_label":{"type":"string","nullable":true},"last_synced_at":{"type":"string","format":"date-time","nullable":true},"last_synced_at_label":{"type":"string","nullable":true},"merge_policy_updated_at":{"type":"string","format":"date-time","nullable":true},"merge_policy_updated_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"repository_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"root_path":{"type":"string"},"status":{"type":"string","enum":["active","archived"]},"sync_provider_kind":{"type":"string","enum":["none","github","git","gitlab"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"github_app_installation_id":{"type":"string","nullable":true},"sync_auth_secret_id":{"type":"string","nullable":true},"sync_repository_owner":{"type":"string","nullable":true},"sync_repository_name":{"type":"string","nullable":true},"sync_remote_url":{"type":"string","nullable":true},"sync_auth_username":{"type":"string","nullable":true},"sync_default_branch":{"type":"string","nullable":true},"sync_source_bookmark":{"type":"string","nullable":true},"sync_target_branch":{"type":"string","nullable":true},"sync_auto_enabled":{"type":"boolean"},"projection_status":{"type":"string","enum":["pending","projecting","ready","failed","diverged"]},"projection_version":{"type":"integer"},"projection_source_bookmark":{"type":"string","nullable":true},"last_projected_source_commit_id":{"type":"string","nullable":true},"last_projected_virtual_commit_id":{"type":"string","nullable":true},"last_projected_git_sha":{"type":"string","nullable":true},"last_projection_error":{"type":"string","nullable":true},"last_projected_at":{"type":"string","format":"date-time","nullable":true}}}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_virtual_repositories_id_","tags":["virtual_repositories"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_virtual_repositories_id_","tags":["virtual_repositories"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"204":{"description":"Virtual repository deleted"}},"security":[{"bearerAuth":[]}]}},"/api/v1/virtual_repositories/{id}/materialize":{"post":{"operationId":"materialize_api_v1_virtual_repository","tags":["virtual_repositories"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Created virtual repository sync run","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["sync_run"],"properties":{"sync_run":{"type":"object","required":["id","organization_id","virtual_repository_id","creator_user_id","trigger_kind","status","kind","sync_provider_kind","sync_mode","source_bookmark","staging_bookmark","merge_commit_id","projection_target_commit_id","source_op_head_ids","source_commit_id","source_change_id","source_git_sha","target_repository_owner","target_repository_name","target_repository_full_name","target_branch","remote_url","remote_before_sha","remote_after_sha","github_before_sha","github_after_sha","force","pulled_commit_count","projected_commit_count","skipped_commit_count","error_message","metadata","log_lines","started_at","started_at_label","finished_at","finished_at_label","created_at","created_at_label","updated_at","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"virtual_repository_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"trigger_kind":{"type":"string","enum":["manual","auto"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","skipped","canceled"]},"kind":{"type":"string","enum":["pull_sync","push_projection","materialization"]},"sync_provider_kind":{"type":"string","enum":["github","git"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"source_bookmark":{"type":"string"},"staging_bookmark":{"type":"string","nullable":true},"merge_commit_id":{"type":"string","nullable":true},"projection_target_commit_id":{"type":"string","nullable":true},"source_op_head_ids":{"type":"array","items":{"type":"string"}},"source_commit_id":{"type":"string","nullable":true},"source_change_id":{"type":"string","nullable":true},"source_git_sha":{"type":"string","nullable":true},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"remote_url":{"type":"string"},"remote_before_sha":{"type":"string","nullable":true},"remote_after_sha":{"type":"string","nullable":true},"github_before_sha":{"type":"string","nullable":true},"github_after_sha":{"type":"string","nullable":true},"force":{"type":"boolean"},"pulled_commit_count":{"type":"integer"},"projected_commit_count":{"type":"integer"},"skipped_commit_count":{"type":"integer"},"error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"log_lines":{"type":"array","items":{"type":"object","required":["timestamp","level","message"],"properties":{"timestamp":{"type":"string"},"timestamp_label":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"}}}},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Created virtual repository sync run","content":{"application/json":{"schema":{"type":"object","required":["sync_run"],"properties":{"sync_run":{"type":"object","required":["id","organization_id","virtual_repository_id","creator_user_id","trigger_kind","status","kind","sync_provider_kind","sync_mode","source_bookmark","staging_bookmark","merge_commit_id","projection_target_commit_id","source_op_head_ids","source_commit_id","source_change_id","source_git_sha","target_repository_owner","target_repository_name","target_repository_full_name","target_branch","remote_url","remote_before_sha","remote_after_sha","github_before_sha","github_after_sha","force","pulled_commit_count","projected_commit_count","skipped_commit_count","error_message","metadata","log_lines","started_at","started_at_label","finished_at","finished_at_label","created_at","created_at_label","updated_at","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"virtual_repository_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"trigger_kind":{"type":"string","enum":["manual","auto"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","skipped","canceled"]},"kind":{"type":"string","enum":["pull_sync","push_projection","materialization"]},"sync_provider_kind":{"type":"string","enum":["github","git"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"source_bookmark":{"type":"string"},"staging_bookmark":{"type":"string","nullable":true},"merge_commit_id":{"type":"string","nullable":true},"projection_target_commit_id":{"type":"string","nullable":true},"source_op_head_ids":{"type":"array","items":{"type":"string"}},"source_commit_id":{"type":"string","nullable":true},"source_change_id":{"type":"string","nullable":true},"source_git_sha":{"type":"string","nullable":true},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"remote_url":{"type":"string"},"remote_before_sha":{"type":"string","nullable":true},"remote_after_sha":{"type":"string","nullable":true},"github_before_sha":{"type":"string","nullable":true},"github_after_sha":{"type":"string","nullable":true},"force":{"type":"boolean"},"pulled_commit_count":{"type":"integer"},"projected_commit_count":{"type":"integer"},"skipped_commit_count":{"type":"integer"},"error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"log_lines":{"type":"array","items":{"type":"object","required":["timestamp","level","message"],"properties":{"timestamp":{"type":"string"},"timestamp_label":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"}}}},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","nullable":true}}}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"source_bookmark":{"type":"string","nullable":true},"staging_bookmark":{"type":"string","nullable":true}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/virtual_repositories/{virtual_repository_id}/import_baselines":{"post":{"operationId":"api_v1_virtual_repository_import_baselines","tags":["virtual_repositories"],"parameters":[{"name":"virtual_repository_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/virtual_repositories/{virtual_repository_id}/merge_policy":{"get":{"operationId":"api_v1_virtual_repository_merge_policy","tags":["virtual_repositories"],"parameters":[{"name":"virtual_repository_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current policy and GitHub-primary eligibility","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["policy"],"properties":{"policy":{"type":"object","required":["virtual_repository_id","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"virtual_repository_id":{"type":"string","nullable":true},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"queue_validation_mode":{"type":"string","enum":["top_only","per_pr"]},"queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read merge authority and merge-queue policy"},"patch":{"operationId":"patch_api_v1_virtual_repositories_virtual_repository_id_merge_policy","tags":["virtual_repositories"],"parameters":[{"name":"virtual_repository_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated policy","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["policy"],"properties":{"policy":{"type":"object","required":["virtual_repository_id","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"virtual_repository_id":{"type":"string","nullable":true},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"queue_validation_mode":{"type":"string","enum":["top_only","per_pr"]},"queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Organization admin or owner membership is required"},"404":{"description":"Not found"},"422":{"description":"The authority switch is blocked or the policy is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"The policy version changed"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_version"],"properties":{"expected_version":{"type":"integer","minimum":1},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"queue_validation_mode":{"type":"string","enum":["top_only","per_pr"]},"queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"auto_land_enabled":{"type":"boolean"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Update merge authority and merge-queue policy","description":"Organization-admin only. Authority changes are optimistic and fail closed while queues are active, projections are reconciling or drifted, or required GitHub App permissions are missing."},"put":{"operationId":"put_api_v1_virtual_repositories_virtual_repository_id_merge_policy","tags":["virtual_repositories"],"parameters":[{"name":"virtual_repository_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated policy","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["policy"],"properties":{"policy":{"type":"object","required":["virtual_repository_id","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"virtual_repository_id":{"type":"string","nullable":true},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer","minimum":1},"merge_policy_version":{"type":"integer","minimum":1},"queue_validation_mode":{"type":"string","enum":["top_only","per_pr"]},"queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Organization admin or owner membership is required"},"404":{"description":"Not found"},"422":{"description":"The authority switch is blocked or the policy is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"The policy version changed"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_version"],"properties":{"expected_version":{"type":"integer","minimum":1},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"queue_validation_mode":{"type":"string","enum":["top_only","per_pr"]},"queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"auto_land_enabled":{"type":"boolean"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Update merge authority and merge-queue policy","description":"Organization-admin only. Authority changes are optimistic and fail closed while queues are active, projections are reconciling or drifted, or required GitHub App permissions are missing."}},"/api/v1/virtual_repositories/{virtual_repository_id}/sync_runs":{"get":{"operationId":"api_v1_virtual_repository_sync_runs","tags":["virtual_repositories"],"parameters":[{"name":"virtual_repository_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Recent virtual repository sync runs","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["sync_runs"],"properties":{"sync_runs":{"type":"array","items":{"type":"object","required":["id","organization_id","virtual_repository_id","creator_user_id","trigger_kind","status","kind","sync_provider_kind","sync_mode","source_bookmark","staging_bookmark","merge_commit_id","projection_target_commit_id","source_op_head_ids","source_commit_id","source_change_id","source_git_sha","target_repository_owner","target_repository_name","target_repository_full_name","target_branch","remote_url","remote_before_sha","remote_after_sha","github_before_sha","github_after_sha","force","pulled_commit_count","projected_commit_count","skipped_commit_count","error_message","metadata","log_lines","started_at","started_at_label","finished_at","finished_at_label","created_at","created_at_label","updated_at","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"virtual_repository_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"trigger_kind":{"type":"string","enum":["manual","auto"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","skipped","canceled"]},"kind":{"type":"string","enum":["pull_sync","push_projection","materialization"]},"sync_provider_kind":{"type":"string","enum":["github","git"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"source_bookmark":{"type":"string"},"staging_bookmark":{"type":"string","nullable":true},"merge_commit_id":{"type":"string","nullable":true},"projection_target_commit_id":{"type":"string","nullable":true},"source_op_head_ids":{"type":"array","items":{"type":"string"}},"source_commit_id":{"type":"string","nullable":true},"source_change_id":{"type":"string","nullable":true},"source_git_sha":{"type":"string","nullable":true},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"remote_url":{"type":"string"},"remote_before_sha":{"type":"string","nullable":true},"remote_after_sha":{"type":"string","nullable":true},"github_before_sha":{"type":"string","nullable":true},"github_after_sha":{"type":"string","nullable":true},"force":{"type":"boolean"},"pulled_commit_count":{"type":"integer"},"projected_commit_count":{"type":"integer"},"skipped_commit_count":{"type":"integer"},"error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"log_lines":{"type":"array","items":{"type":"object","required":["timestamp","level","message"],"properties":{"timestamp":{"type":"string"},"timestamp_label":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"}}}},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","nullable":true}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_virtual_repositories_virtual_repository_id_sync_runs","tags":["virtual_repositories"],"parameters":[{"name":"virtual_repository_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Created virtual repository sync run","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["sync_run"],"properties":{"sync_run":{"type":"object","required":["id","organization_id","virtual_repository_id","creator_user_id","trigger_kind","status","kind","sync_provider_kind","sync_mode","source_bookmark","staging_bookmark","merge_commit_id","projection_target_commit_id","source_op_head_ids","source_commit_id","source_change_id","source_git_sha","target_repository_owner","target_repository_name","target_repository_full_name","target_branch","remote_url","remote_before_sha","remote_after_sha","github_before_sha","github_after_sha","force","pulled_commit_count","projected_commit_count","skipped_commit_count","error_message","metadata","log_lines","started_at","started_at_label","finished_at","finished_at_label","created_at","created_at_label","updated_at","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"virtual_repository_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"trigger_kind":{"type":"string","enum":["manual","auto"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","skipped","canceled"]},"kind":{"type":"string","enum":["pull_sync","push_projection","materialization"]},"sync_provider_kind":{"type":"string","enum":["github","git"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"source_bookmark":{"type":"string"},"staging_bookmark":{"type":"string","nullable":true},"merge_commit_id":{"type":"string","nullable":true},"projection_target_commit_id":{"type":"string","nullable":true},"source_op_head_ids":{"type":"array","items":{"type":"string"}},"source_commit_id":{"type":"string","nullable":true},"source_change_id":{"type":"string","nullable":true},"source_git_sha":{"type":"string","nullable":true},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"remote_url":{"type":"string"},"remote_before_sha":{"type":"string","nullable":true},"remote_after_sha":{"type":"string","nullable":true},"github_before_sha":{"type":"string","nullable":true},"github_after_sha":{"type":"string","nullable":true},"force":{"type":"boolean"},"pulled_commit_count":{"type":"integer"},"projected_commit_count":{"type":"integer"},"skipped_commit_count":{"type":"integer"},"error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"log_lines":{"type":"array","items":{"type":"object","required":["timestamp","level","message"],"properties":{"timestamp":{"type":"string"},"timestamp_label":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"}}}},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Created virtual repository sync run","content":{"application/json":{"schema":{"type":"object","required":["sync_run"],"properties":{"sync_run":{"type":"object","required":["id","organization_id","virtual_repository_id","creator_user_id","trigger_kind","status","kind","sync_provider_kind","sync_mode","source_bookmark","staging_bookmark","merge_commit_id","projection_target_commit_id","source_op_head_ids","source_commit_id","source_change_id","source_git_sha","target_repository_owner","target_repository_name","target_repository_full_name","target_branch","remote_url","remote_before_sha","remote_after_sha","github_before_sha","github_after_sha","force","pulled_commit_count","projected_commit_count","skipped_commit_count","error_message","metadata","log_lines","started_at","started_at_label","finished_at","finished_at_label","created_at","created_at_label","updated_at","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"virtual_repository_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"trigger_kind":{"type":"string","enum":["manual","auto"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","skipped","canceled"]},"kind":{"type":"string","enum":["pull_sync","push_projection","materialization"]},"sync_provider_kind":{"type":"string","enum":["github","git"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"source_bookmark":{"type":"string"},"staging_bookmark":{"type":"string","nullable":true},"merge_commit_id":{"type":"string","nullable":true},"projection_target_commit_id":{"type":"string","nullable":true},"source_op_head_ids":{"type":"array","items":{"type":"string"}},"source_commit_id":{"type":"string","nullable":true},"source_change_id":{"type":"string","nullable":true},"source_git_sha":{"type":"string","nullable":true},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"remote_url":{"type":"string"},"remote_before_sha":{"type":"string","nullable":true},"remote_after_sha":{"type":"string","nullable":true},"github_before_sha":{"type":"string","nullable":true},"github_after_sha":{"type":"string","nullable":true},"force":{"type":"boolean"},"pulled_commit_count":{"type":"integer"},"projected_commit_count":{"type":"integer"},"skipped_commit_count":{"type":"integer"},"error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"log_lines":{"type":"array","items":{"type":"object","required":["timestamp","level","message"],"properties":{"timestamp":{"type":"string"},"timestamp_label":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"}}}},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","nullable":true}}}}}}}},"202":{"description":"Native GitHub sync was recorded and is waiting in the completion stream","content":{"application/json":{"schema":{"type":"object","required":["completion_item"],"properties":{"completion_item":{"type":"object","required":["id","status","target_native_commit_id"],"properties":{"id":{"type":"string"},"status":{"type":"string"},"target_native_commit_id":{"type":"string"}}}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"source_bookmark":{"type":"string","nullable":true},"direction":{"type":"string","enum":["push"],"nullable":true}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/virtual_repositories/{virtual_repository_id}/sync_runs/reconcile":{"post":{"operationId":"reconcile_api_v1_virtual_repository_sync_runs","tags":["virtual_repositories"],"parameters":[{"name":"virtual_repository_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/virtual_repositories/{virtual_repository_id}/sync_runs/retry":{"post":{"operationId":"retry_api_v1_virtual_repository_sync_runs","tags":["virtual_repositories"],"parameters":[{"name":"virtual_repository_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Organization admin access required"},"404":{"description":"Not found"},"422":{"description":"No eligible failed run exists or another sync run is active"},"502":{"description":"Bad gateway"},"201":{"description":"Created virtual repository sync run","content":{"application/json":{"schema":{"type":"object","required":["sync_run"],"properties":{"sync_run":{"type":"object","required":["id","organization_id","virtual_repository_id","creator_user_id","trigger_kind","status","kind","sync_provider_kind","sync_mode","source_bookmark","staging_bookmark","merge_commit_id","projection_target_commit_id","source_op_head_ids","source_commit_id","source_change_id","source_git_sha","target_repository_owner","target_repository_name","target_repository_full_name","target_branch","remote_url","remote_before_sha","remote_after_sha","github_before_sha","github_after_sha","force","pulled_commit_count","projected_commit_count","skipped_commit_count","error_message","metadata","log_lines","started_at","started_at_label","finished_at","finished_at_label","created_at","created_at_label","updated_at","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"virtual_repository_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"trigger_kind":{"type":"string","enum":["manual","auto"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","skipped","canceled"]},"kind":{"type":"string","enum":["pull_sync","push_projection","materialization"]},"sync_provider_kind":{"type":"string","enum":["github","git"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"source_bookmark":{"type":"string"},"staging_bookmark":{"type":"string","nullable":true},"merge_commit_id":{"type":"string","nullable":true},"projection_target_commit_id":{"type":"string","nullable":true},"source_op_head_ids":{"type":"array","items":{"type":"string"}},"source_commit_id":{"type":"string","nullable":true},"source_change_id":{"type":"string","nullable":true},"source_git_sha":{"type":"string","nullable":true},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"remote_url":{"type":"string"},"remote_before_sha":{"type":"string","nullable":true},"remote_after_sha":{"type":"string","nullable":true},"github_before_sha":{"type":"string","nullable":true},"github_after_sha":{"type":"string","nullable":true},"force":{"type":"boolean"},"pulled_commit_count":{"type":"integer"},"projected_commit_count":{"type":"integer"},"skipped_commit_count":{"type":"integer"},"error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"log_lines":{"type":"array","items":{"type":"object","required":["timestamp","level","message"],"properties":{"timestamp":{"type":"string"},"timestamp_label":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"}}}},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","nullable":true}}}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"run_id":{"type":"string","nullable":true,"description":"Failed sync run to retry; defaults to the virtual repository's latest failed run."}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/virtual_repositories/{virtual_repository_id}/sync_runs/{id}":{"get":{"operationId":"api_v1_virtual_repository_sync_run","tags":["virtual_repositories"],"parameters":[{"name":"virtual_repository_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Created virtual repository sync run","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["sync_run"],"properties":{"sync_run":{"type":"object","required":["id","organization_id","virtual_repository_id","creator_user_id","trigger_kind","status","kind","sync_provider_kind","sync_mode","source_bookmark","staging_bookmark","merge_commit_id","projection_target_commit_id","source_op_head_ids","source_commit_id","source_change_id","source_git_sha","target_repository_owner","target_repository_name","target_repository_full_name","target_branch","remote_url","remote_before_sha","remote_after_sha","github_before_sha","github_after_sha","force","pulled_commit_count","projected_commit_count","skipped_commit_count","error_message","metadata","log_lines","started_at","started_at_label","finished_at","finished_at_label","created_at","created_at_label","updated_at","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"virtual_repository_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"trigger_kind":{"type":"string","enum":["manual","auto"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","skipped","canceled"]},"kind":{"type":"string","enum":["pull_sync","push_projection","materialization"]},"sync_provider_kind":{"type":"string","enum":["github","git"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"source_bookmark":{"type":"string"},"staging_bookmark":{"type":"string","nullable":true},"merge_commit_id":{"type":"string","nullable":true},"projection_target_commit_id":{"type":"string","nullable":true},"source_op_head_ids":{"type":"array","items":{"type":"string"}},"source_commit_id":{"type":"string","nullable":true},"source_change_id":{"type":"string","nullable":true},"source_git_sha":{"type":"string","nullable":true},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"remote_url":{"type":"string"},"remote_before_sha":{"type":"string","nullable":true},"remote_after_sha":{"type":"string","nullable":true},"github_before_sha":{"type":"string","nullable":true},"github_after_sha":{"type":"string","nullable":true},"force":{"type":"boolean"},"pulled_commit_count":{"type":"integer"},"projected_commit_count":{"type":"integer"},"skipped_commit_count":{"type":"integer"},"error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"log_lines":{"type":"array","items":{"type":"object","required":["timestamp","level","message"],"properties":{"timestamp":{"type":"string"},"timestamp_label":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"}}}},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/waitlist_applications":{"post":{"operationId":"api_v1_waitlist_applications","tags":["waitlist_applications"],"parameters":[],"responses":{"201":{"description":"Waitlist application accepted, or invite code confirmed for signup.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string"},"invite_signup":{"type":"boolean"}}}}}},"400":{"description":"A required field was missing."},"422":{"description":"A field failed validation, including an invalid invite code."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["name","email"],"properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"},"invite_code":{"type":"string","description":"Optional waitlist bypass code. Shown once at generation."},"use_case":{"type":"string","enum":["personal","company"]},"company_name":{"type":"string"},"company_size":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Join the beta waitlist, or validate an invite code","description":"Unauthenticated. A name and email join the waitlist. A redeemable `invite_code` does not create a waitlist row; it confirms the code so the browser can continue to account creation."}},"/api/v1/webhooks/gitlab/{connection_key}":{"post":{"operationId":"api_v1","tags":["webhooks"],"parameters":[{"name":"connection_key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"AccountEmail":{"type":"object","required":["id","email","account","commit_author","verified","verification_status","can_delete","can_set_account","can_set_commit_author","can_resend_verification"],"properties":{"id":{"type":"string"},"email":{"type":"string","format":"email"},"account":{"type":"boolean"},"commit_author":{"type":"boolean"},"verified":{"type":"boolean"},"verification_status":{"type":"string","enum":["verified","unverified"]},"can_delete":{"type":"boolean"},"can_set_account":{"type":"boolean"},"can_set_commit_author":{"type":"boolean"},"can_resend_verification":{"type":"boolean"}}},"AccountEmailsPage":{"type":"object","required":["emails"],"properties":{"emails":{"type":"array","items":{"$ref":"#/components/schemas/AccountEmail"}},"message":{"type":"string"}}},"AgentConnectionRecord":{"type":"object","properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"user_id":{"type":"string"},"name":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"toolkit":{"type":"string","enum":["slack","gmail","notion","linear","github","granola_mcp","discordbot","googlecalendar","googledrive","googlesheets","outlook","jira"]},"status":{"type":"string","enum":["pending","active","expired","revoked","error"]},"generation":{"type":"integer"},"failure_code":{"type":"string","nullable":true},"authorized_at":{"type":"string","nullable":true},"checked_at":{"type":"string","nullable":true},"revoked_at":{"type":"string","nullable":true},"admin_disabled_at":{"type":"string","format":"date-time","nullable":true},"owner_name":{"type":"string"},"ownership_kind":{"type":"string","enum":["personal","organization"]},"custodian_id":{"type":"string","nullable":true},"provider_disabled_reason":{"type":["string","null"]},"provider_identity":{"$ref":"#/components/schemas/ProviderIdentity"}},"required":["id","organization_id","user_id","name","created_at","updated_at","toolkit","status","generation","failure_code","authorized_at","checked_at","revoked_at","ownership_kind","custodian_id","provider_identity"]},"AutomationConnectionGrantRecord":{"type":"object","properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"agent_connection_id":{"type":"string"},"user_id":{"type":"string"},"automation_id":{"type":"string"},"created_at":{"type":"string"},"revision":{"type":"integer"},"connection_generation":{"type":"integer"},"status":{"type":"string","enum":["active","revoked"]},"actions":{"type":"array","minItems":1,"maxItems":30,"items":{"type":"object","properties":{"tool":{"type":"string"},"mode":{"type":"string","enum":["approval_required","preauthorized"]},"arguments":{"type":"object","additionalProperties":true},"property_types":{"type":"object","additionalProperties":{"type":"string","enum":["title","rich_text","number","checkbox","date"]}},"resources":{"type":"array","items":{"type":"string"}}},"required":["tool","mode","arguments","resources"]}},"revoked_at":{"type":"string","nullable":true},"usable":{"type":"boolean"}},"required":["id","organization_id","agent_connection_id","user_id","automation_id","created_at","revision","connection_generation","status","actions","revoked_at","usable"]},"AgentConnectionAccessRecord":{"type":"object","properties":{"id":{"type":"string"},"automation_connection_grant_id":{"type":"string"},"user_id":{"type":"string"},"authorized_by_id":{"type":"string"},"member_name":{"type":"string"},"created_at":{"type":"string"},"roles":{"type":"array","items":{"type":"string","enum":["invoke","approve"]},"minItems":1,"maxItems":2,"uniqueItems":true},"usable":{"type":"boolean"},"revoked_at":{"type":["string","null"]}},"required":["id","automation_connection_grant_id","user_id","authorized_by_id","member_name","created_at","roles","usable","revoked_at"]},"AgentIntegrationManifest":{"type":"object","properties":{"toolkit":{"type":"string","enum":["slack","gmail","notion","linear","github","googlecalendar","googledrive","googlesheets","outlook","jira","granola_mcp","discordbot"]},"name":{"type":"string"},"schema_version":{"type":"integer","enum":[2]},"version":{"type":"string"},"policy_digest":{"type":"string"},"authentication":{"type":"string","enum":["composio_connect_link"]},"certification":{"type":"string","enum":["preview","unavailable"]},"actions":{"type":"array","items":{"type":"object","required":["slug","resource_argument","allowed_arguments","input_schema","name","write"],"properties":{"slug":{"type":"string"},"resource_argument":{"type":"string"},"allowed_arguments":{"type":"array","items":{"type":"string"}},"input_schema":{"type":"object","additionalProperties":true},"name":{"type":"string"},"write":{"type":"boolean"}}}},"triggers":{"type":"array","items":{"$ref":"#/components/schemas/AgentTriggerDefinition"}},"limits":{"type":"object","required":["resources_per_action","response_bytes"],"properties":{"resources_per_action":{"type":"integer"},"response_bytes":{"type":"integer"}}},"consent":{"type":"object","nullable":true,"required":["method","method_label","provider_app","permission_model","summary","limitations","configured_scopes","effective_grants","checked_at","provenance","provider_consent_branding","branding_summary","verification_summary","sources","upstream_only_methods"],"properties":{"method":{"type":"string","enum":["OAUTH2","DCR_OAUTH"]},"method_label":{"type":"string"},"provider_app":{"type":"string","enum":["composio_managed","dynamic_registration"]},"permission_model":{"type":"string","enum":["oauth_scopes","shared_pages_and_capabilities","workspace_and_plan"]},"summary":{"type":"string"},"limitations":{"type":"string"},"configured_scopes":{"type":"array","items":{"type":"string"}},"effective_grants":{"type":"string","enum":["unknown"]},"checked_at":{"type":"string"},"provenance":{"type":"string"},"provider_consent_branding":{"type":"string","enum":["unverified"]},"branding_summary":{"type":"string"},"verification_summary":{"type":"string"},"sources":{"type":"array","items":{"type":"string"}},"upstream_only_methods":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"disabled_reason":{"type":["string","null"]}},"required":["toolkit","name","schema_version","version","policy_digest","authentication","certification","actions","triggers","limits","consent"]},"ProviderIdentity":{"type":"object","additionalProperties":false,"required":["status","account_label","workspace_label","checked_at"],"properties":{"status":{"type":"string","enum":["verified","unavailable"]},"account_label":{"type":"string","nullable":true},"workspace_label":{"type":"string","nullable":true},"checked_at":{"type":"string","format":"date-time","nullable":true}}},"AgentRoderSessionPayload":{"type":"object","required":["organization_id"],"properties":{"organization_id":{"type":"string"},"checkpoint_handoff":{"type":"object","additionalProperties":false,"required":["organization_slug","repository_slug","change_id","expected_commit_id","agent_checkpoint_id","purpose","max_bytes"],"properties":{"organization_slug":{"type":"string"},"repository_slug":{"type":"string"},"change_id":{"type":"string"},"expected_commit_id":{"type":"string"},"agent_checkpoint_id":{"type":"string"},"purpose":{"type":"string","enum":["ask_why","continue"]},"max_bytes":{"type":"integer","minimum":1,"maximum":24576}}}}},"AgentRoderSession":{"type":"object","required":["ws_url","token","expires_at","expires_in_seconds","workspace_dir","organization_id","mcp_token","model_provider","model"],"properties":{"ws_url":{"type":"string"},"token":{"type":"string"},"expires_at":{"type":"string","format":"date-time"},"expires_in_seconds":{"type":"integer","minimum":0,"description":"Remaining capability lifetime measured by the server when the response was created."},"workspace_dir":{"type":"string","description":"Compatibility root used to establish the SDK connection. workspace/list is authoritative for the active workspace."},"organization_id":{"type":"string"},"mcp_token":{"type":"string"},"model_provider":{"type":"string","nullable":true},"model":{"type":"string","nullable":true}}},"AgentRoderWorkspaceCredentials":{"type":"object","required":["clone_url","username","jj_grpc_endpoint","repository_spec","default_branch","author_name","author_email","token","api_token","expires_at","organization_id","repository_id","repository_slug"],"properties":{"clone_url":{"type":"string","format":"uri"},"username":{"type":"string","enum":["vex"]},"jj_grpc_endpoint":{"type":"string","format":"uri","description":"Absolute HTTP(S) endpoint for native Vex repository operations."},"repository_spec":{"type":"string","description":"Native Vex repository address in organization/home form."},"default_branch":{"type":"string"},"author_name":{"type":"string"},"author_email":{"type":"string","format":"email"},"token":{"type":"string","format":"password","description":"Short-lived read/write repository credential. The raw value is returned once and only its digest is stored."},"api_token":{"type":"string","format":"password","description":"Short-lived personal access token for the spawning user. Installed into the sandbox CLI config so `vex` and API clients act as that user. The raw value is returned once and only its digest is stored.\n"},"expires_at":{"type":"string","format":"date-time"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"}}},"AgentRoderWorkspaceCredentialRequest":{"type":"object","required":["required_lifetime_seconds"],"properties":{"required_lifetime_seconds":{"type":"integer","minimum":1,"maximum":3480,"description":"Lifetime the pending clone or command must be able to complete within."}}},"AgentSessionTranscriptEvent":{"type":"object","required":["index","kind","name","summary","skill_names","category","turn_index","role","timestamp","text","truncated"],"properties":{"index":{"type":"integer","description":"0-based position in the full flattened transcript."},"kind":{"type":"string","enum":["message","reasoning","tool_use","tool_result","lifecycle","other"]},"name":{"type":"string","nullable":true,"description":"Rails-owned hook, tool, harness row-type, or attachment-type name, or null when the source carried none."},"summary":{"type":"string","nullable":true,"description":"Rails-owned short description of a tool input, or null when no useful detail was present."},"skill_names":{"type":"array","items":{"type":"string"},"description":"Skill names Rails identified from this tool call."},"category":{"type":"string","enum":["context","prompt","response","reasoning","tool","lifecycle","system","attachment","other"],"description":"Rails-owned conversation meaning for this event. `system` is harness bookkeeping (mode, title, file-history rows), `attachment` is context the harness injected, and `other` is a row shape Vex does not recognize; the browser hides all three by default."},"turn_index":{"type":"integer","nullable":true,"description":"0-based conversation turn, or null for session context and events before the first prompt."},"role":{"type":"string","nullable":true,"enum":["user","assistant","system","developer","tool",null]},"timestamp":{"type":"string","nullable":true,"description":"ISO8601 capture time, or null when the source carried none."},"text":{"type":"string","description":"Sanitized, per-event byte-capped display text."},"truncated":{"type":"boolean","description":"True when `text` was truncated at the per-event cap."}}},"AgentSessionTranscriptPage":{"type":"object","required":["session_id","checkpoint_id","events","has_more_before","prev_cursor","total_events"],"properties":{"session_id":{"type":"string"},"checkpoint_id":{"type":"string"},"events":{"type":"array","items":{"$ref":"#/components/schemas/AgentSessionTranscriptEvent"}},"has_more_before":{"type":"boolean","description":"True when older events exist before this page."},"prev_cursor":{"type":"string","nullable":true,"description":"Cursor for the previous (older) page, or null at the start."},"total_events":{"type":"integer","description":"Total events in the resolved checkpoint's transcript."}}},"AgentSessionRoderHandoffConnection":{"type":"object","required":["ws_url","token","mcp_token","expires_at","expires_in_seconds","workspace_dir","organization_id"],"properties":{"ws_url":{"type":"string"},"token":{"type":"string"},"mcp_token":{"type":"string"},"expires_at":{"type":"string"},"expires_in_seconds":{"type":"integer"},"workspace_dir":{"type":"string"},"organization_id":{"type":"string"},"model_provider":{"type":"string","nullable":true},"model":{"type":"string","nullable":true}}},"AgentSessionRoderHandoff":{"type":"object","required":["roder_session","session_id","checkpoint_id","handoff","path"],"properties":{"roder_session":{"$ref":"#/components/schemas/AgentSessionRoderHandoffConnection"},"session_id":{"type":"string"},"checkpoint_id":{"type":"string"},"handoff":{"type":"object","description":"The resolved, non-secret handoff coordinate (citation) plus purpose and max_bytes.","required":["organization_slug","repository_slug","session_id","agent_checkpoint_id","purpose","max_bytes"],"properties":{"organization_slug":{"type":"string"},"repository_slug":{"type":"string"},"session_id":{"type":"string"},"agent_checkpoint_id":{"type":"string"},"purpose":{"type":"string"},"max_bytes":{"type":"integer"}}},"path":{"type":"string","description":"In-app path to the org Agents workspace where the conversation opens."}}},"AgentSwarmActivityKind":{"type":"string","enum":["shell","shell_exit","read_file","write_file","commit","export","stack_post","acceptance","notice","harness"]},"AgentSwarmActivityReport":{"type":"object","required":["kind","summary"],"properties":{"kind":{"$ref":"#/components/schemas/AgentSwarmActivityKind"},"ts":{"type":"string","format":"date-time"},"summary":{"type":"string","maxLength":512},"exit_code":{"type":"integer","nullable":true},"duration_ms":{"type":"integer","minimum":0,"nullable":true},"path":{"type":"string","maxLength":512,"nullable":true},"payload":{"type":"object","additionalProperties":true,"nullable":true}}},"AgentSwarmLiveActivityEvent":{"type":"object","required":["seq","kind","summary","exit_code","duration_ms","path","task_id","attempt_id","ts","at_ms","payload"],"properties":{"seq":{"type":"integer","minimum":1},"kind":{"$ref":"#/components/schemas/AgentSwarmActivityKind"},"summary":{"type":"string"},"exit_code":{"type":"integer","nullable":true},"duration_ms":{"type":"integer","nullable":true},"path":{"type":"string","nullable":true},"task_id":{"type":"string","nullable":true},"attempt_id":{"type":"string","nullable":true},"ts":{"type":"string","format":"date-time"},"at_ms":{"type":"integer","minimum":0},"payload":{"type":"object","additionalProperties":true}}},"AgentSwarmLiveEvent":{"type":"object","required":["id","kind","reason","task_id","attempt_id","ts","at_ms","payload","landing_entry"],"properties":{"id":{"type":"integer"},"kind":{"type":"string"},"reason":{"type":"string","nullable":true},"task_id":{"type":"string","nullable":true},"attempt_id":{"type":"string","nullable":true},"ts":{"type":"string","format":"date-time"},"at_ms":{"type":"integer","minimum":0},"payload":{"type":"object","additionalProperties":true},"landing_entry":{"oneOf":[{"$ref":"#/components/schemas/AgentSwarmLiveLandingEntry"},{"type":"null"}]}}},"AgentSwarmLiveTask":{"type":"object","required":["id","number","role","status","title","depth","position","iteration","failure_code","blocked_reason","parent_task_id","current_attempt_id","short_label","change_numbers","landing_state","started_at","finished_at","updated_at"],"properties":{"id":{"type":"string"},"number":{"type":"integer","minimum":1},"role":{"type":"string","enum":["planner","subplanner","worker","restack","release_watch"]},"status":{"type":"string","enum":["queued","blocked","running","succeeded","failed","canceled","skipped"]},"title":{"type":"string","nullable":true},"depth":{"type":"integer","minimum":0},"position":{"type":"integer","minimum":0},"iteration":{"type":"integer","minimum":0},"failure_code":{"type":"string","nullable":true},"blocked_reason":{"type":"string","nullable":true},"parent_task_id":{"type":"string","nullable":true},"current_attempt_id":{"type":"string","nullable":true},"short_label":{"type":"string"},"change_numbers":{"type":"array","items":{"type":"integer"}},"landing_state":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time"}}},"AgentSwarmLiveBudget":{"type":"object","required":["usd_spent_nanodollars","usd_cap_nanodollars","tokens_used","tokens_cap","vcpu_seconds_used","vcpu_seconds_cap","wall_clock_cap_seconds"],"properties":{"usd_spent_nanodollars":{"type":"integer","nullable":true},"usd_cap_nanodollars":{"type":"integer","nullable":true},"tokens_used":{"type":"integer","nullable":true},"tokens_cap":{"type":"integer","nullable":true},"vcpu_seconds_used":{"type":"integer","nullable":true},"vcpu_seconds_cap":{"type":"integer","nullable":true},"wall_clock_cap_seconds":{"type":"integer","nullable":true}}},"AgentSwarmLiveHeader":{"type":"object","required":["id","number","slug","goal","phase","outcome","status","launched_at","started_at","finished_at","active_workers","tasks_done","tasks_total","stacks_landed","budget","master_tip","base_bookmark","repository_slug","organization_slug"],"properties":{"id":{"type":"string"},"number":{"type":"integer","minimum":1},"slug":{"type":"string"},"goal":{"type":"string","nullable":true},"phase":{"type":"string","enum":["planning","executing","landing","releasing","terminal"],"nullable":true},"outcome":{"type":"string","enum":["succeeded","partially_succeeded","failed","canceled","budget_exhausted"],"nullable":true},"status":{"type":"string","enum":["queued","running","succeeded","failed","canceled"]},"launched_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"active_workers":{"type":"integer","minimum":0},"tasks_done":{"type":"integer","minimum":0},"tasks_total":{"type":"integer","minimum":0},"stacks_landed":{"type":"integer","minimum":0},"budget":{"$ref":"#/components/schemas/AgentSwarmLiveBudget"},"master_tip":{"type":"string","nullable":true},"base_bookmark":{"type":"string","nullable":true},"repository_slug":{"type":"string","nullable":true},"organization_slug":{"type":"string"}}},"AgentSwarmLiveLandingEntry":{"type":"object","required":["task_id","short_label","state","change_numbers","entry_id","at"],"properties":{"task_id":{"type":"string"},"short_label":{"type":"string"},"state":{"type":"string"},"change_numbers":{"type":"array","items":{"type":"integer"}},"entry_id":{"type":"string","nullable":true},"at":{"type":"string","format":"date-time"}}},"AgentSwarmLiveLanding":{"type":"object","required":["entries","master_tip"],"properties":{"entries":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmLiveLandingEntry"}},"master_tip":{"type":"string","nullable":true}}},"AgentSwarmLivePage":{"type":"object","required":["swarm","tasks","landing","events","activity","activity_retained","server_time"],"properties":{"swarm":{"$ref":"#/components/schemas/AgentSwarmLiveHeader"},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmLiveTask"}},"landing":{"$ref":"#/components/schemas/AgentSwarmLiveLanding"},"events":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmLiveEvent"}},"activity":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmLiveActivityEvent"}},"activity_retained":{"type":"integer"},"server_time":{"type":"string","format":"date-time"}}},"AgentSwarmLiveActivityItem":{"type":"object","required":["source","event"],"properties":{"source":{"type":"string","enum":["activity"]},"event":{"$ref":"#/components/schemas/AgentSwarmLiveActivityEvent"}}},"AgentSwarmLiveEventItem":{"type":"object","required":["source","event"],"properties":{"source":{"type":"string","enum":["event"]},"event":{"$ref":"#/components/schemas/AgentSwarmLiveEvent"}}},"AgentSwarmLiveStreamItem":{"oneOf":[{"$ref":"#/components/schemas/AgentSwarmLiveActivityItem"},{"$ref":"#/components/schemas/AgentSwarmLiveEventItem"}]},"AgentSwarmLiveReplayPage":{"type":"object","required":["swarm","tasks","items","cursor","next_cursor","after_seq","after_event_id","done","limit","server_time"],"properties":{"swarm":{"$ref":"#/components/schemas/AgentSwarmLiveHeader"},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmLiveTask"}},"items":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmLiveStreamItem"}},"cursor":{"type":"string","nullable":true},"next_cursor":{"type":"string","nullable":true},"after_seq":{"type":"integer","minimum":0},"after_event_id":{"type":"integer","minimum":0},"done":{"type":"boolean"},"limit":{"type":"integer","minimum":1},"server_time":{"type":"string","format":"date-time"}}},"AgentSwarm":{"type":"object","required":["id","organization_id","organization_slug","creator_user_id","repository_id","repository_slug","number","display_id","slug","status","phase","outcome","goal","base_bookmark","base_revision","deadline_at","canceled_at","scheduler_generation","policy","budget","usage","reserved","summary","environment","model_provider","model","base_ref","concurrency_key","task_template_json","queued_at","started_at","finished_at","created_at","updated_at","task_count","done_count","failed_count","canceled_count","skipped_count","queued_at_label","started_at_label","finished_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"organization_slug":{"type":"string","nullable":true},"repository_slug":{"type":"string","nullable":true},"creator_user_id":{"type":"string","nullable":true},"repository_id":{"type":"string","nullable":true},"phase":{"type":"string","enum":["planning","executing","landing","releasing","terminal"],"nullable":true},"outcome":{"type":"string","enum":["succeeded","partially_succeeded","failed","canceled","budget_exhausted"],"nullable":true},"goal":{"type":"string","nullable":true},"base_bookmark":{"type":"string","nullable":true},"base_revision":{"type":"string","nullable":true},"deadline_at":{"type":"string","format":"date-time","nullable":true},"canceled_at":{"type":"string","format":"date-time","nullable":true},"scheduler_generation":{"type":"integer","minimum":0},"policy":{"type":"object","additionalProperties":true},"budget":{"type":"object","additionalProperties":true},"usage":{"type":"object","additionalProperties":true},"reserved":{"type":"object","additionalProperties":true},"summary":{"type":"object","additionalProperties":true},"environment":{"type":"object","additionalProperties":true},"canceled_count":{"type":"integer","minimum":0},"skipped_count":{"type":"integer","minimum":0},"number":{"type":"integer","minimum":1},"display_id":{"type":"integer","minimum":1},"slug":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","canceled"]},"model_provider":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"base_ref":{"type":"string","nullable":true},"concurrency_key":{"type":"string","nullable":true},"task_template_json":{"type":"string","nullable":true},"queued_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"task_count":{"type":"integer","minimum":0},"done_count":{"type":"integer","minimum":0},"failed_count":{"type":"integer","minimum":0},"queued_at_label":{"type":"string","nullable":true},"started_at_label":{"type":"string","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"AgentSwarmTask":{"type":"object","required":["id","organization_id","agent_swarm_id","assigned_runner_id","number","display_id","repo_url","prompt","status","role","depth","position","iteration","title","failure_code","blocked_reason","environment_profile","harness","input_revision","model_provider","model","reasoning_effort","deadline_at","parent_task_id","stack_after_task_id","depends_on_task_ids","current_attempt_id","owned_paths","acceptance_commands","result","landing_state","run_id","changes","recent_activity","commit_sha_result","diff_artifact_url","error_message","retry_number","queued_at","started_at","finished_at","created_at","updated_at","queued_at_label","started_at_label","finished_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"agent_swarm_id":{"type":"string"},"assigned_runner_id":{"type":"string","nullable":true},"number":{"type":"integer","minimum":1},"display_id":{"type":"integer","minimum":1},"repo_url":{"type":"string","format":"uri"},"prompt":{"type":"string"},"status":{"type":"string","enum":["queued","blocked","running","succeeded","failed","canceled","skipped"]},"role":{"type":"string","enum":["planner","subplanner","worker","restack","release_watch"]},"depth":{"type":"integer","minimum":0},"position":{"type":"integer","minimum":0},"iteration":{"type":"integer","minimum":0},"title":{"type":"string","nullable":true},"failure_code":{"type":"string","nullable":true},"blocked_reason":{"type":"string","enum":["dependency_pending","dependency_failed"],"nullable":true},"environment_profile":{"type":"string","nullable":true},"harness":{"type":"string","enum":["roder","codex"]},"input_revision":{"type":"string","nullable":true},"model_provider":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"reasoning_effort":{"type":"string","nullable":true},"deadline_at":{"type":"string","format":"date-time","nullable":true},"parent_task_id":{"type":"string","nullable":true},"stack_after_task_id":{"type":"string","nullable":true},"depends_on_task_ids":{"type":"array","items":{"type":"string"}},"current_attempt_id":{"type":"string","nullable":true},"owned_paths":{"type":"array","items":{"type":"string"}},"acceptance_commands":{"type":"array","items":{"type":"object","additionalProperties":true}},"result":{"type":"object","additionalProperties":true},"landing_state":{"type":"string","enum":["none","held","requested","queued","landed","failed"]},"run_id":{"type":"string","nullable":true},"changes":{"type":"array","items":{"type":"object","required":["number","title","status"],"properties":{"number":{"type":"integer","nullable":true},"title":{"type":"string"},"status":{"type":"string"}}}},"recent_activity":{"type":"array","maxItems":12,"items":{"type":"object","required":["seq","kind","summary","exit_code","ts"],"properties":{"seq":{"type":"integer","minimum":1},"kind":{"$ref":"#/components/schemas/AgentSwarmActivityKind"},"summary":{"type":"string"},"exit_code":{"type":"integer","nullable":true},"ts":{"type":"string","format":"date-time"}}}},"commit_sha_result":{"type":"string","nullable":true},"diff_artifact_url":{"type":"string","format":"uri","nullable":true},"error_message":{"type":"string","nullable":true},"retry_number":{"type":"integer","minimum":0},"queued_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"queued_at_label":{"type":"string","nullable":true},"started_at_label":{"type":"string","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"AgentSwarmDetail":{"allOf":[{"$ref":"#/components/schemas/AgentSwarm"},{"type":"object","required":["tasks"],"properties":{"tasks":{"type":"array","maxItems":25,"items":{"$ref":"#/components/schemas/AgentSwarmTask"}}}}]},"AgentSwarmTaskCreatePayload":{"type":"object","required":["prompt"],"properties":{"repo_url":{"type":"string","format":"uri"},"prompt":{"type":"string"},"title":{"type":"string"},"role":{"type":"string","enum":["worker","subplanner"]},"owned_paths":{"type":"array","items":{"type":"string"}},"acceptance_commands":{"type":"array","items":{"type":"object","required":["command"],"properties":{"command":{"type":"string"},"timeout_seconds":{"type":"integer","minimum":1,"maximum":600}}}},"depends_on":{"type":"array","items":{"type":"integer","minimum":0}},"stack_after":{"type":"integer","minimum":0,"nullable":true},"environment_profile":{"type":"string"},"harness":{"type":"string","enum":["roder","codex"]}}},"AgentSwarmCreatePayload":{"description":"PRD 146: the goal form (`goal` + `repository`) starts a planned swarm; the legacy `tasks[]` form materializes a one-level tree. One of `goal` or `tasks` is required.","type":"object","required":["organization_slug"],"properties":{"organization_slug":{"type":"string"},"slug":{"type":"string"},"goal":{"type":"string"},"repository":{"type":"string","description":"Repository slug inside the organization"},"base_bookmark":{"type":"string"},"base_revision":{"type":"string","description":"64-hex commit id; skips the head lookup"},"policy":{"type":"object","additionalProperties":true},"budget":{"type":"object","additionalProperties":true},"environment":{"type":"object","additionalProperties":true},"model_provider":{"type":"string","deprecated":true},"model":{"type":"string","deprecated":true},"base_ref":{"type":"string","deprecated":true},"concurrency_key":{"type":"string","deprecated":true},"task_template_json":{"type":"string","deprecated":true},"queued_at":{"type":"string","format":"date-time","deprecated":true},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmTaskCreatePayload"}}}},"AgentSwarmPolicy":{"type":"object","required":["policy","budget","environment","scheduler_generation"],"properties":{"policy":{"type":"object","additionalProperties":true},"budget":{"type":"object","additionalProperties":true},"environment":{"type":"object","additionalProperties":true},"scheduler_generation":{"type":"integer","minimum":0}}},"AgentSwarmEvent":{"type":"object","required":["id","agent_swarm_id","task_id","attempt_id","kind","reason","scheduler_generation","payload","created_at","created_at_label"],"properties":{"id":{"type":"integer"},"agent_swarm_id":{"type":"string"},"task_id":{"type":"string","nullable":true},"attempt_id":{"type":"string","nullable":true},"kind":{"type":"string"},"reason":{"type":"string","nullable":true},"scheduler_generation":{"type":"integer","nullable":true},"payload":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true}}},"RoderRunResultPayload":{"type":"object","required":["result_contract","result"],"properties":{"result_contract":{"type":"string"},"result":{"type":"object","additionalProperties":true}}},"RoderRunResultReceipt":{"type":"object","required":["id","status","result_contract"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["completed"]},"result_contract":{"type":"string"}}},"AgentTriggerSubscriptionRecord":{"type":"object","properties":{"id":{"type":"string"},"agent_connection_id":{"type":"string"},"trigger_slug":{"type":"string"},"toolkit_version":{"type":"string"},"configuration":{"type":"object","additionalProperties":true},"enabled":{"type":"boolean"},"remote_enabled":{"type":["boolean","null"]},"failure_code":{"type":["string","null"]},"failure_request_id":{"type":["string","null"],"maxLength":200},"reconcile_at":{"type":"string","format":"date-time"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"waiting_for_retirement":{"type":"boolean"},"retired_at":{"type":["string","null"],"format":"date-time"},"retirement_completed_at":{"type":["string","null"],"format":"date-time"},"reconciliation_uncertain":{"type":"boolean"},"replacement_id":{"type":["string","null"]}},"required":["id","agent_connection_id","trigger_slug","toolkit_version","configuration","enabled","remote_enabled","failure_code","failure_request_id","reconcile_at","created_at","updated_at","retired_at","retirement_completed_at","waiting_for_retirement","reconciliation_uncertain","replacement_id"]},"AgentTriggerDefinition":{"type":"object","properties":{"slug":{"type":"string"},"toolkit":{"type":"string"},"version":{"type":"string"},"name":{"type":"string"},"delivery":{"type":"string"},"status":{"type":"string"},"latency":{"type":"string"},"defaults":{"type":"object","additionalProperties":true},"schema":{"type":"object","additionalProperties":true}},"required":["slug","toolkit","version","name","delivery","status","latency","defaults","schema"]},"AutomationProviderBindingRecord":{"type":"object","properties":{"id":{"type":"string"},"agent_trigger_subscription_id":{"type":"string"},"automation_id":{"type":"string"},"trigger_key":{"type":"string"},"revision":{"type":"integer"},"usable":{"type":"boolean"},"revoked_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"}},"required":["id","agent_trigger_subscription_id","automation_id","trigger_key","revision","usable","revoked_at","created_at"]},"AgentTriggerSubscriptionHealth":{"type":"object","properties":{"last_received_at":{"type":["string","null"],"format":"date-time"},"last_occurred_at":{"type":["string","null"],"format":"date-time"},"last_delivered_at":{"type":["string","null"],"format":"date-time"},"last_event_id":{"type":["string","null"]},"last_invocation_id":{"type":["string","null"]},"last_automation_slug":{"type":["string","null"]},"observed_delay_seconds":{"type":["number","null"],"minimum":0},"pending_deliveries":{"type":"integer","minimum":0}},"required":["last_received_at","last_occurred_at","last_delivered_at","last_event_id","last_invocation_id","last_automation_slug","observed_delay_seconds","pending_deliveries"]},"AgentUsagePage":{"type":"object","required":["source","window","started_at","ended_at","pricing_version","days","users","user_days"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"],"description":"Which store served the rows."},"window":{"type":"string","enum":["7d","30d"]},"started_at":{"type":"string"},"ended_at":{"type":"string"},"pricing_version":{"type":"string","description":"The price table in effect now; rows carry the version they were priced at."},"days":{"type":"array","description":"One cell per (day, model), ascending by day then model. Days with no usage are absent.","items":{"$ref":"#/components/schemas/AgentUsageDayCell"}},"users":{"type":"array","description":"One row per (person, model), descending by tokens. `user` is null for hosted agents.","items":{"$ref":"#/components/schemas/AgentUsageUserCell"}},"user_days":{"type":"array","description":"One cell per (day, person), ascending by day. `user` is null for hosted agents.","items":{"$ref":"#/components/schemas/AgentUsageUserDayCell"}}}},"AgentUsageDayCell":{"type":"object","required":["date","model","input_tokens","cache_read_input_tokens","cache_creation_input_tokens","output_tokens","total_tokens","api_call_count","session_count","estimated_cost_usd","unpriced_tokens"],"properties":{"date":{"type":"string","description":"ISO date."},"model":{"type":"string","description":"Provider model id; '' when the checkpoint reported none."},"input_tokens":{"type":"integer"},"cache_read_input_tokens":{"type":"integer"},"cache_creation_input_tokens":{"type":"integer"},"output_tokens":{"type":"integer"},"total_tokens":{"type":"integer"},"api_call_count":{"type":"integer"},"session_count":{"type":"integer"},"estimated_cost_usd":{"type":"string","description":"Decimal USD summed from each row's capture-time price."},"unpriced_tokens":{"type":"integer","description":"Tokens in `total_tokens` whose model had no list price, so the cost is a floor when non-zero."}}},"AgentUsageUserCell":{"type":"object","required":["user","model","total_tokens","output_tokens","api_call_count","session_count","estimated_cost_usd","unpriced_tokens","last_active_at"],"properties":{"user":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSessionUser"},{"type":"null"}]},"model":{"type":"string"},"total_tokens":{"type":"integer"},"output_tokens":{"type":"integer"},"api_call_count":{"type":"integer"},"session_count":{"type":"integer"},"estimated_cost_usd":{"type":"string"},"unpriced_tokens":{"type":"integer"},"last_active_at":{"type":"string","nullable":true}}},"AgentUsageUserDayCell":{"type":"object","required":["date","user","total_tokens","output_tokens","api_call_count","session_count","estimated_cost_usd","unpriced_tokens"],"properties":{"date":{"type":"string","description":"ISO date."},"user":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSessionUser"},{"type":"null"}]},"total_tokens":{"type":"integer"},"output_tokens":{"type":"integer"},"api_call_count":{"type":"integer"},"session_count":{"type":"integer"},"estimated_cost_usd":{"type":"string"},"unpriced_tokens":{"type":"integer"}}},"ArtefactPagePagination":{"type":"object","properties":{"count":{"type":"integer"},"page":{"type":"integer"},"last":{"type":"integer"},"previous":{"type":"integer"},"next":{"type":"integer"}},"required":["count","page","last"]},"ArtefactPageItem":{"allOf":[{"$ref":"#/components/schemas/Artefact"},{"type":"object","properties":{"publisher":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"picture_url":{"type":"string","nullable":true}},"required":["id","name","picture_url"],"nullable":true},"repository":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}},"required":["id","slug","name"],"nullable":true},"published_at_label":{"type":["string","null"]}},"required":["publisher","repository","published_at_label"]}]},"ArtefactIndexPage":{"type":"object","properties":{"organization":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}},"required":["id","slug","name"]},"artefacts":{"type":"array","items":{"$ref":"#/components/schemas/ArtefactPageItem"}},"filters":{"type":"object","additionalProperties":{"type":"string"}},"kinds":{"type":"array","items":{"type":"string"}},"pagination":{"$ref":"#/components/schemas/ArtefactPagePagination"}},"required":["organization","artefacts","filters","kinds","pagination"]},"ArtefactDetailPage":{"type":"object","properties":{"organization":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}},"required":["id","slug","name"]},"artefact":{"$ref":"#/components/schemas/ArtefactPageItem"},"kinds":{"type":"array","items":{"type":"string"}},"permissions":{"type":"object","properties":{"edit":{"type":"boolean"},"delete":{"type":"boolean"}},"required":["edit","delete"]},"preview":{"type":"object","properties":{"kind":{"type":"string","enum":["html","pdf","image","markdown","download","unavailable"]},"content":{"type":"string"},"viewer_url":{"type":"string"}},"required":["kind"]},"versions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"version":{"type":"integer"},"published_at":{"type":["string","null"]}},"required":["id","version","published_at"]}},"pagination":{"$ref":"#/components/schemas/ArtefactPagePagination"},"automation":{"type":"object","nullable":true,"properties":{"name":{"type":"string"},"slug":{"type":"string"},"invocation_id":{"type":"string"}},"required":["name","slug","invocation_id"]},"selected_path":{"type":"string"}},"required":["organization","artefact","kinds","permissions","preview","versions","pagination","automation"]},"Artefact":{"type":"object","properties":{"document_key":{"type":"string","description":"Stable document identity shared by all revisions."},"entrypoint":{"type":"string"},"files":{"type":"array","items":{"type":"object","required":["path","content_type","byte_size","checksum_sha256"],"properties":{"path":{"type":"string"},"content_type":{"type":"string"},"byte_size":{"type":"integer"},"checksum_sha256":{"type":"string"},"version_id":{"type":"string"}}}},"id":{"type":"string"},"organization_id":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"},"kind":{"type":"string"},"source":{"type":"string"},"filename":{"type":"string"},"content_type":{"type":"string"},"checksum_sha256":{"type":"string"},"status":{"type":"string"},"version":{"type":"integer"},"byte_size":{"type":"integer"},"description":{"type":"string","nullable":true},"harness":{"type":"string","nullable":true},"harness_version":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"created_by_user_id":{"type":"string","nullable":true},"repository_id":{"type":"string","nullable":true},"vcs_agent_session_id":{"type":"string","nullable":true},"vcs_agent_checkpoint_id":{"type":"string","nullable":true},"automation_invocation_id":{"type":"string","nullable":true},"published_at":{"type":"string","nullable":true},"expires_at":{"type":"string","nullable":true},"created_at":{"type":"string","nullable":true},"view_url":{"type":"string","format":"uri"},"web_url":{"type":"string","format":"uri"}},"required":["id","organization_id","slug","version","title","kind","source","filename","content_type","byte_size","checksum_sha256","status","view_url","web_url"]},"AutomationArtifactManifest":{"type":"object","properties":{"id":{"type":"string"},"artefact_id":{"type":"string"},"filename":{"type":"string"},"content_type":{"type":"string"},"checksum_sha256":{"type":"string"},"expires_at":{"type":"string"},"byte_size":{"type":"integer"}},"required":["id","artefact_id","filename","content_type","checksum_sha256","expires_at","byte_size"]},"AutomationOriginVerificationInput":{"type":"object","additionalProperties":false,"required":["tool_call_id","provider_log_id"],"properties":{"tool_call_id":{"type":"string"},"provider_log_id":{"type":"string","pattern":"^log_[A-Za-z0-9_-]{1,196}$","maxLength":200}}},"AutomationOriginVerificationRecord":{"type":"object","required":["id","user_id","automation_tool_call_id","provider_log_id","origin_kind","created_at"],"properties":{"id":{"type":"string"},"user_id":{"type":"string"},"automation_tool_call_id":{"type":"string"},"provider_log_id":{"type":"string"},"origin_kind":{"type":"string"},"created_at":{"type":"string"}}},"AutomationPageOrganization":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}},"required":["id","slug","name"]},"AutomationPagePermissions":{"type":"object","properties":{"create":{"type":"boolean"},"edit":{"type":"boolean"},"preview":{"type":"boolean"},"activate":{"type":"boolean"},"invoke":{"type":"boolean"},"pause":{"type":"boolean"},"archive":{"type":"boolean"}},"required":["create","edit","preview","activate","invoke","pause","archive"]},"AutomationPageCatalog":{"type":"object","properties":{"model_providers":{"type":"array","items":{"type":"string"}},"models":{"type":"array","items":{"type":"string"}},"output_modes":{"type":"array","items":{"type":"string"}},"trigger_types":{"type":"array","items":{"type":"string"}},"tools":{"type":"array","items":{"type":"string"}},"condition_operators":{"type":"array","items":{"type":"string"}},"events":{"type":"array","items":{"type":"string"}},"max_triggers":{"type":"integer"},"max_tokens":{"type":"integer"},"max_deadline_seconds":{"type":"integer"},"max_tool_calls":{"type":"integer"}},"required":["model_providers","models","output_modes","trigger_types","tools","condition_operators","events","max_triggers","max_tokens","max_deadline_seconds","max_tool_calls"]},"AutomationPagePagination":{"type":"object","properties":{"count":{"type":"integer"},"page":{"type":"integer"},"limit":{"type":"integer"},"last":{"type":"integer"},"previous":{"type":"integer"},"next":{"type":"integer"}},"required":["count","page","limit","last"]},"AutomationIndexItem":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"revision":{"type":"integer"},"active_revision_number":{"type":"integer","nullable":true},"next_due_at":{"type":"string","nullable":true},"updated_at":{"type":"string"},"trigger_types":{"type":"array","items":{"type":"string"}},"last_invocation":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string"},"reason":{"type":"string","nullable":true},"created_at":{"type":"string"},"usage":{},"usage_summary":{"$ref":"#/components/schemas/AutomationUsageSummary"}},"required":["id","status","reason","created_at","usage","usage_summary"],"nullable":true}},"required":["id","slug","name","status","revision","active_revision_number","next_due_at","updated_at","trigger_types","last_invocation"]},"AutomationIndexPage":{"type":"object","properties":{"organization":{"$ref":"#/components/schemas/AutomationPageOrganization"},"permissions":{"$ref":"#/components/schemas/AutomationPagePermissions"},"execution_enabled":{"type":"boolean"},"automations":{"type":"array","items":{"$ref":"#/components/schemas/AutomationIndexItem"}},"pagination":{"$ref":"#/components/schemas/AutomationPagePagination"},"integrations_enabled":{"type":"boolean"},"integration_access":{"$ref":"#/components/schemas/AutomationIntegrationAccess"}},"required":["organization","permissions","execution_enabled","automations","pagination","integrations_enabled","integration_access"]},"AutomationNewPage":{"type":"object","properties":{"organization":{"$ref":"#/components/schemas/AutomationPageOrganization"},"permissions":{"$ref":"#/components/schemas/AutomationPagePermissions"},"execution_enabled":{"type":"boolean"},"catalog":{"$ref":"#/components/schemas/AutomationPageCatalog"},"defaults":{"$ref":"#/components/schemas/AutomationConfiguration"},"integrations_enabled":{"type":"boolean"},"integration_access":{"$ref":"#/components/schemas/AutomationIntegrationAccess"},"integration_templates":{"type":"array","items":{"$ref":"#/components/schemas/AutomationIntegrationTemplate"}}},"required":["organization","permissions","execution_enabled","catalog","defaults","integrations_enabled","integration_access","integration_templates"]},"AutomationDetailPage":{"type":"object","properties":{"organization":{"$ref":"#/components/schemas/AutomationPageOrganization"},"permissions":{"$ref":"#/components/schemas/AutomationPagePermissions"},"execution_enabled":{"type":"boolean"},"automation":{"$ref":"#/components/schemas/AutomationRecord"},"activation":{"type":"object","properties":{"from_revision":{"type":"integer","nullable":true},"to_revision":{"type":"integer"},"changes":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"before":{},"after":{}},"required":["field","before","after"]}},"added_tools":{"type":"array","items":{"type":"string"}},"removed_tools":{"type":"array","items":{"type":"string"}}},"required":["from_revision","to_revision","changes","added_tools","removed_tools"]},"schedules":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"type":{"type":"string"},"timezone":{"type":"string","nullable":true},"next_occurrences":{"type":"array","items":{"type":"string"}}},"required":["key","type","timezone","next_occurrences"]}},"catalog":{"$ref":"#/components/schemas/AutomationPageCatalog"},"invocations":{"type":"array","items":{"$ref":"#/components/schemas/AutomationInvocationRecord"}},"pagination":{"$ref":"#/components/schemas/AutomationPagePagination"},"integrations_enabled":{"type":"boolean"},"integration_access":{"$ref":"#/components/schemas/AutomationIntegrationAccess"}},"required":["organization","permissions","execution_enabled","automation","activation","schedules","catalog","invocations","pagination","integrations_enabled","integration_access"]},"AutomationInvocationPage":{"type":"object","properties":{"organization":{"$ref":"#/components/schemas/AutomationPageOrganization"},"automation":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}},"required":["id","slug","name"]},"invocation":{"$ref":"#/components/schemas/AutomationInvocationRecord"},"configuration":{"anyOf":[{"$ref":"#/components/schemas/AutomationConfiguration"},{"type":"null"}]},"input":{},"attempts":{"type":"array","items":{"$ref":"#/components/schemas/AutomationAttemptRecord"}},"tool_calls":{"type":"array","items":{"$ref":"#/components/schemas/AutomationToolCallRecord"}},"artifacts":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/AutomationArtifactManifest"},{"type":"object","properties":{"state":{"type":"string"}},"required":["state"]}]}},"permissions":{"type":"object","properties":{"cancel":{"type":"boolean"},"retry":{"type":"boolean"},"read_results":{"type":"boolean"}},"required":["cancel","retry","read_results"]},"retry_warning":{"type":"string"},"refresh_needed":{"type":"boolean"},"transcript":{"$ref":"#/components/schemas/AutomationTranscriptPage"},"action_approvals":{"type":"array","items":{"$ref":"#/components/schemas/AutomationActionApprovalRecord"}}},"required":["organization","automation","invocation","configuration","input","attempts","tool_calls","artifacts","permissions","retry_warning","refresh_needed","transcript","action_approvals"]},"AutomationToolCallRecord":{"type":"object","properties":{"id":{"type":"string"},"roder_run_id":{"type":"string"},"name":{"type":"string"},"arguments":{},"state":{"type":"string"},"result":{},"created_at":{"type":"string"},"updated_at":{"type":"string"},"resolution":{"anyOf":[{"$ref":"#/components/schemas/AutomationToolResolutionRecord"},{"type":"null"}]},"can_resolve":{"type":"boolean"},"origin_verification_required":{"type":"boolean"},"can_recover_origin":{"type":"boolean"},"origin_verification":{"anyOf":[{"$ref":"#/components/schemas/AutomationOriginVerificationRecord"},{"type":"null"}]}},"required":["id","roder_run_id","name","arguments","state","result","created_at","updated_at","resolution","can_resolve","origin_verification_required","can_recover_origin","origin_verification"]},"AutomationIntegrationAccess":{"type":"object","required":["accounts","actions","grants","subscriptions","provider_bindings","audience_members","delegations"],"properties":{"accounts":{"type":"array","items":{"$ref":"#/components/schemas/AgentConnectionRecord"}},"grants":{"type":"array","items":{"$ref":"#/components/schemas/AutomationConnectionGrantRecord"}},"actions":{"type":"array","items":{"type":"object","required":["tool","toolkit","name","resource_label","write"],"properties":{"tool":{"type":"string"},"toolkit":{"type":"string"},"name":{"type":"string"},"resource_label":{"type":"string"},"write":{"type":"boolean"}}}},"subscriptions":{"type":"array","items":{"$ref":"#/components/schemas/AgentTriggerSubscriptionRecord"}},"provider_bindings":{"type":"array","items":{"$ref":"#/components/schemas/AutomationProviderBindingRecord"}},"audience_members":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"delegations":{"type":"array","items":{"$ref":"#/components/schemas/AgentConnectionAccessRecord"}}}},"AutomationActionApprovalRecord":{"type":"object","required":["id","status","expires_at","decided_at","tool","arguments","connection_name"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["pending","approved","denied","expired"]},"expires_at":{"type":"string"},"decided_at":{"type":"string","nullable":true},"tool":{"type":"string"},"arguments":{"type":"object","additionalProperties":true},"connection_name":{"type":"string"}}},"AutomationIntegrationTemplate":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"toolkits":{"type":"array","items":{"type":"string"}},"setup":{"type":"array","items":{"type":"string"}},"configuration":{"$ref":"#/components/schemas/AutomationConfiguration"}},"required":["id","name","description","toolkits","setup","configuration"]},"AutomationToolResolutionInput":{"type":"object","additionalProperties":false,"required":["tool_call_id","outcome","evidence_note"],"properties":{"tool_call_id":{"type":"string"},"outcome":{"type":"string","enum":["confirmed_succeeded","confirmed_not_performed"]},"provider_log_id":{"type":["string","null"],"maxLength":200},"external_resource_id":{"type":["string","null"],"maxLength":200},"evidence_note":{"type":"string","minLength":20,"maxLength":1000}}},"AutomationToolResolutionRecord":{"type":"object","required":["id","user_id","agent_connection_id","automation_tool_call_id","outcome","provider_log_id","external_resource_id","evidence_note","created_at"],"properties":{"id":{"type":"string"},"user_id":{"type":"string"},"agent_connection_id":{"type":"string"},"automation_tool_call_id":{"type":"string"},"outcome":{"type":"string","enum":["confirmed_succeeded","confirmed_not_performed"]},"provider_log_id":{"type":["string","null"],"maxLength":200},"external_resource_id":{"type":["string","null"],"maxLength":200},"evidence_note":{"type":"string","minLength":20,"maxLength":1000},"created_at":{"type":"string"}}},"AutomationTranscriptEntry":{"type":"object","required":["id","sequence","kind","content","truncated","created_at"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer"},"kind":{"type":"string","enum":["instructions","input","assistant","tool_call","tool_result","correction","error"]},"name":{"type":"string","nullable":true},"call_id":{"type":"string","nullable":true},"content":{"type":"string"},"truncated":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"}}},"AutomationTranscriptPage":{"type":"object","required":["attempt","entries","pagination"],"properties":{"attempt":{"type":"integer","nullable":true},"entries":{"type":"array","items":{"$ref":"#/components/schemas/AutomationTranscriptEntry"}},"pagination":{"$ref":"#/components/schemas/AutomationPagePagination"}}},"AutomationPagination":{"type":"object","required":["limit"],"properties":{"limit":{"type":"integer"},"next":{"type":"string"}}},"AutomationSkillFile":{"type":"object","additionalProperties":false,"required":["path","sha256"],"properties":{"path":{"type":"string"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}}},"AutomationSkillReference":{"type":"object","additionalProperties":false,"required":["repository_id","revision","path","sha256"],"properties":{"repository_id":{"type":"string"},"revision":{"type":"string","pattern":"^[0-9a-f]{64}$"},"path":{"type":"string"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"files":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/AutomationSkillFile"}}}},"AutomationRepositoryContext":{"type":"object","additionalProperties":false,"required":["mode"],"properties":{"mode":{"enum":["none","repository","trigger_change"]},"repository_id":{"type":"string"},"ref":{"type":"string"},"base_ref":{"type":"string"},"path_prefix":{"type":"string"}}},"AutomationSignalOutput":{"type":"object","additionalProperties":false,"required":["kind","severity"],"properties":{"kind":{"type":"string","maxLength":100,"pattern":"^app\\.custom\\.[a-z0-9]+([._-][a-z0-9]+)*$"},"severity":{"enum":["info","warning","error","critical"]}}},"AutomationCooldown":{"type":"object","additionalProperties":false,"required":["key","seconds"],"properties":{"key":{"enum":["hosted_app","repository","subject","source"]},"seconds":{"type":"integer","minimum":1,"maximum":86400}}},"AutomationEvaluationDefinition":{"type":"object","additionalProperties":false,"required":["model","state","questions","rules"],"properties":{"model":{"type":"string","pattern":"^jev-[0-9]+\\.[0-9]+\\.[0-9]+$"},"state":{"type":"object","additionalProperties":false,"required":["source","include"],"properties":{"source":{"type":"string","enum":["triggering_change"]},"include":{"type":"array","description":"Must contain changed_paths followed by diff_hunks.","minItems":2,"maxItems":2,"items":{"type":"string","enum":["changed_paths","diff_hunks"]}}}},"questions":{"type":"object","minProperties":1,"maxProperties":20,"additionalProperties":{"type":"object","additionalProperties":false,"required":["type","instructions"],"properties":{"type":{"type":"string","enum":["noul"]},"instructions":{"type":"string","minLength":1,"maxLength":4000}}}},"rules":{"type":"array","minItems":1,"maxItems":20,"description":"One rule per question, with distinct criteria and at_most less than at_least.","items":{"type":"object","additionalProperties":false,"required":["question","criterion","description","at_least","at_most"],"properties":{"question":{"type":"string"},"criterion":{"type":"string"},"description":{"type":"string","minLength":1,"maxLength":1000},"at_least":{"type":"number","minimum":0,"maximum":1},"at_most":{"type":"number","minimum":0,"maximum":1}}}}}},"AutomationConfiguration":{"type":"object","description":"Agent execution requires a prompt or skills. Evaluation execution uses saved questions over a trusted Change event.","properties":{"execution":{"type":"string","enum":["agent","evaluation"],"default":"agent"},"evaluation":{"$ref":"#/components/schemas/AutomationEvaluationDefinition"},"result_audience":{"type":"array","maxItems":100,"uniqueItems":true,"items":{"type":"string","pattern":"^usr_[A-Za-z0-9]{1,100}$"},"description":"Explicit organization member IDs allowed to read integration results after every source owner grants this revision. Empty means the common source owner only."},"connections":{"type":"array","maxItems":10,"uniqueItems":true,"items":{"type":"string"},"description":"Explicit connection public IDs; every selected account requires an owner grant for this exact revision."},"change_output":{"type":"object","additionalProperties":false,"required":["target_branch"],"properties":{"target_branch":{"type":"string","description":"Fixed target branch for propose_change. Requires repository context and the proposal execution release gate."}}},"signal_output":{"$ref":"#/components/schemas/AutomationSignalOutput"},"cooldown":{"$ref":"#/components/schemas/AutomationCooldown"},"context":{"$ref":"#/components/schemas/AutomationRepositoryContext"},"tools":{"type":"array","uniqueItems":true,"items":{"enum":["repository_list_files","repository_read_file","repository_compare_file","repository_changed_files","repository_file_diff","emit_signal","publish_output","propose_change","integration_catalog","integration_execute"]}},"max_tool_calls":{"type":"integer","minimum":1,"maximum":20},"skills":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/AutomationSkillReference"}},"prompt":{"type":"string","maxLength":16000},"model_provider":{"enum":["openai","azure-openai"]},"model":{"enum":["gpt-5.6-luna"]},"output_mode":{"enum":["text","json","none","artifacts"]},"input_schema":{"type":"object","additionalProperties":true},"output_schema":{"type":"object","additionalProperties":true},"condition":{"type":"object","additionalProperties":true},"trigger":{"type":"object","additionalProperties":true},"max_concurrent_runs":{"type":"integer","minimum":1,"maximum":10,"default":1,"description":"Active runs across this Automation, still subject to organization admission limits."},"max_automatic_attempts_per_hour":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Automatic attempts across this Automation in a rolling hour, including execution retries and uncertain starts."},"execution_retries":{"type":"integer","minimum":0,"maximum":2,"description":"Optional read-only execution retries (defaults to zero for agents; omitted for evaluations). Token budget is reserved across all possible attempts; every attempt retains the first execution deadline."},"max_tokens":{"type":"integer","minimum":1,"maximum":4096},"deadline_seconds":{"type":"integer","minimum":1,"maximum":300,"description":"Maximum 60 seconds for evaluation mode; 300 for agent mode."},"triggers":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"object","additionalProperties":true}}},"additionalProperties":false},"AutomationDefinition":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"configuration":{"$ref":"#/components/schemas/AutomationConfiguration"},"expected_revision":{"type":"integer"}},"required":["slug","name","configuration"]},"AutomationInvocationInput":{"type":"object","properties":{"input":{},"idempotency_key":{"type":"string","minLength":1,"maxLength":128},"revision":{"type":"integer","minimum":1}},"required":[]},"AutomationRecord":{"type":"object","properties":{"agent_action":{"type":"object","nullable":true,"properties":{"revision":{"type":"integer"},"prompt":{"type":"string"},"input_schema":{"type":"object","nullable":true,"additionalProperties":true},"output_mode":{"type":"string"},"output_schema":{"type":"object","nullable":true,"additionalProperties":true},"tools":{"type":"array","items":{"type":"string"}}}},"id":{"type":"string"},"organization_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"revision":{"type":"integer"},"status":{"enum":["draft","active","paused","archived"]},"configuration":{"$ref":"#/components/schemas/AutomationConfiguration"},"next_due_at":{"type":"string","nullable":true,"format":"date-time"},"active_revision_number":{"type":["integer","null"]},"triggers":{"type":"array","items":{"type":"object","additionalProperties":true}}},"required":["id","slug","name","status","revision","configuration"]},"AutomationUsageSummary":{"type":"object","description":"Consumption across execution attempts in this invocation. Known totals are partial when the metric is incomplete; a missing report never implies zero. Explicit retries are separate invocations.","required":["attempt_count","reporting_attempts","known_totals","incomplete_fields"],"properties":{"attempt_count":{"type":"integer","minimum":0},"reporting_attempts":{"type":"integer","minimum":0},"known_totals":{"type":"object","additionalProperties":{"type":"integer","minimum":0}},"incomplete_fields":{"type":"array","items":{"type":"string"}}}},"AutomationInvocationRecord":{"type":"object","properties":{"terminal":{"type":"boolean"},"artefacts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"artefact_id":{"type":"string"},"filename":{"type":"string"},"content_type":{"type":"string"},"byte_size":{"type":"integer"},"checksum_sha256":{"type":"string"},"expires_at":{"type":"string","format":"date-time"}}}},"content_expired_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"deadline_at":{"type":"string","format":"date-time"},"finished_at":{"type":"string","format":"date-time","nullable":true},"cooldown_until":{"type":"string","format":"date-time","nullable":true},"repository_context":{"type":"object","nullable":true,"description":"Immutable resolved repository context including head/base commit IDs.","additionalProperties":true},"skills":{"type":"array","description":"Frozen source coordinates and file digests, excluding content.","items":{"type":"object","additionalProperties":true}},"id":{"type":"string"},"automation_id":{"type":"string"},"roder_run_id":{"type":"string","nullable":true},"revision":{"type":"integer"},"status":{"enum":["pending","queued","running","dispatched","waiting_for_approval","succeeded","completed","failed","skipped","canceled"]},"reason":{"type":"string","nullable":true},"result":{"nullable":true},"usage":{"type":"object","nullable":true,"description":"Totals across all attempts. A metric is null if any attempt has not reported it; use usage_summary for known partial consumption.","additionalProperties":true},"usage_summary":{"$ref":"#/components/schemas/AutomationUsageSummary"},"matched_trigger_ids":{"type":["array","null"],"items":{"type":"string"}},"automatic":{"type":"boolean"},"automation_event_id":{"type":["string","null"]},"correlation_id":{"type":["string","null"]},"causal_chain":{"type":["array","null"],"items":{"type":"string"}},"retry_of_id":{"type":["string","null"]}},"required":["id","status","revision","usage_summary"]},"AutomationEventRecord":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"},"envelope":{"type":"object","additionalProperties":true},"correlation_id":{"type":"string"},"causal_chain":{"type":"array","items":{"type":"string"}},"created_at":{"type":"string","format":"date-time"}},"required":["id","kind","envelope","correlation_id","causal_chain","created_at"]},"AutomationEventDeliveryRecord":{"type":"object","properties":{"id":{"type":"string"},"automation_event_id":{"type":"string"},"automation_id":{"type":"string"},"status":{"type":"string"},"created_at":{"type":"string"},"next_attempt_at":{"type":"string"},"automation_invocation_id":{"type":["string","null"]},"revision":{"type":"integer"},"reason":{"type":["string","null"]},"matched_trigger_ids":{"type":"array","items":{"type":"string"}}},"required":["id","automation_event_id","automation_id","status","revision","matched_trigger_ids"]},"AutomationAttemptRecord":{"type":"object","properties":{"id":{"type":"string"},"roder_run_id":{"type":"string"},"number":{"type":"integer"},"state":{"type":"string"},"dispatch_count":{"type":"integer"},"last_error":{"type":["string","null"]},"usage":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"next_attempt_at":{"type":"string","format":"date-time"},"run_status":{"type":"string"},"failure_code":{"type":["string","null"]}},"required":["id","roder_run_id","number","state","dispatch_count"]},"BillingLimitExceededError":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","reason","meter_key","dimension_value","limit","requested","upgrade_path","message"],"properties":{"code":{"type":"string","enum":["billing_limit_exceeded"]},"reason":{"type":"string","enum":["hard_cap","allowance_exhausted","budget_exhausted","suspended","seat_limit"]},"meter_key":{"type":"string","description":"A billing meter key","or `seats` for the seat limit":null},"dimension_value":{"type":["string","null"]},"limit":{"oneOf":[{"type":"number"},{"type":"string"}],"description":"Decimal quantities are serialized as strings"},"requested":{"oneOf":[{"type":"number"},{"type":"string"}]},"upgrade_path":{"type":"string","description":"Frontend path of the organization's billing page"},"message":{"type":"string"}}}}},"BillingHostedSession":{"type":"object","required":["url"],"properties":{"url":{"type":"string"}}},"BillingPage":{"type":"object","required":["organization_id","customer","subscription","package","entitlements","addons","budget","preview","breakdown","stripe","feature_enabled"],"properties":{"organization_id":{"type":"string"},"customer":{"oneOf":[{"$ref":"#/components/schemas/BillingCustomer"},{"type":"null"}]},"subscription":{"oneOf":[{"$ref":"#/components/schemas/BillingSubscription"},{"type":"null"}]},"package":{"oneOf":[{"$ref":"#/components/schemas/BillingPackage"},{"type":"null"}]},"entitlements":{"$ref":"#/components/schemas/BillingEntitlements"},"addons":{"type":"array","items":{"$ref":"#/components/schemas/BillingSubscriptionAddon"}},"budget":{"oneOf":[{"$ref":"#/components/schemas/BillingBudget"},{"type":"null"}]},"preview":{"description":"Metronome draft invoice and credits, or null.","oneOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"breakdown":{"description":"The 24-hour live series with its provenance; null only when the rollup fallback itself failed.","oneOf":[{"$ref":"#/components/schemas/BillingUsageBreakdownSummary"},{"type":"null"}]},"stripe":{"type":"object","required":["configured"],"properties":{"configured":{"type":"boolean"}}},"feature_enabled":{"description":"Whether the `billing` feature is on for this organization. False renders the page as not enabled, with no Subscribe action.","type":"boolean"}}},"BillingInvoicesPage":{"type":"object","required":["organization_id","upcoming","invoices"],"properties":{"organization_id":{"type":"string"},"upcoming":{"oneOf":[{"$ref":"#/components/schemas/BillingUpcomingInvoice"},{"type":"null"}]},"invoices":{"type":"array","items":{"$ref":"#/components/schemas/BillingInvoice"}}}},"BillingUpcomingInvoice":{"type":"object","required":["total_cents","currency","credit_balance_cents","metronome_invoice_ids"],"properties":{"total_cents":{"type":"integer","description":"The Metronome draft total","USD cents.":null},"currency":{"type":"string"},"period_started_at":{"type":["string","null"]},"period_ended_at":{"type":["string","null"]},"credit_balance_cents":{"type":"integer","description":"Remaining credit that offsets the draft."},"metronome_invoice_ids":{"type":"array","items":{"type":"string"}}}},"BillingInvoice":{"type":"object","required":["id","status","currency","total_cents","amount_due_cents","created_at"],"properties":{"id":{"type":"string"},"number":{"type":["string","null"]},"status":{"type":"string","enum":["draft","open","paid","uncollectible","void"]},"currency":{"type":"string"},"total_cents":{"type":"integer"},"amount_due_cents":{"type":"integer"},"period_started_at":{"type":["string","null"]},"period_ended_at":{"type":["string","null"]},"created_at":{"type":"string"},"hosted_invoice_url":{"type":["string","null"]},"invoice_pdf":{"type":["string","null"]},"metronome_invoice_id":{"type":["string","null"],"description":"Metronome's id for the invoice it pushed","from the invoice metadata.":null}}},"BillingCustomer":{"type":"object","required":["billing_email","tax_status","has_stripe_customer","has_metronome_customer","delinquent"],"properties":{"billing_email":{"type":["string","null"]},"tax_status":{"type":"string","enum":["manual","automatic"]},"has_stripe_customer":{"type":"boolean"},"has_metronome_customer":{"type":"boolean"},"delinquent":{"type":"boolean"},"delinquent_since":{"type":["string","null"]}}},"BillingSubscription":{"type":"object","required":["id","status","seat_quantity","package_key","cancel_at_period_end","has_metronome_contract"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["trialing","active","past_due","unpaid","canceled","incomplete"]},"seat_quantity":{"type":"integer"},"package_key":{"type":"string"},"cancel_at_period_end":{"type":"boolean"},"has_metronome_contract":{"type":"boolean"},"current_period_started_at":{"type":["string","null"]},"current_period_ended_at":{"type":["string","null"]},"trial_ends_at":{"type":["string","null"]},"cancel_at":{"type":["string","null"]},"canceled_at":{"type":["string","null"]}}},"BillingPackage":{"type":"object","required":["key","name","visibility","revision","seat_price_cents","currency","billing_interval","trial_days","pay_as_you_go_enabled","rates","addons"],"properties":{"key":{"type":"string"},"name":{"type":"string"},"visibility":{"type":"string","enum":["public","custom"]},"revision":{"type":"integer"},"seat_price_cents":{"type":"integer"},"currency":{"type":"string"},"billing_interval":{"type":"string","enum":["month","year"]},"trial_days":{"type":"integer"},"max_seats":{"type":["integer","null"]},"pay_as_you_go_enabled":{"type":"boolean"},"roder_daily_run_limit":{"type":"integer"},"roder_run_concurrency_limit":{"type":"integer"},"rates":{"type":"array","items":{"$ref":"#/components/schemas/BillingPackageRate"}},"addons":{"type":"array","items":{"$ref":"#/components/schemas/BillingAddon"}}}},"BillingPackageRate":{"type":"object","required":["meter_key","unit","unit_price_nanodollars","unit_price_dollars","included_per_organization","included_per_seat"],"properties":{"meter_key":{"type":"string"},"dimension_value":{"type":["string","null"]},"unit":{"type":"string"},"unit_price_nanodollars":{"type":"integer"},"unit_price_dollars":{"type":"string","description":"Decimal string","lossless.":null},"included_per_organization":{"type":"number"},"included_per_seat":{"type":"number"},"hard_cap":{"type":["number","null"]}}},"BillingAddon":{"type":"object","required":["addon_key","name","monthly_price_cents","raises_meter_key","raises_quantity"],"properties":{"addon_key":{"type":"string"},"name":{"type":"string"},"monthly_price_cents":{"type":"integer"},"raises_meter_key":{"type":"string"},"raises_quantity":{"type":"number"},"max_quantity":{"type":["integer","null"]}}},"BillingSubscriptionAddon":{"type":"object","required":["addon_key","quantity"],"properties":{"addon_key":{"type":"string"},"quantity":{"type":"integer"},"name":{"type":["string","null"]},"monthly_price_cents":{"type":["integer","null"]}}},"BillingBudget":{"type":"object","required":["monthly_cap_cents","notified_thresholds"],"properties":{"monthly_cap_cents":{"type":"integer"},"notified_thresholds":{"type":"array","items":{"type":"integer"}}}},"BillingEntitlementMeter":{"type":"object","required":["meter_key","unit","included","used","remaining","pay_as_you_go","unit_price_nanodollars","spend_cents"],"properties":{"meter_key":{"type":"string"},"dimension_value":{"type":["string","null"]},"unit":{"type":"string"},"included":{"type":"number"},"used":{"type":"number"},"remaining":{"type":"number"},"spend_cents":{"type":"integer","description":"What this period's overage costs so far at the unit price. The standard CI runner classes split their shared pool's overage by each class's own minutes."},"hard_cap":{"type":["number","null"]},"cap":{"type":["number","null"],"description":"The quantity past which new usage is refused; null means unlimited."},"pay_as_you_go":{"type":"boolean"},"unit_price_nanodollars":{"type":"integer"}}},"BillingEntitlements":{"type":"object","required":["state","seats","enforcing","period_started_at","period_spend_cents","meters"],"properties":{"state":{"type":"string","enum":["none","trialing","active","past_due","suspended","exempt"]},"seats":{"type":"integer"},"seat_limit":{"type":["integer","null"]},"seats_remaining":{"type":["integer","null"]},"period_spend_cents":{"type":"integer","description":"Overage spend so far this period across every meter","in cents; the seat charge is not included.":null},"enforcing":{"type":"boolean"},"period_started_at":{"type":"string"},"meters":{"type":"array","items":{"$ref":"#/components/schemas/BillingEntitlementMeter"}}}},"BillingUsage":{"type":"object","required":["period_started_at","state","seats","meters"],"properties":{"period_started_at":{"type":"string"},"state":{"type":"string"},"seats":{"type":"integer"},"meters":{"type":"array","items":{"$ref":"#/components/schemas/BillingEntitlementMeter"}}}},"BillingUsageSeriesPoint":{"type":"object","required":["meter_key","dimension_value","unit","quantity"],"properties":{"meter_key":{"type":"string"},"dimension_value":{"type":"string","description":"Empty for meters without a dimension."},"unit":{"type":"string"},"quantity":{"type":"number"}}},"BillingUsageLiveBucket":{"allOf":[{"$ref":"#/components/schemas/BillingUsageSeriesPoint"},{"type":"object","required":["bucket_started_at"],"properties":{"bucket_started_at":{"type":"string","description":"Start of the 5-minute bucket","UTC.":null}}}]},"BillingUsageHourBucket":{"allOf":[{"$ref":"#/components/schemas/BillingUsageSeriesPoint"},{"type":"object","required":["hour_started_at"],"properties":{"hour_started_at":{"type":"string"}}}]},"BillingUsageSubject":{"type":"object","required":["subject_type","subject_id","dimension_value","unit","quantity","reading_count"],"properties":{"subject_type":{"type":"string"},"subject_id":{"type":["integer","null"]},"dimension_value":{"type":"string"},"unit":{"type":"string"},"quantity":{"type":"number"},"reading_count":{"type":"integer"}}},"BillingUsageBreakdownSummary":{"type":"object","required":["source","as_of","live"],"properties":{"source":{"type":"string","enum":["tinybird","rollup"]},"as_of":{"type":"string"},"live":{"type":"array","items":{"$ref":"#/components/schemas/BillingUsageLiveBucket"}}}},"BillingUsageBreakdown":{"type":"object","required":["source","as_of","window","meter_key","window_started_at","window_ended_at","live","by_meter","totals","subjects"],"properties":{"source":{"type":"string","enum":["tinybird","rollup"]},"as_of":{"type":"string"},"window":{"type":"string","enum":["24h","7d","period"]},"meter_key":{"type":["string","null"]},"window_started_at":{"type":"string"},"window_ended_at":{"type":"string"},"live":{"type":"array","items":{"$ref":"#/components/schemas/BillingUsageLiveBucket"}},"by_meter":{"type":"array","items":{"$ref":"#/components/schemas/BillingUsageHourBucket"}},"totals":{"type":"array","items":{"$ref":"#/components/schemas/BillingUsageSeriesPoint"}},"subjects":{"type":"array","description":"Empty when no meter was given or the source is `rollup`.","items":{"$ref":"#/components/schemas/BillingUsageSubject"}}}},"BookmarkProtectionEvent":{"type":"object","required":["id","bookmark_protection_rule_id","organization_id","repository_id","actor_user_id","bookmark_name","action","old_target","new_target","actor_kind","actor_label","intent","decision","source_request_id","created_at","updated_at","created_at_label","updated_at_label","reason_codes","metadata"],"properties":{"id":{"type":"string"},"bookmark_protection_rule_id":{"type":"string","nullable":true},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"actor_user_id":{"type":"string","nullable":true},"bookmark_name":{"type":"string"},"action":{"type":"string"},"old_target":{"type":"string","nullable":true},"new_target":{"type":"string","nullable":true},"actor_kind":{"type":"string","enum":["user","vex_automation","system","github_app","service"]},"actor_label":{"type":"string","nullable":true},"intent":{"type":"string","nullable":true},"decision":{"type":"string","enum":["allowed","denied","bypassed","simulated"]},"source_request_id":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true},"reason_codes":{"type":"array","items":{"type":"string"}},"metadata":{"type":"object","additionalProperties":true}}},"BookmarkProtectionRule":{"type":"object","required":["id","organization_id","repository_id","created_by_user_id","updated_by_user_id","name","enabled","priority","target_kind","target_pattern","bypass_mode","created_at","updated_at","requirements","actor_policy"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"created_by_user_id":{"type":"string","nullable":true},"updated_by_user_id":{"type":"string","nullable":true},"name":{"type":"string"},"enabled":{"type":"boolean"},"priority":{"type":"integer"},"target_kind":{"type":"string","enum":["exact","pattern","default_branch"]},"target_pattern":{"type":"string","nullable":true},"bypass_mode":{"type":"string","enum":["admins","none"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"requirements":{"type":"object","additionalProperties":true,"properties":{"ci":{"$ref":"#/components/schemas/BookmarkProtectionCiRequirements"}}},"actor_policy":{"type":"object","additionalProperties":true}}},"BookmarkProtectionRequiredCheck":{"type":"object","required":["name","source"],"properties":{"name":{"type":"string"},"source":{"type":"string","enum":["vex","github","any"]},"app_id":{"type":"integer","nullable":true}}},"BookmarkProtectionCiRequirements":{"type":"object","required":["mode","require_all","required_checks"],"properties":{"mode":{"type":"string","enum":["none","explicit","follow_github"]},"require_all":{"type":"boolean"},"required_checks":{"type":"array","items":{"oneOf":[{"type":"string"},{"$ref":"#/components/schemas/BookmarkProtectionRequiredCheck"}]}}}},"RequiredCheckCandidate":{"type":"object","required":["name","source"],"properties":{"name":{"type":"string"},"source":{"type":"string","enum":["vex","github","any"]},"app_id":{"type":"integer","nullable":true},"last_observed_at":{"type":"string","format":"date-time","nullable":true}}},"GithubRequiredCheckSnapshot":{"type":"object","required":["github_branch","requirements","exclusions","proven","stale"],"properties":{"github_owner":{"type":"string","nullable":true},"github_repository_name":{"type":"string","nullable":true},"github_branch":{"type":"string"},"requirements":{"type":"array","items":{"$ref":"#/components/schemas/BookmarkProtectionRequiredCheck"}},"exclusions":{"type":"array","items":{"type":"object","additionalProperties":true}},"fetched_at":{"type":"string","format":"date-time","nullable":true},"fetched_at_label":{"type":"string","nullable":true},"proven":{"type":"boolean"},"stale":{"type":"boolean"},"last_error":{"type":"string","nullable":true}}},"CiPipeline":{"type":"object","required":["id","organization_id","repository_id","hosted_app_id","ci_runner_pool_id","required_capabilities_csv","slug","name","description","source_kind","status","default_branch","workflow_path","trigger_on_push","trigger_on_pull_request","trigger_on_schedule","concurrency_key","created_at","updated_at","status_label","status_state","status_tone"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string","nullable":true},"hosted_app_id":{"type":"string","nullable":true},"ci_runner_pool_id":{"type":"string","nullable":true},"required_capabilities_csv":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"source_kind":{"type":"string"},"status":{"type":"string"},"default_branch":{"type":"string","nullable":true},"workflow_path":{"type":"string","nullable":true},"trigger_on_push":{"type":"boolean"},"trigger_on_pull_request":{"type":"boolean"},"trigger_on_schedule":{"type":"boolean"},"concurrency_key":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]}}},"CiPipelineRun":{"type":"object","required":["id","organization_id","repository_id","hosted_app_id","ci_pipeline_id","ci_runner_pool_id","creator_user_id","required_capabilities_csv","number","display_id","slug","status","trigger_kind","ref_name","commit_sha","source_url","message","concurrency_key","retry_number","queued_at","started_at","finished_at","canceled_at","parameters_json","created_at","updated_at","status_label","status_state","status_tone","active","failed","retryable"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string","nullable":true},"hosted_app_id":{"type":"string","nullable":true},"ci_pipeline_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"creator_user_id":{"type":"string","nullable":true},"required_capabilities_csv":{"type":"string","nullable":true},"number":{"type":"integer"},"display_id":{"type":"integer"},"slug":{"type":"string"},"status":{"type":"string"},"trigger_kind":{"type":"string"},"ref_name":{"type":"string","nullable":true},"commit_sha":{"type":"string","nullable":true},"source_url":{"type":"string","nullable":true},"message":{"type":"string","nullable":true},"concurrency_key":{"type":"string","nullable":true},"retry_number":{"type":"integer"},"queued_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"canceled_at":{"type":"string","format":"date-time","nullable":true},"parameters_json":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"},"retryable":{"type":"boolean"}}},"CiJob":{"type":"object","required":["id","organization_id","ci_pipeline_run_id","ci_runner_id","number","display_id","slug","name","kind","status","execution_order","runner_label_selector","timeout_seconds","allow_failure","queued_at","started_at","finished_at","exit_code","retry_number","environment_csv","dependencies_csv","created_at","updated_at","status_label","status_state","status_tone","active","failed"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_pipeline_run_id":{"type":"string"},"ci_runner_id":{"type":"string","nullable":true},"number":{"type":"integer"},"display_id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"execution_order":{"type":"integer"},"runner_label_selector":{"type":"string","nullable":true},"timeout_seconds":{"type":"integer","nullable":true},"allow_failure":{"type":"boolean"},"queued_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"exit_code":{"type":"integer","nullable":true},"retry_number":{"type":"integer"},"environment_csv":{"type":"string","nullable":true},"dependencies_csv":{"type":"string","nullable":true},"cache_archive_observations":{"type":"object","nullable":true,"description":"Bounded server response history; it does not confirm runner extraction or test-result reuse.","required":["events","omitted_count"],"properties":{"omitted_count":{"type":"integer","minimum":0},"events":{"type":"array","maxItems":32,"items":{"type":"object","required":["outcome","label","observed_at","response_bytes","elapsed_ms","attempt"],"properties":{"outcome":{"type":"string","enum":["miss","archive_missing","exact_response","prefix_response","published_exact_response","published_prefix_response","error"]},"label":{"type":"string"},"observed_at":{"type":"string","format":"date-time"},"response_bytes":{"type":"integer","minimum":0},"elapsed_ms":{"type":"number","minimum":0},"attempt":{"type":"integer","minimum":1},"native_publication_id":{"type":"string"},"cache_entry_id":{"type":"string"},"source_run_id":{"type":"string"},"source_commit_id":{"type":"string","nullable":true},"source_url":{"type":"string"}}}}}},"reuse":{"type":"object","nullable":true,"required":["source_job_id","source_run_id","source_url"],"properties":{"source_job_id":{"type":"string"},"source_run_id":{"type":"string"},"source_url":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"}}},"CiJobCatalog":{"allOf":[{"type":"object","required":["id","organization_id","ci_pipeline_run_id","ci_runner_id","number","display_id","slug","name","kind","status","execution_order","runner_label_selector","timeout_seconds","allow_failure","queued_at","started_at","finished_at","exit_code","retry_number","environment_csv","dependencies_csv","created_at","updated_at","status_label","status_state","status_tone","active","failed"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_pipeline_run_id":{"type":"string"},"ci_runner_id":{"type":"string","nullable":true},"number":{"type":"integer"},"display_id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"execution_order":{"type":"integer"},"runner_label_selector":{"type":"string","nullable":true},"timeout_seconds":{"type":"integer","nullable":true},"allow_failure":{"type":"boolean"},"queued_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"exit_code":{"type":"integer","nullable":true},"retry_number":{"type":"integer"},"environment_csv":{"type":"string","nullable":true},"dependencies_csv":{"type":"string","nullable":true},"cache_archive_observations":{"type":"object","nullable":true,"description":"Bounded server response history; it does not confirm runner extraction or test-result reuse.","required":["events","omitted_count"],"properties":{"omitted_count":{"type":"integer","minimum":0},"events":{"type":"array","maxItems":32,"items":{"type":"object","required":["outcome","label","observed_at","response_bytes","elapsed_ms","attempt"],"properties":{"outcome":{"type":"string","enum":["miss","archive_missing","exact_response","prefix_response","published_exact_response","published_prefix_response","error"]},"label":{"type":"string"},"observed_at":{"type":"string","format":"date-time"},"response_bytes":{"type":"integer","minimum":0},"elapsed_ms":{"type":"number","minimum":0},"attempt":{"type":"integer","minimum":1},"native_publication_id":{"type":"string"},"cache_entry_id":{"type":"string"},"source_run_id":{"type":"string"},"source_commit_id":{"type":"string","nullable":true},"source_url":{"type":"string"}}}}}},"reuse":{"type":"object","nullable":true,"required":["source_job_id","source_run_id","source_url"],"properties":{"source_job_id":{"type":"string"},"source_run_id":{"type":"string"},"source_url":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"}}},{"type":"object","required":["steps","log_chunks"],"properties":{"reconciliation_id":{"type":"string","nullable":true},"execution_profile":{"type":"string","enum":["automation-offline-v1","reconciliation-offline-v1"],"nullable":true},"steps":{"type":"array","items":{"type":"object","required":["id","organization_id","ci_job_id","slug","name","command","shell","working_directory","status","execution_order","retry_number","exit_code","started_at","finished_at","created_at","updated_at","status_label","status_state","status_tone","active","failed","secret_refs"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_job_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"command":{"type":"string"},"shell":{"type":"string","nullable":true},"working_directory":{"type":"string","nullable":true},"status":{"type":"string"},"execution_order":{"type":"integer"},"retry_number":{"type":"integer"},"exit_code":{"type":"integer","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"observed_started_at":{"type":"string","format":"date-time","nullable":true,"readOnly":true,"description":"When the API first accepted a running update. Independent of the runner clock; absent or null for older and unobserved steps."},"observed_finished_at":{"type":"string","format":"date-time","nullable":true,"readOnly":true,"description":"When the API first accepted a terminal update. Includes transport effects; not a runner-local command duration."},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"},"secret_refs":{"type":"object","additionalProperties":{"type":"string"}},"cache_request":{"type":"object","nullable":true,"required":["key","restore_keys","paths","output_id"],"properties":{"key":{"type":"string"},"restore_keys":{"type":"array","items":{"type":"string"}},"paths":{"type":"array","items":{"type":"string"}},"output_id":{"type":"string"}}}}}},"log_chunks":{"type":"array","maxItems":25,"items":{"type":"object","required":["id","organization_id","ci_pipeline_run_id","ci_job_id","ci_step_id","sequence_number","stream","content_format","content","byte_size","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_pipeline_run_id":{"type":"string","nullable":true},"ci_job_id":{"type":"string","nullable":true},"ci_step_id":{"type":"string","nullable":true},"sequence_number":{"type":"integer"},"stream":{"type":"string"},"content_format":{"type":"string"},"content":{"type":"string"},"byte_size":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}]},"CiRunnerPool":{"type":"object","required":["id","organization_id","network_space_id","slug","name","status","runner_kind","isolation_mode","description","max_concurrency","labels_csv","node_capabilities_csv","elastic_provider_kind","elastic_config_json","bazel_enabled","bazel_properties_json","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"network_space_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"runner_kind":{"type":"string"},"isolation_mode":{"type":"string"},"description":{"type":"string","nullable":true},"max_concurrency":{"type":"integer"},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"elastic_provider_kind":{"type":"string","nullable":true},"elastic_config_json":{"type":"string","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"CiRunnerPoolCatalog":{"allOf":[{"type":"object","required":["id","organization_id","network_space_id","slug","name","status","runner_kind","isolation_mode","description","max_concurrency","labels_csv","node_capabilities_csv","elastic_provider_kind","elastic_config_json","bazel_enabled","bazel_properties_json","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"network_space_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"runner_kind":{"type":"string"},"isolation_mode":{"type":"string"},"description":{"type":"string","nullable":true},"max_concurrency":{"type":"integer"},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"elastic_provider_kind":{"type":"string","nullable":true},"elastic_config_json":{"type":"string","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},{"type":"object","required":["runners","runner_count_label","modal_capacity","modal_runner_invocations"],"properties":{"runners":{"type":"array","items":{"type":"object","required":["id","organization_id","ci_runner_pool_id","network_peer_id","slug","name","status","kind","os","architecture","version","labels_csv","node_capabilities_csv","node_certificate_fingerprint_sha256","node_certificate_serial","node_certificate_expires_at","bazel_enabled","bazel_properties_json","last_seen_at","online_at","offline_at","cordoned_at","revoked_at","health_state","schedulable","heartbeat_age_seconds","created_at","updated_at","node_certificate_expires_at_label","last_seen_at_label","online_at_label","offline_at_label","cordoned_at_label","revoked_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"network_peer_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"kind":{"type":"string"},"os":{"type":"string","nullable":true},"architecture":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"node_certificate_fingerprint_sha256":{"type":"string","nullable":true},"node_certificate_serial":{"type":"string","nullable":true},"node_certificate_expires_at":{"type":"string","format":"date-time","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"last_seen_at":{"type":"string","format":"date-time","nullable":true},"online_at":{"type":"string","format":"date-time","nullable":true},"offline_at":{"type":"string","format":"date-time","nullable":true},"cordoned_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"health_state":{"type":"string"},"schedulable":{"type":"boolean"},"heartbeat_age_seconds":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"node_certificate_expires_at_label":{"type":"string","nullable":true},"last_seen_at_label":{"type":"string","nullable":true},"online_at_label":{"type":"string","nullable":true},"offline_at_label":{"type":"string","nullable":true},"cordoned_at_label":{"type":"string","nullable":true},"revoked_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}},"runner_count_label":{"type":"string"},"modal_capacity":{"type":"object","required":["queued_jobs","active_or_pending_leases","inflight_modal_invocations","failed_modal_invocations","deficit"],"properties":{"queued_jobs":{"type":"integer"},"active_or_pending_leases":{"type":"integer"},"inflight_modal_invocations":{"type":"integer"},"failed_modal_invocations":{"type":"integer"},"deficit":{"type":"integer"}}},"modal_runner_invocations":{"type":"array","maxItems":50,"items":{"type":"object","required":["id","organization_id","ci_runner_pool_id","ci_runner_id","ci_runner_lease_id","ci_pipeline_run_id","ci_job_id","status","modal_app_name","modal_function_name","modal_environment_name","modal_call_id","modal_sandbox_id","runtime_kind","image_version","failure_kind","runner_slug","resource_class","cpu_millicores","memory_mb","ephemeral_disk_mb","retry_count","last_error","spawned_at","claimed_at","finished_at","created_at","updated_at","spawned_at_label","claimed_at_label","finished_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"ci_runner_id":{"type":"string","nullable":true},"ci_runner_lease_id":{"type":"string","nullable":true},"ci_pipeline_run_id":{"type":"string","nullable":true},"ci_job_id":{"type":"string","nullable":true},"status":{"type":"string"},"modal_app_name":{"type":"string"},"modal_function_name":{"type":"string"},"modal_environment_name":{"type":"string","nullable":true},"modal_call_id":{"type":"string","nullable":true},"modal_sandbox_id":{"type":"string","nullable":true},"runtime_kind":{"type":"string","enum":["modal_function","modal_vm_sandbox"]},"image_version":{"type":"string"},"failure_kind":{"type":"string","enum":["provider","bootstrap","job","transport"],"nullable":true},"runner_slug":{"type":"string"},"resource_class":{"type":"string"},"cpu_millicores":{"type":"integer"},"memory_mb":{"type":"integer"},"ephemeral_disk_mb":{"type":"integer"},"retry_count":{"type":"integer"},"last_error":{"type":"string","nullable":true},"spawned_at":{"type":"string","format":"date-time","nullable":true},"claimed_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"spawned_at_label":{"type":"string","nullable":true},"claimed_at_label":{"type":"string","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}]},"CiRunner":{"type":"object","required":["id","organization_id","ci_runner_pool_id","network_peer_id","slug","name","status","kind","os","architecture","version","labels_csv","node_capabilities_csv","node_certificate_fingerprint_sha256","node_certificate_serial","node_certificate_expires_at","bazel_enabled","bazel_properties_json","last_seen_at","online_at","offline_at","cordoned_at","revoked_at","health_state","schedulable","heartbeat_age_seconds","created_at","updated_at","node_certificate_expires_at_label","last_seen_at_label","online_at_label","offline_at_label","cordoned_at_label","revoked_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"network_peer_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"kind":{"type":"string"},"os":{"type":"string","nullable":true},"architecture":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"node_certificate_fingerprint_sha256":{"type":"string","nullable":true},"node_certificate_serial":{"type":"string","nullable":true},"node_certificate_expires_at":{"type":"string","format":"date-time","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"last_seen_at":{"type":"string","format":"date-time","nullable":true},"online_at":{"type":"string","format":"date-time","nullable":true},"offline_at":{"type":"string","format":"date-time","nullable":true},"cordoned_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"health_state":{"type":"string"},"schedulable":{"type":"boolean"},"heartbeat_age_seconds":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"node_certificate_expires_at_label":{"type":"string","nullable":true},"last_seen_at_label":{"type":"string","nullable":true},"online_at_label":{"type":"string","nullable":true},"offline_at_label":{"type":"string","nullable":true},"cordoned_at_label":{"type":"string","nullable":true},"revoked_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"CiNodeEnrollmentToken":{"type":"object","required":["id","organization_id","ci_runner_pool_id","creator_user_id","name","description","status","kind","capabilities_csv","token_hint","usage_count","expires_at","last_used_at","revoked_at","raw_token","created_at","updated_at","expires_at_label","last_used_at_label","created_at_label","updated_at_label","usage_count_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"name":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string"},"kind":{"type":"string"},"capabilities_csv":{"type":"string","nullable":true},"token_hint":{"type":"string"},"usage_count":{"type":"integer"},"expires_at":{"type":"string","format":"date-time","nullable":true},"last_used_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"raw_token":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"expires_at_label":{"type":"string","nullable":true},"last_used_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true},"usage_count_label":{"type":"string"}}},"ContactSubmissionRequest":{"type":"object","required":["name","email","message"],"additionalProperties":false,"properties":{"name":{"type":"string","maxLength":255},"email":{"type":"string","maxLength":255,"description":"Stored downcased and stripped."},"company":{"type":"string","maxLength":255,"nullable":true},"message":{"type":"string","maxLength":5000},"website":{"type":"string","nullable":true,"description":"Honeypot. Render it hidden and leave it empty; any value discards the submission."}}},"ContactSubmissionCreated":{"type":"object","required":["id","created_at"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Public id (`contact_submission_…`)."},"created_at":{"type":"string","description":"ISO8601 timestamp."}}},"HostingLocation":{"type":"object","required":["id","code","name","nomad_datacenter","created_at","updated_at"],"properties":{"id":{"type":"string"},"code":{"type":"string"},"name":{"type":"string"},"nomad_datacenter":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"AppEnvironment":{"type":"object","required":["id","hosted_app_id","location_id","slug","name","kind","status","location","branch_pattern","base_domain","auto_deploy","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"location_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["production","staging","development","preview","ephemeral","custom"]},"status":{"type":"string","enum":["active","paused","archived"]},"location":{"oneOf":[{"$ref":"#/components/schemas/HostingLocation"},{"type":"null"}]},"branch_pattern":{"type":"string","nullable":true},"base_domain":{"type":"string","nullable":true},"auto_deploy":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"AppEnvironmentUpdatePayload":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["production","staging","development","preview","ephemeral","custom"]},"status":{"type":"string","enum":["active","paused","archived"]},"location_id":{"type":"string"},"branch_pattern":{"type":"string","nullable":true},"base_domain":{"type":"string","nullable":true},"auto_deploy":{"type":"boolean"}}},"AppEnvironmentCreatePayload":{"type":"object","required":["slug","name","kind","status","location_id","auto_deploy"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["production","staging","development","preview","ephemeral","custom"]},"status":{"type":"string","enum":["active","paused","archived"]},"location_id":{"type":"string"},"branch_pattern":{"type":"string"},"base_domain":{"type":"string"},"auto_deploy":{"type":"boolean"}}},"AppServiceUpdatePayload":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["web","worker","cron","static","private"]},"runtime":{"type":"string","enum":["docker","node","ruby","python","go","rust","static","generic"]},"runtime_adapter_kind":{"type":"string","enum":["nomad","database"]},"runtime_adapter_settings_json":{"type":"string","nullable":true},"nomad_namespace":{"type":"string","nullable":true},"nomad_region":{"type":"string","nullable":true},"cpu_mhz":{"type":"integer","minimum":0,"nullable":true},"memory_mb":{"type":"integer","minimum":0,"nullable":true},"memory_max_mb":{"type":"integer","minimum":1,"nullable":true,"description":"Hard memory limit in MB the task may burst to (Nomad MemoryMaxMB). Must be >= memory_mb, which stays the scheduler reservation. Memory above the reservation is oversubscribed and best effort. Null clears the override."},"disk_mb":{"type":"integer","minimum":0,"nullable":true},"nomad_constraints_json":{"type":"string","nullable":true},"nomad_update_strategy_json":{"type":"string","nullable":true},"nomad_ulimits_json":{"type":"string","nullable":true,"description":"Docker task ulimits as a JSON object of rlimit name to \"soft:hard\" (e.g. {\"nofile\":\"65536:65536\"}). Null/absent leaves the container on the daemon default."},"nomad_kill_timeout_seconds":{"type":"integer","minimum":1,"maximum":30,"nullable":true,"description":"Seconds the task gets after SIGTERM before SIGKILL. Null clears the override and leaves Nomad's 5s default. Capped at 30 because a Nomad client silently clamps kill_timeout to its own max_kill_timeout (default 30s)."},"nomad_shutdown_delay_seconds":{"type":"integer","minimum":0,"maximum":120,"nullable":true,"description":"Seconds Nomad waits between deregistering the group's services and sending SIGTERM, so the edge stops routing new requests to the allocation before it is signalled. Null clears the override."},"source_path":{"type":"string"},"build_command":{"type":"string","nullable":true},"release_command":{"type":"string","nullable":true},"prestart_command":{"type":"string","nullable":true},"start_command":{"type":"string","nullable":true},"healthcheck_path":{"type":"string","nullable":true},"schedule":{"type":"string","nullable":true},"internal_port":{"type":"integer","minimum":1,"maximum":65535,"nullable":true},"desired_instances":{"type":"integer","minimum":0},"publicly_accessible":{"type":"boolean"},"auto_deploy":{"type":"boolean"},"deploy_paths":{"type":"array","description":"Repo-root-relative path prefixes/globs a push must touch for the service to auto-deploy. Empty array clears the override (default to app root_path).","items":{"type":"string"}}}},"AppDeployment":{"type":"object","required":["id","hosted_app_id","organization_id","app_service_id","app_environment_id","location_id","creator_user_id","number","display_id","status","location","source_ref","commit_sha","artifact_locator","deployed_url","trigger_kind","operation_key","build_role","is_rollback","rollback_source_release_id","rollback_target_release_id","rollback_source_deployment_id","rollback_reason","idempotency_key","failure_message","started_at","finished_at","created_at","updated_at","started_at_label","finished_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"organization_id":{"type":"string"},"app_service_id":{"type":"string"},"app_environment_id":{"type":"string"},"location_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"number":{"type":"integer","minimum":1},"display_id":{"type":"integer","minimum":1},"status":{"type":"string","enum":["queued","building","deploying","active","failed","rolled_back","canceled"]},"location":{"oneOf":[{"$ref":"#/components/schemas/HostingLocation"},{"type":"null"}]},"source_ref":{"type":"string","nullable":true},"commit_sha":{"type":"string","nullable":true},"artifact_locator":{"type":"string","nullable":true},"deployed_url":{"type":"string","nullable":true},"trigger_kind":{"type":"string","enum":["manual","push","schedule","api","rollback"]},"operation_key":{"type":"string","nullable":true},"build_role":{"type":"string","enum":["leader","follower","standalone"],"nullable":true},"is_rollback":{"type":"boolean"},"rollback_source_release_id":{"type":"string","nullable":true},"rollback_target_release_id":{"type":"string","nullable":true},"rollback_source_deployment_id":{"type":"string","nullable":true},"rollback_reason":{"type":"string","nullable":true},"idempotency_key":{"type":"string","nullable":true},"failure_message":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"started_at_label":{"type":"string","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"AppServicePlacement":{"type":"object","required":["id","organization_id","hosted_app_id","app_service_id","app_environment_id","mode","rollout_strategy","replicas_per_region","region_count","total_replicas","targets","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"hosted_app_id":{"type":"string"},"app_service_id":{"type":"string"},"app_environment_id":{"type":"string"},"mode":{"type":"string","enum":["single_region","multi_region"]},"rollout_strategy":{"type":"string","enum":["health_gated","burst"]},"replicas_per_region":{"type":"integer","minimum":0},"region_count":{"type":"integer","minimum":0},"total_replicas":{"type":"integer","minimum":0},"targets":{"type":"array","items":{"type":"object","required":["id","location_id","location","position","enabled"],"properties":{"id":{"type":"string"},"location_id":{"type":"string"},"location":{"$ref":"#/components/schemas/HostingLocation"},"position":{"type":"integer","minimum":0},"enabled":{"type":"boolean"}}}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"AppServicePlacementPayload":{"type":"object","required":["app_service_id","app_environment_id","mode","rollout_strategy","replicas_per_region","targets"],"properties":{"app_service_id":{"type":"string"},"app_environment_id":{"type":"string"},"mode":{"type":"string","enum":["single_region","multi_region"]},"rollout_strategy":{"type":"string","enum":["health_gated","burst"]},"replicas_per_region":{"type":"integer","minimum":0},"targets":{"type":"array","items":{"type":"object","required":["location_id"],"properties":{"location_id":{"type":"string"},"enabled":{"type":"boolean"}}}}}},"DeploymentOperation":{"type":"object","required":["id","number","status","app","service","environment","placement","rollout_strategy","replicas_per_region","total_replicas","trigger_kind","is_rollback","rollback_source_release_id","rollback_target_release_id","rollback_reason","source_ref","commit_sha","artifact_locator","deployed_url","build_duration_seconds","duration_seconds","creator","build_status","rollout_status","history_kind","history_reason","ci_pipeline_id","ci_pipeline_run_id","region_count","live_region_count","is_live","children","created_at","updated_at"],"properties":{"id":{"type":"string"},"number":{"type":"integer","minimum":1},"status":{"type":"string","enum":["queued","building","deploying","active","failed","rolled_back","canceled"]},"app":{"type":"object","required":["id","slug","name"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}},"service":{"type":"object","required":["id","slug","name"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}},"environment":{"type":"object","required":["id","slug","name","kind"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"}}},"placement":{"type":"object","nullable":true,"required":["id","mode","rollout_strategy","replicas_per_region","total_replicas"],"properties":{"id":{"type":"string"},"mode":{"type":"string","enum":["single_region","multi_region"]},"rollout_strategy":{"type":"string","enum":["health_gated","burst"]},"replicas_per_region":{"type":"integer","minimum":0},"total_replicas":{"type":"integer","minimum":0}}},"rollout_strategy":{"type":"string","enum":["health_gated","burst"]},"replicas_per_region":{"type":"integer","minimum":0},"total_replicas":{"type":"integer","minimum":0},"trigger_kind":{"type":"string","enum":["manual","push","schedule","api","rollback"]},"is_rollback":{"type":"boolean"},"rollback_source_release_id":{"type":"string","nullable":true},"rollback_target_release_id":{"type":"string","nullable":true},"rollback_reason":{"type":"string","nullable":true},"source_ref":{"type":"string","nullable":true},"commit_sha":{"type":"string","nullable":true},"artifact_locator":{"type":"string","nullable":true},"deployed_url":{"type":"string","format":"uri","nullable":true},"build_duration_seconds":{"type":"integer","minimum":0,"nullable":true},"duration_seconds":{"type":"integer","minimum":0,"nullable":true},"creator":{"type":"object","nullable":true,"required":["id","name","picture_url"],"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"build_status":{"type":"string","enum":["queued","building","succeeded","failed","canceled","skipped"]},"rollout_status":{"type":"string","enum":["not_started","queued","running","succeeded","failed","canceled","mixed"]},"history_kind":{"type":"string","enum":["current","superseded","stale","historical"]},"history_reason":{"type":"string","nullable":true},"ci_pipeline_id":{"type":"string","nullable":true},"ci_pipeline_run_id":{"type":"string","nullable":true},"region_count":{"type":"integer","minimum":1},"live_region_count":{"type":"integer","minimum":0},"is_live":{"type":"boolean"},"children":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentOperationChild"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"DeploymentOperationChild":{"type":"object","required":["deployment_id","target_id","number","environment","location","build_role","build_status","rollout_status","history_kind","history_reason","recorded_status","desired_replicas","live_replicas","is_live","release_id","rollout_id","failure_message","superseded_by_deployment_id","ci_pipeline_id","ci_pipeline_run_id","started_at","finished_at","created_at","updated_at"],"properties":{"deployment_id":{"type":"string"},"target_id":{"type":"string","nullable":true},"number":{"type":"integer","minimum":1},"environment":{"type":"object","required":["id","slug","name","kind"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"}}},"location":{"type":"object","nullable":true,"required":["id","code","name"],"properties":{"id":{"type":"string"},"code":{"type":"string"},"name":{"type":"string"}}},"build_role":{"type":"string","enum":["leader","follower","standalone"]},"build_status":{"type":"string","enum":["queued","building","succeeded","failed","canceled","skipped"]},"rollout_status":{"type":"string","enum":["not_started","queued","running","succeeded","failed","canceled"]},"history_kind":{"type":"string","enum":["current","superseded","stale","historical"]},"history_reason":{"type":"string","nullable":true},"recorded_status":{"type":"string","enum":["queued","building","deploying","active","failed","rolled_back","canceled"]},"desired_replicas":{"type":"integer","minimum":0},"live_replicas":{"type":"integer","minimum":0},"is_live":{"type":"boolean"},"release_id":{"type":"string","nullable":true},"rollout_id":{"type":"string","nullable":true},"failure_message":{"type":"string","nullable":true},"superseded_by_deployment_id":{"type":"string","nullable":true},"ci_pipeline_id":{"type":"string","nullable":true},"ci_pipeline_run_id":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"AppDeploymentCreatePayload":{"type":"object","anyOf":[{"required":["app_service_placement_id"]},{"required":["app_service_id","app_environment_id"]}],"properties":{"app_service_placement_id":{"type":"string"},"app_service_id":{"type":"string"},"app_environment_id":{"type":"string"},"location_id":{"type":"string"},"status":{"type":"string","enum":["queued","building","deploying","active","failed","rolled_back","canceled"]},"source_ref":{"type":"string"},"commit_sha":{"type":"string"},"artifact_locator":{"type":"string"},"deployed_url":{"type":"string"},"trigger_kind":{"type":"string","enum":["manual","push","schedule","api","rollback"]},"failure_message":{"type":"string"},"started_at":{"type":"string","format":"date-time"},"finished_at":{"type":"string","format":"date-time"}}},"AppDesiredState":{"type":"object","required":["id","organization_id","hosted_app_id","app_environment_id","app_service_id","network_segment_id","slug","status","desired_instances","desired_version","image_locator","command","env_fingerprint","config_fingerprint","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"hosted_app_id":{"type":"string"},"app_environment_id":{"type":"string"},"app_service_id":{"type":"string"},"network_segment_id":{"type":"string","nullable":true},"slug":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"desired_instances":{"type":"integer","minimum":0},"desired_version":{"type":"string","nullable":true},"image_locator":{"type":"string","nullable":true},"command":{"type":"string","nullable":true},"env_fingerprint":{"type":"string","nullable":true},"config_fingerprint":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"AppRollout":{"type":"object","required":["id","organization_id","app_release_id","strategy","status","deployment_phase","auto_safe_rollout","nomad_deployment_id","nomad_eval_id","target_percentage","summary","started_at","finished_at","created_at","updated_at","started_at_label","finished_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"app_release_id":{"type":"string"},"strategy":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","canceled"]},"deployment_phase":{"type":"string","enum":["queued","deploying","active","failed","unknown"]},"auto_safe_rollout":{"type":"boolean"},"nomad_deployment_id":{"type":"string","nullable":true},"nomad_eval_id":{"type":"string","nullable":true},"target_percentage":{"type":"integer","minimum":0,"maximum":100},"summary":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"started_at_label":{"type":"string","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"DeploymentRollbackRelease":{"type":"object","required":["id","slug","version","release_kind","status","source_ref","commit_sha","app_deployment_id","rollback_target_release_id","created_at"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"version":{"type":"string"},"release_kind":{"type":"string","enum":["deployment","rollback","hotfix"]},"status":{"type":"string","enum":["draft","ready","deploying","active","failed","rolled_back"]},"source_ref":{"type":"string","nullable":true},"commit_sha":{"type":"string","nullable":true},"app_deployment_id":{"type":"string","nullable":true},"rollback_target_release_id":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"}}},"DeploymentRollbackPlan":{"type":"object","required":["app_id","service","environment","location","current_release","current_deployment","target_release","target_artifact_locator","candidate_releases","reason","force","blockers","warnings","execution_allowed","confirmation_text"],"properties":{"app_id":{"type":"string"},"service":{"oneOf":[{"$ref":"#/components/schemas/AppService"},{"type":"null"}]},"environment":{"oneOf":[{"$ref":"#/components/schemas/AppEnvironment"},{"type":"null"}]},"location":{"oneOf":[{"$ref":"#/components/schemas/HostingLocation"},{"type":"null"}]},"current_release":{"oneOf":[{"$ref":"#/components/schemas/DeploymentRollbackRelease"},{"type":"null"}]},"current_deployment":{"oneOf":[{"$ref":"#/components/schemas/AppDeployment"},{"type":"null"}]},"target_release":{"oneOf":[{"$ref":"#/components/schemas/DeploymentRollbackRelease"},{"type":"null"}]},"target_artifact_locator":{"type":"string","nullable":true},"candidate_releases":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentRollbackRelease"}},"reason":{"type":"string","nullable":true},"force":{"type":"boolean"},"blockers":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"}},"execution_allowed":{"type":"boolean"},"confirmation_text":{"type":"string"}}},"DeploymentRollbackResult":{"allOf":[{"$ref":"#/components/schemas/DeploymentRollbackPlan"},{"type":"object","required":["idempotent_reuse","operation","deployment","rollback_release","desired_state","rollout"],"properties":{"idempotent_reuse":{"type":"boolean"},"operation":{"oneOf":[{"$ref":"#/components/schemas/DeploymentOperation"},{"type":"null"}]},"deployment":{"oneOf":[{"$ref":"#/components/schemas/AppDeployment"},{"type":"null"}]},"rollback_release":{"oneOf":[{"$ref":"#/components/schemas/DeploymentRollbackRelease"},{"type":"null"}]},"desired_state":{"oneOf":[{"$ref":"#/components/schemas/AppDesiredState"},{"type":"null"}]},"rollout":{"oneOf":[{"$ref":"#/components/schemas/AppRollout"},{"type":"null"}]}}}]},"DeploymentRollbackPayload":{"type":"object","properties":{"app_service_id":{"type":"string"},"service":{"type":"string"},"app_environment_id":{"type":"string"},"environment":{"type":"string"},"to":{"type":"string"},"deployment":{"type":"string"},"reason":{"type":"string"},"force":{"type":"boolean"},"idempotency_key":{"type":"string"}}},"AppCdnHostname":{"type":"object","required":["id","app_cdn_distribution_id","hostname","tls_status","dns_status","provider_hostname_id","force_ssl","created_at","updated_at"],"properties":{"id":{"type":"string"},"app_cdn_distribution_id":{"type":"string"},"hostname":{"type":"string"},"tls_status":{"type":"string","enum":["pending","active","failed"]},"dns_status":{"type":"string","enum":["pending","configured","failed"]},"provider_hostname_id":{"type":"string","nullable":true},"force_ssl":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"AppCdnDistribution":{"type":"object","required":["id","hosted_app_id","app_environment_id","app_service_id","slug","name","distribution_kind","status","origin_url","edge_hostname","provisioned","cache_settings_json","security_settings_json","routing_settings_json","failure_message","last_synced_at","last_deployed_at","last_purged_at","hostnames","created_at","updated_at","last_synced_at_label","last_deployed_at_label","last_purged_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"app_environment_id":{"type":"string","nullable":true},"app_service_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"distribution_kind":{"type":"string","enum":["pull_zone"]},"status":{"type":"string","enum":["draft","provisioning","active","degraded","paused","archived","failed"]},"origin_url":{"type":"string","format":"uri"},"cache_path_prefix":{"type":"string","nullable":true},"edge_hostname":{"type":"string","nullable":true},"provisioned":{"type":"boolean"},"cache_settings_json":{"type":"string","nullable":true},"security_settings_json":{"type":"string","nullable":true},"routing_settings_json":{"type":"string","nullable":true},"failure_message":{"type":"string","nullable":true},"last_synced_at":{"type":"string","format":"date-time","nullable":true},"last_deployed_at":{"type":"string","format":"date-time","nullable":true},"last_purged_at":{"type":"string","format":"date-time","nullable":true},"hostnames":{"type":"array","items":{"$ref":"#/components/schemas/AppCdnHostname"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"last_synced_at_label":{"type":"string","nullable":true},"last_deployed_at_label":{"type":"string","nullable":true},"last_purged_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"AppCdnDeployment":{"type":"object","required":["id","app_cdn_distribution_id","creator_user_id","status","action_kind","trigger_kind","source_ref","commit_sha","purge_urls","failure_message","started_at","finished_at","created_at","updated_at","started_at_label","finished_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"app_cdn_distribution_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"status":{"type":"string","enum":["queued","deploying","active","failed","canceled"]},"action_kind":{"type":"string","enum":["provision","reconfigure","hostname_sync","purge_all","purge_urls"]},"trigger_kind":{"type":"string","enum":["manual","push","schedule","api","rollback"]},"source_ref":{"type":"string","nullable":true},"commit_sha":{"type":"string","nullable":true},"purge_urls":{"type":"array","items":{"type":"string"}},"failure_message":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"started_at_label":{"type":"string","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"AppCdnDistributionCreatePayload":{"type":"object","required":["slug","name","origin_url"],"properties":{"app_environment_id":{"type":"string"},"app_service_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"distribution_kind":{"type":"string","enum":["pull_zone"]},"status":{"type":"string","enum":["draft","provisioning","active","degraded","paused","archived","failed"]},"origin_url":{"type":"string","format":"uri"},"cache_path_prefix":{"type":"string","nullable":true},"cache_settings_json":{"type":"string"},"security_settings_json":{"type":"string"},"routing_settings_json":{"type":"string"}}},"AppCdnDistributionUpdatePayload":{"type":"object","properties":{"app_environment_id":{"type":"string"},"app_service_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"distribution_kind":{"type":"string","enum":["pull_zone"]},"status":{"type":"string","enum":["draft","provisioning","active","degraded","paused","archived","failed"]},"origin_url":{"type":"string","format":"uri"},"cache_path_prefix":{"type":"string","nullable":true},"cache_settings_json":{"type":"string"},"security_settings_json":{"type":"string"},"routing_settings_json":{"type":"string"}}},"AppCdnHostnameCreatePayload":{"type":"object","required":["hostname"],"properties":{"hostname":{"type":"string"},"force_ssl":{"type":"boolean"},"tls_status":{"type":"string","enum":["pending","active","failed"]},"dns_status":{"type":"string","enum":["pending","configured","failed"]}}},"AppCdnDeploymentPayload":{"type":"object","properties":{"source_ref":{"type":"string"},"commit_sha":{"type":"string"}}},"AppCdnPurgePayload":{"allOf":[{"$ref":"#/components/schemas/AppCdnDeploymentPayload"},{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string"}},"purge_urls":{"type":"array","items":{"type":"string"}}}}]},"HostedApp":{"type":"object","required":["id","organization_id","repository_id","repository_kind","slug","name","description","root_path","root_path_display","framework","status","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_kind":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"root_path":{"type":"string"},"root_path_display":{"type":"string"},"framework":{"type":"string","nullable":true},"status":{"type":"string","enum":["draft","active","archived"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"HostedAppCreatePayload":{"type":"object","required":["organization_id","repository_id","slug","name","root_path"],"properties":{"organization_id":{"type":"string"},"repository_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"root_path":{"type":"string"},"framework":{"type":"string"},"status":{"type":"string","enum":["draft","active","archived"]}}},"HostedAppUpdatePayload":{"type":"object","properties":{"organization_id":{"type":"string"},"repository_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"root_path":{"type":"string"},"framework":{"type":"string"},"status":{"type":"string","enum":["draft","active","archived"]}}},"ManagedDatabaseRegion":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"},"display_name":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"vex_location_code":{"type":"string","nullable":true},"provider":{"type":"string","nullable":true},"enabled":{"type":"boolean","nullable":true},"postgresql_supported":{"type":"boolean","nullable":true},"mysql_supported":{"type":"boolean","nullable":true},"current_default":{"type":"boolean","nullable":true},"source":{"type":"string","nullable":true}}},"ManagedDatabaseClusterSize":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"display_name":{"type":"string","nullable":true},"enabled":{"type":"boolean","nullable":true},"production":{"type":"boolean","nullable":true},"development":{"type":"boolean","nullable":true},"cpu":{"nullable":true,"oneOf":[{"type":"string"},{"type":"number"}]},"ram":{"nullable":true,"oneOf":[{"type":"string"},{"type":"number"}]},"storage":{"nullable":true,"oneOf":[{"type":"string"},{"type":"number"}]},"metal":{"nullable":true,"oneOf":[{"type":"string"},{"type":"boolean"}]},"architecture":{"type":"string","nullable":true}}},"ManagedDatabaseEngine":{"type":"object","required":["engine","kind","label","provider_kind"],"properties":{"engine":{"type":"string","enum":["postgres","mysql","valkey"]},"kind":{"type":"string","enum":["database","cache"]},"label":{"type":"string"},"provider_kind":{"type":"string"},"provider_database_kind":{"type":"string","nullable":true},"default_version":{"type":"string","nullable":true},"default_plan":{"type":"string","nullable":true},"default_cluster_size":{"type":"string","nullable":true},"default_connection_mode":{"type":"string","nullable":true},"sslmode":{"type":"string","nullable":true},"ssl_mode":{"type":"string","nullable":true},"supported_versions":{"type":"array","items":{"type":"string"}},"regions":{"type":"array","items":{"$ref":"#/components/schemas/ManagedDatabaseRegion"}},"cluster_sizes":{"type":"array","items":{"$ref":"#/components/schemas/ManagedDatabaseClusterSize"}}}},"ManagedDatabaseCatalog":{"type":"object","required":["default_provider_kind","fallback_provider_kind","provider_configured","live_catalog","engines"],"properties":{"default_provider_kind":{"type":"string"},"fallback_provider_kind":{"type":"string"},"provider_configured":{"type":"boolean"},"live_catalog":{"type":"boolean"},"engines":{"type":"array","items":{"$ref":"#/components/schemas/ManagedDatabaseEngine"}}}},"AppDomain":{"type":"object","required":["id","hosted_app_id","app_service_id","app_environment_id","static_site_id","hostname","kind","target_kind","dns_mode","record_type","record_name","record_value","tls_status","dns_status","verification_status","last_checked_at","failure_message","redirect_to","verification_record","certificate","path_rules","created_at","updated_at"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"app_service_id":{"type":"string","nullable":true},"app_environment_id":{"type":"string","nullable":true},"static_site_id":{"type":"string","nullable":true},"hostname":{"type":"string"},"kind":{"type":"string","enum":["primary","redirect","preview","internal"]},"target_kind":{"type":"string","enum":["app_service","static_site"]},"dns_mode":{"type":"string","enum":["manual_cname","cloudflare"]},"record_type":{"type":"string","nullable":true},"record_name":{"type":"string","nullable":true},"record_value":{"type":"string","nullable":true},"tls_status":{"type":"string","enum":["pending","active","failed"]},"dns_status":{"type":"string","enum":["pending","configured","failed"]},"verification_status":{"type":"string"},"last_checked_at":{"type":"string","format":"date-time","nullable":true},"failure_message":{"type":"string","nullable":true},"redirect_to":{"type":"string","nullable":true},"certificate":{"type":"object","nullable":true,"required":["status","last_error","expires_at"],"properties":{"status":{"type":"string"},"last_error":{"type":"string","nullable":true},"expires_at":{"type":"string","format":"date-time","nullable":true}}},"verification_record":{"type":"object","nullable":true,"required":["type","name","value"],"properties":{"type":{"type":"string","enum":["TXT"]},"name":{"type":"string"},"value":{"type":"string"}}},"path_rules":{"type":"array","items":{"$ref":"#/components/schemas/AppDomainPathRule"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"AppConfigVariable":{"type":"object","required":["id","hosted_app_id","app_environment_id","app_service_id","scope_kind","key","value","has_value","value_kind","description","exposed_to_build","created_at","updated_at"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"app_environment_id":{"type":"string","nullable":true},"app_service_id":{"type":"string","nullable":true},"scope_kind":{"type":"string","enum":["app","environment","service"]},"key":{"type":"string"},"value":{"type":"string","nullable":true},"has_value":{"type":"boolean"},"value_kind":{"type":"string","enum":["plain","secret","reference"]},"description":{"type":"string","nullable":true},"exposed_to_build":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"HostedAppCatalog":{"allOf":[{"$ref":"#/components/schemas/HostedApp"},{"type":"object","required":["locations","environments","services","deployments","cdns","cdn_deployments","data_resources","managed_database_catalog","storage_resources","domains","config_variables","service_bindings"],"properties":{"locations":{"type":"array","items":{"$ref":"#/components/schemas/HostingLocation"}},"environments":{"type":"array","items":{"$ref":"#/components/schemas/AppEnvironment"}},"services":{"type":"array","items":{"$ref":"#/components/schemas/AppService"}},"deployments":{"type":"array","items":{"$ref":"#/components/schemas/AppDeployment"}},"cdns":{"type":"array","items":{"$ref":"#/components/schemas/AppCdnDistribution"}},"cdn_deployments":{"type":"array","items":{"$ref":"#/components/schemas/AppCdnDeployment"}},"data_resources":{"type":"array","items":{"$ref":"#/components/schemas/AppDataResource"}},"managed_database_catalog":{"$ref":"#/components/schemas/ManagedDatabaseCatalog"},"storage_resources":{"type":"array","items":{"$ref":"#/components/schemas/AppStorageResource"}},"domains":{"type":"array","items":{"$ref":"#/components/schemas/AppDomain"}},"config_variables":{"type":"array","items":{"$ref":"#/components/schemas/AppConfigVariable"}},"service_bindings":{"type":"array","items":{"$ref":"#/components/schemas/AppServiceBinding"}}}}]},"AppRelease":{"type":"object","required":["id","organization_id","hosted_app_id","app_environment_id","app_service_id","location_id","created_by_user_id","app_deployment_id","ci_pipeline_run_id","slug","version","location","release_command_execution","nomad_job_id","nomad_namespace","nomad_job_version","nomad_deployment_id","nomad_eval_id","rendered_job_spec_digest","source_ref","commit_sha","release_kind","release_command","prestart_command","image_digest","image_reference","image_repository","source_commit","builder_image","builder_version","target_platform","ci_run_identity","is_rollback","rollback_target_release_id","status","deployment_phase","rollout_status","rollback_reason","self_hosted_managed","self_hosted_reconcile_enabled","self_hosted_apply_enabled","notes","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"hosted_app_id":{"type":"string"},"app_environment_id":{"type":"string"},"app_service_id":{"type":"string"},"location_id":{"type":"string"},"created_by_user_id":{"type":"string","nullable":true},"app_deployment_id":{"type":"string","nullable":true},"ci_pipeline_run_id":{"type":"string","nullable":true},"slug":{"type":"string"},"version":{"type":"string"},"location":{"oneOf":[{"$ref":"#/components/schemas/HostingLocation"},{"type":"null"}]},"release_command_execution":{"oneOf":[{"$ref":"#/components/schemas/AppReleaseCommandExecution"},{"type":"null"}]},"nomad_job_id":{"type":"string","nullable":true},"nomad_namespace":{"type":"string","nullable":true},"nomad_job_version":{"type":"integer","nullable":true},"nomad_deployment_id":{"type":"string","nullable":true},"nomad_eval_id":{"type":"string","nullable":true},"rendered_job_spec_digest":{"type":"string","nullable":true},"source_ref":{"type":"string","nullable":true},"commit_sha":{"type":"string","nullable":true},"release_kind":{"type":"string","enum":["deployment","rollback","hotfix"]},"release_command":{"type":"string","nullable":true},"prestart_command":{"type":"string","nullable":true},"image_digest":{"type":"string","nullable":true},"image_reference":{"type":"string","nullable":true},"image_repository":{"type":"string","nullable":true},"source_commit":{"type":"string","nullable":true},"builder_image":{"type":"string","nullable":true},"builder_version":{"type":"string","nullable":true},"target_platform":{"type":"string","nullable":true},"ci_run_identity":{"type":"string","nullable":true},"is_rollback":{"type":"boolean"},"rollback_target_release_id":{"type":"string","nullable":true},"status":{"type":"string","enum":["draft","ready","deploying","active","failed","rolled_back"]},"deployment_phase":{"type":"string","enum":["failed","active","deploying","ready","rolled_back","unknown"]},"rollout_status":{"type":"string","enum":["queued","running","succeeded","failed","canceled"],"nullable":true},"rollback_reason":{"type":"string","nullable":true},"self_hosted_managed":{"type":"boolean"},"self_hosted_reconcile_enabled":{"type":"boolean"},"self_hosted_apply_enabled":{"type":"boolean"},"notes":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"AppReleaseCommandExecution":{"type":"object","required":["id","app_release_id","app_deployment_id","ci_pipeline_run_id","status","provider_kind","attempt_count","max_attempts","timeout_seconds","logs","exit_code","failure_message","started_at","finished_at","created_at","updated_at","started_at_label","finished_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"app_release_id":{"type":"string"},"app_deployment_id":{"type":"string"},"ci_pipeline_run_id":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","timed_out"]},"provider_kind":{"type":"string"},"attempt_count":{"type":"integer","minimum":0},"max_attempts":{"type":"integer","minimum":1},"timeout_seconds":{"type":"integer","minimum":1},"logs":{"type":"string","nullable":true},"exit_code":{"type":"integer","nullable":true},"failure_message":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"started_at_label":{"type":"string","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"RuntimeInstance":{"type":"object","required":["id","organization_id","hosted_app_id","app_environment_id","app_service_id","app_release_id","location_id","network_peer_id","slug","instance_key","service_name","location","status","adapter_kind","provider_instance_id","nomad_allocation_id","nomad_task_name","private_ipv4","private_ipv6","public_endpoint","booted_at","terminated_at","last_seen_at","last_reconciled_at","created_at","updated_at","booted_at_label","terminated_at_label","last_seen_at_label","last_reconciled_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"hosted_app_id":{"type":"string"},"app_environment_id":{"type":"string"},"app_service_id":{"type":"string"},"app_release_id":{"type":"string","nullable":true},"location_id":{"type":"string"},"network_peer_id":{"type":"string","nullable":true},"slug":{"type":"string"},"instance_key":{"type":"string"},"service_name":{"type":"string","description":"Name of the Vex service this instance runs, in the same vocabulary as `vex deploy list`. `nomad_task_name` is the scheduler's own name for the same workload."},"location":{"oneOf":[{"$ref":"#/components/schemas/HostingLocation"},{"type":"null"}]},"status":{"type":"string","enum":["starting","running","degraded","stopped","terminated","failed"]},"adapter_kind":{"type":"string","enum":["database","nomad"]},"provider_instance_id":{"type":"string","nullable":true},"nomad_allocation_id":{"type":"string","nullable":true},"nomad_task_name":{"type":"string","nullable":true},"private_ipv4":{"type":"string","nullable":true},"private_ipv6":{"type":"string","nullable":true},"public_endpoint":{"type":"string","nullable":true},"booted_at":{"type":"string","format":"date-time","nullable":true},"terminated_at":{"type":"string","format":"date-time","nullable":true},"last_seen_at":{"type":"string","format":"date-time","nullable":true},"last_reconciled_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"booted_at_label":{"type":"string","nullable":true},"terminated_at_label":{"type":"string","nullable":true},"last_seen_at_label":{"type":"string","nullable":true},"last_reconciled_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"ReconcilerTick":{"type":"object","required":["id","organization_id","hosted_app_id","app_environment_id","app_service_id","kind","status","observed_version","summary","started_at","finished_at","created_at","updated_at","started_at_label","finished_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"hosted_app_id":{"type":"string","nullable":true},"app_environment_id":{"type":"string","nullable":true},"app_service_id":{"type":"string","nullable":true},"kind":{"type":"string","enum":["generic","release","runtime","network","health","cdn"]},"status":{"type":"string","enum":["queued","running","succeeded","failed"]},"observed_version":{"type":"string","nullable":true},"summary":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"started_at_label":{"type":"string","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"AuditEvent":{"type":"object","required":["id","observability_space_id","organization_id","actor_user_id","actor_kind","action","subject_kind","subject_id","subject_name","request_id","severity","payload","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"observability_space_id":{"type":"string"},"organization_id":{"type":"string"},"actor_user_id":{"type":"string","nullable":true},"actor_kind":{"type":"string","enum":["user","service","system","agent"]},"action":{"type":"string"},"subject_kind":{"type":"string"},"subject_id":{"type":"string"},"subject_name":{"type":"string","nullable":true},"request_id":{"type":"string","nullable":true},"severity":{"type":"string","enum":["info","notice","warn","error"]},"payload":{},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"GrafanaEmbed":{"type":"object","required":["provider","scope","title","description","url","external_url"],"properties":{"provider":{"type":"string","enum":["grafana"]},"scope":{"type":"string","enum":["app","service","environment"]},"title":{"type":"string"},"description":{"type":"string"},"url":{"type":"string"},"external_url":{"type":"string","format":"uri"}}},"EnvironmentGrafanaEmbed":{"type":"object","required":["environment","grafana_embed"],"properties":{"environment":{"$ref":"#/components/schemas/AppEnvironment"},"grafana_embed":{"oneOf":[{"$ref":"#/components/schemas/GrafanaEmbed"},{"type":"null"}]}}},"ObservedMetricSeries":{"type":"object","required":["key","label","unit","points"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"unit":{"type":"string","enum":["percent","bytes","count","requests_per_second","seconds","milliseconds"]},"points":{"type":"array","items":{"type":"array","minItems":2,"maxItems":2,"items":{"oneOf":[{"type":"number"},{"type":"null"}]}}}}},"ObservedMetricResult":{"type":"object","required":["name","title","unit","step_seconds","series","truncated","rejected_series_count"],"properties":{"name":{"type":"string"},"title":{"type":"string"},"unit":{"type":"string","enum":["percent","bytes","count","requests_per_second","seconds","milliseconds"]},"step_seconds":{"type":"integer","minimum":1},"series":{"type":"array","items":{"$ref":"#/components/schemas/ObservedMetricSeries"}},"truncated":{"type":"boolean"},"rejected_series_count":{"type":"integer","minimum":0}}},"ObservedMetricsSnapshot":{"type":"object","required":["state","range","available_ranges","results","error"],"properties":{"state":{"type":"string","enum":["ready","collecting","unavailable"]},"range":{"type":"string","enum":["1h","6h","24h","7d"]},"available_ranges":{"type":"array","items":{"type":"string","enum":["1h","6h","24h","7d"]}},"results":{"type":"array","items":{"$ref":"#/components/schemas/ObservedMetricResult"}},"error":{"type":"string","nullable":true}}},"DeploymentDashboardObservability":{"type":"object","required":["grafana_embed","environment_embeds","observed_metrics"],"properties":{"grafana_embed":{"oneOf":[{"$ref":"#/components/schemas/GrafanaEmbed"},{"type":"null"}]},"environment_embeds":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentGrafanaEmbed"}},"observed_metrics":{"oneOf":[{"$ref":"#/components/schemas/ObservedMetricsSnapshot"},{"type":"null"}]}}},"EnvironmentRuntimeSummary":{"type":"object","required":["desired_instances","desired_version","total_instances","running_instances","degraded_instances","failed_instances"],"properties":{"desired_instances":{"type":"integer","minimum":0},"desired_version":{"type":"string","nullable":true},"total_instances":{"type":"integer","minimum":0},"running_instances":{"type":"integer","minimum":0},"degraded_instances":{"type":"integer","minimum":0},"failed_instances":{"type":"integer","minimum":0}}},"DeploymentNomadSummary":{"type":"object","required":["namespace","region","datacenters","constraints","update_strategy","deployment_channel","ownership_layer","managed_by_vex","self_hosted_managed","self_hosted_reconcile_enabled","self_hosted_apply_enabled","managed_service_allowlist","latest_job_id","latest_job_version","latest_deployment_id","latest_eval_id","allocation_ids","task_names"],"properties":{"namespace":{"type":"string"},"region":{"type":"string","nullable":true},"datacenters":{"type":"array","items":{"type":"string"}},"constraints":{"type":"array","items":{}},"update_strategy":{"type":"object","additionalProperties":true},"deployment_channel":{"type":"string"},"ownership_layer":{"type":"string"},"managed_by_vex":{"type":"boolean"},"self_hosted_managed":{"type":"boolean"},"self_hosted_reconcile_enabled":{"type":"boolean"},"self_hosted_apply_enabled":{"type":"boolean"},"managed_service_allowlist":{"type":"array","items":{"type":"string"}},"latest_job_id":{"type":"string","nullable":true},"latest_job_version":{"type":"integer","nullable":true},"latest_deployment_id":{"type":"string","nullable":true},"latest_eval_id":{"type":"string","nullable":true},"allocation_ids":{"type":"array","items":{"type":"string"}},"task_names":{"type":"array","items":{"type":"string"}}}},"ServiceCapacityResource":{"type":"object","required":["value","value_label","defaulted","total","total_label"],"properties":{"value":{"type":"integer","minimum":0},"value_label":{"type":"string"},"defaulted":{"type":"boolean"},"total":{"type":"integer","minimum":0},"total_label":{"type":"string"}}},"RolloutPeakCapacity":{"type":"object","required":["instances","cpu_mhz","memory_mb","disk_mb","cpu_label","memory_label","disk_label"],"properties":{"instances":{"type":"integer","minimum":0},"cpu_mhz":{"type":"integer","minimum":0},"memory_mb":{"type":"integer","minimum":0},"disk_mb":{"type":"integer","minimum":0},"cpu_label":{"type":"string"},"memory_label":{"type":"string"},"disk_label":{"type":"string"}}},"ServiceCapacity":{"type":"object","required":["reservation_instances","deployment_channel","rollout_extra_instances","rollout_peak","resources"],"properties":{"reservation_instances":{"type":"integer","minimum":1},"deployment_channel":{"type":"string"},"rollout_extra_instances":{"type":"integer","minimum":0},"rollout_peak":{"$ref":"#/components/schemas/RolloutPeakCapacity"},"resources":{"type":"object","required":["cpu","memory","disk"],"properties":{"cpu":{"$ref":"#/components/schemas/ServiceCapacityResource"},"memory":{"$ref":"#/components/schemas/ServiceCapacityResource"},"disk":{"$ref":"#/components/schemas/ServiceCapacityResource"}}}}},"ServiceEnvironmentView":{"type":"object","required":["environment","grafana_embed","desired_state","latest_deployment","latest_release","latest_rollout","runtime_instances","reconciler_ticks","audit_events","stats","nomad"],"properties":{"environment":{"$ref":"#/components/schemas/AppEnvironment"},"grafana_embed":{"oneOf":[{"$ref":"#/components/schemas/GrafanaEmbed"},{"type":"null"}]},"desired_state":{"oneOf":[{"$ref":"#/components/schemas/AppDesiredState"},{"type":"null"}]},"latest_deployment":{"oneOf":[{"$ref":"#/components/schemas/AppDeployment"},{"type":"null"}]},"latest_release":{"oneOf":[{"$ref":"#/components/schemas/AppRelease"},{"type":"null"}]},"latest_rollout":{"oneOf":[{"$ref":"#/components/schemas/AppRollout"},{"type":"null"}]},"runtime_instances":{"type":"array","items":{"$ref":"#/components/schemas/RuntimeInstance"}},"reconciler_ticks":{"type":"array","items":{"$ref":"#/components/schemas/ReconcilerTick"}},"audit_events":{"type":"array","items":{"$ref":"#/components/schemas/AuditEvent"}},"stats":{"$ref":"#/components/schemas/EnvironmentRuntimeSummary"},"nomad":{"$ref":"#/components/schemas/DeploymentNomadSummary"}}},"ServiceConnection":{"type":"object","required":["source_service_id","target_kind","target_id","binding_types"],"properties":{"source_service_id":{"type":"string"},"target_kind":{"type":"string","enum":["service","data_resource","storage_resource"]},"target_id":{"type":"string"},"binding_types":{"type":"array","items":{"type":"string","enum":["connection","mount","env","private_network","service"]}}}},"ServiceRegionFootprint":{"type":"object","required":["location_id","location_name","live","desired"],"properties":{"location_id":{"type":"string"},"location_name":{"type":"string"},"live":{"type":"integer","minimum":0},"desired":{"type":"integer","minimum":0}}},"ServiceView":{"type":"object","required":["service","grafana_embed","runtime_summary","status","region_footprints","capacity","latest_release","latest_rollout","latest_deployment","nomad","audit_events","environment_views"],"properties":{"service":{"$ref":"#/components/schemas/AppService"},"grafana_embed":{"oneOf":[{"$ref":"#/components/schemas/GrafanaEmbed"},{"type":"null"}]},"runtime_summary":{"$ref":"#/components/schemas/EnvironmentRuntimeSummary"},"status":{"type":"string"},"region_footprints":{"type":"array","items":{"$ref":"#/components/schemas/ServiceRegionFootprint"}},"capacity":{"$ref":"#/components/schemas/ServiceCapacity"},"latest_release":{"oneOf":[{"$ref":"#/components/schemas/AppRelease"},{"type":"null"}]},"latest_rollout":{"oneOf":[{"$ref":"#/components/schemas/AppRollout"},{"type":"null"}]},"latest_deployment":{"oneOf":[{"$ref":"#/components/schemas/AppDeployment"},{"type":"null"}]},"nomad":{"$ref":"#/components/schemas/DeploymentNomadSummary"},"audit_events":{"type":"array","items":{"$ref":"#/components/schemas/AuditEvent"}},"environment_views":{"type":"array","items":{"$ref":"#/components/schemas/ServiceEnvironmentView"}}}},"DeploymentCapacity":{"type":"object","required":["cpu_mhz","memory_mb","disk_mb","cpu_label","memory_label","disk_label","running_instances","desired_instances","public_endpoints"],"properties":{"cpu_mhz":{"type":"integer","minimum":0},"memory_mb":{"type":"integer","minimum":0},"disk_mb":{"type":"integer","minimum":0},"cpu_label":{"type":"string"},"memory_label":{"type":"string"},"disk_label":{"type":"string"},"running_instances":{"type":"integer","minimum":0},"desired_instances":{"type":"integer","minimum":0},"public_endpoints":{"type":"integer","minimum":0}}},"DeploymentActivityItem":{"type":"object","required":["id","source","title","subtitle","timestamp","timestamp_label","service_id","environment_id","status","tone","detail"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["deployment","release","rollout","reconciler","event"]},"title":{"type":"string"},"subtitle":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"timestamp_label":{"type":"string"},"service_id":{"type":"string","nullable":true},"environment_id":{"type":"string","nullable":true},"status":{"type":"string"},"tone":{"type":"string","enum":["neutral","success","warning","danger","info"]},"detail":{"type":"string","nullable":true}}},"DeploymentDashboardSummary":{"type":"object","required":["service_count","environment_count","desired_state_count","deployment_count","active_release_count","in_flight_release_count","running_instance_count","unhealthy_instance_count","nomad_job_count","nomad_deployment_count","nomad_eval_count","nomad_allocation_count","recent_event_count"],"properties":{"service_count":{"type":"integer","minimum":0},"environment_count":{"type":"integer","minimum":0},"desired_state_count":{"type":"integer","minimum":0},"deployment_count":{"type":"integer","minimum":0},"active_release_count":{"type":"integer","minimum":0},"in_flight_release_count":{"type":"integer","minimum":0},"running_instance_count":{"type":"integer","minimum":0},"unhealthy_instance_count":{"type":"integer","minimum":0},"nomad_job_count":{"type":"integer","minimum":0},"nomad_deployment_count":{"type":"integer","minimum":0},"nomad_eval_count":{"type":"integer","minimum":0},"nomad_allocation_count":{"type":"integer","minimum":0},"recent_event_count":{"type":"integer","minimum":0}}},"DeploymentDashboard":{"type":"object","required":["app","observability","summary","capacity","activity","locations","environments","services","data_resources","managed_database_catalog","storage_resources","service_bindings","connections","placements","desired_states","operations","deployments","rollback_deployments","releases","rollouts","runtime_instances","reconciler_ticks","audit_events","service_views"],"properties":{"app":{"$ref":"#/components/schemas/HostedApp"},"observability":{"$ref":"#/components/schemas/DeploymentDashboardObservability"},"summary":{"$ref":"#/components/schemas/DeploymentDashboardSummary"},"capacity":{"$ref":"#/components/schemas/DeploymentCapacity"},"activity":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentActivityItem"}},"locations":{"type":"array","items":{"$ref":"#/components/schemas/HostingLocation"}},"environments":{"type":"array","items":{"$ref":"#/components/schemas/AppEnvironment"}},"services":{"type":"array","items":{"$ref":"#/components/schemas/AppService"}},"data_resources":{"type":"array","items":{"$ref":"#/components/schemas/AppDataResource"}},"managed_database_catalog":{"$ref":"#/components/schemas/ManagedDatabaseCatalog"},"storage_resources":{"type":"array","items":{"$ref":"#/components/schemas/AppStorageResource"}},"service_bindings":{"type":"array","items":{"$ref":"#/components/schemas/AppServiceBinding"}},"connections":{"type":"array","items":{"$ref":"#/components/schemas/ServiceConnection"}},"placements":{"type":"array","items":{"$ref":"#/components/schemas/AppServicePlacement"}},"desired_states":{"type":"array","items":{"$ref":"#/components/schemas/AppDesiredState"}},"operations":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentOperation"}},"deployments":{"type":"array","items":{"$ref":"#/components/schemas/AppDeployment"}},"rollback_deployments":{"type":"array","items":{"$ref":"#/components/schemas/AppDeployment"}},"releases":{"type":"array","items":{"$ref":"#/components/schemas/AppRelease"}},"rollouts":{"type":"array","items":{"$ref":"#/components/schemas/AppRollout"}},"runtime_instances":{"type":"array","items":{"$ref":"#/components/schemas/RuntimeInstance"}},"reconciler_ticks":{"type":"array","items":{"$ref":"#/components/schemas/ReconcilerTick"}},"audit_events":{"type":"array","items":{"$ref":"#/components/schemas/AuditEvent"}},"service_views":{"type":"array","items":{"$ref":"#/components/schemas/ServiceView"}}}},"AppServiceBinding":{"type":"object","required":["id","hosted_app_id","app_service_id","bindable_type","bindable_id","binding_type","name","mount_path","read_only","required","created_at","updated_at"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"app_service_id":{"type":"string"},"bindable_type":{"type":"string"},"bindable_id":{"type":"string"},"binding_type":{"type":"string"},"name":{"type":"string"},"mount_path":{"type":"string","nullable":true},"read_only":{"type":"boolean"},"required":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"AppService":{"type":"object","required":["id","hosted_app_id","slug","name","kind","runtime","runtime_adapter_kind","runtime_adapter_settings_json","nomad_namespace","nomad_region","cpu_mhz","memory_mb","memory_max_mb","disk_mb","nomad_constraints_json","nomad_update_strategy_json","nomad_ulimits_json","nomad_kill_timeout_seconds","nomad_shutdown_delay_seconds","source_path","repo_source_path","build_command","release_command","prestart_command","start_command","healthcheck_path","schedule","internal_port","desired_instances","publicly_accessible","auto_deploy","deploy_paths","effective_deploy_paths","bindings","created_at","updated_at","created_at_label","updated_at_label","cpu_label","memory_label","memory_max_label","disk_label"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["web","worker","cron","static","private"]},"runtime":{"type":"string","enum":["docker","node","ruby","python","go","rust","static","generic"]},"runtime_adapter_kind":{"type":"string","enum":["nomad","database"]},"runtime_adapter_settings_json":{"type":"string","nullable":true},"nomad_namespace":{"type":"string","nullable":true},"nomad_region":{"type":"string","nullable":true},"cpu_mhz":{"type":"integer","minimum":0,"nullable":true},"memory_mb":{"type":"integer","minimum":0,"nullable":true},"memory_max_mb":{"type":"integer","minimum":1,"nullable":true,"description":"Hard memory limit in MB the task may burst to (Nomad MemoryMaxMB). memory_mb stays the reservation the scheduler places against, so raising this does not make a rollout harder to place. Must be >= memory_mb. Memory above the reservation is oversubscribed and best effort: under node pressure the kernel reclaims it and can OOM-kill the task. Null/absent renders no limit beyond the reservation."},"disk_mb":{"type":"integer","minimum":0,"nullable":true},"nomad_constraints_json":{"type":"string","nullable":true},"nomad_update_strategy_json":{"type":"string","nullable":true},"nomad_ulimits_json":{"type":"string","nullable":true,"description":"Docker task ulimits as a JSON object of rlimit name to \"soft:hard\" (e.g. {\"nofile\":\"65536:65536\"}). Null/absent leaves the container on the daemon default."},"nomad_kill_timeout_seconds":{"type":"integer","minimum":1,"maximum":30,"nullable":true,"description":"Seconds the task gets after SIGTERM before SIGKILL. Null/absent leaves Nomad's 5s default. Capped at 30 because a Nomad client silently clamps kill_timeout to its own max_kill_timeout (default 30s)."},"nomad_shutdown_delay_seconds":{"type":"integer","minimum":0,"maximum":120,"nullable":true,"description":"Seconds Nomad waits between deregistering the group's services and sending SIGTERM, so the edge stops routing new requests to the allocation before it is signalled. Null/absent leaves Nomad's 0s default."},"source_path":{"type":"string"},"repo_source_path":{"type":"string"},"build_command":{"type":"string","nullable":true},"release_command":{"type":"string","nullable":true},"prestart_command":{"type":"string","nullable":true},"start_command":{"type":"string","nullable":true},"healthcheck_path":{"type":"string","nullable":true},"schedule":{"type":"string","nullable":true},"internal_port":{"type":"integer","minimum":1,"maximum":65535,"nullable":true},"desired_instances":{"type":"integer","minimum":0},"publicly_accessible":{"type":"boolean"},"auto_deploy":{"type":"boolean"},"deploy_paths":{"type":"array","description":"Explicit repo-root-relative path prefixes/globs a push must touch to auto-deploy. Empty means default to the app root_path.","items":{"type":"string"}},"effective_deploy_paths":{"type":"array","description":"Tracked paths actually applied by the auto-deploy trigger (explicit deploy_paths, else [root_path]).","items":{"type":"string"}},"bindings":{"type":"array","items":{"$ref":"#/components/schemas/AppServiceBinding"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true},"cpu_label":{"type":"string","nullable":true},"memory_label":{"type":"string","nullable":true},"memory_max_label":{"type":"string","nullable":true},"disk_label":{"type":"string","nullable":true}}},"AppServiceCreatePayload":{"type":"object","required":["slug","name","kind","runtime","runtime_adapter_kind","source_path","start_command","desired_instances","publicly_accessible","auto_deploy"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["web","worker","cron","static","private"]},"runtime":{"type":"string","enum":["docker","node","ruby","python","go","rust","static","generic"]},"runtime_adapter_kind":{"type":"string","enum":["nomad","database"]},"runtime_adapter_settings_json":{"type":"string"},"nomad_namespace":{"type":"string"},"nomad_region":{"type":"string"},"cpu_mhz":{"type":"integer","minimum":0},"memory_mb":{"type":"integer","minimum":0},"memory_max_mb":{"type":"integer","minimum":1,"description":"Hard memory limit in MB the task may burst to (Nomad MemoryMaxMB). Must be >= memory_mb, which stays the scheduler reservation. Omit to render no limit beyond the reservation."},"disk_mb":{"type":"integer","minimum":0},"nomad_constraints_json":{"type":"string"},"nomad_update_strategy_json":{"type":"string"},"nomad_ulimits_json":{"type":"string","description":"Docker task ulimits as a JSON object of rlimit name to \"soft:hard\" (e.g. {\"nofile\":\"65536:65536\"})."},"nomad_kill_timeout_seconds":{"type":"integer","minimum":1,"maximum":30,"description":"Seconds the task gets after SIGTERM before SIGKILL. Omit to leave Nomad's 5s default."},"nomad_shutdown_delay_seconds":{"type":"integer","minimum":0,"maximum":120,"description":"Seconds Nomad waits between deregistering the group's services and sending SIGTERM. Omit to leave Nomad's 0s default."},"source_path":{"type":"string"},"build_command":{"type":"string"},"release_command":{"type":"string"},"prestart_command":{"type":"string"},"start_command":{"type":"string"},"healthcheck_path":{"type":"string"},"schedule":{"type":"string"},"internal_port":{"type":"integer","minimum":1,"maximum":65535},"desired_instances":{"type":"integer","minimum":0},"publicly_accessible":{"type":"boolean"},"auto_deploy":{"type":"boolean"},"deploy_paths":{"type":"array","items":{"type":"string"}}}},"AppDataResource":{"type":"object","required":["id","hosted_app_id","app_environment_id","slug","name","kind","engine","version","plan","region","status","storage_gb","storage_label","high_availability","provider_metadata","failure_message","created_at","updated_at"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"app_environment_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["database","cache","queue","search","vector"]},"engine":{"type":"string","enum":["postgres","mysql","valkey"]},"version":{"type":"string","nullable":true},"plan":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"status":{"type":"string","enum":["provisioning","available","updating","failed","archived"]},"storage_gb":{"type":"integer","minimum":0,"nullable":true},"storage_label":{"type":"string","nullable":true},"high_availability":{"type":"boolean"},"provider_metadata":{"type":"object","additionalProperties":true},"failure_message":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"AppDataResourceCreatePayload":{"type":"object","required":["slug","name","kind","engine"],"properties":{"app_environment_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["database","cache","queue","search","vector"]},"engine":{"type":"string","enum":["postgres","mysql","valkey"]},"version":{"type":"string"},"plan":{"type":"string"},"region":{"type":"string"},"storage_gb":{"type":"integer","minimum":0},"high_availability":{"type":"boolean"}}},"AppDataResourceRestorePayload":{"type":"object","properties":{"app_environment_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"branch_name":{"type":"string"},"backup_id":{"type":"string"},"restore_point":{"type":"string"},"plan":{"type":"string"},"region":{"type":"string"},"storage_gb":{"type":"integer","minimum":0},"high_availability":{"type":"boolean"}}},"AppStorageResource":{"type":"object","required":["id","hosted_app_id","app_environment_id","location_id","location_code","slug","name","kind","provider","region","access_mode","mount_path","capacity_gb","capacity_label","status","external_volume_id","attachment","ephemeral","provider_error","created_at","updated_at"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"app_environment_id":{"type":"string","nullable":true},"location_id":{"type":"string","nullable":true,"description":"Volume datacenter pin (volume kind only)"},"location_code":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["bucket","volume"]},"provider":{"type":"string","enum":["s3","tigris","nomad_csi","local_nvme","local_nvme_authority"],"description":"Storage backend. `local_nvme` is a directory on the node's own NVMe, created as a Nomad dynamic host volume — fast, node-local and EPHEMERAL: the platform may delete it at any time and it does not survive the loss of its node. Use it as a cache, never as a system of record. `local_nvme_authority` is a single-node, single-writer authority volume that refuses destructive repair. Node loss requires restoration from remote replication into a new volume."},"region":{"type":"string","nullable":true},"access_mode":{"type":"string","enum":["private","public","internal"],"description":"Object-store semantics only; ignored for volume resources"},"mount_path":{"type":"string","nullable":true},"capacity_gb":{"type":"integer","minimum":0,"nullable":true},"capacity_label":{"type":"string","nullable":true},"status":{"type":"string","enum":["provisioning","available","updating","failed","archived"]},"external_volume_id":{"type":"string","nullable":true,"description":"Nomad/CSI volume id assigned at provisioning"},"attachment":{"type":"object","nullable":true,"description":"Attachment readback: CSI publish state for nomad_csi, or the nodes carrying the directory for local_nvme. Nil until provisioned","properties":{"state":{"type":"string","enum":["attached","detached"]},"node_ids":{"type":"array","items":{"type":"string"}},"alloc_ids":{"type":"array","items":{"type":"string"}}}},"ephemeral":{"type":"boolean","description":"True when the contents may be deleted at any time and do not survive the loss of the underlying node. Ephemeral storage is a cache and must never hold a system of record."},"provider_error":{"type":"string","nullable":true,"description":"Last provisioning/teardown error from the storage provider"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"AppStorageResourceCreatePayload":{"type":"object","required":["slug","name","kind","provider","access_mode","status"],"properties":{"app_environment_id":{"type":"string"},"location_id":{"type":"string","description":"Required for volume kind. nomad_csi needs a CSI-plugin-enabled location; local_nvme works in any location and pins the volume to that datacenter"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["bucket","volume"]},"provider":{"type":"string","enum":["s3","tigris","nomad_csi","local_nvme","local_nvme_authority"],"description":"Storage backend. `local_nvme` volumes are node-local NVMe caches and are EPHEMERAL by contract — deletable at any time, gone with their node, and safe to lose. They ignore capacity_gb (it is advisory) and are not resizable. `local_nvme_authority` provisions one pinned single-writer directory and refuses destructive repair or empty replacement after node loss. Remote replication and fenced restoration are required for repository authority durability."},"region":{"type":"string"},"access_mode":{"type":"string","enum":["private","public","internal"]},"mount_path":{"type":"string"},"capacity_gb":{"type":"integer","minimum":0,"description":"Enforced for nomad_csi (minimum 10 GB). Advisory only for local_nvme, which claims no reservation"},"status":{"type":"string","enum":["provisioning","available","updating","failed","archived"]}}},"DeploymentServiceLogAllocation":{"type":"object","required":["allocation_id","app_service_id","service_name","app_environment_id","environment_name","app_release_id","release_version","task","status","details","unreachable_reason"],"properties":{"allocation_id":{"type":"string"},"app_service_id":{"type":"string","nullable":true},"service_name":{"type":"string"},"app_environment_id":{"type":"string","nullable":true},"environment_name":{"type":"string"},"app_release_id":{"type":"string","nullable":true},"release_version":{"type":"string","nullable":true},"task":{"type":"string","nullable":true},"status":{"type":"string"},"details":{"oneOf":[{"$ref":"#/components/schemas/NomadAllocationDetails"},{"type":"null"}]},"unreachable_reason":{"type":"string","nullable":true}}},"DeploymentServiceLogLine":{"type":"object","required":["id","index","allocation_id","allocation_label","service_name","task","stream","text"],"properties":{"id":{"type":"string"},"index":{"type":"integer","minimum":1},"allocation_id":{"type":"string"},"allocation_label":{"type":"string"},"service_name":{"type":"string"},"task":{"type":"string"},"stream":{"type":"string","enum":["stdout","stderr"]},"text":{"type":"string"}}},"NomadTaskEvent":{"type":"object","required":["type","display_message","message","time","fails_task","restart_reason","exit_code"],"properties":{"type":{"type":"string","nullable":true},"display_message":{"type":"string","nullable":true},"message":{"type":"string","nullable":true},"time":{"type":"string","nullable":true},"fails_task":{"type":"boolean","nullable":true},"restart_reason":{"type":"string","nullable":true},"exit_code":{"type":"integer","nullable":true}}},"NomadTaskState":{"type":"object","required":["name","state","failed","started_at","finished_at","last_restart","restarts","events"],"properties":{"name":{"type":"string"},"state":{"type":"string","nullable":true},"failed":{"type":"boolean","nullable":true},"started_at":{"type":"string","nullable":true},"finished_at":{"type":"string","nullable":true},"last_restart":{"type":"string","nullable":true},"restarts":{"type":"integer","minimum":0,"nullable":true},"events":{"type":"array","items":{"$ref":"#/components/schemas/NomadTaskEvent"}}}},"NomadAllocationDetails":{"type":"object","required":["allocation_id","name","namespace","job_id","task_group","node_id","node_name","datacenter","client_status","desired_status","desired_description","create_time","modify_time","task_states","resources","fetched_at"],"properties":{"allocation_id":{"type":"string"},"name":{"type":"string","nullable":true},"namespace":{"type":"string"},"job_id":{"type":"string","nullable":true},"task_group":{"type":"string","nullable":true},"node_id":{"type":"string","nullable":true},"node_name":{"type":"string","nullable":true},"datacenter":{"type":"string","nullable":true},"client_status":{"type":"string","nullable":true},"desired_status":{"type":"string","nullable":true},"desired_description":{"type":"string","nullable":true},"create_time":{"type":"string","nullable":true},"modify_time":{"type":"string","nullable":true},"task_states":{"type":"array","items":{"$ref":"#/components/schemas/NomadTaskState"}},"resources":{"type":"object","additionalProperties":true},"fetched_at":{"type":"string","format":"date-time"}}},"NomadAllocationLogs":{"type":"object","required":["allocation_id","task","type","namespace","origin","offset","logs","fetched_at"],"properties":{"allocation_id":{"type":"string"},"service":{"type":"string"},"environment":{"type":"string"},"location":{"type":"string","nullable":true},"task":{"type":"string"},"type":{"type":"string","enum":["stdout","stderr"]},"namespace":{"type":"string"},"origin":{"type":"string","enum":["start","end"]},"offset":{"type":"integer","minimum":0,"maximum":262144},"logs":{"type":"string"},"fetched_at":{"type":"string","format":"date-time"}}},"GitImportStatus":{"type":"object","required":["id","git_url","git_status","native_status","organization","slug","root_path","source_branch","target_branch"],"properties":{"id":{"type":"string"},"git_url":{"type":"string"},"organization":{"type":"string"},"slug":{"type":"string"},"root_path":{"type":"string"},"source_branch":{"type":"string"},"target_branch":{"type":"string"},"git_status":{"type":"string","enum":["receiving","durable"]},"native_status":{"type":"string","enum":["pending","running","ready","failed","canceled"]},"error":{"type":"string","nullable":true},"virtual_repository_id":{"type":"string","nullable":true}}},"GitImportTransfer":{"allOf":[{"$ref":"#/components/schemas/GitImportStatus"},{"type":"object","required":["transfer_token"],"properties":{"transfer_token":{"type":"string","readOnly":true,"description":"Short-lived credential scoped to this isolated Git source; never persist in logs."}}}]},"GithubAppInstallation":{"type":"object","required":["id","organization_id","installation_id","account_login","account_id","account_avatar_url","manage_access_url","status","permissions","permission_entries","installed_at","installed_at_label","suspended_at","suspended_at_label","created_at","created_at_label","updated_at","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"installation_id":{"type":"string"},"account_login":{"type":"string"},"account_id":{"type":"string","nullable":true},"account_avatar_url":{"type":"string","format":"uri","nullable":true},"manage_access_url":{"type":"string","format":"uri"},"status":{"type":"string","enum":["active","suspended"]},"permissions":{"type":"object","additionalProperties":true},"permission_entries":{"description":"GitHub's permission hash as a display-ready list, sorted by name.","type":"array","items":{"type":"object","required":["key","name","access"],"properties":{"key":{"type":"string"},"name":{"type":"string"},"access":{"type":"string"}}}},"installed_at":{"type":"string","format":"date-time","nullable":true},"installed_at_label":{"type":"string","nullable":true},"suspended_at":{"type":"string","format":"date-time","nullable":true},"suspended_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","nullable":true}}},"GithubCompletionHealth":{"type":"object","required":["status","repositories"],"properties":{"status":{"type":"string","enum":["healthy","waiting","stalled","needs_attention"]},"repositories":{"type":"array","items":{"type":"object","required":["stream_id","virtual_repository_id","virtual_repository_name","repository_slug","target_branch","state","active_item","oldest_blocked_item","waiting_item_count","last_error","last_confirmed_target_commit","preflight","affected_changes"],"properties":{"stream_id":{"type":"string"},"virtual_repository_id":{"type":"string"},"virtual_repository_name":{"type":"string"},"repository_slug":{"type":"string"},"github_repository":{"type":"string","nullable":true},"target_branch":{"type":"string"},"state":{"type":"string","enum":["healthy","waiting","stalled","needs_attention"]},"active_item":{"$ref":"#/components/schemas/GithubCompletionHealthItem"},"oldest_blocked_item":{"$ref":"#/components/schemas/GithubCompletionHealthItem"},"waiting_item_count":{"type":"integer","minimum":0},"last_error":{"type":"string","nullable":true},"last_woken_at":{"type":"string","format":"date-time","nullable":true},"lease_expires_at":{"type":"string","format":"date-time","nullable":true},"last_confirmed_target_commit":{"type":"object","nullable":true,"properties":{"native_commit_id":{"type":"string","nullable":true},"git_sha":{"type":"string","nullable":true}}},"preflight":{"type":"object","required":["details"],"properties":{"status":{"type":"string","enum":["passed","blocked","unavailable"],"nullable":true},"checked_at":{"type":"string","format":"date-time","nullable":true},"age_seconds":{"type":"integer","minimum":0,"nullable":true},"expires_at":{"type":"string","format":"date-time","nullable":true},"error":{"type":"string","nullable":true},"details":{"type":"object","additionalProperties":true,"properties":{"rulesets":{"type":"array","items":{"$ref":"#/components/schemas/GithubCompletionPreflightRuleset"}}}}}},"affected_changes":{"type":"array","items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer","minimum":1},"reference":{"type":"string","nullable":true},"title":{"type":"string"}}}}}}}}},"GithubCompletionHealthItem":{"type":"object","nullable":true,"required":["id","kind","sequence","stage"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change_land","native_sync"]},"sequence":{"type":"integer","minimum":1},"stage":{"type":"string"},"stage_since":{"type":"string","format":"date-time","nullable":true},"stage_age_seconds":{"type":"integer","minimum":0,"nullable":true},"blocked_from_state":{"type":"string","nullable":true},"last_error":{"type":"string","nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"change_title":{"type":"string","nullable":true}}},"GithubCompletionPreflightRuleset":{"type":"object","required":["id","name","enforcement","blocking_rules","app_bypass"],"properties":{"id":{"type":"integer"},"name":{"type":"string"},"enforcement":{"type":"string"},"blocking_rules":{"type":"array","items":{"type":"string"}},"app_bypass":{"type":"boolean"},"can_bypass":{"type":"string","nullable":true},"html_url":{"type":"string","nullable":true},"source_type":{"type":"string","nullable":true},"source":{"type":"string","nullable":true}}},"GithubCiRepository":{"type":"object","required":["id","organization_id","github_app_installation_id","ci_runner_pool_id","github_repository_id","repository_owner","repository_name","repository_full_name","default_branch","status","adoption_mode","check_name_prefix","permission_status","last_webhook_delivery_id","last_webhook_event","last_webhook_action","last_webhook_at","last_webhook_at_label","last_head_sha","last_ref","last_pull_request_number","webhook_delivery_count","last_compatibility_status","last_error_message","metadata","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_app_installation_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"github_repository_id":{"type":"string"},"repository_owner":{"type":"string"},"repository_name":{"type":"string"},"repository_full_name":{"type":"string"},"default_branch":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"adoption_mode":{"type":"string","enum":["shadow","reporting","required"]},"check_name_prefix":{"type":"string"},"permission_status":{"type":"string","enum":["unchecked","ok","missing"]},"last_webhook_delivery_id":{"type":"string","nullable":true},"last_webhook_event":{"type":"string","nullable":true},"last_webhook_action":{"type":"string","nullable":true},"last_webhook_at":{"type":"string","format":"date-time","nullable":true},"last_webhook_at_label":{"type":"string","nullable":true},"last_head_sha":{"type":"string","nullable":true},"last_ref":{"type":"string","nullable":true},"last_pull_request_number":{"type":"integer","nullable":true},"webhook_delivery_count":{"type":"integer"},"last_compatibility_status":{"type":"string","enum":["executable","warning","blocked","error"],"nullable":true},"last_error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"GithubCiCompatibilityReport":{"type":"object","required":["id","organization_id","github_ci_repository_id","ci_pipeline_id","ci_pipeline_run_id","workflow_path","source_sha","source_blob_sha","parser_version","workflow_name","event_name","event_action","ref_name","head_sha","pull_request_number","status","execution_allowed","required_secrets","runner_labels","referenced_actions","supported_features","diagnostics","warnings","errors","metadata","analyzed_at","analyzed_at_label","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_ci_repository_id":{"type":"string"},"ci_pipeline_id":{"type":"string","nullable":true},"ci_pipeline_run_id":{"type":"string","nullable":true},"workflow_path":{"type":"string"},"source_sha":{"type":"string"},"source_blob_sha":{"type":"string","nullable":true},"parser_version":{"type":"string"},"workflow_name":{"type":"string","nullable":true},"event_name":{"type":"string"},"event_action":{"type":"string","nullable":true},"ref_name":{"type":"string","nullable":true},"head_sha":{"type":"string","nullable":true},"pull_request_number":{"type":"integer","nullable":true},"status":{"type":"string","enum":["executable","warning","blocked","error"]},"execution_allowed":{"type":"boolean"},"required_secrets":{"type":"array","items":{"type":"string"}},"runner_labels":{"type":"array","items":{"type":"string"}},"referenced_actions":{"type":"array","items":{"type":"string"}},"supported_features":{"type":"object","additionalProperties":true},"diagnostics":{"type":"array","items":{"type":"object","required":["severity","code","path","message","metadata"],"properties":{"severity":{"type":"string","enum":["error","warning"]},"code":{"type":"string"},"path":{"type":"string"},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}}}},"warnings":{"type":"array","items":{"type":"object","required":["severity","code","path","message","metadata"],"properties":{"severity":{"type":"string","enum":["error","warning"]},"code":{"type":"string"},"path":{"type":"string"},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}}}},"errors":{"type":"array","items":{"type":"object","required":["severity","code","path","message","metadata"],"properties":{"severity":{"type":"string","enum":["error","warning"]},"code":{"type":"string"},"path":{"type":"string"},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}}}},"metadata":{"type":"object","additionalProperties":true},"analyzed_at":{"type":"string","format":"date-time"},"analyzed_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"GithubIntegrationSummary":{"type":"object","required":["id","account_login","account_avatar_url","connection_status","connection_status_label","imported_repositories_count","imported_repositories_count_label","health"],"properties":{"id":{"type":"string"},"account_login":{"type":"string"},"account_avatar_url":{"type":"string","format":"uri","nullable":true},"connection_status":{"type":"string","enum":["connected","unavailable","needs_attention","checking","could_not_verify","not_verified"]},"connection_status_label":{"type":"string"},"imported_repositories_count":{"type":"integer","minimum":0},"imported_repositories_count_label":{"type":"string"},"health":{"$ref":"#/components/schemas/GithubConnectionHealth"}}},"GithubIntegrationDetail":{"allOf":[{"$ref":"#/components/schemas/GithubIntegrationSummary"},{"type":"object","required":["manage_access_url","permission_entries"],"properties":{"manage_access_url":{"type":"string","format":"uri"},"permission_entries":{"type":"array","items":{"type":"object","required":["key","name","access"],"properties":{"key":{"type":"string"},"name":{"type":"string"},"access":{"type":"string"}}}}}}]},"GithubIntegrationRepository":{"type":"object","required":["id","slug","name","github_repository","health"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"github_repository":{"type":"string"},"health":{"$ref":"#/components/schemas/GithubRepositoryAccessHealth"}}},"GithubConnectionHealth":{"type":"object","required":["status","label","configured_count","accessible_count","affected_count","checked_at","checking","reason","generation","completed_generation","guidance"],"properties":{"status":{"type":"string","enum":["connected","needs_attention","checking","could_not_verify","not_verified"]},"label":{"type":"string"},"configured_count":{"type":"integer"},"accessible_count":{"type":"integer"},"affected_count":{"type":"integer"},"checked_at":{"type":"string","nullable":true},"checking":{"type":"boolean"},"reason":{"type":"string","nullable":true},"guidance":{"type":"string"},"generation":{"type":"integer"},"completed_generation":{"type":"integer"}}},"GithubRepositoryAccessHealth":{"type":"object","required":["state","reason","label","checked_at","repository","installation_id"],"properties":{"state":{"type":"string","enum":["unknown","available","unavailable"]},"reason":{"type":"string","nullable":true},"label":{"type":"string"},"checked_at":{"type":"string","nullable":true},"repository":{"type":"string","nullable":true},"installation_id":{"type":"string","nullable":true}}},"OrganizationImportBranchPolicy":{"type":"object","required":["default_trunk_bookmark"],"properties":{"default_trunk_bookmark":{"type":"string"}}},"GithubOnboardingState":{"type":"object","required":["installations","accounts","batches","active_batch_id","trunk_bookmark","default_trunk_bookmark","capabilities"],"properties":{"installations":{"type":"array","items":{"type":"object","required":["id","organization_id","installation_id","account_login","account_id","account_avatar_url","manage_access_url","status","permissions","permission_entries","installed_at","suspended_at","created_at","updated_at","installed_at_label","suspended_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"installation_id":{"type":"string"},"account_login":{"type":"string"},"account_id":{"type":"string","nullable":true},"account_avatar_url":{"type":"string","format":"uri","nullable":true},"manage_access_url":{"type":"string","format":"uri"},"status":{"type":"string","enum":["active","suspended"]},"permissions":{"type":"object","additionalProperties":{"type":"string"}},"permission_entries":{"type":"array","items":{"type":"object","required":["key","name","access"],"properties":{"key":{"type":"string"},"name":{"type":"string"},"access":{"type":"string"}}}},"installed_at":{"type":"string","format":"date-time","nullable":true},"suspended_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"installed_at_label":{"type":"string","nullable":true},"suspended_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}},"accounts":{"type":"array","items":{"type":"object","required":["github_app_installation_id","account_login","repositories"],"properties":{"github_app_installation_id":{"type":"string"},"account_login":{"type":"string"},"repositories":{"type":"array","items":{"type":"object","required":["owner","name","full_name","default_branch","visibility","private","empty","html_url","updated_at","already_imported"],"properties":{"owner":{"type":"string"},"name":{"type":"string"},"full_name":{"type":"string"},"default_branch":{"type":"string"},"visibility":{"type":"string"},"private":{"type":"boolean"},"empty":{"type":"boolean"},"html_url":{"type":"string","format":"uri"},"updated_at":{"type":"string","nullable":true},"already_imported":{"type":"boolean"}}}}}}},"batches":{"type":"array","maxItems":10,"items":{"$ref":"#/components/schemas/GithubImportBatch"}},"active_batch_id":{"type":"string","nullable":true,"description":"The batch the wizard's import step should resume — the most recent batch still working, else the most recent overall."},"trunk_bookmark":{"type":"string"},"default_trunk_bookmark":{"type":"string"},"capabilities":{"type":"object","required":["can_manage_connections"],"properties":{"can_manage_connections":{"type":"boolean"}}}}},"GithubImportBatch":{"type":"object","required":["id","github_app_installation_id","repository_import_session_id","account_login","status","complete","execution_mode","items","created_at","updated_at"],"properties":{"id":{"type":"string"},"github_app_installation_id":{"type":"string"},"repository_import_session_id":{"type":"string","nullable":true},"account_login":{"type":"string"},"status":{"type":"string","enum":["running","completed"]},"complete":{"type":"boolean","description":"Whether every item has settled and the wizard should treat the import as finished."},"execution_mode":{"type":"string","enum":["cloud","client"]},"items":{"type":"array","items":{"type":"object","required":["id","virtual_repository_id","sync_run_id","repository_owner","repository_name","repository_full_name","root_path","include_in_home","status","terminal","error_message","virtual_repository_slug","projection_status","phase","can_retry","resume_in_cli","sync_run","created_at","updated_at"],"properties":{"id":{"type":"string"},"virtual_repository_id":{"type":"string","nullable":true},"sync_run_id":{"type":"string","nullable":true},"repository_owner":{"type":"string"},"repository_name":{"type":"string"},"repository_full_name":{"type":"string"},"root_path":{"type":"string"},"include_in_home":{"type":"boolean"},"status":{"type":"string","enum":["queued","running","succeeded","failed","already_imported","invalid"]},"terminal":{"type":"boolean","description":"Whether this item has settled (no further work expected without a retry)."},"error_message":{"type":"string","nullable":true},"virtual_repository_slug":{"type":"string","nullable":true},"projection_status":{"type":"string","nullable":true},"phase":{"type":"string"},"can_retry":{"type":"boolean"},"resume_in_cli":{"type":"boolean"},"sync_run":{"allOf":[{"$ref":"#/components/schemas/VirtualRepositorySyncRun"},{"type":"object","properties":{"log_lines":{"type":"array","maxItems":400,"items":{"type":"object","required":["timestamp","level","message"],"properties":{"timestamp":{"type":"string"},"timestamp_label":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"}}}}}}],"nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"GithubReviewSummary":{"type":"object","properties":{"kind":{"type":"string","enum":["github_pr"]},"id":{"type":"string"},"number":{"type":"integer"},"title":{"type":"string"},"state":{"type":"string","enum":["open","closed","merged"]},"draft":{"type":"boolean"},"github_repository_id":{"type":"string"},"repository_full_name":{"type":"string"},"head_sha":{"type":"string","nullable":true},"base_branch":{"type":"string","nullable":true},"github_url":{"type":"string"},"internal_path":{"type":"string"},"submitted_at":{"type":"string"},"updated_at":{"type":"string"},"updated_at_label":{"type":"string"},"author":{"type":"object","properties":{"id":{"type":"string","nullable":true},"login":{"type":"string","nullable":true},"avatar_url":{"type":"string","nullable":true}},"required":["login"]},"labels":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"color":{"type":"string","nullable":true}},"required":["name","color"]}},"conversation_count":{"type":"integer"},"stack":{"type":"object","nullable":true,"properties":{"code":{"type":"string"},"name":{"type":"string"},"member_count":{"type":"integer"},"position":{"type":"integer"}},"required":["code","name","member_count","position"]},"head_branch":{"type":"string","nullable":true}},"required":["kind","id","number","title","state","draft","github_repository_id","repository_full_name","head_sha","base_branch","github_url","internal_path","submitted_at","updated_at","updated_at_label","author","labels","conversation_count","stack","head_branch"]},"GithubReviewEntry":{"type":"object","properties":{"id":{"type":"string"},"node_id":{"type":"string","nullable":true},"kind":{"type":"string"},"body":{"type":"string"},"title":{"type":"string"},"author":{"type":"object","properties":{"id":{"type":"string","nullable":true},"login":{"type":"string","nullable":true},"avatar_url":{"type":"string","nullable":true}},"required":["login"]},"created_at":{"type":"string","nullable":true},"updated_at":{"type":"string","nullable":true},"state":{"type":"string"},"path":{"type":"string"},"patch":{"type":"string"},"previous_path":{"type":"string"},"sha":{"type":"string"},"additions":{"type":"integer"},"deletions":{"type":"integer"},"partial":{"type":"boolean"},"resolved":{"type":"boolean"},"outdated":{"type":"boolean"},"line":{"type":"integer","nullable":true},"side":{"type":"string","nullable":true},"next_cursor":{"type":"string","nullable":true},"reactions":{"type":"array","items":{"type":"string"}},"children":{"type":"array","items":{"$ref":"#/components/schemas/GithubReviewEntry"}},"can_edit":{"type":"boolean"},"can_delete":{"type":"boolean"},"check_id":{"type":"string","nullable":true},"parent_id":{"type":"string","nullable":true},"start_line":{"type":"integer","nullable":true},"run_id":{"type":"string"},"job_id":{"type":"string"},"log":{"type":"string"},"can_rerun":{"type":"boolean"},"can_cancel":{"type":"boolean"}},"required":["id","kind"]},"GithubReviewSync":{"type":"object","properties":{"error":{"type":"string","nullable":true},"complete":{"type":"boolean"},"updated_at":{"type":"string","nullable":true},"team_reviews_complete":{"type":"boolean"}},"required":["error","complete","updated_at","team_reviews_complete"]},"GithubReviewPage":{"type":"object","properties":{"pull_request":{"allOf":[{"$ref":"#/components/schemas/GithubReviewSummary"},{"type":"object","properties":{"body":{"type":"string"},"reviewers":{"type":"array","items":{"type":"string"}},"assignees":{"type":"array","items":{"type":"string"}},"linked_change_path":{"type":"string","nullable":true}},"required":["body","reviewers","assignees","linked_change_path"]}]},"content":{"type":"object","properties":{"section":{"type":"string"},"entries":{"type":"array","items":{"$ref":"#/components/schemas/GithubReviewEntry"}},"next_page":{"type":"integer","nullable":true},"next_cursor":{"type":"string","nullable":true},"partial":{"type":"boolean"},"thread_id":{"type":"string","nullable":true},"check_id":{"type":"string","nullable":true},"run_id":{"type":"string","nullable":true},"job_id":{"type":"string","nullable":true}},"required":["section","entries","next_page","next_cursor","partial"]},"capabilities":{"type":"object","properties":{"write":{"type":"boolean"},"identity":{"type":"string"}},"required":["write","identity"]},"fetched_at":{"type":"string"},"transcript_paths":{"type":"array","items":{"type":"object","required":["label","path"],"properties":{"label":{"type":"string"},"path":{"type":"string"}}}},"stack":{"$ref":"#/components/schemas/GithubReviewStack"}},"required":["pull_request","content","capabilities","fetched_at","transcript_paths","stack"]},"GithubReviewMutation":{"type":"object","properties":{"operation_key":{"type":"string"},"action_name":{"type":"string","enum":["comment","inline","reply","review","edit_comment","delete_comment","edit_inline","delete_inline","resolve","unresolve","add_label","remove_label","rerun","cancel_run"]},"body":{"type":"string"},"expected_head_sha":{"type":"string"},"event":{"type":"string","enum":["COMMENT","APPROVE","REQUEST_CHANGES"]},"path":{"type":"string"},"line":{"type":"integer"},"side":{"type":"string","enum":["LEFT","RIGHT"]},"start_line":{"type":"integer"},"start_side":{"type":"string"},"comment_id":{"type":"string"},"thread_id":{"type":"string"},"label":{"type":"string"},"run_id":{"type":"string"},"comments":{"type":"array","maxItems":100,"items":{"type":"object","required":["path","line","side","body"],"properties":{"path":{"type":"string"},"line":{"type":"integer","minimum":1},"side":{"type":"string","enum":["LEFT","RIGHT"]},"body":{"type":"string","minLength":1,"maxLength":65000}}}}},"required":["operation_key","action_name"]},"GithubReviewOperation":{"type":"object","properties":{"status":{"type":"string","enum":["pending","sent","failed","unknown"]},"error":{"type":"string","nullable":true},"result":{"type":"object","nullable":true,"properties":{"id":{"type":"string","nullable":true},"node_id":{"type":"string","nullable":true}}}},"required":["status","error","result"]},"GithubReviewStack":{"type":"object","properties":{"status":{"type":"string","enum":["available","unavailable"]},"stacks":{"type":"array","items":{"type":"object","properties":{"number":{"type":"integer"},"base_branch":{"type":"string","nullable":true},"entries":{"type":"array","items":{"type":"object","properties":{"number":{"type":"integer"},"title":{"type":"string"},"state":{"type":"string"},"draft":{"type":"boolean"},"current":{"type":"boolean"},"source":{"type":"string"},"path":{"type":"string"}},"required":["number","title","state","draft","current","source","path"]}}},"required":["number","base_branch","entries"]}}},"required":["status","stacks"]},"GitlabIntegration":{"type":"object","required":["id","username","status","name","avatar_url"],"properties":{"id":{"type":"string"},"username":{"type":"string"},"status":{"type":"string"},"name":{"type":"string","nullable":true},"avatar_url":{"type":"string","nullable":true}}},"GitlabProject":{"type":"object","required":["project_id","name","path_with_namespace","default_branch","web_url","visibility","unavailable_reason","connection_id","import_status"],"properties":{"project_id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"default_branch":{"type":"string","nullable":true},"web_url":{"type":"string"},"visibility":{"type":"string"},"unavailable_reason":{"type":"string","nullable":true},"connection_id":{"type":"string","nullable":true},"import_status":{"type":"string","nullable":true}}},"GitlabConnection":{"type":"object","required":["id","gitlab_project_id","path_with_namespace","source_branch","repo_slug","status","error_message","web_url","sync_status","last_synced_at","run_status","import_status","import_terminal","can_retry","sync_run"],"properties":{"id":{"type":"string"},"gitlab_project_id":{"type":"integer"},"path_with_namespace":{"type":"string"},"source_branch":{"type":"string"},"repo_slug":{"type":"string"},"status":{"type":"string"},"error_message":{"type":"string","nullable":true},"web_url":{"type":"string"},"sync_status":{"type":"string","nullable":true},"last_synced_at":{"type":"string","nullable":true},"run_status":{"type":"string","nullable":true},"integration_id":{"type":"string"},"import_status":{"type":"string","enum":["queued","running","succeeded","failed"]},"import_terminal":{"type":"boolean"},"can_retry":{"type":"boolean"},"sync_run":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/VirtualRepositorySyncRun"}]}}},"GitlabPage":{"type":"object","required":["organization","configured","integrations","selected_integration_id","projects","next_page","connections"],"properties":{"organization":{"type":"object","required":["id","slug","name"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}},"configured":{"type":"boolean"},"integrations":{"type":"array","items":{"$ref":"#/components/schemas/GitlabIntegration"}},"selected_integration_id":{"type":"string","nullable":true},"projects":{"type":"array","items":{"$ref":"#/components/schemas/GitlabProject"}},"next_page":{"type":"integer","nullable":true},"connections":{"type":"array","items":{"$ref":"#/components/schemas/GitlabConnection"}},"inventory_error":{"type":"string","nullable":true}}},"GitlabAuthorizationUrl":{"type":"object","required":["authorization_url"],"properties":{"authorization_url":{"type":"string"}}},"RepositoryImportPage":{"type":"object","required":["github_installations","gitlab_integrations","can_manage_connections","gitlab_configured","gitlab_imports","github_imports","organization_id","repositories","inventory_errors"],"properties":{"github_installations":{"type":"array","items":{"$ref":"#/components/schemas/GithubAppInstallation"}},"gitlab_integrations":{"type":"array","items":{"$ref":"#/components/schemas/GitlabIntegration"}},"can_manage_connections":{"type":"boolean"},"gitlab_configured":{"type":"boolean"},"gitlab_imports":{"type":"array","items":{"$ref":"#/components/schemas/GitlabConnection"}},"github_imports":{"type":"array","items":{"$ref":"#/components/schemas/GithubImportBatchSummary"}},"organization_id":{"type":"string"},"repositories":{"type":"array","items":{"$ref":"#/components/schemas/RepositoryImportRepository"}},"inventory_errors":{"type":"array","items":{"type":"string"}}}},"GithubImportBatchSummary":{"type":"object","required":["id","account_login","complete","import_outcome"],"properties":{"id":{"type":"string"},"account_login":{"type":"string"},"complete":{"type":"boolean"},"import_outcome":{"type":"string","enum":["success","attention"]}}},"RepositoryImportRepository":{"type":"object","required":["id","provider","account_id","account_name","name","full_name","visibility","owner","default_branch","unavailable_reason","project_id","connection_id"],"properties":{"id":{"type":"string"},"provider":{"type":"string","enum":["github","gitlab"]},"account_id":{"type":"string"},"account_name":{"type":"string"},"name":{"type":"string"},"full_name":{"type":"string"},"visibility":{"type":"string"},"owner":{"type":"string","nullable":true},"default_branch":{"type":"string","nullable":true},"unavailable_reason":{"type":"string","nullable":true},"project_id":{"type":"integer","nullable":true},"connection_id":{"type":"string","nullable":true}}},"AppDomainCreatePayload":{"type":"object","required":["app_service_id","hostname","kind"],"properties":{"app_service_id":{"type":"string"},"app_environment_id":{"type":"string"},"hostname":{"type":"string"},"kind":{"type":"string","enum":["primary","redirect","preview","internal"]},"tls_status":{"type":"string","enum":["pending","active","failed"]},"dns_status":{"type":"string","enum":["pending","configured","failed"]},"redirect_to":{"type":"string"}}},"AppConfigVariableCreatePayload":{"type":"object","required":["scope_kind","key","value_kind","exposed_to_build"],"properties":{"app_environment_id":{"type":"string"},"app_service_id":{"type":"string"},"scope_kind":{"type":"string","enum":["app","environment","service"]},"key":{"type":"string"},"value":{"type":"string"},"value_kind":{"type":"string","enum":["plain","secret","reference"]},"description":{"type":"string"},"exposed_to_build":{"type":"boolean"}}},"AppConfigVariableRotatePayload":{"type":"object","required":["value"],"properties":{"value":{"type":"string"},"value_kind":{"type":"string","enum":["plain","secret","reference"]}}},"AppDomainPathRule":{"type":"object","required":["id","path_prefix","status","action_kind","last_error","app_service_id","backend_ref","app_service_endpoint_id","created_at","updated_at"],"properties":{"id":{"type":"string"},"path_prefix":{"type":"string"},"status":{"type":"string","enum":["pending","active","failed","disabled"]},"action_kind":{"type":"string","enum":["proxy","redirect","fixed_response","external"]},"last_error":{"type":"string","nullable":true},"app_service_id":{"type":"string","nullable":true},"backend_ref":{"type":"string","nullable":true},"app_service_endpoint_id":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"AppDomainPathRuleUpsertPayload":{"type":"object","required":["path_prefix","app_service_id"],"properties":{"path_prefix":{"type":"string"},"app_service_id":{"type":"string"},"app_service_endpoint_id":{"type":"string"}}},"HostedAppLocationPayload":{"type":"object","required":["location_id"],"properties":{"location_id":{"type":"string"}}},"ImageRepository":{"type":"object","required":["id","organization_id","hosted_app_id","slug","name","provider_kind","repository_path","visibility","status","auth_configured","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"hosted_app_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"provider_kind":{"type":"string","enum":["oci","docker_registry"]},"repository_path":{"type":"string"},"visibility":{"type":"string","enum":["private","internal","public"]},"status":{"type":"string","enum":["active","paused","archived"]},"auth_configured":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"ImageRepositoryCreatePayload":{"type":"object","required":["slug","name"],"properties":{"hosted_app_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"provider_kind":{"type":"string","enum":["oci","docker_registry"]},"repository_path":{"type":"string"},"visibility":{"type":"string","enum":["private","internal","public"]},"status":{"type":"string","enum":["active","paused","archived"]},"registry_auth_token":{"type":"string"}}},"ImageRepositoryContractPayload":{"type":"object","required":["operation","reference"],"properties":{"operation":{"type":"string","enum":["push","pull"]},"reference":{"type":"string"},"ttl_seconds":{"type":"integer","minimum":1}}},"ImageRepositoryContractAuth":{"type":"object","required":["username","required"],"properties":{"username":{"type":"string"},"required":{"type":"boolean"},"token_hint":{"type":"string","nullable":true},"login_command":{"type":"string","nullable":true},"token_realm":{"type":"string","nullable":true},"service":{"type":"string","nullable":true},"scope":{"type":"string","nullable":true}}},"ImageRepositoryContract":{"type":"object","required":["provider","operation","repository_path","reference","expires_in_seconds"],"properties":{"provider":{"type":"string"},"operation":{"type":"string","enum":["push","pull"]},"repository_path":{"type":"string"},"reference":{"type":"string"},"push_registry_host":{"type":"string"},"pull_registry_host":{"type":"string"},"push_image_reference":{"type":"string"},"pull_image_reference":{"type":"string"},"image_reference":{"type":"string"},"auth":{"$ref":"#/components/schemas/ImageRepositoryContractAuth"},"expires_in_seconds":{"type":"integer","minimum":1}}},"ImageRepositoryContractResponse":{"type":"object","required":["image_repository","contract"],"properties":{"image_repository":{"$ref":"#/components/schemas/ImageRepository"},"contract":{"$ref":"#/components/schemas/ImageRepositoryContract"}}},"ImageRepositoryTagsResponse":{"type":"object","required":["image_repository","tags","name","registry_url"],"properties":{"image_repository":{"$ref":"#/components/schemas/ImageRepository"},"tags":{"type":"array","items":{"type":"string"}},"name":{"type":"string"},"registry_url":{"type":"string","format":"uri"}}},"InboxPagination":{"type":"object","required":["page","pages","count","limit"],"properties":{"page":{"type":"integer"},"pages":{"type":"integer"},"count":{"type":"integer"},"limit":{"type":"integer"}}},"InboxNotification":{"allOf":[{"oneOf":[{"$ref":"#/components/schemas/WorkspaceActivityReviewRequestedItem"},{"$ref":"#/components/schemas/WorkspaceActivityChangesRequestedItem"},{"$ref":"#/components/schemas/WorkspaceActivityGithubAccessItem"}]},{"type":"object","required":["resolved_at","dismissed_at","read_at"],"properties":{"read_at":{"type":["string","null"],"format":"date-time"},"resolved_at":{"type":["string","null"],"format":"date-time"},"dismissed_at":{"type":["string","null"],"format":"date-time"}}}]},"InboxEvent":{"oneOf":[{"$ref":"#/components/schemas/WorkspaceActivityLandingItem"},{"$ref":"#/components/schemas/WorkspaceActivityDeploymentItem"},{"$ref":"#/components/schemas/WorkspaceActivityGithubImportItem"}]},"InboxPage":{"type":"object","required":["state","kind","notifications","notifications_pagination","unresolved_notification_count","live_activity","live_pagination","recent_events","events_pagination","recent_window_hours","onboarding"],"properties":{"state":{"type":"string","enum":["needs_action","handled"]},"kind":{"type":["string","null"],"enum":["review_requested","changes_requested",null]},"notifications":{"type":"array","items":{"$ref":"#/components/schemas/InboxNotification"}},"notifications_pagination":{"$ref":"#/components/schemas/InboxPagination"},"unresolved_notification_count":{"type":"integer"},"live_activity":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceActivityLiveItem"}},"live_pagination":{"$ref":"#/components/schemas/InboxPagination"},"recent_events":{"type":"array","items":{"$ref":"#/components/schemas/InboxEvent"}},"events_pagination":{"$ref":"#/components/schemas/InboxPagination"},"recent_window_hours":{"type":"integer"},"onboarding":{"type":"object","required":["show_source_setup"],"properties":{"show_source_setup":{"type":"boolean"}}}}},"NowMergeQueueItem":{"type":"object","required":["id","kind","state","checks_status","repo","change","github_pr_number","member_count","member_count_label","queue_rank","queue_length","created_at","updated_at","completed_at","completed_at_label","recovery"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"repo":{"type":"object","required":["slug","name","target_branch"],"properties":{"slug":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"target_branch":{"type":"string","nullable":true}}},"change":{"nullable":true,"type":"object","required":["id","number","reference","title","author"],"properties":{"id":{"type":"string"},"number":{"type":"integer","nullable":true},"reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"nullable":true,"type":"object","required":["id"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"picture_url":{"type":"string"}}}}},"github_pr_number":{"type":"integer","nullable":true},"member_count":{"type":"integer","nullable":true},"member_count_label":{"type":"string","nullable":true},"queue_rank":{"type":"integer","nullable":true},"queue_length":{"type":"integer"},"created_at":{"type":"string","nullable":true},"updated_at":{"type":"string","nullable":true},"completed_at":{"type":"string","nullable":true},"completed_at_label":{"type":"string","nullable":true},"recovery":{"nullable":true,"type":"object","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}}}},"OpenSourcePublishContract":{"type":"object","required":["id","organization_id","repository_id","repository_slug","virtual_repository_id","name","folder_path","source_bookmark","target_repository_owner","target_repository_name","target_repository_full_name","target_branch","target_visibility","target_remote_url","provision_mode","divergence_policy","divergence_state","divergence_detected_at","divergence_detected_at_label","divergence_remote_sha","diverged","status","auto_sync_enabled","acknowledged_public_exposure","acknowledged_at","acknowledged_at_label","github_app_installation_id","github_app_account_login","publishable","baseline_source_commit_id","baseline_source_change_id","baseline_source_git_sha","baseline_remote_sha","last_sync_run_id","last_synced_at","last_synced_at_label","last_error_message","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"virtual_repository_id":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"folder_path":{"type":"string"},"source_bookmark":{"type":"string"},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"target_visibility":{"type":"string","enum":["private","public"]},"target_remote_url":{"type":"string"},"provision_mode":{"type":"string","enum":["create","attach","create_or_attach"]},"divergence_policy":{"type":"string","enum":["block","overwrite"]},"divergence_state":{"type":"string","enum":["clean","diverged"]},"divergence_detected_at":{"type":"string","format":"date-time","nullable":true},"divergence_detected_at_label":{"type":"string","nullable":true},"divergence_remote_sha":{"type":"string","nullable":true},"diverged":{"type":"boolean"},"status":{"type":"string","enum":["active","paused","archived"]},"auto_sync_enabled":{"type":"boolean"},"acknowledged_public_exposure":{"type":"boolean"},"acknowledged_at":{"type":"string","format":"date-time","nullable":true},"acknowledged_at_label":{"type":"string","nullable":true},"github_app_installation_id":{"type":"string","nullable":true},"github_app_account_login":{"type":"string","nullable":true},"publishable":{"type":"boolean"},"baseline_source_commit_id":{"type":"string","nullable":true},"baseline_source_change_id":{"type":"string","nullable":true},"baseline_source_git_sha":{"type":"string","nullable":true},"baseline_remote_sha":{"type":"string","nullable":true},"last_sync_run_id":{"type":"string","nullable":true},"last_synced_at":{"type":"string","format":"date-time","nullable":true},"last_synced_at_label":{"type":"string","nullable":true},"last_error_message":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"User":{"type":"object","required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string","format":"email"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true},"superadmin":{"type":"boolean"}}},"AuthSession":{"allOf":[{"$ref":"#/components/schemas/User"},{"type":"object","required":["commit_author_email","github_prs_authored_by_change_author","github_pr_user_authorization_connected","github_pr_user_authorization_login","organizations","active_organization","pending_organization_invitation_count","pending_organization_invitation_count_label","enabled_features"],"properties":{"commit_author_email":{"type":"string","format":"email"},"github_prs_authored_by_change_author":{"type":"boolean"},"github_pr_user_authorization_connected":{"type":"boolean"},"github_pr_user_authorization_login":{"type":"string","nullable":true},"organizations":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationSummary"}},"active_organization":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSummary"},{"type":"null"}]},"pending_organization_invitation_count":{"type":"integer","minimum":0},"pending_organization_invitation_count_label":{"type":"string"},"enabled_features":{"type":"array","items":{"type":"string","enum":["knowledge_ui","deployments_ui","sites_ui","artefacts_ui","automations_ui","signals_ui","registry_ui","secrets_ui","hosting_cdn_ui","billing"]}},"api_token":{"type":"string"},"api_base_url":{"type":"string","format":"uri"}}}]},"OrganizationMember":{"type":"object","required":["id","role","is_self","user","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"role":{"type":"string","enum":["owner","admin","member"]},"is_self":{"type":"boolean"},"user":{"$ref":"#/components/schemas/User"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"OrganizationInvitation":{"type":"object","required":["id","email","role","status","invite_url","organization","invited_by_user","accepted_by_user","expires_at","expires_at_label","accepted_at","revoked_at","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["owner","admin","member"]},"status":{"type":"string","enum":["pending","accepted","revoked","expired"]},"invite_url":{"type":"string","nullable":true},"organization":{"type":"object","required":["id","slug","name"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}},"invited_by_user":{"oneOf":[{"$ref":"#/components/schemas/User"},{"type":"null"}]},"accepted_by_user":{"oneOf":[{"$ref":"#/components/schemas/User"},{"type":"null"}]},"expires_at":{"type":"string","format":"date-time","nullable":true},"expires_at_label":{"type":"string","nullable":true},"accepted_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true},"email_delivery_status":{"type":"string"}}},"ImageUploadPayload":{"type":"object","required":["image"],"properties":{"image":{"type":"string","format":"binary"}}},"OrganizationCreatePayload":{"type":"object","required":["slug","name"],"properties":{"slug":{"type":"string"},"name":{"type":"string"}}},"OrganizationUpdatePayload":{"type":"object","required":["slug","name"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"github_prs_authored_by_change_author":{"type":"boolean"},"allow_author_self_review_on_home_repository":{"type":"boolean"},"allow_author_self_review_on_main_repo":{"type":"boolean"}}},"OrganizationProductActivationPayload":{"type":"object","required":["product"],"properties":{"product":{"type":"string","enum":["transcripts","vcs"]}}},"OrganizationMemberUpdatePayload":{"type":"object","required":["role"],"properties":{"role":{"type":"string","enum":["owner","admin","member"]}}},"OrganizationInvitationCreatePayload":{"type":"object","required":["email","role"],"properties":{"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["owner","admin","member"]}}},"ActiveOrganizationPayload":{"type":"object","required":["organization_id"],"properties":{"organization_id":{"type":"string"}}},"CliLoginCompletePayload":{"type":"object","required":["login_id"],"properties":{"login_id":{"type":"string"}}},"ServiceNetworkSummary":{"description":"How a service is reachable, counted rather than listed. Only live instances are counted: a terminated one answers on nothing.","type":"object","required":["endpoints","private_addresses","network_peers"],"properties":{"endpoints":{"type":"integer","minimum":0},"private_addresses":{"type":"integer","minimum":0},"network_peers":{"type":"integer","minimum":0}}},"DeploymentScopeHealth":{"description":"The rolled-up state of the selected scope. `control_state` is the one word the dashboard leads with, and which signal wins is a deployment rule rather than something to re-derive from the counts beside it.","type":"object","required":["control_state","running_instances","total_instances","unhealthy_instances","active_rollouts","active_deployments","failed_deployments"],"properties":{"control_state":{"type":"string","enum":["degraded","deploying","healthy","idle"]},"running_instances":{"type":"integer","minimum":0},"total_instances":{"type":"integer","minimum":0},"unhealthy_instances":{"type":"integer","minimum":0},"active_rollouts":{"type":"integer","minimum":0},"active_deployments":{"type":"integer","minimum":0},"failed_deployments":{"type":"integer","minimum":0}}},"DeploymentScopeNomad":{"description":"The Nomad footprint of the selected scope, deduplicated.","type":"object","required":["allocation_count","job_count","deployment_count","datacenters","task_names"],"properties":{"allocation_count":{"type":"integer","minimum":0},"job_count":{"type":"integer","minimum":0},"deployment_count":{"type":"integer","minimum":0},"datacenters":{"type":"array","items":{"type":"string"}},"task_names":{"type":"array","items":{"type":"string"}}}},"ServiceReleaseCaption":{"description":"The two fields a lane or card prints for its newest release, not the release resource: that one answers a release page's questions and costs several reads per row to build.","type":"object","required":["version","status"],"properties":{"version":{"type":"string"},"status":{"type":"string"}}},"DetailsInstanceRef":{"description":"One allocation, named so the panel can identify it.","type":"object","required":["id","label","status"],"properties":{"id":{"type":"string"},"label":{"type":"string"},"status":{"type":"string"}}},"DetailsEnvironmentView":{"description":"One stage of one service. `status` and `updated_label` are answers rather than inputs — which of the rollout, release, desired state and stage decides the badge is applied once, in Rails.","type":"object","required":["environment","status","desired_version","instance_count","updated_label","instances"],"properties":{"environment":{"$ref":"#/components/schemas/AppEnvironment"},"status":{"type":"string"},"desired_version":{"type":"string","nullable":true},"instance_count":{"type":"integer","minimum":0},"updated_label":{"type":"string","nullable":true},"instances":{"type":"array","items":{"$ref":"#/components/schemas/DetailsInstanceRef"}}}},"DetailsServiceView":{"description":"One lane on the Details dashboard.","type":"object","required":["service","status","runtime_summary","capacity","network","latest_release","latest_deployment","signal","endpoints","environment_views"],"properties":{"service":{"$ref":"#/components/schemas/AppService"},"status":{"type":"string"},"runtime_summary":{"$ref":"#/components/schemas/EnvironmentRuntimeSummary"},"capacity":{"$ref":"#/components/schemas/ServiceCapacity"},"network":{"$ref":"#/components/schemas/ServiceNetworkSummary"},"latest_release":{"oneOf":[{"$ref":"#/components/schemas/ServiceReleaseCaption"},{"type":"null"}]},"latest_deployment":{"oneOf":[{"type":"object","required":["status","source_ref","commit_sha"],"properties":{"status":{"type":"string"},"source_ref":{"type":"string","nullable":true},"commit_sha":{"type":"string","nullable":true}}},{"type":"null"}]},"signal":{"type":"object","required":["value","detail"],"properties":{"value":{"type":"string"},"detail":{"type":"string","nullable":true}}},"endpoints":{"type":"array","items":{"type":"string"}},"environment_views":{"type":"array","items":{"$ref":"#/components/schemas/DetailsEnvironmentView"}}}},"DetailsDeploymentRow":{"description":"The queue table's row and the action bar's subject. Not AppDeployment, which answers a deployment page's questions and reads its operation once per row.","type":"object","required":["id","app_service_id","app_environment_id","status","is_rollback","source_ref","commit_sha","updated_label"],"properties":{"id":{"type":"string"},"app_service_id":{"type":"string"},"app_environment_id":{"type":"string"},"status":{"type":"string"},"is_rollback":{"type":"boolean"},"source_ref":{"type":"string","nullable":true},"commit_sha":{"type":"string","nullable":true},"updated_label":{"type":"string","nullable":true}}},"DetailsReleaseRow":{"description":"The release table's row, with its newest rollout folded in. Not AppRelease, which loads the release's command execution, its rollouts and its service once per row to answer questions this table does not ask.","type":"object","required":["id","app_service_id","app_environment_id","version","status","rollout","nomad_job_id","nomad_deployment_id","nomad_eval_id","rendered_job_spec_digest","updated_label"],"properties":{"id":{"type":"string"},"app_service_id":{"type":"string"},"app_environment_id":{"type":"string"},"version":{"type":"string"},"status":{"type":"string"},"rollout":{"oneOf":[{"type":"object","required":["strategy","target_percentage","status"],"properties":{"strategy":{"type":"string"},"target_percentage":{"type":"integer","minimum":0},"status":{"type":"string"}}},{"type":"null"}]},"nomad_job_id":{"type":"string","nullable":true},"nomad_deployment_id":{"type":"string","nullable":true},"nomad_eval_id":{"type":"string","nullable":true},"rendered_job_spec_digest":{"type":"string","nullable":true},"updated_label":{"type":"string","nullable":true}}},"MetricsServiceView":{"description":"One card on the metrics grid. `status` is the service's rolled-up state, the same projection the architecture canvas badges its nodes with.","type":"object","required":["service","status","runtime_summary","capacity","network","latest_release"],"properties":{"service":{"$ref":"#/components/schemas/AppService"},"status":{"type":"string"},"runtime_summary":{"$ref":"#/components/schemas/EnvironmentRuntimeSummary"},"capacity":{"$ref":"#/components/schemas/ServiceCapacity"},"network":{"$ref":"#/components/schemas/ServiceNetworkSummary"},"latest_release":{"oneOf":[{"$ref":"#/components/schemas/ServiceReleaseCaption"},{"type":"null"}]}}},"DeploymentMetricsSummary":{"description":"The counter strip above the metrics grid. Each figure is a total for the selected scope, counted in SQL rather than measured against a recent window.","type":"object","required":["service_count","environment_count","desired_state_count","deployment_count","active_release_count","in_flight_release_count","running_instance_count","unhealthy_instance_count","nomad_job_count","nomad_deployment_count","nomad_eval_count","nomad_allocation_count"],"properties":{"service_count":{"type":"integer","minimum":0},"environment_count":{"type":"integer","minimum":0},"desired_state_count":{"type":"integer","minimum":0},"deployment_count":{"type":"integer","minimum":0},"active_release_count":{"type":"integer","minimum":0},"in_flight_release_count":{"type":"integer","minimum":0},"running_instance_count":{"type":"integer","minimum":0},"unhealthy_instance_count":{"type":"integer","minimum":0},"nomad_job_count":{"type":"integer","minimum":0},"nomad_deployment_count":{"type":"integer","minimum":0},"nomad_eval_count":{"type":"integer","minimum":0},"nomad_allocation_count":{"type":"integer","minimum":0}}},"ArchitectureServiceView":{"description":"One node on the architecture canvas. Everything but `desired_state` is a fact about the service across every stage; `desired_state` is its state in the stage the workspace selected, which is where the node's image tag comes from.","type":"object","required":["service","status","runtime_summary","capacity","region_footprints","nomad","rollout","desired_state","latest_release","deployed_url"],"properties":{"service":{"$ref":"#/components/schemas/AppService"},"status":{"type":"string"},"runtime_summary":{"$ref":"#/components/schemas/EnvironmentRuntimeSummary"},"capacity":{"$ref":"#/components/schemas/ServiceCapacity"},"region_footprints":{"type":"array","items":{"$ref":"#/components/schemas/ServiceRegionFootprint"}},"nomad":{"type":"object","required":["namespace","region","datacenter","latest_job_id"],"properties":{"namespace":{"type":"string"},"region":{"type":"string","nullable":true},"datacenter":{"type":"string","nullable":true},"latest_job_id":{"type":"string","nullable":true}}},"rollout":{"oneOf":[{"type":"object","required":["strategy","regions_in_progress","waiting_on"],"properties":{"strategy":{"type":"string","enum":["health_gated","burst"]},"regions_in_progress":{"type":"integer","minimum":0},"waiting_on":{"type":"string","nullable":true}}},{"type":"null"}]},"desired_state":{"oneOf":[{"$ref":"#/components/schemas/AppDesiredState"},{"type":"null"}]},"latest_release":{"oneOf":[{"type":"object","required":["id","version","source_ref","status"],"properties":{"id":{"type":"string"},"version":{"type":"string"},"source_ref":{"type":"string","nullable":true},"status":{"type":"string"}}},{"type":"null"}]},"deployed_url":{"type":"string","nullable":true}}},"DeploymentOrganizationMap":{"description":"Every hosted app, static site, datacenter and edge region in the organization, with the placement topology and live counts each service is running. Drawn by the Architecture view when no app is selected, and by the Sites view.","type":"object","required":["datacenters","edge_regions","apps","static_sites"],"properties":{"datacenters":{"type":"array","items":{"type":"object","required":["code","name","nomad_datacenter"],"properties":{"code":{"type":"string"},"name":{"type":"string"},"nomad_datacenter":{"type":"string"}}}},"edge_regions":{"type":"array","items":{"type":"object","required":["id","slug","display_name","status","location_code"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"display_name":{"type":"string"},"status":{"type":"string"},"location_code":{"type":"string","nullable":true}}}},"apps":{"type":"array","items":{"type":"object","required":["id","slug","name","status","repository_slug","health","services","data_resources","storage_resources","service_bindings"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"repository_slug":{"type":"string"},"health":{"type":"object","required":["running","desired","degraded","failed"],"properties":{"running":{"type":"integer"},"desired":{"type":"integer"},"degraded":{"type":"integer"},"failed":{"type":"integer"}}},"services":{"type":"array","items":{"type":"object","required":["id","name","kind","status","publicly_accessible","protection","exposure","datacenter_codes","health","placements","urls","internal_hostname"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"publicly_accessible":{"type":"boolean"},"protection":{"type":"string"},"exposure":{"type":"string","enum":["exposed","org_protected","private"]},"datacenter_codes":{"type":"array","items":{"type":"string"}},"health":{"type":"object","required":["running","desired"],"properties":{"running":{"type":"integer"},"desired":{"type":"integer"}}},"placements":{"type":"array","items":{"type":"object","required":["id","environment_id","environment_name","mode","rollout_strategy","replicas_per_region","total_desired","total_live","targets"],"properties":{"id":{"type":"string"},"environment_id":{"type":"string"},"environment_name":{"type":"string"},"mode":{"type":"string","enum":["single_region","multi_region"]},"rollout_strategy":{"type":"string","enum":["health_gated","burst"]},"replicas_per_region":{"type":"integer","minimum":0},"total_desired":{"type":"integer","minimum":0},"total_live":{"type":"integer","minimum":0},"targets":{"type":"array","items":{"type":"object","required":["id","location_id","location_code","location_name","position","desired","live","status"],"properties":{"id":{"type":"string"},"location_id":{"type":"string"},"location_code":{"type":"string"},"location_name":{"type":"string"},"position":{"type":"integer","minimum":0},"desired":{"type":"integer","minimum":0},"live":{"type":"integer","minimum":0},"status":{"type":"string"}}}}}}},"urls":{"type":"array","items":{"type":"string"}},"internal_hostname":{"type":"string"}}}},"data_resources":{"type":"array","items":{"type":"object","required":["id","name","kind","engine","status","region"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"engine":{"type":"string"},"status":{"type":"string"},"region":{"type":"string","nullable":true}}}},"storage_resources":{"type":"array","items":{"type":"object","required":["id","name","kind","status","region"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"region":{"type":"string","nullable":true}}}},"service_bindings":{"type":"array","items":{"type":"object","required":["id","source_service_id","target_kind","target_id","binding_type"],"properties":{"id":{"type":"string"},"source_service_id":{"type":"string"},"target_kind":{"type":"string"},"target_id":{"type":"string"},"binding_type":{"type":"string"}}}}}}},"static_sites":{"type":"array","items":{"type":"object","required":["id","slug","name","status","cdn_hostname","default_url","domain_count","has_active_deployment"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"cdn_hostname":{"type":"string"},"default_url":{"type":"string"},"domain_count":{"type":"integer"},"has_active_deployment":{"type":"boolean"}}}}}},"DeploymentFilters":{"type":"object","description":"The option lists the deployments page's app, service and stage pickers narrow by. `services` and `environments` are empty until an app is selected.","required":["apps","services","environments"],"properties":{"apps":{"type":"array","items":{"$ref":"#/components/schemas/HostedApp"}},"services":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"environments":{"type":"array","items":{"type":"object","required":["id","slug","name"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}}}}},"DeploymentTarget":{"type":"object","description":"A service and environment the selected app can deploy to: one entry per placement whose scope still has an active desired state. `source_ref` is the environment's branch pattern when it names exactly one branch, and null when it is a wildcard. `redeploy` is true once that scope has been deployed to before.","required":["service_id","service_name","environment_id","environment_name","placement_id","region_count","replicas_per_region","rollout_strategy","source_ref","auto_deploy","redeploy"],"properties":{"service_id":{"type":"string"},"service_name":{"type":"string"},"environment_id":{"type":"string"},"environment_name":{"type":"string"},"placement_id":{"type":"string"},"region_count":{"type":"integer","minimum":0},"replicas_per_region":{"type":"integer","minimum":0},"rollout_strategy":{"type":"string","enum":["health_gated","burst"]},"source_ref":{"type":"string","nullable":true},"auto_deploy":{"type":"boolean"},"redeploy":{"type":"boolean"}}},"PublicRepository":{"type":"object","additionalProperties":false,"required":["principal_kind","organization_slug","repository_slug","visibility","visibility_epoch","default_branch","jj_grpc_endpoint"],"properties":{"principal_kind":{"type":"string","enum":["Anonymous"]},"organization_slug":{"type":"string"},"repository_slug":{"type":"string"},"visibility":{"type":"string","enum":["public"]},"visibility_epoch":{"type":"integer","minimum":0},"default_branch":{"type":"string","nullable":true},"jj_grpc_endpoint":{"type":"string","nullable":true}}},"PublicSourcePage":{"type":"object","additionalProperties":false,"required":["repository","capabilities","refs","source"],"properties":{"repository":{"$ref":"#/components/schemas/PublicRepository"},"capabilities":{"type":"object","additionalProperties":false,"required":["read_source","write"],"properties":{"read_source":{"type":"boolean","enum":[true]},"write":{"type":"boolean","enum":[false]}}},"refs":{"type":"array","items":{"type":"string"}},"source":{"type":"object","nullable":true,"additionalProperties":false,"required":["ref","paths","truncated","selected_file"],"properties":{"ref":{"type":"object","required":["name","commit_id"],"properties":{"name":{"type":"string"},"commit_id":{"type":"string"}}},"diff":{"type":"object","nullable":true,"additionalProperties":false,"required":["state","base_commit_id","files"],"properties":{"state":{"type":"string","enum":["ready","limited","unsupported","unavailable"]},"base_commit_id":{"type":"string","nullable":true},"files":{"type":"array","items":{"$ref":"#/components/schemas/VcsDiffFile"}}}},"commit":{"$ref":"#/components/schemas/PublicSourceCommit"},"history":{"type":"object","nullable":true,"additionalProperties":false,"required":["commits","next_commit_id"],"properties":{"commits":{"type":"array","maxItems":20,"items":{"$ref":"#/components/schemas/PublicSourceCommit"}},"next_commit_id":{"type":"string","nullable":true}}},"paths":{"type":"array","items":{"type":"string"}},"truncated":{"type":"boolean"},"archive_url":{"type":"string","nullable":true},"selected_file":{"$ref":"#/components/schemas/VcsBrowserSelectedFile"}}}}},"PublicSourceCommit":{"type":"object","additionalProperties":false,"required":["id","parent_ids","message","message_truncated","author_name","author_email","author_date"],"properties":{"id":{"type":"string"},"parent_ids":{"type":"array","maxItems":128,"items":{"type":"string"}},"message":{"type":"string"},"message_truncated":{"type":"boolean"},"author_name":{"type":"string"},"author_email":{"type":"string"},"author_date":{"type":"string","nullable":true}}},"RepositoryAccessEntry":{"type":"object","required":["organization_id","organization_slug","organization_name","membership_role","repository_id","repository_slug","repository_name","repository_kind","repository_role","repository_scope_kind","is_organization_home_repository","canonical_repository_slug","repository_slug_aliases","app_rooting_strategy","deployable_units_kind","git_https_clone_url","canonical_git_https_clone_url","git_https_supported","jj_grpc_endpoint","jj_repo_path","canonical_jj_repo_path","jj_grpc_supported","git_auth_username","backing_repository_id","backing_repository_slug","canonical_backing_repository_slug","backing_repository_name","backing_repository_kind","effective_root_path","default_branch","virtual_repository_id","sync_provider_kind","sync_mode","sync_repository_owner","sync_repository_name","sync_repository_full_name","sync_remote_url","sync_remote_display_name","sync_auth_username","sync_auth_secret_id","sync_default_branch","github_app_installation_id","sync_source_bookmark","sync_target_branch","sync_auto_enabled","sync_configured","projection_status","projection_source_bookmark","effective_projection_source_bookmark","last_projected_source_commit_id","last_projected_virtual_commit_id","last_projected_git_sha"],"properties":{"organization_id":{"type":"string"},"organization_slug":{"type":"string"},"organization_name":{"type":"string"},"membership_role":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"repository_name":{"type":"string"},"repository_kind":{"type":"string"},"repository_role":{"type":"string"},"github_access_warnings":{"type":"array","items":{"$ref":"#/components/schemas/GithubRepositoryAccessHealth"}},"repository_scope_kind":{"type":"string","enum":["repository","virtual_repository"]},"is_organization_home_repository":{"type":"boolean"},"canonical_repository_slug":{"type":"string"},"repository_slug_aliases":{"type":"array","items":{"type":"string"}},"app_rooting_strategy":{"type":"string"},"deployable_units_kind":{"type":"string"},"git_https_clone_url":{"type":"string","format":"uri"},"canonical_git_https_clone_url":{"type":"string","format":"uri"},"git_https_supported":{"type":"boolean"},"jj_grpc_endpoint":{"type":"string","nullable":true},"jj_repo_path":{"type":"string"},"canonical_jj_repo_path":{"type":"string"},"jj_grpc_supported":{"type":"boolean"},"git_auth_username":{"type":"string"},"backing_repository_id":{"type":"string"},"backing_repository_slug":{"type":"string"},"canonical_backing_repository_slug":{"type":"string"},"backing_repository_name":{"type":"string"},"backing_repository_kind":{"type":"string"},"effective_root_path":{"type":"string"},"default_branch":{"type":"string"},"virtual_repository_id":{"type":"string","nullable":true},"sync_provider_kind":{"type":"string","enum":["none","github","git","gitlab"]},"sync_mode":{"type":"string","nullable":true},"sync_repository_owner":{"type":"string","nullable":true},"sync_repository_name":{"type":"string","nullable":true},"sync_repository_full_name":{"type":"string","nullable":true},"sync_remote_url":{"type":"string","nullable":true},"sync_remote_display_name":{"type":"string","nullable":true},"sync_auth_username":{"type":"string","nullable":true},"sync_auth_secret_id":{"type":"string","nullable":true},"sync_default_branch":{"type":"string","nullable":true},"github_app_installation_id":{"type":"string","nullable":true},"sync_source_bookmark":{"type":"string","nullable":true},"sync_target_branch":{"type":"string","nullable":true},"sync_auto_enabled":{"type":"boolean"},"sync_configured":{"type":"boolean"},"projection_status":{"type":"string","nullable":true},"projection_source_bookmark":{"type":"string","nullable":true},"effective_projection_source_bookmark":{"type":"string","nullable":true},"last_projected_source_commit_id":{"type":"string","nullable":true},"last_projected_virtual_commit_id":{"type":"string","nullable":true},"last_projected_git_sha":{"type":"string","nullable":true}}},"RepositoryAccessToken":{"type":"object","required":["id","name","permission_level","token_preview","active","expires_at","last_used_at","revoked_at","created_at","updated_at","expires_at_label","last_used_at_label","revoked_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"permission_level":{"type":"string","enum":["read_only","read_write"]},"token_preview":{"type":"string"},"active":{"type":"boolean"},"expires_at":{"type":"string","format":"date-time","nullable":true},"last_used_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"expires_at_label":{"type":"string","nullable":true},"last_used_at_label":{"type":"string","nullable":true},"revoked_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"RepositoryImportSessionCreateRequest":{"type":"object","required":["idempotency_key"],"properties":{"idempotency_key":{"type":"string"},"execution_mode":{"type":"string","enum":["client","git_service"],"default":"client"},"github_app_installation_id":{"type":"string"},"client_name":{"type":"string"},"client_version":{"type":"string"}}},"RepositoryImportSelectionRequest":{"type":"object","required":["repositories"],"properties":{"repositories":{"oneOf":[{"type":"string","enum":["all"]},{"type":"array","items":{"type":"object","required":["owner","name"],"properties":{"owner":{"type":"string"},"name":{"type":"string"},"root_path":{"type":"string"},"source_branch":{"type":"string"},"include_in_home":{"type":"boolean","default":true}}}}]},"trunk_bookmark":{"type":"string"}}},"RepositoryImportLeaseRequest":{"type":"object","required":["lease_generation"],"properties":{"lease_generation":{"type":"string"},"sync_run_id":{"type":"string"}}},"RepositoryImportClaim":{"type":"object","required":["session_id","item_id","lease_generation","lease_expires_at","source_url","source_branch","github_token","repository_token","backing_repository_id","backing_repository_slug","endpoint","root_path","trunk_bookmark","staging_bookmark","sync_run_id"],"properties":{"session_id":{"type":"string"},"item_id":{"type":"string"},"lease_generation":{"type":"string"},"lease_expires_at":{"type":"string","format":"date-time"},"source_url":{"type":"string","format":"uri"},"source_branch":{"type":"string"},"github_token":{"type":"string","writeOnly":true,"description":"Response-only, repository-restricted GitHub installation token. Never returned by show or list APIs."},"repository_token":{"type":"string","writeOnly":true,"description":"Response-only, purpose-bound Home repository credential. Never returned by show or list APIs."},"backing_repository_id":{"type":"string"},"backing_repository_slug":{"type":"string"},"endpoint":{"type":"string"},"root_path":{"type":"string"},"trunk_bookmark":{"type":"string"},"staging_bookmark":{"type":"string"},"sync_run_id":{"type":"string"}}},"RepositoryImportInventory":{"type":"object","required":["repositories","limit","truncated"],"properties":{"repositories":{"type":"array","maxItems":500,"items":{"type":"object","required":["owner","name","full_name","visibility","private","default_branch","selectable","status"],"properties":{"owner":{"type":"string"},"name":{"type":"string"},"full_name":{"type":"string"},"visibility":{"type":"string"},"private":{"type":"boolean"},"default_branch":{"type":"string","nullable":true},"selectable":{"type":"boolean"},"status":{"type":"string","enum":["eligible","already_imported","selected","queued","running","succeeded","failed","canceled","in_progress_elsewhere","ineligible"]},"reason":{"type":"string","nullable":true}}}},"limit":{"type":"integer","minimum":1,"maximum":500},"truncated":{"type":"boolean"},"query":{"type":"string"},"action_required":{"type":"string","enum":["github_app_installation"]},"authorization_endpoint":{"type":"string"}}},"RepositoryImportSession":{"type":"object","required":["id","organization_id","organization_slug","virtual_repository_id","sync_run_id","github_import_batch_item_id","github_app_installation_id","status","execution_mode","client_name","client_version","repository_owner","repository_name","source_branch","lease_generation","error_message","can_authorize_github","github_connected","expires_at","lease_expires_at","last_heartbeat_at","batch","sync_run","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"organization_slug":{"type":"string"},"virtual_repository_id":{"type":"string","nullable":true},"sync_run_id":{"type":"string","nullable":true},"github_import_batch_item_id":{"type":"string","nullable":true},"github_app_installation_id":{"type":"string","nullable":true},"status":{"type":"string","enum":["pending","running","completed","failed","canceled","expired"]},"execution_mode":{"type":"string","enum":["client","git_service"]},"git_imports":{"type":"array","items":{"$ref":"#/components/schemas/GitImportStatus"}},"client_name":{"type":"string","nullable":true},"client_version":{"type":"string","nullable":true},"repository_owner":{"type":"string","nullable":true},"repository_name":{"type":"string","nullable":true},"source_branch":{"type":"string","nullable":true},"lease_generation":{"type":"string","nullable":true},"can_authorize_github":{"type":"boolean"},"github_connected":{"type":"boolean"},"error_message":{"type":"string","nullable":true},"expires_at":{"type":"string","format":"date-time"},"lease_expires_at":{"type":"string","format":"date-time","nullable":true},"last_heartbeat_at":{"type":"string","format":"date-time","nullable":true},"batch":{"allOf":[{"$ref":"#/components/schemas/GithubImportBatch"}],"nullable":true},"sync_run":{"allOf":[{"$ref":"#/components/schemas/VirtualRepositorySyncRun"},{"type":"object","properties":{"log_lines":{"type":"array","maxItems":400,"items":{"type":"object","required":["timestamp","level","message"],"properties":{"timestamp":{"type":"string"},"timestamp_label":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"}}}}}}],"nullable":true},"action_required":{"type":"string","enum":["github_app_installation"]},"authorization_endpoint":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"RepositoryFolderFederationPreview":{"type":"object","required":["operation","ready","preview_digest","root_path","destination_repository_slug","history_scope","source_bookmark","source_revision","source_ref_version","membership_digest","manifest_generation","manifest_digest","blockers"],"properties":{"operation":{"type":"string","enum":["extract_home_folder"]},"ready":{"type":"boolean"},"preview_digest":{"type":"string"},"root_path":{"type":"string"},"destination_repository_slug":{"type":"string"},"history_scope":{"type":"string","enum":["current_tree"]},"source_bookmark":{"type":"string"},"source_revision":{"type":"string"},"source_ref_version":{"type":"integer"},"membership_digest":{"type":"string"},"manifest_generation":{"type":"integer","nullable":true},"manifest_digest":{"type":"string","nullable":true},"blockers":{"type":"array","items":{"type":"string"}}}},"RepositoryFolderFederationOperation":{"type":"object","required":["id","operation_kind","history_scope","status","rollback_status","preview_digest","root_path","destination_repository_slug","source_bookmark","source_revision","source_ref_version","source_membership_digest","source_manifest_generation","source_manifest_digest","placement_epoch","failure_phase","last_error","materialization_receipt","created_at","updated_at","completed_at"],"properties":{"id":{"type":"string"},"operation_kind":{"type":"string","enum":["extract"]},"history_scope":{"type":"string","enum":["current_tree"]},"status":{"type":"string","enum":["requested","provisioning","materializing","verifying","ready_to_cut_over","publishing","completed","failed","reversing","reversed"]},"rollback_status":{"type":"string","enum":["not_started","pending","running","completed","failed"]},"preview_digest":{"type":"string"},"root_path":{"type":"string"},"destination_repository_slug":{"type":"string"},"source_bookmark":{"type":"string"},"source_revision":{"type":"string"},"source_ref_version":{"type":"integer"},"source_membership_digest":{"type":"string"},"source_manifest_generation":{"type":"integer","nullable":true},"source_manifest_digest":{"type":"string","nullable":true},"placement_epoch":{"type":"integer","nullable":true},"failure_phase":{"type":"string","nullable":true},"last_error":{"type":"string","nullable":true},"materialization_receipt":{"type":"object","nullable":true,"additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"completed_at":{"type":"string","format":"date-time","nullable":true}}},"RepositoryHomeMembership":{"type":"object","required":["eligible","federated","home_repository_slug","root_path","selected_bookmark","publication_status","publication_error"],"properties":{"eligible":{"type":"boolean"},"federated":{"type":"boolean"},"home_repository_slug":{"type":"string","nullable":true},"root_path":{"type":"string","nullable":true},"selected_bookmark":{"type":"string","nullable":true},"publication_status":{"type":"string","nullable":true,"enum":["pending","published","failed",null]},"publication_error":{"type":"string","nullable":true}}},"RepositoryHomeMembershipError":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}},"RepositoryMutationLease":{"type":"object","required":["held","kind","fingerprint","fence_version","expires_at","takeover_after","expired","recoverable","blockers","inspected_at"],"properties":{"held":{"type":"boolean"},"kind":{"type":"string","nullable":true,"enum":["short","remote",null]},"fingerprint":{"type":"string","nullable":true},"fence_version":{"type":"integer"},"expires_at":{"type":"string","nullable":true},"takeover_after":{"type":"string","nullable":true},"expired":{"type":"boolean"},"recoverable":{"type":"boolean"},"blockers":{"type":"array","items":{"type":"string"}},"inspected_at":{"type":"string"}}},"RepositoryStatsKind":{"type":"object","required":["object_kind","storage_class","object_count","known_bytes","unsized_objects","delete_pending_objects","largest_object_bytes"],"properties":{"object_kind":{"type":"string"},"storage_class":{"type":"string","enum":["content","derived"]},"object_count":{"type":"integer","minimum":0},"known_bytes":{"type":"integer","minimum":0},"unsized_objects":{"type":"integer","minimum":0},"delete_pending_objects":{"type":"integer","minimum":0},"largest_object_bytes":{"type":"integer","minimum":0,"nullable":true}}},"RepositoryStatsGrowthWindow":{"type":"object","required":["window_hours","objects","known_bytes"],"properties":{"window_hours":{"type":"integer","minimum":0},"objects":{"type":"integer","minimum":0},"known_bytes":{"type":"integer","minimum":0}}},"RepositoryStatsSeriesPoint":{"type":"object","required":["captured_at","content_bytes","derived_bytes","total_objects","commits","blobs","trees","pack_amplification","pack_bytes","distinct_packs","quarantine_packs","delete_pending_objects","refs","workspaces"],"properties":{"captured_at":{"type":"string","format":"date-time"},"content_bytes":{"type":"integer","minimum":0},"derived_bytes":{"type":"integer","minimum":0},"total_objects":{"type":"integer","minimum":0},"commits":{"type":"integer","minimum":0},"blobs":{"type":"integer","minimum":0},"trees":{"type":"integer","minimum":0},"pack_amplification":{"type":"number","nullable":true},"pack_bytes":{"type":"integer","minimum":0},"distinct_packs":{"type":"integer","minimum":0},"quarantine_packs":{"type":"integer","minimum":0},"delete_pending_objects":{"type":"integer","minimum":0},"refs":{"type":"integer","minimum":0},"workspaces":{"type":"integer","minimum":0,"nullable":true}}},"RepositoryStatsFreshness":{"type":"object","required":["computed_at","stale","from_cache","collection_duration_ms","collector_version"],"properties":{"computed_at":{"type":"string","format":"date-time","nullable":true},"stale":{"type":"boolean"},"from_cache":{"type":"boolean"},"collection_duration_ms":{"type":"integer","minimum":0},"collector_version":{"type":"string","nullable":true}}},"RepositoryStatsStorage":{"type":"object","required":["content_objects","content_bytes","derived_objects","derived_bytes","pack_amplification","total_objects","total_bytes","unknown_size_objects","delete_pending_objects","largest_object_bytes","note","kinds","growth_windows","growth_note"],"properties":{"content_objects":{"type":"integer","minimum":0},"content_bytes":{"type":"integer","minimum":0},"derived_objects":{"type":"integer","minimum":0},"derived_bytes":{"type":"integer","minimum":0},"pack_amplification":{"type":"number","nullable":true},"total_objects":{"type":"integer","minimum":0},"total_bytes":{"type":"integer","minimum":0},"unknown_size_objects":{"type":"integer","minimum":0},"delete_pending_objects":{"type":"integer","minimum":0},"largest_object_bytes":{"type":"integer","minimum":0,"nullable":true},"note":{"type":"string"},"kinds":{"type":"array","items":{"$ref":"#/components/schemas/RepositoryStatsKind"}},"growth_windows":{"type":"array","items":{"$ref":"#/components/schemas/RepositoryStatsGrowthWindow"}},"growth_note":{"type":"string"}}},"RepositoryStatsShape":{"type":"object","required":["commits","blobs","trees","objects_per_commit","trees_per_commit","content_bytes_per_commit","blobs_per_tree"],"properties":{"commits":{"type":"integer","minimum":0},"blobs":{"type":"integer","minimum":0},"trees":{"type":"integer","minimum":0},"objects_per_commit":{"type":"number","nullable":true},"trees_per_commit":{"type":"number","nullable":true},"content_bytes_per_commit":{"type":"number","nullable":true},"blobs_per_tree":{"type":"number","nullable":true}}},"RepositoryStatsPackTier":{"type":"object","required":["pack_objects","pack_bytes","distinct_packs","pack_only_objects","pending_rollup_packs","quarantine_packs","quarantine_bytes","quarantine_refused_packs","quarantine_capacity","quarantine_at_cap","quarantine_oldest_unreachable_at"],"properties":{"pack_objects":{"type":"integer","minimum":0},"pack_bytes":{"type":"integer","minimum":0},"distinct_packs":{"type":"integer","minimum":0},"pack_only_objects":{"type":"integer","minimum":0},"pending_rollup_packs":{"type":"integer","minimum":0},"quarantine_packs":{"type":"integer","minimum":0},"quarantine_bytes":{"type":"integer","minimum":0},"quarantine_refused_packs":{"type":"integer","minimum":0},"quarantine_capacity":{"type":"integer","minimum":0},"quarantine_at_cap":{"type":"boolean"},"quarantine_oldest_unreachable_at":{"type":"string","format":"date-time","nullable":true}}},"RepositoryStatsLiveness":{"type":"object","required":["op_heads","op_heads_diverged","op_log_local","op_log_note","refs","ref_cas_total","most_recent_ref","most_recent_ref_at","workspaces","workspace_status","open_upload_sessions","clone_build_in_flight","audit_events_24h","audit_events_7d","op_heads_commits_24h","last_write_at","audit_window_truncated"],"properties":{"op_heads":{"type":"integer","minimum":0},"op_heads_diverged":{"type":"boolean"},"op_log_local":{"type":"boolean"},"op_log_note":{"type":"string"},"refs":{"type":"integer","minimum":0},"ref_cas_total":{"type":"integer","minimum":0},"most_recent_ref":{"type":"string","nullable":true},"most_recent_ref_at":{"type":"string","format":"date-time","nullable":true},"workspaces":{"type":"integer","minimum":0,"nullable":true},"workspace_status":{"type":"string","enum":["unspecified","available","divergent_op_heads","op_log_local","undecodable","timed_out","error"]},"open_upload_sessions":{"type":"integer","minimum":0},"clone_build_in_flight":{"type":"boolean"},"audit_events_24h":{"type":"integer","minimum":0},"audit_events_7d":{"type":"integer","minimum":0},"op_heads_commits_24h":{"type":"integer","minimum":0},"last_write_at":{"type":"string","format":"date-time","nullable":true},"audit_window_truncated":{"type":"boolean"}}},"RepositoryStatsHousekeeping":{"type":"object","required":["validated_closures","agent_checkpoint_attachments","gc_last_run_at","gc_reclaimable_bytes","backup_at","backup_age_seconds","backup_current","import_objects_total","import_objects_done","import_in_progress"],"properties":{"validated_closures":{"type":"integer","minimum":0},"agent_checkpoint_attachments":{"type":"integer","minimum":0},"gc_last_run_at":{"type":"string","format":"date-time","nullable":true},"gc_reclaimable_bytes":{"type":"integer","minimum":0,"nullable":true},"backup_at":{"type":"string","format":"date-time","nullable":true},"backup_age_seconds":{"type":"integer","minimum":0,"nullable":true},"backup_current":{"type":"boolean","nullable":true},"import_objects_total":{"type":"integer","minimum":0,"nullable":true},"import_objects_done":{"type":"integer","minimum":0,"nullable":true},"import_in_progress":{"type":"boolean"}}},"RepositoryStatsEngine":{"type":"object","required":["version","role","label","summary","home_slug","root_path"],"properties":{"version":{"type":"string","nullable":true,"enum":["v0","v1"]},"role":{"type":"string","enum":["woven_home","woven_repo","federated_home","federated_member","standalone"]},"label":{"type":"string"},"summary":{"type":"string"},"home_slug":{"type":"string","nullable":true},"root_path":{"type":"string","nullable":true}}},"RepositoryStorageAuthority":{"type":"object","required":["format","epoch","serving_state"],"properties":{"format":{"type":"string","nullable":true},"epoch":{"type":"integer","nullable":true},"serving_state":{"type":"string","nullable":true}}},"RepositoryStats":{"type":"object","required":["engine","storage_authority","freshness","storage","shape","pack_tier","liveness","housekeeping","series","warnings","can_refresh"],"properties":{"engine":{"$ref":"#/components/schemas/RepositoryStatsEngine"},"storage_authority":{"$ref":"#/components/schemas/RepositoryStorageAuthority"},"freshness":{"$ref":"#/components/schemas/RepositoryStatsFreshness"},"storage":{"$ref":"#/components/schemas/RepositoryStatsStorage"},"shape":{"$ref":"#/components/schemas/RepositoryStatsShape"},"pack_tier":{"$ref":"#/components/schemas/RepositoryStatsPackTier"},"liveness":{"$ref":"#/components/schemas/RepositoryStatsLiveness"},"housekeeping":{"$ref":"#/components/schemas/RepositoryStatsHousekeeping"},"series":{"type":"array","items":{"$ref":"#/components/schemas/RepositoryStatsSeriesPoint"}},"warnings":{"type":"array","items":{"type":"string","enum":["divergent_op_heads","quarantine_at_cap","delete_pending_backlog","stale_backup","stale_snapshot"]}},"can_refresh":{"type":"boolean"}}},"RepositoryVisibility":{"type":"object","required":["visibility","visibility_epoch","repository_slug","public_visibility_supported","publication_enabled","events"],"properties":{"visibility":{"type":"string","enum":["private","public"]},"visibility_epoch":{"type":"integer","minimum":0},"repository_slug":{"type":"string"},"public_visibility_supported":{"type":"boolean"},"publication_enabled":{"type":"boolean"},"events":{"type":"array","items":{"type":"object","required":["from_visibility","to_visibility","visibility_epoch","acknowledgement_version","created_at"],"properties":{"from_visibility":{"type":"string","enum":["private","public"]},"to_visibility":{"type":"string","enum":["private","public"]},"visibility_epoch":{"type":"integer"},"acknowledgement_version":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"}}}}}},"SessionShowMarker":{"type":"object","description":"A commit landmark. Rails resolves `event_index` against the transcript being shown. Emitted only for checkpoints whose index is built. The commit the checkpoint was sealed at rides along: `git_commit_sha` (with `github_commit_url` when the repository is still addressable on GitHub) on the git path, and `linked_commit_ids` — which open the native Vex commit diff — on the jj one. A checkpoint that sealed no commit carries neither.","required":["checkpoint_id","sequence_number","label","event_index","event_count","linked_commit_ids","git_commit_sha","github_commit_url"],"properties":{"checkpoint_id":{"type":"string"},"sequence_number":{"type":"integer"},"label":{"type":"string"},"event_index":{"type":"integer"},"event_count":{"type":"integer"},"linked_commit_ids":{"type":"array","items":{"type":"string"}},"git_commit_sha":{"type":"string","nullable":true,"description":"40-hex git commit this checkpoint was sealed at; null on the jj path."},"github_commit_url":{"type":"string","nullable":true,"description":"Where that commit lives on GitHub, built from the repository's GitHub-synced virtual repository. Null on the jj path and when the repository has lost its GitHub addressing."}}},"SessionShowTokenStats":{"type":"object","description":"Session-level token usage for the header cost estimate. `total_tokens` and `token_usage_scope` are the non-additive session aggregate; `token_usage` carries the itemized counters and `model_usage` the per-model split behind it, resolved with the same scope rule. `subagent_token_usage` is the child-agent share already inside them. `model` is from the latest uploaded checkpoint. The flat per-type fields remain for readers of the older shape.","required":["input_tokens","cached_input_tokens","output_tokens","reasoning_output_tokens","total_tokens","model","token_usage_scope","token_usage","model_usage","subagent_token_usage","estimated_cost"],"properties":{"input_tokens":{"type":"integer","nullable":true},"cached_input_tokens":{"type":"integer","nullable":true},"output_tokens":{"type":"integer","nullable":true},"reasoning_output_tokens":{"type":"integer","nullable":true},"total_tokens":{"type":"integer","nullable":true},"model":{"type":"string","nullable":true},"token_usage_scope":{"type":"string","nullable":true},"token_usage":{"oneOf":[{"$ref":"#/components/schemas/AgentTokenUsage"},{"type":"null"}]},"model_usage":{"type":"array","items":{"$ref":"#/components/schemas/AgentModelTokenUsage"}},"subagent_token_usage":{"oneOf":[{"$ref":"#/components/schemas/AgentTokenUsage"},{"type":"null"}]},"estimated_cost":{"oneOf":[{"$ref":"#/components/schemas/AgentCostEstimate"},{"type":"null"}]}}},"SessionTranscriptStats":{"type":"object","description":"Derived header stats for the resolved checkpoint's transcript. File/line/ duration fields are null when derivation could not read them (the UI omits those); transcript facet counts are always present.","required":["duration_ms","files_touched","files_touched_count","lines_added","lines_removed","prompt_count","response_count","step_count","reasoning_count","tool_event_count","tool_call_count","other_count"],"properties":{"duration_ms":{"type":"integer","nullable":true},"files_touched":{"type":"array","nullable":true,"description":"Distinct edited paths, capped at 50.","items":{"type":"string"}},"files_touched_count":{"type":"integer","nullable":true},"lines_added":{"type":"integer","nullable":true},"lines_removed":{"type":"integer","nullable":true},"prompt_count":{"type":"integer"},"response_count":{"type":"integer"},"step_count":{"type":"integer"},"reasoning_count":{"type":"integer"},"tool_event_count":{"type":"integer"},"tool_call_count":{"type":"integer"},"other_count":{"type":"integer"}}},"SessionShowTranscriptIndexState":{"type":"object","description":"The resolved checkpoint's transcript-index build state (page contract).","required":["state","checkpoint_id"],"properties":{"state":{"type":"string","enum":["ready","preparing","failed","unavailable"]},"checkpoint_id":{"type":"string"}}},"SessionShowPage":{"type":"object","required":["session","markers","token_stats","transcript_stats","transcript_index"],"properties":{"github_access_warnings":{"type":"array","items":{"$ref":"#/components/schemas/GithubRepositoryAccessHealth"}},"session":{"description":"Identical serialization to the org sessions page's expanded session, so the web reuses one session-detail builder. Jump-to data lives in `markers`, not on these checkpoints.","allOf":[{"$ref":"#/components/schemas/OrganizationSessionDetail"}]},"markers":{"type":"array","items":{"$ref":"#/components/schemas/SessionShowMarker"}},"token_stats":{"oneOf":[{"$ref":"#/components/schemas/SessionShowTokenStats"},{"type":"null"}]},"transcript_stats":{"oneOf":[{"$ref":"#/components/schemas/SessionTranscriptStats"},{"type":"null"}]},"transcript_index":{"oneOf":[{"$ref":"#/components/schemas/SessionShowTranscriptIndexState"},{"type":"null"}]}}},"TranscriptIndexBucketCounts":{"type":"object","description":"Event counts by UI filter bucket. Prompts include user, system, and developer messages. Responses, reasoning, tool traffic, and other lifecycle data remain distinct. Drives both whole-transcript totals and precise per-chunk skip planning during backward loading.","required":["prompts","responses","reasoning","tools","other"],"properties":{"prompts":{"type":"integer"},"responses":{"type":"integer"},"reasoning":{"type":"integer"},"tools":{"type":"integer"},"other":{"type":"integer"}}},"TranscriptIndexManifestChunk":{"type":"object","required":["seq","event_start","event_end","bucket_counts","bytes","sha256"],"properties":{"seq":{"type":"integer"},"event_start":{"type":"integer","description":"0-based inclusive index of the first event in the chunk."},"event_end":{"type":"integer","description":"0-based inclusive index of the last event in the chunk."},"bucket_counts":{"$ref":"#/components/schemas/TranscriptIndexBucketCounts"},"bytes":{"type":"integer","description":"Uncompressed JSON byte size of the chunk."},"sha256":{"type":"string","description":"SHA-256 of the uncompressed chunk JSON."}}},"TranscriptIndexManifest":{"type":"object","required":["version","session_id","checkpoint_id","event_count","chunk_size","chunk_count","bucket_counts","chunks","stats"],"properties":{"version":{"type":"integer"},"session_id":{"type":"string"},"checkpoint_id":{"type":"string"},"event_count":{"type":"integer"},"chunk_size":{"type":"integer"},"chunk_count":{"type":"integer"},"bucket_counts":{"$ref":"#/components/schemas/TranscriptIndexBucketCounts"},"chunks":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptIndexManifestChunk"}},"stats":{"$ref":"#/components/schemas/SessionTranscriptStats"}}},"TranscriptIndexChunkUrl":{"type":"object","required":["seq","url"],"properties":{"seq":{"type":"integer"},"url":{"type":"string","description":"Same-origin API path for the chunk's bytes — this operation with the resolved checkpoint pinned. The version and digest identify the exact immutable chunk bytes. Relative, so the browser sends it to the API with its session credentials."}}},"TranscriptIndexChunk":{"type":"object","description":"One chunk object's body, returned when `chunk` is set. Served zstd-encoded to clients that accept it, decompressed to everyone else.","required":["version","seq","events"],"properties":{"version":{"type":"integer"},"seq":{"type":"integer"},"events":{"type":"array","items":{"$ref":"#/components/schemas/AgentSessionTranscriptEvent"}}}},"SessionTranscriptIndexResponse":{"type":"object","required":["state","session_id","checkpoint_id"],"properties":{"state":{"type":"string","enum":["ready","preparing","failed"]},"session_id":{"type":"string"},"checkpoint_id":{"type":"string"},"manifest":{"description":"Present only when `state` is `ready`.","oneOf":[{"$ref":"#/components/schemas/TranscriptIndexManifest"},{"type":"null"}]},"chunks":{"type":"array","description":"Per-chunk same-origin URLs, present only when `state` is `ready`.","items":{"$ref":"#/components/schemas/TranscriptIndexChunkUrl"}}}},"OrganizationSessionRepository":{"type":"object","required":["id","slug","name"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}},"OrganizationSessionUser":{"type":"object","required":["id","name","handle","avatar_url"],"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"handle":{"type":"string","nullable":true},"avatar_url":{"type":"string","nullable":true,"description":"Avatar URL for the session owner: their OAuth/profile picture when set, otherwise a deterministic Gravatar derived from their email (mirrors History's commit author avatars)."}}},"AgentTokenUsage":{"type":"object","description":"Itemized token counters a cost estimate prices. `input_tokens` is the uncached prompt share; `cache_read_input_tokens` and `cache_creation_input_tokens` are the two cache classes (priced very differently), with the creation count split by TTL when the provider reports it; `cached_input_tokens` is their sum. `output_tokens` already includes `reasoning_output_tokens`. `api_call_count` is the number of distinct model responses behind the counters. Each field is null when the harness did not report it.","required":["input_tokens","cached_input_tokens","cache_read_input_tokens","cache_creation_input_tokens","cache_creation_5m_input_tokens","cache_creation_1h_input_tokens","output_tokens","reasoning_output_tokens","total_tokens","api_call_count"],"properties":{"input_tokens":{"type":"integer","nullable":true},"cached_input_tokens":{"type":"integer","nullable":true},"cache_read_input_tokens":{"type":"integer","nullable":true},"cache_creation_input_tokens":{"type":"integer","nullable":true},"cache_creation_5m_input_tokens":{"type":"integer","nullable":true},"cache_creation_1h_input_tokens":{"type":"integer","nullable":true},"output_tokens":{"type":"integer","nullable":true},"reasoning_output_tokens":{"type":"integer","nullable":true},"total_tokens":{"type":"integer","nullable":true},"api_call_count":{"type":"integer","nullable":true}}},"AgentCostEstimate":{"type":"object","description":"Estimated token cost at today's public list prices, priced by Rails so no client carries a price table. `usd` is a decimal string. `floor` is true when a model in the session has no list price, so the figure is a lower bound; those models are listed in `unpriced_models`. `models` gives each priced model's share. Rows shipped to analytics carry the price at capture time instead, so history never moves when the table does.","required":["usd","floor","models","unpriced_models","pricing_version"],"properties":{"usd":{"type":"string"},"floor":{"type":"boolean"},"models":{"type":"array","items":{"type":"object","required":["model","usd"],"properties":{"model":{"type":"string"},"usd":{"type":"string"}}}},"unpriced_models":{"type":"array","items":{"type":"string"}},"pricing_version":{"type":"string"}}},"AgentModelTokenUsage":{"allOf":[{"$ref":"#/components/schemas/AgentTokenUsage"},{"type":"object","required":["model"],"properties":{"model":{"type":"string","description":"Provider model id this share of the usage was billed to."}}}]},"OrganizationSessionStats":{"type":"object","required":["checkpoint_count","uploaded_count","failed_count","pending_count","redaction_count","last_captured_at","total_tokens","token_usage_scope","token_usage","model_usage","estimated_cost","message_count","agent_count","model","commit_count","pull_request_count","pull_requests"],"properties":{"checkpoint_count":{"type":"integer"},"uploaded_count":{"type":"integer"},"failed_count":{"type":"integer"},"pending_count":{"type":"integer"},"redaction_count":{"type":"integer"},"last_captured_at":{"type":"string","nullable":true},"total_tokens":{"type":"integer","nullable":true},"token_usage_scope":{"type":"string","nullable":true},"token_usage":{"oneOf":[{"$ref":"#/components/schemas/AgentTokenUsage"},{"type":"null"}],"description":"Itemized counters behind `total_tokens`, resolved across uploaded checkpoints with the same scope rule. Null when no checkpoint reported usage."},"model_usage":{"type":"array","description":"Per-model split of `token_usage`, sorted by model. Empty when the checkpoints predate per-model accounting.","items":{"$ref":"#/components/schemas/AgentModelTokenUsage"}},"estimated_cost":{"oneOf":[{"$ref":"#/components/schemas/AgentCostEstimate"},{"type":"null"}]},"message_count":{"type":"integer","nullable":true,"description":"Conversation prompt and response count derived from the session's latest uploaded checkpoint transcript. Falls back to the captured harness count when the transcript has not been indexed, or null."},"agent_count":{"type":"integer","nullable":true,"description":"Total agents the session ran (the primary agent plus its observed child agents), or null for a solo session with no observed subagents."},"model":{"type":"string","nullable":true,"description":"Model id from the latest uploaded checkpoint, for cost estimation."},"commit_count":{"type":"integer","description":"Server-derived git commits linked to this session. Zero on the jj path, where commit provenance is `linked_commits` instead. The commits themselves ride the expanded session, not the row."},"pull_request_count":{"type":"integer","description":"Distinct GitHub pull requests those commits belong to. Zero on the jj path, and zero while a trailer link is waiting for its pull request."},"pull_requests":{"type":"array","description":"The first few of those pull requests, in first-seen order, so a row can link them — at most three, whatever `pull_request_count` says. A reader renders the remainder as a `+N` from the count. Empty on the jj path.","items":{"$ref":"#/components/schemas/OrganizationSessionPullRequest"}}}},"OrganizationSessionCommit":{"type":"object","required":["sha","evidence","pull_request_number"],"properties":{"sha":{"type":"string","description":"The 40-character git commit SHA."},"evidence":{"type":"string","enum":["trailer","merge","checkpoint"],"description":"How the server found this commit for the session: `trailer` — the commit message carried the session's `Vex-Session` line; `merge` — GitHub reported it as the pull request's merge commit. `checkpoint` — a session's checkpoint was sealed at this commit and no trailer named it."},"pull_request_number":{"type":"integer","nullable":true,"description":"The pull request this commit was found in, or null for a trailer link discovered before any pull request named it."}}},"OrganizationSessionPullRequest":{"type":"object","required":["number","state","github_url","merge_commit_sha","merged_at","head_branch"],"properties":{"number":{"type":"integer"},"state":{"type":"string","enum":["open","closed","merged"]},"github_url":{"type":"string","nullable":true,"description":"The pull request on GitHub, built from the virtual repository's owner and name. Null when that addressing is missing."},"merge_commit_sha":{"type":"string","nullable":true,"description":"The commit that landed on merge, whatever strategy produced it."},"merged_at":{"type":"string","nullable":true},"head_branch":{"type":"string","nullable":true}}},"OrganizationSessionBase":{"type":"object","required":["id","adapter","harness","status","title","external_session_id","repository","user","started_at","ended_at","last_checkpoint_at","last_activity_at","created_at","updated_at"],"properties":{"id":{"type":"string"},"adapter":{"type":"string"},"harness":{"type":"string","description":"Harness id the session presents as (codex, claude-code, cursor, roder, grok): the captured envelope's harness when recorded, else the adapter's canonical harness."},"status":{"type":"string"},"title":{"type":"string","nullable":true},"external_session_id":{"type":"string"},"repository":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSessionRepository"},{"type":"null"}]},"user":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSessionUser"},{"type":"null"}]},"started_at":{"type":"string","nullable":true},"ended_at":{"type":"string","nullable":true},"last_checkpoint_at":{"type":"string","nullable":true},"last_activity_at":{"type":"string","nullable":true,"description":"When the session last did anything: the newest checkpoint capture, else the session end, else its start."},"created_at":{"type":"string","nullable":true},"updated_at":{"type":"string","nullable":true}}},"OrganizationSessionSummary":{"allOf":[{"$ref":"#/components/schemas/OrganizationSessionBase"},{"type":"object","required":["stats"],"properties":{"stats":{"$ref":"#/components/schemas/OrganizationSessionStats"}}}]},"OrganizationSessionCheckpoint":{"type":"object","required":["id","external_checkpoint_id","sequence_number","capture_kind","status","scrubber_version","redaction_count","model","reasoning_effort","total_tokens","token_usage_scope","captured_at","uploaded_at","tombstoned_at","linked_commits","linked_commits_available"],"properties":{"id":{"type":"string"},"external_checkpoint_id":{"type":"string"},"sequence_number":{"type":"integer"},"capture_kind":{"type":"string"},"status":{"type":"string"},"scrubber_version":{"type":"string"},"redaction_count":{"type":"integer"},"model":{"type":"string","nullable":true,"description":"Model id from this checkpoint's sanitized envelope, or null."},"reasoning_effort":{"type":"string","nullable":true,"description":"Reasoning effort from this checkpoint's sanitized envelope (none, minimal, low, medium, high, xhigh, max, ultra), or null."},"total_tokens":{"type":"integer","nullable":true,"description":"This checkpoint's own reported token total, or null."},"token_usage_scope":{"type":"string","nullable":true,"description":"What the reported total covers (turn, session, or cumulative), or null when no usage was reported."},"captured_at":{"type":"string","nullable":true},"uploaded_at":{"type":"string","nullable":true},"tombstoned_at":{"type":"string","nullable":true},"linked_commits":{"type":"array","description":"Native commit ids this checkpoint is attached to (reverse checkpoint→commit lookup). Empty when unavailable or unattached.","items":{"type":"string"}},"linked_commits_available":{"type":"boolean","description":"True when the reverse checkpoint→commit lookup succeeded for this session; false (with empty `linked_commits`) when it was unavailable."}}},"OrganizationSessionDetail":{"allOf":[{"$ref":"#/components/schemas/OrganizationSessionBase"},{"type":"object","required":["original_resume","linked_commits_available","total_tokens","token_usage_scope","token_usage","model_usage","estimated_cost","models","redaction_count","linked_commits","commits","pull_requests","resume_checkpoint_id","checkpoints"],"properties":{"original_resume":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["codex_deep_link","claude_command","cursor_command","grok_command"]},"value":{"type":"string"}}},{"type":"null"}],"description":"An author-only local resume target for the original provider session. Null for other viewers and unsupported providers."},"linked_commits_available":{"type":"boolean","description":"True when the reverse checkpoint→commit lookup succeeded for the expanded session; false when it was unavailable."},"total_tokens":{"type":"integer","nullable":true,"description":"Session token headline: the latest checkpoint's own reported total (never a sum — turn and cumulative scopes are not additive), or null when no checkpoint reported usage."},"token_usage_scope":{"type":"string","nullable":true,"description":"The scope of the headline total (turn, session, or cumulative)."},"token_usage":{"oneOf":[{"$ref":"#/components/schemas/AgentTokenUsage"},{"type":"null"}],"description":"Itemized counters for the cost estimate, resolved across uploaded checkpoints with the session aggregation rule. Null when no uploaded checkpoint reported usage."},"model_usage":{"type":"array","description":"Per-model split of `token_usage`, sorted by model.","items":{"$ref":"#/components/schemas/AgentModelTokenUsage"}},"estimated_cost":{"oneOf":[{"$ref":"#/components/schemas/AgentCostEstimate"},{"type":"null"}]},"models":{"type":"array","description":"Distinct model ids seen across the session's checkpoints, first-seen order.","items":{"type":"string"}},"redaction_count":{"type":"integer","description":"Total redactions across the session's checkpoints."},"linked_commits":{"type":"array","description":"Distinct native commit ids the session's checkpoints are attached to, in first-seen order. Empty when the reverse lookup was unavailable.","items":{"type":"string"}},"commits":{"type":"array","description":"Server-derived git commits for this session, oldest first, each labelled by how it was found. Empty on the jj path, where `linked_commits` carries the same meaning through jj-backend.","items":{"$ref":"#/components/schemas/OrganizationSessionCommit"}},"pull_requests":{"type":"array","description":"Distinct GitHub pull requests those commits belong to, in first-seen order. Empty on the jj path.","items":{"$ref":"#/components/schemas/OrganizationSessionPullRequest"}},"resume_checkpoint_id":{"type":"string","nullable":true,"description":"Public id of the checkpoint a local resume/continue command should target — the latest UPLOADED checkpoint (only uploaded checkpoints have a verified archive). Null when none uploaded."},"checkpoints":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationSessionCheckpoint"}}}}]},"SignalIntegrationProvider":{"type":"string","enum":["sentry","planetscale"]},"SignalIntegrationMode":{"type":"string","description":"`connected` is a customer-owned credential pasted into Vex; `managed` is a Vex-provisioned resource where Vex already holds the credential.","enum":["connected","managed"]},"SignalIntegrationStatus":{"type":"string","enum":["pending","active","failed","disabled"]},"SignalIntegrationExternalKind":{"type":"string","enum":["sentry_project","planetscale_database"]},"SignalIntegrationDeliveryState":{"type":"string","enum":["pending","processing","processed","failed","ignored"]},"SignalIntegration":{"type":"object","description":"One organization's connection to a signal source. Secret values are never rendered; `webhook_secret_stored` / `api_token_stored` say only whether one exists.","required":["id","organization_id","provider","mode","name","status","inbound_url","inbound_path","webhook_secret_stored","api_token_stored","config","unmapped_delivery_count","rejected_signature_count","failure_message","target_count"],"properties":{"id":{"type":"string","description":"Public id (`sint_…`)."},"organization_id":{"type":"string"},"provider":{"$ref":"#/components/schemas/SignalIntegrationProvider"},"mode":{"$ref":"#/components/schemas/SignalIntegrationMode"},"name":{"type":"string"},"status":{"$ref":"#/components/schemas/SignalIntegrationStatus"},"inbound_url":{"type":"string","description":"The absolute URL to paste into the provider's webhook configuration."},"inbound_path":{"type":"string"},"webhook_secret_stored":{"type":"boolean"},"api_token_stored":{"type":"boolean"},"config":{"type":"object","additionalProperties":true},"unmapped_delivery_count":{"type":"integer","description":"Deliveries accepted whose provider resource matched no enabled target."},"rejected_signature_count":{"type":"integer","description":"Deliveries rejected for a bad or missing signature."},"failure_message":{"type":"string","nullable":true},"target_count":{"type":"integer"},"last_received_at":{"type":"string","nullable":true},"last_verified_at":{"type":"string","nullable":true},"created_at":{"type":"string","nullable":true},"updated_at":{"type":"string","nullable":true}},"additionalProperties":false},"SignalIntegrationTarget":{"type":"object","description":"One provider resource mapped to a hosted app. A delivery naming an unmapped resource still becomes a signal, with null attribution.","required":["id","organization_id","signal_integration_id","external_kind","external_id","enabled"],"properties":{"id":{"type":"string","description":"Public id (`stgt_…`)."},"organization_id":{"type":"string"},"signal_integration_id":{"type":"string"},"external_kind":{"$ref":"#/components/schemas/SignalIntegrationExternalKind"},"external_id":{"type":"string"},"external_slug":{"type":"string","nullable":true},"display_name":{"type":"string","nullable":true},"hosted_app_id":{"type":"string","nullable":true},"app_service_id":{"type":"string","nullable":true},"enabled":{"type":"boolean"},"created_at":{"type":"string","nullable":true},"updated_at":{"type":"string","nullable":true}},"additionalProperties":false},"SignalIntegrationDelivery":{"type":"object","description":"One inbound receipt. Provider content is deliberately absent — the debugging question this answers is arrival, processing and failure.","required":["id","organization_id","signal_integration_id","provider","delivery_id","state","attempt_count"],"properties":{"id":{"type":"string","description":"Public id (`sdel_…`)."},"organization_id":{"type":"string"},"signal_integration_id":{"type":"string"},"provider":{"$ref":"#/components/schemas/SignalIntegrationProvider"},"delivery_id":{"type":"string","description":"The provider's delivery id, or a `content-…` id derived from the event kind, its timestamp header and the body checksum when it sends none."},"event_kind":{"type":"string","nullable":true},"state":{"$ref":"#/components/schemas/SignalIntegrationDeliveryState"},"attempt_count":{"type":"integer"},"last_error":{"type":"string","nullable":true},"ops_signal_id":{"type":"string","nullable":true,"description":"Public id (`sig_…`) of the signal this delivery emitted."},"received_at":{"type":"string","nullable":true},"processed_at":{"type":"string","nullable":true},"created_at":{"type":"string","nullable":true}},"additionalProperties":false},"SignalIntegrationCreatePayload":{"type":"object","required":["provider","name"],"properties":{"provider":{"$ref":"#/components/schemas/SignalIntegrationProvider"},"mode":{"$ref":"#/components/schemas/SignalIntegrationMode"},"name":{"type":"string"},"webhook_secret":{"type":"string","description":"The provider's signing secret. Stored as an organization secret; never read back."},"api_token":{"type":"string","description":"Optional provider API token for target discovery and backfill."},"config":{"type":"object","additionalProperties":true}},"additionalProperties":false},"SignalIntegrationUpdatePayload":{"type":"object","properties":{"name":{"type":"string"},"mode":{"$ref":"#/components/schemas/SignalIntegrationMode"},"status":{"$ref":"#/components/schemas/SignalIntegrationStatus"},"webhook_secret":{"type":"string"},"api_token":{"type":"string"},"config":{"type":"object","additionalProperties":true}},"additionalProperties":false},"SignalIntegrationTargetsPayload":{"type":"object","required":["targets"],"properties":{"targets":{"type":"array","items":{"type":"object","required":["external_id"],"properties":{"external_kind":{"$ref":"#/components/schemas/SignalIntegrationExternalKind"},"external_id":{"type":"string"},"external_slug":{"type":"string"},"display_name":{"type":"string"},"hosted_app_id":{"type":"string","description":"Hosted app public id (`app_…`), raw id, or slug."},"app_service_id":{"type":"string"},"enabled":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"SignalIntegrationInboundAccepted":{"type":"object","required":["delivery_id","state"],"properties":{"delivery_id":{"type":"string"},"state":{"$ref":"#/components/schemas/SignalIntegrationDeliveryState"}},"additionalProperties":false},"SignalIntegrationError":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"OpsSignalSeverity":{"type":"string","description":"Severity levels (docs §2, reusing `AlertRule::SEVERITIES`).","enum":["info","warning","error","critical"]},"OpsSignalLinks":{"type":"object","description":"Canonical, relative API paths built from real routes (docs §6a). Sits alongside — never inside — the frozen `payload`. A key is present only when it resolves from the columns the signal carries; `self` always is. These are REST resource paths, not UI routes.","required":["self"],"properties":{"self":{"type":"string"},"app":{"type":"string"},"service":{"type":"string"},"subject":{"type":"string"},"external":{"type":"string","description":"The provider deep link for an integration-sourced signal — the one absolute URL in this envelope, present only when the payload carries an http(s) `external_url` (docs §6e)."}}},"OpsSignalResolution":{"type":"object","description":"Recovery pairing (docs §6b). Present only on signals with a pairing shape — `runtime.health` degraded/failed and `alert.fired`. An applicable-but-unrecovered signal renders just `{ \"resolved\": false }`; every other kind omits the key entirely.","required":["resolved"],"properties":{"resolved":{"type":"boolean"},"resolved_by_signal":{"type":"string","nullable":true,"description":"Public id (`sig_…`) of the signal that cleared the condition."},"resolved_at":{"type":"string","nullable":true}}},"OpsSignalAttributionRef":{"type":"object","description":"One attribution target (hosted app or app service) — public id + display name.","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false},"OpsSignalAttribution":{"type":"object","description":"The producer-stamped attribution (docs §3) lifted out of `payload` into a typed sibling (docs §6d), so consumers get the ids and names they need — e.g. vex-web building its own UI routes — without reading the per-kind JSON. Always present; each key is null when the producer did not know it.","required":["app","service","region"],"properties":{"app":{"oneOf":[{"$ref":"#/components/schemas/OpsSignalAttributionRef"},{"type":"null"}]},"service":{"oneOf":[{"$ref":"#/components/schemas/OpsSignalAttributionRef"},{"type":"null"}]},"region":{"type":"string","nullable":true}},"additionalProperties":false},"OpsSignalRecovery":{"type":"object","description":"Recovered/resolved state folded from the `resolution` pairing (docs §6b/§6d). Present only when the pairing is satisfied — `recovered` for a runtime.health signal whose instance came back to running, `resolved` for an alert.fired whose event cleared. Absent otherwise.","required":["state","resolved_at"],"properties":{"state":{"type":"string","enum":["recovered","resolved"]},"resolved_at":{"type":"string","nullable":true}},"additionalProperties":false},"OpsSignalSourceProvider":{"type":"string","description":"Who produced the signal (docs §6e). `vex` is every signal the platform emits itself; the others are signal-integration adapters.","enum":["vex","sentry","planetscale"]},"OpsSignalSource":{"type":"object","description":"Provenance envelope (docs §6e), a sibling of the frozen `payload`. ALWAYS present, so a reader never branches on key presence: a Vex-produced signal renders `provider: \"vex\"` with null siblings.","required":["provider","integration_id","external_id","external_url"],"properties":{"provider":{"$ref":"#/components/schemas/OpsSignalSourceProvider"},"integration_id":{"type":"string","nullable":true,"description":"The `sint_…` public id of the signal integration that ingested this signal. Null for Vex-produced signals, and null until the signal integration model ships."},"external_id":{"type":"string","nullable":true,"description":"The provider's own id for the thing the signal is about (a Sentry issue id)."},"external_url":{"type":"string","nullable":true,"description":"Deep link to read the full event at the provider — Vex stores only a bounded reduction of it. Mirrored as `links.external`."}},"additionalProperties":false},"SignalSubscriptionFilters":{"type":"object","description":"The frozen filter slice a `SignalSubscription` stores. `sources` is the roadmap-138 addition, normalized and validated exactly like `kinds`.","required":["kinds","min_severity","hosted_app_ids","sources"],"properties":{"kinds":{"type":"array","items":{"type":"string"}},"min_severity":{"oneOf":[{"$ref":"#/components/schemas/OpsSignalSeverity"},{"type":"null"}]},"hosted_app_ids":{"type":"array","items":{"type":"string"},"description":"Rendered as `app_…` public ids; accepted as public ids, raw ids, or slugs."},"sources":{"type":"array","items":{"$ref":"#/components/schemas/OpsSignalSourceProvider"},"description":"Empty means every source."}},"additionalProperties":false},"OpsSignalSolutionChange":{"type":"object","description":"The Change a linked agent run submitted as the fix (`link_signal_to_change`).","required":["id","number","reference"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string","description":"Pre-formatted human id (`#42`)."}},"additionalProperties":false},"OpsSignalAgentRuns":{"type":"object","description":"Dispatched-run summary (docs §6c). Present only once a signal has at least one `SignalAgentRun`, of either origin.","required":["count","latest_status"],"properties":{"count":{"type":"integer"},"latest_status":{"$ref":"#/components/schemas/OpsSignalAgentRunStatus"},"solution_change":{"oneOf":[{"$ref":"#/components/schemas/OpsSignalSolutionChange"},{"type":"null"}]}}},"OpsSignal":{"type":"object","description":"One ops signal, as serialized by `OpsSignalResource` (frozen envelope, docs §3). Every id is a prefixed public id, never a raw bigint.","required":["id","organization_id","kind","severity","subject_type","subject_id","hosted_app_id","app_service_id","dedupe_key","payload","summary","attribution","source","occurred_at","acked_at","created_at","links"],"properties":{"id":{"type":"string","description":"The signal's own `sig_…` public id — also the paging cursor value."},"organization_id":{"type":"string"},"kind":{"type":"string","description":"A frozen taxonomy kind (§1) or an `app.custom.*` kind."},"severity":{"$ref":"#/components/schemas/OpsSignalSeverity"},"subject_type":{"type":"string","nullable":true,"description":"Polymorphic pointer: `AppDeployment`, `RuntimeInstance`, `AlertEvent`, `HostedApp`, or `SignalSubscription`."},"subject_id":{"type":"string","nullable":true},"hosted_app_id":{"type":"string","nullable":true},"app_service_id":{"type":"string","nullable":true},"dedupe_key":{"type":"string","nullable":true},"payload":{"type":"object","additionalProperties":true,"description":"Per-kind shape (docs §4), with the producer's `region`/`app`/ `service` attribution keys baked in when known. Frozen contract — deliberately not narrowed per kind here."},"summary":{"type":"string","description":"One-line, kind-composed human sentence for the feed row (docs §6d, e.g. `deploying → failed`, `47× fp_9c1e77a4b2d0f331`) — server-authored so consumers never re-derive it from `payload`."},"attribution":{"$ref":"#/components/schemas/OpsSignalAttribution"},"source":{"$ref":"#/components/schemas/OpsSignalSource"},"recovery":{"$ref":"#/components/schemas/OpsSignalRecovery"},"occurred_at":{"type":"string","description":"ISO8601 domain event time — what the UI displays and `since` filters on."},"acked_at":{"type":"string","nullable":true},"acked_by":{"description":"Who acked the signal, read from `acked_by_user_id`. Always present so it reads as a pair with `acked_at`: null while unacked, and null for an ack recorded without a user (a bulk ack from a token-authed caller).","type":"object","nullable":true,"required":["id","name","email","picture_url"],"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"created_at":{"type":"string","description":"ISO8601 row insert time — retention math and debugging only."},"links":{"$ref":"#/components/schemas/OpsSignalLinks"},"resolution":{"$ref":"#/components/schemas/OpsSignalResolution"},"agent_runs":{"$ref":"#/components/schemas/OpsSignalAgentRuns"}}},"OpsSignalPage":{"type":"object","required":["signals","next_cursor","has_more"],"properties":{"signals":{"type":"array","items":{"$ref":"#/components/schemas/OpsSignal"}},"next_cursor":{"type":"string","nullable":true,"description":"The last returned signal's public id when more pages exist, else null. Feed it back as the same boundary param the request used."},"has_more":{"type":"boolean"}}},"OpsSignalEnvelope":{"type":"object","required":["signal"],"properties":{"signal":{"$ref":"#/components/schemas/OpsSignal"}}},"OpsSignalBulkAckRequest":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"Explicit `sig_…` ids. When present every other key is ignored."},"before_id":{"type":"string","description":"Inclusive upper bound (`sig_…`) — ack matching signals at or before it."},"kind":{"type":"string","description":"Single kind or comma-separated list."},"severity":{"type":"string","description":"Single severity or comma-separated list."},"min_severity":{"$ref":"#/components/schemas/OpsSignalSeverity"},"hosted_app_id":{"type":"string"},"source":{"type":"string","description":"Single source provider or comma-separated list (docs §6e). Alone it satisfies the \"explicitly scoped\" guard."},"integration_id":{"type":"string","description":"One signal integration — raw id, or `sint_…` once that model ships."},"since":{"type":"string"},"all":{"type":"boolean","description":"Opt in to an otherwise-unconstrained ack of every unacked signal."},"recovered_only":{"type":"boolean","description":"Narrow to signals whose `resolution.resolved` is true. Composes with every other filter and alone satisfies the \"explicitly scoped\" guard."}},"additionalProperties":false},"OpsSignalBulkAckResult":{"type":"object","required":["acked_count"],"properties":{"acked_count":{"type":"integer"}},"additionalProperties":false},"OpsSignalAgentPrompt":{"type":"object","required":["prompt"],"properties":{"prompt":{"type":"string"}},"additionalProperties":false},"OpsSignalAgentRunStatus":{"type":"string","enum":["dispatched","running","succeeded","failed","canceled"]},"OpsSignalAgentRunOrigin":{"type":"string","enum":["subscription","manual"]},"OpsSignalAgentRun":{"type":"object","description":"Compact manual-dispatch view of a `SignalAgentRun`; every id is public.","required":["id","origin","status","signal_id","swarm_id","task_id","dispatched_on","solution_change"],"properties":{"id":{"type":"string"},"origin":{"$ref":"#/components/schemas/OpsSignalAgentRunOrigin"},"status":{"$ref":"#/components/schemas/OpsSignalAgentRunStatus"},"signal_id":{"type":"string"},"swarm_id":{"type":"string","nullable":true},"task_id":{"type":"string","nullable":true},"dispatched_on":{"type":"string","nullable":true},"solution_change":{"oneOf":[{"$ref":"#/components/schemas/OpsSignalSolutionChange"},{"type":"null"}]}},"additionalProperties":false},"OpsSignalAgentDispatch":{"type":"object","required":["agent_run","dispatched"],"properties":{"agent_run":{"$ref":"#/components/schemas/OpsSignalAgentRun"},"dispatched":{"type":"boolean","description":"True for a freshly spawned run (201); false when an in-flight manual run was returned instead (200 dedupe)."}},"additionalProperties":false},"StaticSite":{"type":"object","required":["id","organization_id","hosted_app_id","repository_id","slug","name","description","status","region","replication_regions","index_document","error_document","default_url","cdn_url","cdn_hostname","cname_target","provisioned","failure_message","active_deployment_id","provisioned_at","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"hosted_app_id":{"type":"string","nullable":true},"repository_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string","enum":["draft","provisioning","active","degraded","archived","failed"]},"region":{"type":"string","nullable":true},"replication_regions":{"type":"array","items":{"type":"string"}},"index_document":{"type":"string"},"error_document":{"type":"string","nullable":true},"default_url":{"type":"string","format":"uri"},"cdn_url":{"type":"string","format":"uri"},"cdn_hostname":{"type":"string"},"cname_target":{"type":"string"},"provisioned":{"type":"boolean"},"failure_message":{"type":"string","nullable":true},"active_deployment_id":{"type":"string","nullable":true},"provisioned_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"StaticSiteCreatePayload":{"type":"object","required":["slug","name"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"region":{"type":"string"},"replication_regions":{"type":"array","items":{"type":"string"}},"index_document":{"type":"string"},"error_document":{"type":"string"},"hosted_app_id":{"type":"string"},"repository_id":{"type":"string"}}},"StaticSiteDeployment":{"type":"object","required":["id","static_site_id","creator_user_id","deploy_slug","status","trigger_kind","commit_sha","source_ref","file_count","total_bytes","file_count_label","total_bytes_label","failure_message","is_active","uploaded_at","activated_at","started_at","finished_at","created_at","updated_at","uploaded_at_label","activated_at_label","started_at_label","finished_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"static_site_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"deploy_slug":{"type":"string"},"status":{"type":"string","enum":["pending","uploading","uploaded","activating","active","failed","canceled","superseded"]},"trigger_kind":{"type":"string","enum":["cli","api","dashboard","ci"]},"commit_sha":{"type":"string","nullable":true},"source_ref":{"type":"string","nullable":true},"file_count":{"type":"integer","minimum":0},"total_bytes":{"type":"integer","minimum":0},"file_count_label":{"type":"string"},"total_bytes_label":{"type":"string"},"failure_message":{"type":"string","nullable":true},"is_active":{"type":"boolean"},"uploaded_at":{"type":"string","format":"date-time","nullable":true},"activated_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"uploaded_at_label":{"type":"string","nullable":true},"activated_at_label":{"type":"string","nullable":true},"started_at_label":{"type":"string","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"StaticSiteDomain":{"type":"object","required":["id","hosted_app_id","app_service_id","app_environment_id","static_site_id","hostname","kind","target_kind","dns_mode","record_type","record_name","record_value","tls_status","dns_status","verification_status","last_checked_at","failure_message","redirect_to","created_at","updated_at"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string","nullable":true},"app_service_id":{"type":"string","nullable":true},"app_environment_id":{"type":"string","nullable":true},"static_site_id":{"type":"string","nullable":true},"hostname":{"type":"string"},"kind":{"type":"string","enum":["primary","redirect","preview","internal"]},"target_kind":{"type":"string","enum":["app_service","static_site"]},"dns_mode":{"type":"string","enum":["manual_cname","cloudflare"]},"record_type":{"type":"string","nullable":true},"record_name":{"type":"string","nullable":true},"record_value":{"type":"string","nullable":true},"tls_status":{"type":"string","enum":["pending","active","failed"]},"dns_status":{"type":"string","enum":["pending","configured","failed"]},"verification_status":{"type":"string","enum":["pending","configured","failed"]},"last_checked_at":{"type":"string","format":"date-time","nullable":true},"failure_message":{"type":"string","nullable":true},"redirect_to":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"StaticSiteDomainCreatePayload":{"type":"object","required":["hostname"],"properties":{"hostname":{"type":"string"},"kind":{"type":"string","enum":["primary","redirect","preview","internal"]},"dns_mode":{"type":"string","enum":["manual_cname","cloudflare"]},"redirect_to":{"type":"string"}}},"DomainDnsIntegration":{"type":"object","required":["id","organization_id","provider","account_label","status","has_token","last_verified_at","failure_message","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"provider":{"type":"string","enum":["cloudflare"]},"account_label":{"type":"string","nullable":true},"status":{"type":"string","enum":["active","failed","disabled"]},"has_token":{"type":"boolean"},"last_verified_at":{"type":"string","format":"date-time","nullable":true},"failure_message":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"StaticSiteError":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}},"status":{"type":"string"},"failure_message":{"type":"string","nullable":true}}},"TranscriptPagination":{"type":"object","required":["next_cursor","has_more","limit"],"properties":{"next_cursor":{"type":"string","nullable":true},"has_more":{"type":"boolean"},"limit":{"type":"integer"}}},"TranscriptCheckpoint":{"type":"object","required":["id","captured_at","status","source_ref","matches"],"properties":{"id":{"type":"string"},"captured_at":{"type":"string","nullable":true},"status":{"type":"string","enum":["available","preparing","pending","unavailable","expired"]},"source_ref":{"type":"string","description":"Opaque saved-content reference. It grants no access."},"matches":{"type":"object","required":["entries","truncated"],"properties":{"truncated":{"type":"boolean"},"entries":{"type":"array","items":{"type":"object","required":["kind","commit"],"properties":{"kind":{"type":"string"},"commit":{"type":"string"},"patchset":{"type":"integer","nullable":true},"current_patchset":{"type":"boolean","nullable":true}}}}}}}},"TranscriptDiscoverySession":{"type":"object","required":["id","title","agent","author","started_at","last_checkpoint_at","source_url","status","selected_checkpoint","checkpoints","checkpoint_pagination"],"properties":{"id":{"type":"string"},"title":{"type":"string","nullable":true},"agent":{"type":"string"},"author":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true}}},"started_at":{"type":"string"},"last_checkpoint_at":{"type":"string","nullable":true},"source_url":{"type":"string"},"status":{"type":"string","enum":["available","preparing","pending","unavailable","expired","no_matching_checkpoint"]},"selected_checkpoint":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/TranscriptCheckpoint"}]},"checkpoints":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptCheckpoint"}},"checkpoint_pagination":{"$ref":"#/components/schemas/TranscriptPagination"}}},"TranscriptDiscoveryPage":{"type":"object","required":["target","sessions","pagination","as_of","linkage"],"properties":{"target":{"type":"object","required":["kind","reference","repo","observed_head"],"properties":{"kind":{"type":"string","enum":["github_pr","change","commit"]},"reference":{"type":"string"},"repo":{"type":"string"},"observed_head":{"type":"string","nullable":true},"change_id":{"type":"string"},"number":{"type":"integer"},"github_url":{"type":"string"},"commit":{"type":"string"}}},"sessions":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptDiscoverySession"}},"pagination":{"$ref":"#/components/schemas/TranscriptPagination"},"as_of":{"type":"string"},"linkage":{"type":"string","enum":["observed"]}}},"TranscriptReadPage":{"type":"object","required":["status","session_id","checkpoint_id","source_ref","scope","events","older_cursor","has_more","limits","contains_truncated_events","truncation_notice","newer_cursor"],"properties":{"status":{"type":"string","enum":["available","preparing","pending","unavailable","expired","no_checkpoint"]},"session_id":{"type":"string"},"checkpoint_id":{"type":"string","nullable":true},"source_ref":{"type":"string","nullable":true},"scope":{"type":"string","enum":["checkpoint","whole_session"]},"events":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptReadEvent"}},"older_cursor":{"type":"string","nullable":true},"has_more":{"type":"boolean"},"limits":{"type":"object","required":["events","bytes","include_tools"],"properties":{"events":{"type":"integer"},"bytes":{"type":"integer"},"include_tools":{"type":"boolean"}}},"contains_truncated_events":{"type":"boolean"},"truncation_notice":{"type":"string","nullable":true},"newer_cursor":{"type":"string","nullable":true}}},"TranscriptReadEvent":{"type":"object","required":["index","kind","role","text","truncated","timestamp","citation"],"properties":{"index":{"type":"integer"},"kind":{"type":"string","enum":["message","tool_use","tool_result"]},"role":{"type":"string","nullable":true},"text":{"type":"string"},"truncated":{"type":"boolean"},"timestamp":{"type":"string","nullable":true},"citation":{"type":"object","required":["checkpoint_id","event_index","digest"],"properties":{"checkpoint_id":{"type":"string"},"event_index":{"type":"integer"},"digest":{"type":"string"}}}}},"TranscriptSearchRequest":{"type":"object","additionalProperties":false,"required":["query"],"properties":{"query":{"type":"string","minLength":1,"maxLength":4000},"mode":{"type":"string","enum":["hybrid","keyword","semantic"],"default":"hybrid"},"repo":{"type":"string"},"user":{"type":"string"},"adapter":{"type":"string"},"status":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"cursor":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":50,"default":20},"max_bytes":{"type":"integer","minimum":8192,"maximum":131072,"default":32768}}},"TranscriptSearchResult":{"type":"object","required":["query","mode_requested","mode_used","status","coverage","results","pagination","limits"],"properties":{"query":{"type":"string"},"mode_requested":{"type":"string"},"mode_used":{"type":"string"},"status":{"type":"string","enum":["ready","empty","not_ready","degraded"]},"coverage":{"type":"object","required":["sessions","ready","pending","failed","indexed_at"],"properties":{"sessions":{"type":"integer"},"ready":{"type":"integer"},"pending":{"type":"integer"},"failed":{"type":"integer"},"indexed_at":{"type":"string","nullable":true}}},"results":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptSearchHit"}},"pagination":{"type":"object","required":["next_cursor","window_exhausted","budget_limited"],"properties":{"next_cursor":{"type":"string","nullable":true},"window_exhausted":{"type":"boolean"},"budget_limited":{"type":"boolean"}}},"limits":{"type":"object","required":["limit","max_bytes","candidate_window"],"properties":{"limit":{"type":"integer"},"max_bytes":{"type":"integer"},"candidate_window":{"type":"integer"}}},"degradation":{"type":"string"}}},"TranscriptSearchHit":{"type":"object","required":["session_id","title","repository","user","harness","model","started_at","url","matches"],"properties":{"session_id":{"type":"string"},"title":{"type":"string","nullable":true},"repository":{"type":"object","required":["id","slug"],"properties":{"id":{"type":"string"},"slug":{"type":"string"}}},"user":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true}}},"harness":{"type":"string"},"model":{"type":"string","nullable":true},"started_at":{"type":"string"},"url":{"type":"string"},"matches":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptSearchMatch"}}}},"TranscriptSearchMatch":{"type":"object","required":["role","excerpt","source_ref","checkpoint_id","event_index","event_digest","byte_start","byte_end","truncated"],"properties":{"role":{"type":"string","enum":["user","assistant"]},"excerpt":{"type":"string"},"source_ref":{"type":"string"},"checkpoint_id":{"type":"string"},"event_index":{"type":"integer"},"event_digest":{"type":"string"},"byte_start":{"type":"integer"},"byte_end":{"type":"integer"},"truncated":{"type":"boolean"}}},"TranscriptSearchError":{"type":"object","required":["status","code","error","results"],"properties":{"status":{"type":"string","enum":["error"]},"code":{"type":"string"},"error":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptSearchHit"}}}},"VcsBranch":{"type":"object","required":["name","target_commit_id"],"properties":{"name":{"type":"string"},"target_commit_id":{"type":"string"}}},"VcsBranchesResponse":{"type":"object","required":["branches","branches_count_label","default_branch","protected_bookmarks","setup_required"],"properties":{"branches":{"type":"array","items":{"$ref":"#/components/schemas/VcsBranch"}},"branches_count_label":{"type":"string"},"default_branch":{"type":"string","nullable":true},"protected_bookmarks":{"type":"array","items":{"type":"string"}},"setup_required":{"type":"boolean","description":"True when the repository has no jj-backend counterpart yet, so the client should offer first-time setup instead of browsing."}}},"VcsCommitGithubLink":{"type":"object","required":["repository","root_path","commit_sha","commit_url"],"properties":{"repository":{"type":"string"},"root_path":{"type":"string"},"commit_sha":{"type":"string"},"commit_url":{"type":"string","format":"uri"}}},"VcsCommitVirtualRepository":{"description":"The federated Space (virtual repository) this commit belongs to when viewing Home monorepo history. Absent when the commit cannot be attributed, or when history is already scoped to one Space.","type":"object","required":["slug","name","root_path"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"root_path":{"type":"string"}}},"VcsCommitAuthorIdentity":{"type":"object","required":["source"],"properties":{"source":{"type":"string","enum":["vex","github","gravatar"]},"github_login":{"type":"string","nullable":true},"github_url":{"type":"string","format":"uri","nullable":true},"name":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"company":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"public_repos":{"type":"integer","nullable":true},"followers":{"type":"integer","nullable":true}}},"VcsCommitAgentContext":{"type":"object","required":["checkpoint_count","status","transcript_count","transcripts","transcripts_label","checkpoints_label","tokens_label","status_label"],"properties":{"harness":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"total_tokens":{"type":"integer","nullable":true},"token_usage_scope":{"type":"string","nullable":true,"enum":["turn","session","cumulative"]},"checkpoint_count":{"type":"integer","minimum":1},"session_id":{"type":"string","nullable":true},"session_title":{"type":"string","nullable":true},"status":{"type":"string","enum":["available","unavailable"]},"transcript_count":{"type":"integer","minimum":0},"transcripts":{"type":"array","items":{"$ref":"#/components/schemas/VcsCommitAgentTranscript"}},"transcripts_label":{"type":"string","nullable":true,"description":"e.g. \"3 transcripts\". Null when no transcript is linkable."},"checkpoints_label":{"type":"string","nullable":true,"description":"e.g. \"3 checkpoints\". Null below two, where the count adds nothing."},"tokens_label":{"type":"string","nullable":true,"description":"Exact total with the scope it was measured over, e.g. \"2,461,146 tokens (cumulative)\". Null when no total is known."},"status_label":{"type":"string","nullable":true,"description":"e.g. \"Still uploading\". Null when the context is ready to read."}}},"VcsCommitAgentTranscript":{"type":"object","required":["session_id","checkpoint_count","status","captures_label","status_label"],"properties":{"session_id":{"type":"string"},"session_title":{"type":"string","nullable":true},"checkpoint_id":{"type":"string","nullable":true},"checkpoint_count":{"type":"integer","minimum":1},"captured_at":{"type":"string","format":"date-time","nullable":true},"harness":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"total_tokens":{"type":"integer","nullable":true},"token_usage_scope":{"type":"string","nullable":true,"enum":["turn","session","cumulative"]},"status":{"type":"string","enum":["available","unavailable"]},"captures_label":{"type":"string","nullable":true,"description":"e.g. \"2 captures\" when this session saved the commit more than once. Null for a single capture."},"status_label":{"type":"string","nullable":true,"description":"e.g. \"Still uploading\". Null when this transcript is ready to read."}}},"VcsCommitDeployment":{"type":"object","required":["status","trigger_kind","deployment_id"],"properties":{"app_slug":{"type":"string","nullable":true},"service_slug":{"type":"string","nullable":true},"environment_slug":{"type":"string","nullable":true},"location_code":{"type":"string","nullable":true},"status":{"type":"string"},"trigger_kind":{"type":"string"},"deployment_id":{"type":"string"},"deployed_url":{"type":"string","format":"uri","nullable":true}}},"VcsCommitDeployments":{"type":"object","required":["items","total_count","has_more"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/VcsCommitDeployment"}},"total_count":{"type":"integer","minimum":0},"has_more":{"type":"boolean"}}},"VcsCommitChangeLink":{"description":"The reviewable Change this commit landed from. Absent on commits that never went through review.","type":"object","required":["number","reference"],"properties":{"number":{"type":"integer","minimum":1},"reference":{"type":"string","description":"The organization-scoped human id, rendered as `#262`."},"title":{"type":"string","nullable":true},"landed_by_name":{"type":"string","nullable":true,"description":"Display name of the user who landed the Change (or the Change author when landed_by is unset). Prefer this over the commit's author_name when the history line says \"landed\"."},"landed_by_email":{"type":"string","nullable":true},"virtual_repository_slug":{"type":"string","nullable":true,"description":"Slug of the virtual repository the Change was submitted against. Path-scoped history for another Space drops lands where this differs from the browsed Space."}}},"VcsCommit":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"message":{"type":"string","nullable":true},"summary":{"type":"string","nullable":true},"parent_ids":{"type":"array","items":{"type":"string"}},"author_name":{"type":"string","nullable":true},"author_email":{"type":"string","nullable":true},"author_date":{"type":"string","format":"date-time","nullable":true},"author_date_label":{"type":"string","nullable":true},"committer_name":{"type":"string","nullable":true},"committer_date":{"type":"string","format":"date-time","nullable":true},"committer_date_label":{"type":"string","nullable":true},"landed_at":{"type":"string","format":"date-time","nullable":true},"committed_on_key":{"type":"string","format":"date","nullable":true},"committed_on_label":{"type":"string","nullable":true},"parent_count_label":{"type":"string","nullable":true},"author_avatar_url":{"type":"string","format":"uri","nullable":true},"author_identity":{"oneOf":[{"$ref":"#/components/schemas/VcsCommitAuthorIdentity"},{"type":"null"}]},"actor_name":{"type":"string","nullable":true,"description":"The person the history line names — the Change lander when the commit has landed, otherwise the commit author."},"actor_email":{"type":"string","nullable":true},"actor_avatar_url":{"type":"string","format":"uri","nullable":true},"actor_identity":{"oneOf":[{"$ref":"#/components/schemas/VcsCommitAuthorIdentity"},{"type":"null"}]},"actor_verb":{"type":"string","nullable":true,"enum":["landed","committed"],"description":"The verb that belongs next to the actor. `landed` when this commit was observed as the target bookmark's tip."},"github":{"oneOf":[{"$ref":"#/components/schemas/VcsCommitGithubLink"},{"type":"null"}]},"virtual_repository":{"oneOf":[{"$ref":"#/components/schemas/VcsCommitVirtualRepository"},{"type":"null"}]},"change":{"oneOf":[{"$ref":"#/components/schemas/VcsCommitChangeLink"},{"type":"null"}]},"agent_context":{"oneOf":[{"$ref":"#/components/schemas/VcsCommitAgentContext"},{"type":"null"}]},"ci_status":{"type":"string","nullable":true,"enum":["queued","running","succeeded","failed","canceled"]},"deployments":{"oneOf":[{"$ref":"#/components/schemas/VcsCommitDeployments"},{"type":"null"}]}}},"VcsCommitsResponse":{"type":"object","required":["ref_name","default_branch","branches","protected_bookmarks","commits","page_count_label","has_more","offset","limit","query","search_truncated","pagination"],"properties":{"ref_name":{"type":"string","description":"The ref this page walked — the requested `ref`, or the resolved trunk when the request named none."},"default_branch":{"type":"string","description":"The repository's authoritative trunk, resolved server-side."},"branches":{"type":"array","items":{"$ref":"#/components/schemas/VcsBranch"}},"protected_bookmarks":{"type":"array","items":{"type":"string"}},"commits":{"type":"array","items":{"$ref":"#/components/schemas/VcsCommit"}},"page_count_label":{"type":"string"},"has_more":{"type":"boolean"},"offset":{"type":"integer","minimum":0},"limit":{"type":"integer","minimum":1},"query":{"type":"string"},"search_truncated":{"type":"boolean","description":"True when `q` stopped at the search scan bound rather than at the root of the repository, so \"no matches\" means \"none this far back\"."},"pagination":{"type":"object","additionalProperties":true,"required":["page","limit","last"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","minimum":1,"nullable":true},"next":{"type":"integer","minimum":1,"nullable":true}}}}},"VcsCommitPageResponse":{"type":"object","required":["commit","diff_path"],"properties":{"commit":{"oneOf":[{"$ref":"#/components/schemas/VcsCommit"},{"type":"null"}]},"diff_path":{"type":"string","description":"Fingerprinted path serving this commit range's file diff. Rails builds it; fetch it as given rather than assembling one."}}},"VcsCommitRangeDiffResponse":{"type":"object","required":["parent_id","files"],"description":"Carries no commit metadata by design — an author's avatar would make these bytes mutable and cost the response its `immutable` window.","properties":{"parent_id":{"type":"string","nullable":true},"files":{"type":"array","items":{"$ref":"#/components/schemas/VcsDiffFile"}}}},"VcsDiffFile":{"type":"object","required":["path","status","additions","deletions"],"properties":{"path":{"type":"string"},"previous_path":{"type":"string","nullable":true},"status":{"type":"string","enum":["added","modified","deleted","renamed"]},"additions":{"type":"integer","minimum":0},"deletions":{"type":"integer","minimum":0},"binary":{"type":"boolean"},"truncated":{"type":"boolean"},"generated":{"type":"boolean","description":"True when this path is a lockfile or well-known generated dump a reviewer usually does not need expanded."},"patch":{"type":"string","nullable":true},"unresolved_comments_count":{"type":"integer","minimum":0},"unresolved_comments_count_label":{"type":"string"}}},"VcsBrowserRef":{"type":"object","required":["name","resolved_commit_id"],"properties":{"name":{"type":"string"},"resolved_commit_id":{"type":"string"},"default_branch":{"type":"string","nullable":true}}},"VcsSyncedSpace":{"type":"object","required":["root_path","provider","repository_full_name","url"],"properties":{"root_path":{"type":"string"},"provider":{"type":"string"},"repository_full_name":{"type":"string"},"url":{"type":"string","format":"uri"}}},"VcsKnowledgeDocumentCandidate":{"type":"object","required":["path","document_count"],"properties":{"path":{"type":"string"},"document_count":{"type":"integer","minimum":0}}},"VcsKnowledgeDocumentIndex":{"type":"object","required":["folders","candidates","document_paths","document_count","document_count_label"],"properties":{"folders":{"type":"array","items":{"type":"string"}},"candidates":{"type":"array","items":{"$ref":"#/components/schemas/VcsKnowledgeDocumentCandidate"}},"document_paths":{"type":"array","items":{"type":"string"}},"document_count":{"type":"integer","minimum":0},"document_count_label":{"type":"string"}}},"VcsBrowserTreeResponse":{"type":"object","required":["ref","tree","synced_spaces","knowledge"],"properties":{"ref":{"$ref":"#/components/schemas/VcsBrowserRef"},"tree":{"type":"object","required":["paths","truncated","path_count"],"properties":{"paths":{"type":"array","items":{"type":"string"}},"truncated":{"type":"boolean"},"path_count":{"type":"integer","minimum":0}}},"synced_spaces":{"type":"array","items":{"$ref":"#/components/schemas/VcsSyncedSpace"}},"knowledge":{"oneOf":[{"$ref":"#/components/schemas/VcsKnowledgeDocumentIndex"},{"type":"null"}]}}},"VcsTrunkTipResponse":{"type":"object","required":["trunk_tip"],"properties":{"trunk_tip":{"oneOf":[{"$ref":"#/components/schemas/VcsCommit"},{"type":"null"}]}}},"VcsBrowserFileContents":{"type":"object","required":["name","contents","cacheKey"],"properties":{"name":{"type":"string"},"contents":{"type":"string"},"lang":{"type":"string"},"cacheKey":{"type":"string"}}},"VcsBrowserSelectedFile":{"type":"object","required":["path","kind","encoding","size_bytes","size_label","line_count","line_count_label","raw_url"],"properties":{"path":{"type":"string"},"kind":{"type":"string","enum":["text","binary","image","empty","missing","not_a_file","too_large"]},"encoding":{"type":"string","nullable":true,"enum":["utf-8","binary"]},"size_bytes":{"type":"integer","nullable":true},"size_label":{"type":"string","nullable":true},"line_count":{"type":"integer","nullable":true},"line_count_label":{"type":"string","nullable":true},"raw_url":{"type":"string","nullable":true},"file":{"$ref":"#/components/schemas/VcsBrowserFileContents"}}},"VcsBrowserFileResponse":{"type":"object","required":["ref","selected_file"],"properties":{"ref":{"$ref":"#/components/schemas/VcsBrowserRef"},"selected_file":{"$ref":"#/components/schemas/VcsBrowserSelectedFile"}}},"VcsFilesResponse":{"type":"object","required":["paths","truncated"],"properties":{"paths":{"type":"array","items":{"type":"string"}},"truncated":{"type":"boolean"}}},"VcsBlameLine":{"type":"object","required":["number","content","commit_id"],"properties":{"number":{"type":"integer","minimum":1},"content":{"type":"string"},"commit_id":{"type":"string","nullable":true}}},"VcsBlameRevision":{"type":"object","required":["id","short_id","author_name","author_email","author_date","author_date_label","summary"],"properties":{"id":{"type":"string"},"short_id":{"type":"string"},"author_name":{"type":"string","nullable":true},"author_email":{"type":"string","nullable":true},"author_date":{"type":"string","format":"date-time","nullable":true},"author_date_label":{"type":"string","nullable":true},"summary":{"type":"string","nullable":true}}},"VcsBlameResponse":{"type":"object","required":["ref","path","blame","revisions"],"properties":{"ref":{"$ref":"#/components/schemas/VcsBrowserRef"},"path":{"type":"string"},"blame":{"type":"object","required":["lines","truncated","line_count"],"properties":{"lines":{"type":"array","items":{"$ref":"#/components/schemas/VcsBlameLine"}},"truncated":{"type":"boolean"},"line_count":{"type":"integer","minimum":0}}},"revisions":{"type":"array","items":{"$ref":"#/components/schemas/VcsBlameRevision"}}}},"VcsMergePayload":{"type":"object","additionalProperties":false,"required":["into","from"],"properties":{"into":{"type":"string"},"from":{"type":"string"}}},"VcsMergeResponse":{"type":"object","required":["ok","fast_forward","tip_id"],"properties":{"ok":{"type":"boolean"},"fast_forward":{"type":"boolean"},"tip_id":{"type":"string"},"into":{"type":"string"},"from":{"type":"string"},"message":{"type":"string"}}},"VcsResolvedReviewer":{"type":"object","required":["name","email"],"properties":{"name":{"type":"string","nullable":true},"email":{"type":"string","format":"email"}}},"VcsOrdinaryChangeSubmitRequest":{"type":"object","required":["revisions"],"properties":{"target_branch":{"type":"string","default":"main"},"message":{"type":"string","nullable":true,"description":"Initial durable rich-text description for newly created changes."},"reviewers":{"type":"array","description":"Organization member names or emails to add as reviewers on every open submitted change.","items":{"type":"string"}},"remove_reviewers":{"type":"array","description":"Organization member names or emails to remove as reviewers from every open submitted change.","items":{"type":"string"}},"labels":{"type":"array","description":"Label names to attach to every open change in the submission. Values may be comma-separated.","items":{"type":"string"}},"draft":{"type":"boolean","nullable":true,"description":"On submit, omitted or null means ready for review. On sync, omitted or null preserves draft status. Set true explicitly to create or retain a draft."},"expected_target_commit_id":{"type":"string","nullable":true},"expected_target_version":{"type":"integer","nullable":true},"revisions":{"type":"array","minItems":1,"items":{"type":"object","required":["change_id","commit_id","title"],"properties":{"change_id":{"type":"string"},"commit_id":{"type":"string"},"expected_head_commit_id":{"type":"string","pattern":"^[0-9a-f]{64}$","description":"Current native Change head observed by the editor. Supply together with expected_patchset_number for atomic stale-edit rejection."},"expected_patchset_number":{"type":"integer","minimum":1,"description":"Current Change patchset observed by the editor. Supply together with expected_head_commit_id."},"parent_commit_id":{"type":"string","nullable":true},"base_commit_id":{"type":"string","nullable":true},"title":{"type":"string"},"description":{"type":"string","nullable":true,"description":"JJ commit message","not the durable Vex description.":null},"files":{"type":"array","items":{"$ref":"#/components/schemas/VcsFederatedHomeSubmitFile"}}}}}}},"VcsFederatedHomeSubmitFile":{"type":"object","additionalProperties":false,"required":["path","status","additions","deletions"],"properties":{"path":{"type":"string"},"previous_path":{"type":"string","nullable":true},"status":{"type":"string","enum":["added","modified","deleted","renamed"]},"additions":{"type":"integer","minimum":0},"deletions":{"type":"integer","minimum":0}}},"VcsFederatedHomeSubmitRevision":{"type":"object","additionalProperties":false,"required":["change_id","commit_id","parent_commit_id","base_commit_id","title","description","files"],"properties":{"change_id":{"type":"string"},"commit_id":{"type":"string","pattern":"^[0-9a-f]{64}$"},"parent_commit_id":{"type":"string","pattern":"^[0-9a-f]{64}$"},"base_commit_id":{"type":"string","pattern":"^[0-9a-f]{64}$"},"title":{"type":"string"},"description":{"type":"string"},"files":{"type":"array","items":{"$ref":"#/components/schemas/VcsFederatedHomeSubmitFile"}}}},"VcsFederatedHomeSubmitPartition":{"type":"object","additionalProperties":false,"required":["repository_id","repository_public_id","repository_slug","root_path","selected_bookmark","base_revision","expected_target_commit_id","expected_target_version","paths","revisions"],"properties":{"repository_id":{"type":"string","pattern":"^[1-9][0-9]*$","description":"Canonical jj-backend repository id from the exact published manifest."},"repository_public_id":{"type":"string","description":"Rails public repository id used for durable control-plane ownership."},"repository_slug":{"type":"string"},"root_path":{"type":"string","description":"Home-relative ownership root; empty only for the Home-owned partition."},"selected_bookmark":{"type":"string"},"base_revision":{"type":"string","pattern":"^[0-9a-f]{64}$"},"expected_target_commit_id":{"type":"string","pattern":"^[0-9a-f]{64}$"},"expected_target_version":{"type":"integer","minimum":0},"paths":{"type":"array","items":{"type":"string"}},"revisions":{"type":"array","maxItems":1,"items":{"$ref":"#/components/schemas/VcsFederatedHomeSubmitRevision"}}}},"VcsFederatedHomeSubmitRequest":{"type":"object","additionalProperties":false,"required":["format_version","manifest_digest","manifest_artifact_suffix","manifest_generation","operation_key","facade_revision","partitions"],"properties":{"format_version":{"type":"integer","enum":[1]},"manifest_digest":{"type":"string","pattern":"^[0-9a-f]{64}$"},"manifest_artifact_suffix":{"type":"string","pattern":"^federated-home/v1/[0-9a-f]{64}\\.json$"},"manifest_generation":{"type":"integer","minimum":1},"operation_key":{"type":"string","minLength":1,"maxLength":255},"expected_previous_public_commit_id":{"type":"string","pattern":"^[0-9a-f]{64}$","description":"Compare-and-swap token for a later generation of the stable Home facade Change. Omitted for its first submission."},"facade_revision":{"allOf":[{"$ref":"#/components/schemas/VcsFederatedHomeSubmitRevision"}],"description":"Opaque flat-facade identity and file summary. Rails derives the persisted aggregate diff from verified native child commits."},"partitions":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/VcsFederatedHomeSubmitPartition"}}}},"VcsChangeError":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"VcsChangePrimaryStatus":{"type":"string","enum":["needs_review","review_requested","changes_requested","approved","ready_to_land","waiting_to_land","landing","landed","abandoned","folded","orphaned","needs_restack"]},"VcsActorSummary":{"allOf":[{"$ref":"#/components/schemas/VcsUserSummary"},{"type":"object","properties":{"kind":{"type":"string","enum":["automation"]},"slug":{"type":"string"}}}],"description":"Human user summary or organization automation identity. Automations have kind and slug, without email or picture_url."},"VcsUserSummary":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"picture_url":{"type":"string"}}},"VcsChangeCheck":{"type":"object","required":["id","name","status"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"required":{"type":"boolean"},"started_at":{"type":"string","format":"date-time"},"finished_at":{"type":"string","format":"date-time"},"pipeline_id":{"type":"string"},"run_id":{"type":"string"},"job_id":{"type":"string"},"blocked_reason":{"type":"string"},"source":{"type":"string","enum":["vex","github"]},"details_url":{"type":"string","format":"uri"},"app_id":{"type":"integer"},"expected":{"type":"boolean"},"expected_since":{"type":"string","format":"date-time"},"requirement":{"type":"object","properties":{"name":{"type":"string"},"source":{"type":"string","enum":["vex","github","any"]},"app_id":{"type":"integer","nullable":true},"state":{"type":"string","enum":["expected","pending","failed","passed"]},"evaluated_head":{"type":"string"}}}}},"VcsChangeVote":{"type":"object","required":["id","kind"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["accept","request_changes"]},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/VcsUserSummary"},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string"}}},"VcsChangeReviewer":{"type":"object","required":["user","state","requested"],"properties":{"user":{"$ref":"#/components/schemas/VcsUserSummary"},"state":{"type":"string","enum":["changes_requested","approved","pending"]},"requested":{"type":"boolean"}}},"VcsChangeReviewerCandidate":{"type":"object","required":["user"],"properties":{"user":{"$ref":"#/components/schemas/VcsUserSummary"},"unavailable_reason":{"type":"string"}}},"VcsChangePatchset":{"type":"object","required":["id","number","commit_id"],"properties":{"id":{"type":"string"},"number":{"type":"integer","minimum":1},"commit_id":{"type":"string"},"parent_commit_id":{"type":"string"},"base_commit_id":{"type":"string"},"message":{"type":"string"},"source_kind":{"type":"string","enum":["jj","git"]},"source_git_sha":{"type":"string"},"checks_status":{"type":"string"},"created_by":{"$ref":"#/components/schemas/VcsActorSummary"},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string"}}},"VcsChangeDiffPatchset":{"allOf":[{"$ref":"#/components/schemas/VcsChangePatchset"},{"type":"object","required":["reviewed_files"],"properties":{"reviewed_files":{"type":"array","items":{"$ref":"#/components/schemas/VcsReviewedFile"}}}}]},"VcsChangeDiffOption":{"type":"object","required":["key","label","group"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"group":{"type":"string","enum":["Target","Stack changes","Patchset history"]}}},"VcsChangeDiff":{"type":"object","required":["base_key","base_commit_id","head_key","head_patchset","files","options","target_advanced"],"properties":{"base_key":{"type":"string","nullable":true},"base_commit_id":{"type":"string","nullable":true},"head_key":{"type":"string","nullable":true},"head_patchset":{"oneOf":[{"$ref":"#/components/schemas/VcsChangeDiffPatchset"},{"type":"null"}]},"files":{"type":"array","items":{"$ref":"#/components/schemas/VcsDiffFile"}},"options":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeDiffOption"}},"target_advanced":{"type":"boolean"}}},"VcsChangeSync":{"type":"object","required":["state","target_branch","base","conflicts"],"properties":{"state":{"type":"string","enum":["current","clean","conflicts","unavailable"]},"target_branch":{"type":"string"},"target_commit_id":{"type":"string","nullable":true},"base":{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","enum":["change","target"]},"commit_id":{"type":"string","nullable":true},"target_branch":{"type":"string"},"change":{"type":"object","required":["id","number","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"title":{"type":"string"}}}}},"conflicts":{"type":"array","items":{"type":"object","required":["path","kind","message"],"properties":{"path":{"type":"string"},"kind":{"type":"string"},"message":{"type":"string"}}}}}},"VcsGithubCoordination":{"type":"object","required":["state","title","message","check_name","docs_url","repositories"],"properties":{"state":{"type":"string","enum":["checking","setup_required","verification_failed","protected"]},"title":{"type":"string"},"message":{"type":"string"},"check_name":{"type":"string"},"docs_url":{"type":"string"},"repositories":{"type":"array","items":{"type":"object","required":["name","state","settings_url"],"properties":{"name":{"type":"string"},"state":{"type":"string","enum":["checking","missing","error","active"]},"settings_url":{"type":"string","format":"uri"}}}}}},"VcsChangeTranscript":{"type":"object","additionalProperties":false,"required":["id","capture_kind","status","captured_at","redaction_count","patchset_number","patchset_commit_id","superseded","harness"],"properties":{"id":{"type":"string"},"capture_kind":{"type":"string","enum":["commit","lifecycle","manual"]},"status":{"type":"string","enum":["pending","uploaded","failed","deleted"]},"captured_at":{"type":"string","format":"date-time"},"redaction_count":{"type":"integer","minimum":0},"patchset_number":{"type":"integer","minimum":1},"patchset_commit_id":{"type":"string"},"superseded":{"type":"boolean"},"harness":{"$ref":"#/components/schemas/VcsChangeTranscriptHarness"},"user":{"$ref":"#/components/schemas/VcsUserSummary"},"session_id":{"type":"string","nullable":true},"session_title":{"type":"string","nullable":true},"original_resume":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["codex_deep_link","claude_command","cursor_command","grok_command"]},"value":{"type":"string"}}},{"type":"null"}]}}},"VcsChangeTranscriptHarness":{"type":"object","additionalProperties":false,"properties":{"harness":{"type":"string","enum":["codex","claude-code","cursor","roder","grok"]},"harness_version":{"type":"string"},"model":{"type":"string"},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh","max","ultra"]},"token_usage":{"type":"object","additionalProperties":false,"properties":{"input_tokens":{"type":"integer","minimum":0},"cached_input_tokens":{"type":"integer","minimum":0},"output_tokens":{"type":"integer","minimum":0},"reasoning_output_tokens":{"type":"integer","minimum":0},"total_tokens":{"type":"integer","minimum":0},"total_tokens_is_estimated":{"type":"boolean"}}},"token_usage_scope":{"type":"string","enum":["turn","session","cumulative"]},"subagent_count":{"type":"integer","minimum":0,"maximum":1000000},"subagent_count_truncated":{"type":"boolean"}}},"VcsChangeTranscripts":{"type":"object","required":["status","available_count","unavailable_count","transcripts"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"available_count":{"type":"integer","minimum":0},"unavailable_count":{"type":"integer","minimum":0},"transcripts":{"type":"array","maxItems":8,"items":{"$ref":"#/components/schemas/VcsChangeTranscript"}}}},"VcsChangePatchsetUnresolvedCommentCount":{"type":"object","description":"Unresolved review threads on one file of one patchset.","required":["path","count","count_label"],"properties":{"path":{"type":"string"},"count":{"type":"integer","minimum":1},"count_label":{"type":"string"}}},"VcsReviewedFile":{"type":"object","required":["path","reviewed_patchset_number"],"properties":{"path":{"type":"string"},"reviewed_at":{"type":"string","format":"date-time"},"reviewed_patchset_number":{"type":"integer","minimum":1}}},"VcsChangeApproval":{"type":"object","required":["state","message","accepted","can_accept","can_request_changes"],"properties":{"state":{"type":"string","enum":["available","approved","unavailable"]},"message":{"type":"string","nullable":true},"accepted":{"type":"boolean"},"can_accept":{"type":"boolean"},"can_request_changes":{"type":"boolean"}}},"VcsChangeCapabilities":{"type":"object","required":["can_mark_ready","can_edit_description","can_edit_labels","can_edit_stack_name","can_edit_reviewers","can_comment"],"properties":{"can_mark_ready":{"type":"boolean"},"can_edit_description":{"type":"boolean"},"can_edit_labels":{"type":"boolean"},"can_edit_stack_name":{"type":"boolean"},"can_edit_reviewers":{"type":"boolean"},"can_comment":{"type":"boolean"}}},"VcsLabel":{"type":"object","description":"A free-form, organization-scoped grouping name applied to changes.","required":["id","name","slug","changes_count"],"properties":{"id":{"type":"string"},"name":{"type":"string","description":"Display name","preserving the casing it was created with.":null},"slug":{"type":"string","description":"Normalized identity used for filtering and lookup."},"changes_count":{"type":"integer","minimum":0}}},"VcsLabelFacet":{"type":"object","required":["slug","name","changes_count"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"changes_count":{"type":"integer","minimum":0}}},"VcsRelatedChange":{"type":"object","required":["id","number","title","status","primary_status","repository_slug","orphaned","url"],"properties":{"id":{"type":"string"},"number":{"type":"integer","minimum":1},"title":{"type":"string"},"status":{"type":"string","enum":["open","landed","abandoned","folded"]},"primary_status":{"$ref":"#/components/schemas/VcsChangePrimaryStatus"},"repository_slug":{"type":"string"},"orphaned":{"type":"boolean"},"url":{"type":"string"}}},"VcsRelatedChangeGroup":{"type":"object","required":["label","changes","total_count","count_label"],"properties":{"label":{"$ref":"#/components/schemas/VcsLabel"},"total_count":{"type":"integer","minimum":1,"description":"Total related changes for this label, which may exceed the returned page."},"count_label":{"type":"string"},"changes":{"type":"array","maxItems":10,"items":{"$ref":"#/components/schemas/VcsRelatedChange"}}}},"VcsChangePatchsetRef":{"type":"object","nullable":true,"required":["id","number","commit_id"],"properties":{"id":{"type":"string"},"number":{"type":"integer","minimum":1},"commit_id":{"type":"string"},"source_kind":{"type":"string","enum":["jj","git"]}}},"VcsChangeRelationChainMember":{"type":"object","required":["id","number","title","status","primary_status","relation","orphaned"],"properties":{"id":{"type":"string"},"number":{"type":"integer","minimum":1},"title":{"type":"string"},"status":{"type":"string","enum":["open","landed","abandoned","folded"]},"primary_status":{"$ref":"#/components/schemas/VcsChangePrimaryStatus"},"relation":{"type":"string","enum":["current","ancestor","descendant"],"description":"Position of this member relative to the change being read."},"parent_change_id":{"type":"string","nullable":true},"orphaned":{"type":"boolean"},"restack_state":{"type":"string","enum":["clean","restack_required"]},"current_patchset":{"$ref":"#/components/schemas/VcsChangePatchsetRef"},"patchset_count":{"type":"integer","minimum":0},"url":{"type":"string"}}},"VcsChangeLandingRequirement":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"change_id":{"type":"string"},"number":{"type":"integer","minimum":1},"check_name":{"type":"string"},"overridable":{"type":"boolean","description":"True when an acknowledged override can clear this requirement."},"source":{"type":"string","enum":["vex","github","any"]},"app_id":{"type":"integer","nullable":true},"evaluated_head":{"type":"string"},"conclusion":{"type":"string"}}},"VcsChangeLandingTone":{"type":"string","enum":["success","warning","destructive","neutral"],"description":"Semantic readiness tone. React maps this to presentation; Rails never sends CSS."},"VcsChangeLandingLabeledTone":{"type":"object","required":["label","tone"],"properties":{"label":{"type":"string"},"tone":{"$ref":"#/components/schemas/VcsChangeLandingTone"}}},"VcsChangeLandingWaitingRow":{"type":"object","required":["key","label","tone"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"tone":{"$ref":"#/components/schemas/VcsChangeLandingTone"}}},"VcsChangeLandingMember":{"type":"object","required":["id","number","title","status","primary_status","landable","orphaned"],"properties":{"id":{"type":"string"},"number":{"type":"integer","minimum":1},"title":{"type":"string"},"status":{"type":"string","enum":["open","landed","abandoned","folded"]},"primary_status":{"$ref":"#/components/schemas/VcsChangePrimaryStatus"},"landable":{"type":"boolean"},"orphaned":{"type":"boolean"}}},"VcsChangeLandingMemberReference":{"type":"object","required":["id","number","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer","minimum":1},"title":{"type":"string"}}},"VcsChangeLanding":{"type":"object","description":"Server-computed submitted-together closure and landing preflight. An unavailable closure returns `available: false` with `error` and nothing else.","required":["available","changes"],"properties":{"available":{"type":"boolean"},"can_land":{"type":"boolean"},"can_defer_landing":{"type":"boolean"},"can_prioritize":{"type":"boolean"},"target_requires_checks":{"type":"boolean","description":"Whether a bookmark protection rule makes the merge queue require CI on this target. When false, a deferred landing has nothing to wait for and lands immediately."},"landable":{"type":"boolean"},"error":{"type":"string"},"scope_version":{"type":"string","description":"Opaque fence echoed back as `expected_scope_version` when requesting a landing."},"count":{"type":"integer","minimum":0},"changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingMember"}},"submitted_together":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingMember"}},"requirements":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingRequirement"}},"blocker_summary":{"type":"string","nullable":true,"description":"One-line stack footer for why the set cannot land yet. Null when there are no requirements. Derived from requirement codes; React must not re-summarize the requirement list."},"votes_summary":{"$ref":"#/components/schemas/VcsChangeLandingLabeledTone"},"checks_summary":{"$ref":"#/components/schemas/VcsChangeLandingLabeledTone"},"waiting_on":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingWaitingRow"},"description":"Ordered readiness rows for the land action preview."},"sync_available":{"type":"boolean","description":"Whether Rails could build a merge preview for every Change in the landing scope."},"sync_unavailable_changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingMemberReference"}},"sync_conflicts":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingSyncConflict"}},"override_info":{"type":"object","required":["available","required"],"properties":{"available":{"type":"boolean","description":"True when this actor may force the set past its overridable requirements."},"required":{"type":"boolean"},"requirement_version":{"type":"string","nullable":true,"description":"Opaque fence echoed back as `expected_requirement_version` when overriding."}}},"request":{"type":"object","nullable":true,"required":["id","state","version","retry_count","health"],"properties":{"queue":{"type":"object","required":["ahead_count","paused","ahead"],"properties":{"ahead_count":{"type":"integer","minimum":0},"paused":{"type":"boolean"},"ahead":{"type":"array","items":{"type":"object","required":["id","number","title","state","retry_count","error"],"properties":{"id":{"type":"string"},"number":{"type":"integer","nullable":true},"title":{"type":"string"},"state":{"type":"string"},"retry_count":{"type":"integer"},"error":{"type":"string","nullable":true}}}}}},"id":{"type":"string"},"state":{"type":"string"},"priority":{"type":"string","enum":["normal","high"]},"position":{"type":"integer","minimum":1},"version":{"type":"integer","nullable":true,"description":"Optimistic fence echoed back as `expected_version` when cancelling."},"retry_count":{"type":"integer","minimum":0,"description":"How many times the queue restarted this attempt after it stalled."},"health":{"type":"string","enum":["steady","retrying","stalled"],"description":"Whether the retries so far are routine or the attempt is going nowhere."},"failure":{"allOf":[{"$ref":"#/components/schemas/VcsChangeLandingFailure"}],"nullable":true,"description":"The error this entry itself recorded, verbatim."},"queue_error":{"allOf":[{"$ref":"#/components/schemas/VcsChangeLandingFailure"}],"nullable":true,"description":"What the merge queue tick last recorded. Sent only while this entry is at the front of the queue, and attributed to the queue rather than to this change."}}},"attention":{"allOf":[{"$ref":"#/components/schemas/VcsChangeLandingAttention"}],"nullable":true}}},"VcsChangeLandingSyncConflict":{"type":"object","required":["change","base","conflicts"],"properties":{"change":{"$ref":"#/components/schemas/VcsChangeLandingMember"},"base":{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","enum":["change","target"]},"commit_id":{"type":"string","nullable":true},"target_branch":{"type":"string"},"change":{"type":"object","required":["id","number","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"title":{"type":"string"}}}}},"conflicts":{"type":"array","items":{"type":"object","required":["path","kind","message"],"properties":{"path":{"type":"string"},"kind":{"type":"string"},"message":{"type":"string"}}}}}},"VcsChangeLandingFailure":{"type":"object","required":["message"],"description":"A raw recorded error, shown behind a disclosure. Unlike the guidance summary this is the queue's own internal text and is not a fixed vocabulary.","properties":{"message":{"type":"string"},"recorded_at":{"type":"string","format":"date-time","nullable":true}}},"VcsChangeLandingAttention":{"type":"object","required":["entry_id","state","kind","summary","next_step","action_required_by","action_kind","occurred_at","occurred_at_label","retry_count","agent_prompt"],"properties":{"entry_id":{"type":"string"},"retry_count":{"type":"integer","minimum":0,"description":"How many times the queue restarted this attempt before it stopped."},"failure":{"allOf":[{"$ref":"#/components/schemas/VcsChangeLandingFailure"}],"nullable":true},"state":{"type":"string","enum":["ejected","needs_attention"]},"kind":{"type":"string"},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]},"occurred_at":{"type":"string","format":"date-time"},"occurred_at_label":{"type":"string"},"agent_prompt":{"type":"string","description":"A paste-ready prompt for a coding agent. Rails composes it from the published attention contract so the browser only copies it."},"checks":{"type":"array","items":{"type":"object","required":["name","result","result_label"],"properties":{"name":{"type":"string"},"result":{"type":"string","enum":["failed","running","queued","passed"]},"result_label":{"type":"string"},"source":{"type":"string"},"app_id":{"type":"integer","nullable":true},"evaluated_head":{"type":"string"}}}},"conflicts":{"type":"array","items":{"type":"object","required":["path"],"properties":{"path":{"type":"string"},"kind":{"type":"string"},"change_number":{"type":"integer","nullable":true}}}}}},"VcsChangeActivityItem":{"type":"object","required":["id","kind","tone","title","occurred_at","occurred_at_label"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["submitted","patchset_pushed","synced","accepted","changes_requested","reviews_carried_forward","landing_requested","landing_retried","landing_candidate_built","landing_ejected","landing_cancelled","landed"]},"tone":{"type":"string","enum":["neutral","info","success","warning","destructive"]},"title":{"type":"string"},"detail":{"type":"string","nullable":true},"actor":{"allOf":[{"$ref":"#/components/schemas/VcsActorSummary"}],"nullable":true},"occurred_at":{"type":"string","format":"date-time"},"occurred_at_label":{"type":"string"},"patchset_number":{"type":"integer","minimum":1,"nullable":true},"source":{"type":"object","nullable":true,"required":["provider","repository","commit_sha","commit_url"],"properties":{"provider":{"type":"string","enum":["github"]},"repository":{"type":"string"},"branch":{"type":"string","nullable":true},"commit_sha":{"type":"string","pattern":"^[0-9a-f]{40}$"},"commit_url":{"type":"string","format":"uri"}}},"queue_entry_id":{"type":"string","nullable":true}}},"VcsStackSummary":{"type":"object","required":["code","name"],"properties":{"code":{"type":"string","pattern":"^[A-Z0-9]{4}$"},"name":{"type":"string","nullable":true}}},"VcsStackLanding":{"type":"object","description":"Compact landing state for the Stack CLI.","required":["changes"],"properties":{"can_land":{"type":"boolean"},"count":{"type":"integer","minimum":0},"changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingMember"}},"requirements":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingRequirement"}},"sync_available":{"type":"boolean"},"sync_unavailable_changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingMemberReference"}},"sync_conflicts":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingSyncConflict"}},"attention":{"type":"object","nullable":true,"required":["state","summary"],"properties":{"state":{"type":"string"},"summary":{"type":"string"}}},"error":{"type":"string"}}},"VcsStack":{"allOf":[{"$ref":"#/components/schemas/VcsStackSummary"},{"type":"object","required":["status","member_count","ref_name","alias_ref_name","tip_change_number","updated_at","updated_at_label","changes"],"properties":{"status":{"type":"string","enum":["active","archived"]},"member_count":{"type":"integer","minimum":0},"ref_name":{"type":"string","pattern":"^refs/stacks/[A-Z0-9]{4}$"},"alias_ref_name":{"type":"string","nullable":true},"tip_change_number":{"type":"integer","minimum":1,"nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string"},"changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeIndexItem"}},"landing":{"$ref":"#/components/schemas/VcsStackLanding"}}}]},"VcsChangeSummary":{"type":"object","required":["id","number","title","status","target_branch"],"properties":{"id":{"type":"string"},"public_id":{"type":"string"},"number":{"type":"integer","minimum":1},"jj_change_id":{"type":"string","nullable":true},"title":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string","enum":["open","landed","abandoned","folded"]},"primary_status":{"type":"string","nullable":true},"target_branch":{"type":"string"},"patchset_number":{"type":"integer","nullable":true},"group":{"$ref":"#/components/schemas/VcsChangeGroupRef"},"stack":{"allOf":[{"$ref":"#/components/schemas/VcsStackSummary"}],"nullable":true},"labels":{"type":"array","items":{"$ref":"#/components/schemas/VcsLabel"}},"url":{"type":"string"}}},"VcsChangeIndexItem":{"allOf":[{"$ref":"#/components/schemas/VcsChangeSummary"},{"type":"object","additionalProperties":true,"properties":{"restack_state":{"type":"string","enum":["clean","restack_required"]},"checks_status":{"type":"string"},"checks":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeCheck"}},"group":{"$ref":"#/components/schemas/VcsChangeDetailGroup"}}}]},"VcsOrganizationChangeSummary":{"type":"object","required":["id","public_id","number","title","status","lifecycle","primary_status","review_status","checks_status","mergeability","target_branch","base","repository_slug","submitted_at","submitted_at_label","updated_at","updated_at_label","conversation_count","author","pending_reviewers","stack_position"],"properties":{"transcript_summary":{"type":"object","nullable":true,"required":["session_count","total_tokens","tokens_partial","estimated_cost","sessions"],"properties":{"session_count":{"type":"integer"},"total_tokens":{"type":"integer","nullable":true},"tokens_partial":{"type":"boolean"},"estimated_cost":{"allOf":[{"$ref":"#/components/schemas/AgentCostEstimate"}],"nullable":true},"sessions":{"type":"array","items":{"type":"object","required":["harness","model","title","total_tokens"],"properties":{"session_id":{"type":"string","nullable":true},"harness":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"total_tokens":{"type":"integer","nullable":true}}}}}},"kind":{"type":"string","enum":["change"]},"github":{"allOf":[{"$ref":"#/components/schemas/GithubReviewSummary"}],"nullable":true},"id":{"type":"string"},"public_id":{"type":"string"},"number":{"type":"integer","minimum":1},"title":{"type":"string"},"status":{"type":"string","enum":["open","landed","abandoned","folded"]},"lifecycle":{"type":"string","enum":["open","waiting","needs_attention","landed","abandoned"],"description":"Index badge. Stored status stays open while a change is in an active landing request (waiting) or a current ejected request (needs_attention). Filters still use status.\n"},"primary_status":{"type":"string","enum":["needs_review","review_requested","changes_requested","approved","ready_to_land","waiting_to_land","landing","landed","abandoned","orphaned","needs_restack"]},"review_status":{"type":"string","enum":["no_review","review_requested","approved","changes_requested"]},"pending_reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsUserSummary"}},"checks_status":{"type":"string","enum":["absent","passing","failing","pending"]},"mergeability":{"type":"string","enum":["mergeable","conflicts","unknown","not_applicable"]},"target_branch":{"type":"string"},"base":{"oneOf":[{"type":"object","required":["kind","target_branch"],"properties":{"kind":{"type":"string","enum":["target"]},"target_branch":{"type":"string"}}},{"type":"object","required":["kind","number","title"],"properties":{"kind":{"type":"string","enum":["change"]},"number":{"type":"integer","minimum":1},"title":{"type":"string"}}}]},"repository_slug":{"type":"string"},"submitted_at":{"type":"string","format":"date-time"},"submitted_at_label":{"type":"string","description":"Relative time since submission"},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","description":"Relative time since the last update"},"conversation_count":{"type":"integer","minimum":0},"repo":{"type":"object","nullable":true,"required":["slug","name"],"properties":{"slug":{"type":"string"},"name":{"type":"string"}}},"author":{"allOf":[{"$ref":"#/components/schemas/VcsActorSummary"}],"nullable":true},"group":{"allOf":[{"$ref":"#/components/schemas/VcsChangeGroupRef"}],"nullable":true},"stack":{"allOf":[{"$ref":"#/components/schemas/VcsStackSummary"}],"nullable":true},"stack_position":{"type":"object","nullable":true,"required":["position","total"],"properties":{"position":{"type":"integer","minimum":1},"total":{"type":"integer","minimum":1}}},"labels":{"type":"array","items":{"$ref":"#/components/schemas/VcsLabel"}}}},"VcsPagination":{"type":"object","description":"Pagy's own page data. Navigate with `previous` and `next` rather than by adding to `page`, which the server may have resolved down to `last`.","additionalProperties":true,"required":["page","limit","count","count_label","last","series"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"count":{"type":"integer","minimum":0},"count_label":{"type":"string"},"last":{"type":"integer","minimum":1},"from":{"type":"integer","minimum":0,"description":"Position of this page's first row in the whole scope. `0` when the page holds no rows — an empty scope, or a `page` past `last` — so treat `0` as \"no range\" rather than as a row position."},"to":{"type":"integer","minimum":0,"description":"Position of this page's last row in the whole scope. `0` when the page holds no rows, for the same reason as `from`."},"previous":{"type":"integer","minimum":1,"nullable":true},"next":{"type":"integer","minimum":1,"nullable":true},"series":{"type":"array","items":{"oneOf":[{"type":"integer","minimum":1},{"type":"string"}]}}}},"VcsOrganizationChangeListResult":{"type":"object","description":"The flat change queue. `pagination` counts changes.","required":["kind","changes","pagination"],"properties":{"kind":{"type":"string","enum":["list"]},"changes":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/VcsOrganizationChangeSummary"},{"$ref":"#/components/schemas/GithubReviewSummary"}]}},"pagination":{"$ref":"#/components/schemas/VcsPagination"}}},"VcsOrganizationChangeGroupSubject":{"description":"What names one group. The `kind` matches the active grouping, except for the pinned `unstacked` remainder under stack grouping.","oneOf":[{"type":"object","required":["kind","stack"],"properties":{"kind":{"type":"string","enum":["stack"]},"stack":{"type":"object","required":["code","name","member_count"],"properties":{"code":{"type":"string","pattern":"^[A-Z0-9]{4}$"},"name":{"type":"string","nullable":true},"member_count":{"type":"integer","minimum":0,"description":"Every member of the stack, including those the active filters excluded."}}}}},{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","enum":["unstacked"]}}},{"type":"object","required":["kind","user"],"properties":{"kind":{"type":"string","enum":["author"]},"user":{"$ref":"#/components/schemas/VcsActorSummary"}}},{"type":"object","required":["kind","period","started_at","ended_at"],"properties":{"kind":{"type":"string","enum":["created_time"]},"period":{"type":"string","enum":["past_hour","past_day","past_week","older"]},"started_at":{"type":"string","format":"date-time","nullable":true,"description":"Null for `older`, whose range has no lower bound."},"ended_at":{"type":"string","format":"date-time","nullable":true,"description":"Null for `past_hour`, whose range is open above so a future timestamp is still reported."}}}]},"VcsOrganizationChangeGroup":{"type":"object","required":["key","subject","changes","pagination"],"properties":{"key":{"type":"string","description":"Stable public key for this group — a stack code or `unstacked`, a user public id, or a period name. Echo it back in `group_pages` to move this group alone."},"subject":{"$ref":"#/components/schemas/VcsOrganizationChangeGroupSubject"},"changes":{"type":"array","description":"One page of the matching changes in this group. Stack groups keep graph order, from tip to root; every other grouping uses the requested change sort.","items":{"oneOf":[{"$ref":"#/components/schemas/VcsOrganizationChangeSummary"},{"$ref":"#/components/schemas/GithubReviewSummary"}]}},"pagination":{"$ref":"#/components/schemas/VcsPagination"}}},"VcsOrganizationChangeGroupedResult":{"type":"object","description":"The queue divided into groups. `pagination` counts group keys, not changes.","required":["kind","grouping","groups","pagination"],"properties":{"kind":{"type":"string","enum":["grouped"]},"grouping":{"type":"string","enum":["stack","author","created_time"]},"groups":{"type":"array","items":{"$ref":"#/components/schemas/VcsOrganizationChangeGroup"}},"pagination":{"allOf":[{"$ref":"#/components/schemas/VcsPagination"}],"nullable":true,"description":"Null for `created_time`, which returns all four of its periods."}}},"VcsChange":{"allOf":[{"$ref":"#/components/schemas/VcsChangeSummary"},{"type":"object","properties":{"commit_message":{"type":"string","nullable":true},"has_description":{"type":"boolean","description":"True when the change has Vex-owned review description content, distinct from the JJ commit message."},"parent_change_id":{"type":"string","nullable":true},"parent_change_number":{"type":"integer","nullable":true},"change_key":{"type":"string"},"stable_change_id":{"type":"string"},"draft":{"type":"boolean"},"orphaned":{"type":"boolean"},"folded_into_number":{"type":"integer","nullable":true},"orphaned_reason":{"type":"string"},"orphaned_at":{"type":"string","format":"date-time"},"orphaned_at_label":{"type":"string"},"restack_state":{"type":"string","enum":["clean","restack_required"]},"accepted":{"type":"boolean"},"requested_changes":{"type":"boolean"},"landable":{"type":"boolean"},"checks_status":{"type":"string"},"checks":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeCheck"}},"approval":{"$ref":"#/components/schemas/VcsChangeApproval"},"capabilities":{"$ref":"#/components/schemas/VcsChangeCapabilities"},"group":{"$ref":"#/components/schemas/VcsChangeDetailGroup"},"author":{"$ref":"#/components/schemas/VcsActorSummary"},"landed_by":{"$ref":"#/components/schemas/VcsUserSummary"},"github_projection_status":{"type":"string","nullable":true,"enum":["pending","synced","drifted","error","disabled"]},"github_pull_request":{"type":"object","required":["number","url"],"properties":{"number":{"type":"integer"},"url":{"type":"string"},"state":{"type":"string"}}},"github_pull_requests":{"type":"array","items":{"type":"object","required":["number","url"],"properties":{"internal_path":{"type":"string","nullable":true},"number":{"type":"integer"},"url":{"type":"string"},"state":{"type":"string"},"repository":{"type":"string"},"change_number":{"type":"integer"}}}},"assets":{"type":"array","description":"Proof assets referenced from the description as `vex-asset:<id>`.","items":{"type":"object","required":["id","reference","alias","filename","content_type","byte_size","url"],"properties":{"id":{"type":"string"},"reference":{"type":"string"},"alias":{"type":"string"},"filename":{"type":"string"},"content_type":{"type":"string"},"byte_size":{"type":"integer","minimum":0},"url":{"type":"string"}}}},"comments_count":{"type":"integer","minimum":0},"comments_count_label":{"type":"string"},"unresolved_comments_count_label":{"type":"string"},"relation_chain":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeRelationChainMember"}},"current_patchset":{"$ref":"#/components/schemas/VcsChangePatchset"},"patchsets":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangePatchset"}},"votes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeVote"}},"reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeReviewer"}},"reviewer_candidates":{"type":"array","description":"Organization members available to the reviewer picker on this page.","items":{"$ref":"#/components/schemas/VcsChangeReviewerCandidate"}},"comments":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeComment"}}}}]},"VcsChangePage":{"allOf":[{"$ref":"#/components/schemas/VcsChange"},{"type":"object","required":["primary_status","draft","orphaned","has_description","checks","approval","capabilities","author","assets","comments_count","comments_count_label","unresolved_comments_count_label","relation_chain","current_patchset","patchsets","votes","reviewers","reviewer_candidates","comments","labels"],"properties":{"primary_status":{"$ref":"#/components/schemas/VcsChangePrimaryStatus"},"draft":{"type":"boolean"},"orphaned":{"type":"boolean"},"has_description":{"type":"boolean"},"checks":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeCheck"}},"approval":{"$ref":"#/components/schemas/VcsChangeApproval"},"capabilities":{"$ref":"#/components/schemas/VcsChangeCapabilities"},"author":{"$ref":"#/components/schemas/VcsActorSummary"},"assets":{"type":"array","items":{"type":"object","required":["id","reference","alias","filename","content_type","byte_size","url"],"properties":{"id":{"type":"string"},"reference":{"type":"string"},"alias":{"type":"string"},"filename":{"type":"string"},"content_type":{"type":"string"},"byte_size":{"type":"integer","minimum":0},"url":{"type":"string"}}}},"comments_count":{"type":"integer","minimum":0},"comments_count_label":{"type":"string"},"unresolved_comments_count_label":{"type":"string"},"relation_chain":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeRelationChainMember"}},"current_patchset":{"$ref":"#/components/schemas/VcsChangePatchset"},"patchsets":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangePatchset"}},"votes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeVote"}},"reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeReviewer"}},"reviewer_candidates":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeReviewerCandidate"}},"comments":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeComment"}},"labels":{"type":"array","items":{"$ref":"#/components/schemas/VcsLabel"}}}}]},"VcsExpectedCiEstimate":{"type":"object","description":"Historical CI duration estimate for the pipelines expected to run for this submission, from recent terminal pipeline-run wall-clock times. Omitted entirely when no workflow matches, no terminal history exists, or the estimate could not be computed.","required":["p50_seconds","p95_seconds","sample_size","basis","pipelines"],"properties":{"p50_seconds":{"type":"integer","minimum":0},"p95_seconds":{"type":"integer","minimum":0},"sample_size":{"type":"integer","minimum":1},"basis":{"type":"string","enum":["pipeline_runs"]},"pipelines":{"type":"array","items":{"$ref":"#/components/schemas/VcsExpectedCiPipelineEstimate"}}}},"VcsExpectedCiPipelineEstimate":{"type":"object","required":["slug","p50_seconds","p95_seconds","sample_size"],"properties":{"slug":{"type":"string"},"p50_seconds":{"type":"integer","minimum":0},"p95_seconds":{"type":"integer","minimum":0},"sample_size":{"type":"integer","minimum":1}}},"VcsChangeSubmitOutcome":{"type":"object","required":["number","public_id","jj_change_id","outcome","url"],"properties":{"number":{"type":"integer","minimum":1},"public_id":{"type":"string"},"jj_change_id":{"type":"string"},"outcome":{"type":"string","enum":["created","updated","unchanged"]},"patchset_number":{"type":"integer","nullable":true},"group":{"$ref":"#/components/schemas/VcsChangeGroupRef"},"url":{"type":"string"}}},"VcsChangeAsset":{"type":"object","required":["id","alias","filename","content_type","byte_size","status"],"properties":{"id":{"type":"string"},"alias":{"type":"string"},"filename":{"type":"string"},"content_type":{"type":"string"},"byte_size":{"type":"integer","minimum":0},"status":{"type":"string"}}},"VcsChangeCommentCapabilities":{"type":"object","required":["can_reply","can_resolve","can_reopen"],"properties":{"can_reply":{"type":"boolean"},"can_resolve":{"type":"boolean"},"can_reopen":{"type":"boolean"}}},"VcsChangeComment":{"type":"object","additionalProperties":true,"required":["id","body","resolved","capabilities","patchset_id","patchset_number","outdated"],"properties":{"id":{"type":"string"},"body":{"type":"string"},"resolved":{"type":"boolean"},"capabilities":{"$ref":"#/components/schemas/VcsChangeCommentCapabilities"},"change_id":{"type":"string","nullable":true},"patchset_id":{"type":"string","nullable":true},"patchset_number":{"type":"integer","nullable":true},"outdated":{"type":"boolean"},"path":{"type":"string","nullable":true},"side":{"type":"string","enum":["additions","deletions"],"nullable":true},"line":{"type":"integer","nullable":true},"kind":{"type":"string","nullable":true},"user":{"$ref":"#/components/schemas/VcsUserSummary"},"resolved_by":{"$ref":"#/components/schemas/VcsUserSummary"},"resolved_at":{"type":"string","format":"date-time","nullable":true},"resolved_at_label":{"type":"string","nullable":true},"parent_comment_id":{"type":"string","nullable":true},"replies":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeComment"}},"created_at":{"type":"string","format":"date-time","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"VcsChangeLandingRequest":{"type":"object","required":["state","numbers","count","scope_version"],"properties":{"id":{"type":"string","nullable":true},"state":{"type":"string"},"priority":{"type":"string","enum":["normal","high"]},"position":{"type":"integer","minimum":1},"version":{"type":"integer","minimum":1},"head_change_id":{"type":"string"},"change_ids":{"type":"array","items":{"type":"string"}},"numbers":{"type":"array","items":{"type":"integer"}},"count":{"type":"integer","minimum":1},"scope_version":{"type":"string"}}},"VcsChangeGroupRef":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"number":{"type":"integer"},"name":{"type":"string"}}},"VcsChangeGroup":{"allOf":[{"$ref":"#/components/schemas/VcsChangeGroupRef"},{"type":"object","required":["status","title","changes"],"properties":{"status":{"type":"string"},"title":{"type":"string","nullable":true},"changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeSummary"}}}}]},"VcsChangeDetailGroup":{"allOf":[{"$ref":"#/components/schemas/VcsChangeGroupRef"},{"type":"object","properties":{"status":{"type":"string"},"title":{"type":"string","nullable":true},"members":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingMember"}},"submitted_together":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingMember"}},"landability_summary":{"type":"string","nullable":true}}}]},"KnowledgeTreeFile":{"type":"object","required":["type","path","name","title"],"properties":{"type":{"type":"string","enum":["file"]},"path":{"type":"string"},"name":{"type":"string"},"title":{"type":"string"}}},"KnowledgeTreeFolder":{"type":"object","required":["type","path","name","document_count","children"],"properties":{"type":{"type":"string","enum":["folder"]},"path":{"type":"string"},"name":{"type":"string"},"document_count":{"type":"integer"},"children":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeTreeNode"}}}},"KnowledgeTreeNode":{"oneOf":[{"$ref":"#/components/schemas/KnowledgeTreeFolder"},{"$ref":"#/components/schemas/KnowledgeTreeFile"}]},"VcsTourUnavailable":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string"},"code":{"type":"string","enum":["tour_context_unavailable","tour_run_unavailable"]}}},"VcsTourContextPreviewRequest":{"type":"object","additionalProperties":false,"required":["patchset_number"],"properties":{"patchset_number":{"type":"integer","minimum":1}}},"VcsTourCreateRequest":{"type":"object","additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/VcsTourModelSelection"}],"required":["patchset_number","excluded_source_group_ids","request_id"],"properties":{"patchset_number":{"type":"integer","minimum":1},"excluded_source_group_ids":{"type":"array","maxItems":200,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":128}},"request_id":{"type":"string","minLength":1,"maxLength":128},"model_provider":{"type":"string"},"model":{"type":"string"}}},"VcsTourModelSelection":{"type":"object","properties":{"model_provider":{"type":"string","minLength":1},"model":{"type":"string","minLength":1}}},"VcsTourContextPreview":{"type":"object","additionalProperties":false,"required":["schema_version","scope","hunk_count","source_count","can_generate","refusal_reasons","source_groups","sources","limits"],"properties":{"schema_version":{"type":"integer","const":1},"scope":{"$ref":"#/components/schemas/VcsTourPreviewScope"},"hunk_count":{"type":"integer","minimum":0},"source_count":{"type":"integer","minimum":0,"maximum":448},"can_generate":{"type":"boolean"},"refusal_reasons":{"type":"array","uniqueItems":true,"items":{"type":"string"}},"source_groups":{"type":"array","maxItems":200,"items":{"$ref":"#/components/schemas/VcsTourSourceGroup"}},"sources":{"type":"array","maxItems":448,"items":{"$ref":"#/components/schemas/VcsTourSource"}},"limits":{"$ref":"#/components/schemas/VcsTourPreviewLimits"}}},"VcsTourContextExport":{"type":"object","additionalProperties":false,"required":["input_manifest","input_manifest_digest","context"],"properties":{"input_manifest":{"$ref":"#/components/schemas/VcsTourInputManifest"},"input_manifest_digest":{"$ref":"#/components/schemas/VcsTourDigest"},"context":{"$ref":"#/components/schemas/VcsTourContextPayload"}}},"VcsTourContextPayload":{"type":"object","additionalProperties":false,"required":["source_references","change_description","transcript_events"],"properties":{"source_references":{"type":"array","maxItems":512,"items":{"$ref":"#/components/schemas/VcsTourContextSourceReference"}},"change_description":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/VcsTourChangeDescriptionText"}]},"transcript_events":{"type":"array","maxItems":256,"items":{"$ref":"#/components/schemas/VcsTourTranscriptText"}}}},"VcsTourContextSourceReference":{"type":"object","additionalProperties":false,"required":["id","kind","coordinate","state"],"properties":{"id":{"type":"string","minLength":1,"maxLength":128},"kind":{"type":"string"},"coordinate":{"type":"object"},"state":{"type":"string","enum":["available","missing"]}}},"VcsTourChangeDescriptionText":{"type":"object","additionalProperties":false,"required":["source_id","title","description","state"],"properties":{"source_id":{"type":"string","minLength":1,"maxLength":128},"title":{"type":"string"},"description":{"type":"string"},"state":{"type":"string","enum":["available","stale"]}}},"VcsTourTranscriptText":{"type":"object","additionalProperties":false,"required":["source_id","checkpoint_id","event_index","role","text","truncated","state"],"properties":{"source_id":{"type":"string","minLength":1,"maxLength":128},"checkpoint_id":{"type":"string","minLength":1,"maxLength":128},"event_index":{"type":"integer","minimum":0,"maximum":2147483647},"kind":{"type":"string","const":"message"},"role":{"type":"string","enum":["user","assistant"]},"text":{"type":"string"},"truncated":{"type":"boolean"},"timestamp":{"type":"string","format":"date-time","nullable":true},"state":{"type":"string","enum":["available","stale"]}}},"VcsTourValidationRequest":{"type":"object","additionalProperties":false,"required":["patchset_number","input_manifest_digest","manifest"],"properties":{"patchset_number":{"type":"integer","minimum":1},"input_manifest_digest":{"$ref":"#/components/schemas/VcsTourDigest"},"manifest":{"type":"object"}}},"VcsTourValidationResponse":{"type":"object","additionalProperties":false,"required":["valid","errors"],"properties":{"valid":{"type":"boolean"},"errors":{"type":"array","items":{"type":"string"}}}},"VcsTourPreviewScope":{"type":"object","additionalProperties":false,"required":["kind","patchset_id","patchset_number","base_commit_id","head_commit_id"],"properties":{"kind":{"type":"string","const":"change"},"patchset_id":{"type":"string"},"patchset_number":{"type":"integer","minimum":1},"base_commit_id":{"type":"string","minLength":1,"maxLength":128},"head_commit_id":{"type":"string","minLength":1,"maxLength":128}}},"VcsTourPreviewLimits":{"type":"object","additionalProperties":false,"required":["max_preview_sources","max_manifest_sources","reserved_registration_sources","max_checkpoint_groups","max_events_per_checkpoint","max_repository_document_groups","omitted_checkpoint_count","omitted_event_count","omitted_document_count"],"properties":{"max_preview_sources":{"type":"integer","const":448},"max_manifest_sources":{"type":"integer","const":512},"reserved_registration_sources":{"type":"integer","const":64},"max_checkpoint_groups":{"type":"integer","const":8},"max_events_per_checkpoint":{"type":"integer","const":32},"max_repository_document_groups":{"type":"integer","const":191},"omitted_checkpoint_count":{"type":"integer","minimum":0},"omitted_event_count":{"type":"integer","minimum":0},"omitted_document_count":{"type":"integer","minimum":0}}},"VcsTourSourceGroup":{"type":"object","additionalProperties":false,"required":["id","kind","label","state","source_ids","metadata"],"properties":{"id":{"type":"string","minLength":1,"maxLength":128},"kind":{"type":"string","enum":["change_description","transcript_checkpoint","repository_document"]},"label":{"type":"string","minLength":1,"maxLength":240},"state":{"type":"string","enum":["available","truncated","missing","stale","conflicting","inconclusive"]},"source_ids":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":128}},"metadata":{"oneOf":[{"$ref":"#/components/schemas/VcsTourChangeDescriptionGroupMetadata"},{"$ref":"#/components/schemas/VcsTourTranscriptGroupMetadata"},{"$ref":"#/components/schemas/VcsTourRepositoryDocumentGroupMetadata"}]}}},"VcsTourChangeDescriptionGroupMetadata":{"type":"object","additionalProperties":false,"required":["change_id","patchset_id","patchset_number"],"properties":{"change_id":{"type":"string"},"patchset_id":{"type":"string"},"patchset_number":{"type":"integer","minimum":1}}},"VcsTourTranscriptGroupMetadata":{"type":"object","additionalProperties":false,"required":["checkpoint_id","patchset_number","commit_id","superseded","session_id","title","user_summary","harness_summary","captured_at","redaction_count","event_count","selected_event_count"],"properties":{"checkpoint_id":{"type":"string"},"patchset_number":{"type":"integer","minimum":1},"commit_id":{"type":"string"},"superseded":{"type":"boolean"},"session_id":{"type":"string"},"title":{"type":"string"},"user_summary":{"type":"string","nullable":true},"harness_summary":{"type":"string","nullable":true},"captured_at":{"type":"string","format":"date-time"},"redaction_count":{"type":"integer","minimum":0},"event_count":{"type":"integer","minimum":0},"selected_event_count":{"type":"integer","minimum":0,"maximum":32}}},"VcsTourRepositoryDocumentGroupMetadata":{"type":"object","additionalProperties":false,"required":["commit_id","path","revision_relation","line_count","byte_count"],"properties":{"commit_id":{"type":"string"},"path":{"type":"string","minLength":1,"maxLength":1024},"revision_relation":{"type":"string","enum":["existing_guidance","added_during_work"]},"line_count":{"type":"integer","minimum":0},"byte_count":{"type":"integer","minimum":0}}},"VcsTour":{"type":"object","additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/VcsTourModelSelection"}],"required":["id","status","scope_kind","base_commit_id","head_commit_id","schema_version","analyzer_version","model_provider","model","input_manifest","manifest","failure_reason","failure_kind","failure_detail","started_at","deadline_at","completed_at","created_at","inputs","out_of_date"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["queued","running","ready","failed"]},"scope_kind":{"type":"string","enum":["change","stack"]},"base_commit_id":{"type":"string"},"head_commit_id":{"type":"string"},"schema_version":{"type":"integer","const":1},"analyzer_version":{"type":"string"},"model_provider":{"type":"string"},"model":{"type":"string"},"input_manifest":{"$ref":"#/components/schemas/VcsTourInputManifest"},"manifest":{"oneOf":[{"$ref":"#/components/schemas/VcsTourManifest"},{"type":"null"}]},"failure_reason":{"type":"string","nullable":true},"failure_kind":{"type":"string","enum":["timed_out","failed"],"nullable":true},"failure_detail":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"deadline_at":{"type":"string","format":"date-time","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"inputs":{"type":"array","minItems":1,"maxItems":2,"items":{"$ref":"#/components/schemas/VcsTourInput"}},"out_of_date":{"type":"boolean"}}},"VcsTourInput":{"type":"object","additionalProperties":false,"required":["position","input_key","change_id","patchset_id"],"properties":{"position":{"type":"integer","minimum":0},"input_key":{"$ref":"#/components/schemas/VcsTourKey"},"change_id":{"type":"string"},"patchset_id":{"type":"string"}}},"VcsTourVersion":{"type":"object","additionalProperties":false,"required":["id","status","analyzer_version","started_at","completed_at","created_at","out_of_date"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["queued","running","ready","failed"]},"analyzer_version":{"type":"string"},"started_at":{"type":"string","format":"date-time","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"out_of_date":{"type":"boolean"}}},"VcsTourViewerState":{"type":"object","additionalProperties":false,"required":["current_step_key","completed_step_keys","dismissed_finding_keys"],"properties":{"current_step_key":{"oneOf":[{"$ref":"#/components/schemas/VcsTourKey"},{"type":"null"}]},"completed_step_keys":{"type":"array","maxItems":24,"uniqueItems":true,"items":{"$ref":"#/components/schemas/VcsTourKey"}},"dismissed_finding_keys":{"type":"array","maxItems":32,"uniqueItems":true,"items":{"$ref":"#/components/schemas/VcsTourKey"}}}},"VcsTourPage":{"type":"object","additionalProperties":false,"required":["tour","versions","viewer_state","capabilities","progress","step_presentations","displayed_hunks","evidence_targets"],"properties":{"tour":{"oneOf":[{"$ref":"#/components/schemas/VcsTour"},{"type":"null"}]},"versions":{"type":"array","items":{"$ref":"#/components/schemas/VcsTourVersion"}},"viewer_state":{"$ref":"#/components/schemas/VcsTourViewerState"},"capabilities":{"type":"object","additionalProperties":false,"required":["can_generate","can_update_viewer_state"],"properties":{"can_generate":{"type":"boolean"},"can_update_viewer_state":{"type":"boolean"}}},"progress":{"$ref":"#/components/schemas/VcsTourProgress"},"step_presentations":{"type":"array","items":{"$ref":"#/components/schemas/VcsTourStepPresentation"}},"displayed_hunks":{"type":"array","maxItems":128,"items":{"$ref":"#/components/schemas/VcsTourDisplayedHunk"}},"evidence_targets":{"type":"array","items":{"$ref":"#/components/schemas/VcsTourEvidenceTarget"}}}},"VcsTourProgress":{"type":"object","additionalProperties":false,"required":["completed_step_count","total_step_count","complete"],"properties":{"completed_step_count":{"type":"integer","minimum":0},"total_step_count":{"type":"integer","minimum":0,"maximum":24},"complete":{"type":"boolean"}}},"VcsTourStepPresentation":{"type":"object","additionalProperties":false,"required":["step_key","file_count","hunk_count","line_count","evidence_count","first_hunk"],"properties":{"step_key":{"$ref":"#/components/schemas/VcsTourKey"},"file_count":{"type":"integer","minimum":0},"hunk_count":{"type":"integer","minimum":0},"line_count":{"type":"integer","minimum":0},"evidence_count":{"type":"integer","minimum":0},"first_hunk":{"oneOf":[{"$ref":"#/components/schemas/VcsTourHunkTarget"},{"type":"null"}]}}},"VcsTourDisplayedHunk":{"type":"object","additionalProperties":false,"required":["id","path","position","status","patch"],"properties":{"id":{"type":"string","minLength":1,"maxLength":128},"path":{"type":"string","minLength":1,"maxLength":1024},"position":{"type":"integer","minimum":0},"status":{"type":"string","enum":["added","modified","deleted","renamed"]},"patch":{"type":"string","minLength":1}}},"VcsTourHunkTarget":{"type":"object","additionalProperties":false,"required":["path","position","old_start","new_start"],"properties":{"path":{"type":"string","minLength":1,"maxLength":1024},"position":{"type":"integer","minimum":0},"old_start":{"type":"integer","minimum":0},"new_start":{"type":"integer","minimum":0}}},"VcsTourEvidenceTarget":{"oneOf":[{"$ref":"#/components/schemas/VcsTourTranscriptEvidenceTarget"},{"$ref":"#/components/schemas/VcsTourRepositoryEvidenceTarget"}]},"VcsTourTranscriptEvidenceTarget":{"type":"object","additionalProperties":false,"required":["source_id","kind","session_id","checkpoint_id","event_index"],"properties":{"source_id":{"$ref":"#/components/schemas/VcsTourKey"},"kind":{"type":"string","const":"transcript_event"},"session_id":{"type":"string"},"checkpoint_id":{"type":"string"},"event_index":{"type":"integer","minimum":0}}},"VcsTourRepositoryEvidenceTarget":{"type":"object","additionalProperties":false,"required":["source_id","kind","commit_id","path","start_line","end_line"],"properties":{"source_id":{"$ref":"#/components/schemas/VcsTourKey"},"kind":{"type":"string","const":"repository_file"},"commit_id":{"type":"string"},"path":{"type":"string"},"start_line":{"type":"integer","minimum":1},"end_line":{"type":"integer","minimum":1}}},"VcsTourCompletionRequest":{"type":"object","additionalProperties":false,"required":["manifest"],"properties":{"manifest":{"oneOf":[{"$ref":"#/components/schemas/VcsTourManifest"},{"$ref":"#/components/schemas/VcsTourGenerationManifest"}]}}},"VcsTourCompletionResponse":{"type":"object","additionalProperties":false,"required":["tour","errors"],"properties":{"tour":{"$ref":"#/components/schemas/VcsTour"},"errors":{"type":"array","items":{"type":"string"}}}},"VcsTourFailureRequest":{"type":"object","additionalProperties":false,"required":["reason"],"properties":{"reason":{"type":"string","minLength":1,"maxLength":255}}},"VcsTourEvidenceRegistrationRequest":{"type":"object","additionalProperties":false,"required":["schema_version","commit_id","path","start_line","end_line","content_digest"],"properties":{"schema_version":{"type":"integer","const":1},"commit_id":{"type":"string","minLength":1,"maxLength":128},"path":{"type":"string","minLength":1,"maxLength":1024},"start_line":{"type":"integer","minimum":1},"end_line":{"type":"integer","minimum":1},"content_digest":{"$ref":"#/components/schemas/VcsTourDigest"}}},"VcsTourInputManifest":{"type":"object","additionalProperties":false,"required":["schema_version","scope","inputs","hunks","sources","excluded_source_ids"],"properties":{"schema_version":{"type":"integer","const":1},"scope":{"$ref":"#/components/schemas/VcsTourScope"},"inputs":{"type":"array","minItems":1,"maxItems":2,"items":{"$ref":"#/components/schemas/VcsTourManifestInput"}},"hunks":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/VcsTourHunk"}},"sources":{"type":"array","maxItems":512,"items":{"$ref":"#/components/schemas/VcsTourSource"}},"excluded_source_ids":{"type":"array","maxItems":512,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":128}}}},"VcsTourScope":{"type":"object","additionalProperties":false,"required":["kind","base_commit_id","head_commit_id"],"properties":{"kind":{"type":"string","enum":["change","stack"]},"base_commit_id":{"type":"string","minLength":1,"maxLength":128},"head_commit_id":{"type":"string","minLength":1,"maxLength":128}}},"VcsTourManifestInput":{"type":"object","additionalProperties":false,"required":["key","position","change_id","patchset_id"],"properties":{"key":{"$ref":"#/components/schemas/VcsTourKey"},"position":{"type":"integer","minimum":0,"maximum":2147483647},"change_id":{"type":"string","minLength":1,"maxLength":128},"patchset_id":{"type":"string","minLength":1,"maxLength":128}}},"VcsTourHunk":{"type":"object","additionalProperties":false,"required":["id","path","position","old_start","old_lines","new_start","new_lines","content_digest"],"properties":{"id":{"type":"string","minLength":1,"maxLength":128},"path":{"type":"string","minLength":1,"maxLength":1024},"previous_path":{"type":"string","minLength":1,"maxLength":1024},"position":{"type":"integer","minimum":0,"maximum":2147483647},"old_start":{"type":"integer","minimum":0,"maximum":2147483647},"old_lines":{"type":"integer","minimum":0,"maximum":2147483647},"new_start":{"type":"integer","minimum":0,"maximum":2147483647},"new_lines":{"type":"integer","minimum":0,"maximum":2147483647},"content_digest":{"$ref":"#/components/schemas/VcsTourDigest"}}},"VcsTourSource":{"oneOf":[{"$ref":"#/components/schemas/VcsTourTranscriptSource"},{"$ref":"#/components/schemas/VcsTourRepositorySource"},{"$ref":"#/components/schemas/VcsTourChangeDescriptionSource"},{"$ref":"#/components/schemas/VcsTourCheckOutputSource"}]},"VcsTourSourceBase":{"type":"object","required":["id","content_digest","revision_relation","state"],"properties":{"id":{"type":"string","minLength":1,"maxLength":128},"content_digest":{"$ref":"#/components/schemas/VcsTourDigest"},"revision_relation":{"type":"string","enum":["existing_guidance","added_during_work","generated_during_run","not_applicable"]},"state":{"type":"string","enum":["available","truncated","missing","stale","conflicting","inconclusive"]}}},"VcsTourTranscriptSource":{"type":"object","unevaluatedProperties":false,"allOf":[{"$ref":"#/components/schemas/VcsTourSourceBase"},{"type":"object","required":["kind","coordinate"],"properties":{"kind":{"type":"string","const":"transcript_event"},"coordinate":{"$ref":"#/components/schemas/VcsTourTranscriptCoordinate"}}}]},"VcsTourRepositorySource":{"type":"object","unevaluatedProperties":false,"allOf":[{"$ref":"#/components/schemas/VcsTourSourceBase"},{"type":"object","required":["kind","coordinate"],"properties":{"kind":{"type":"string","const":"repository_file"},"coordinate":{"$ref":"#/components/schemas/VcsTourRepositoryCoordinate"}}}]},"VcsTourChangeDescriptionSource":{"type":"object","unevaluatedProperties":false,"allOf":[{"$ref":"#/components/schemas/VcsTourSourceBase"},{"type":"object","required":["kind","coordinate"],"properties":{"kind":{"type":"string","const":"change_description"},"coordinate":{"$ref":"#/components/schemas/VcsTourChangeDescriptionCoordinate"}}}]},"VcsTourCheckOutputSource":{"type":"object","unevaluatedProperties":false,"allOf":[{"$ref":"#/components/schemas/VcsTourSourceBase"},{"type":"object","required":["kind","coordinate"],"properties":{"kind":{"type":"string","const":"check_output"},"coordinate":{"$ref":"#/components/schemas/VcsTourCheckOutputCoordinate"}}}]},"VcsTourTranscriptCoordinate":{"type":"object","additionalProperties":false,"required":["checkpoint_id","event_index"],"properties":{"checkpoint_id":{"type":"string","minLength":1,"maxLength":128},"event_index":{"type":"integer","minimum":0,"maximum":2147483647}}},"VcsTourRepositoryCoordinate":{"type":"object","additionalProperties":false,"required":["commit_id","path","start_line","end_line"],"properties":{"commit_id":{"type":"string","minLength":1,"maxLength":128},"path":{"type":"string","minLength":1,"maxLength":1024},"start_line":{"type":"integer","minimum":1,"maximum":2147483647},"end_line":{"type":"integer","minimum":1,"maximum":2147483647}}},"VcsTourChangeDescriptionCoordinate":{"type":"object","additionalProperties":false,"required":["change_id","patchset_id"],"properties":{"change_id":{"type":"string","minLength":1,"maxLength":128},"patchset_id":{"type":"string","minLength":1,"maxLength":128}}},"VcsTourCheckOutputCoordinate":{"type":"object","additionalProperties":false,"required":["roder_run_id","tool_call_id"],"properties":{"roder_run_id":{"type":"string","minLength":1,"maxLength":128},"tool_call_id":{"type":"string","minLength":1,"maxLength":128}}},"VcsTourGenerationManifest":{"type":"object","additionalProperties":false,"required":["schema_version","overview","steps","findings"],"properties":{"schema_version":{"type":"integer","const":2},"overview":{"$ref":"#/components/schemas/VcsTourOverview"},"steps":{"type":"array","minItems":1,"maxItems":5,"items":{"$ref":"#/components/schemas/VcsTourGenerationStep"}},"findings":{"type":"array","maxItems":0,"items":{"$ref":"#/components/schemas/VcsTourFinding"}}}},"VcsTourGenerationStep":{"type":"object","additionalProperties":false,"required":["key","title","summary","code_refs","related_step_keys","claims"],"properties":{"key":{"$ref":"#/components/schemas/VcsTourKey"},"title":{"type":"string","minLength":1,"maxLength":160},"summary":{"type":"string","minLength":1,"maxLength":1000},"code_refs":{"type":"array","minItems":1,"maxItems":32,"items":{"$ref":"#/components/schemas/VcsTourCodeReference"}},"related_step_keys":{"type":"array","maxItems":8,"uniqueItems":true,"items":{"$ref":"#/components/schemas/VcsTourKey"}},"claims":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/VcsTourClaim"}}}},"VcsTourCodeReference":{"type":"object","additionalProperties":false,"required":["path","side","start_line","end_line"],"properties":{"path":{"type":"string","minLength":1,"maxLength":1024},"side":{"type":"string","enum":["base","head"]},"start_line":{"type":"integer","minimum":1,"maximum":2147483647},"end_line":{"type":"integer","minimum":1,"maximum":2147483647}}},"VcsTourManifest":{"type":"object","additionalProperties":false,"required":["schema_version","overview","steps","findings"],"properties":{"schema_version":{"type":"integer","const":1},"overview":{"$ref":"#/components/schemas/VcsTourOverview"},"steps":{"type":"array","minItems":1,"maxItems":5,"items":{"$ref":"#/components/schemas/VcsTourStep"}},"findings":{"type":"array","maxItems":0,"items":{"$ref":"#/components/schemas/VcsTourFinding"}}}},"VcsTourOverview":{"type":"object","additionalProperties":false,"required":["title","summary"],"properties":{"title":{"type":"string","minLength":1,"maxLength":160},"summary":{"type":"string","minLength":1,"maxLength":800}}},"VcsTourStep":{"type":"object","additionalProperties":false,"required":["key","title","summary","hunk_refs","related_step_keys","claims"],"properties":{"key":{"$ref":"#/components/schemas/VcsTourKey"},"title":{"type":"string","minLength":1,"maxLength":160},"summary":{"type":"string","minLength":1,"maxLength":1000},"hunk_refs":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":128}},"related_step_keys":{"type":"array","maxItems":8,"uniqueItems":true,"items":{"$ref":"#/components/schemas/VcsTourKey"}},"claims":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/VcsTourClaim"}}}},"VcsTourClaim":{"type":"object","additionalProperties":false,"required":["key","kind","text","evidence_refs"],"properties":{"key":{"$ref":"#/components/schemas/VcsTourKey"},"kind":{"type":"string","enum":["recorded","inferred"]},"text":{"type":"string","minLength":1,"maxLength":2000},"evidence_refs":{"$ref":"#/components/schemas/VcsTourEvidenceReferences"}}},"VcsTourFinding":{"type":"object","additionalProperties":false,"required":["key","priority","title","body","hunk_ref","side","line","evidence_refs"],"properties":{"key":{"$ref":"#/components/schemas/VcsTourKey"},"priority":{"type":"string","enum":["p0","p1","p2","p3"]},"title":{"type":"string","minLength":1,"maxLength":160},"body":{"type":"string","minLength":1,"maxLength":4000},"hunk_ref":{"type":"string","minLength":1,"maxLength":128},"side":{"type":"string","enum":["additions","deletions"]},"line":{"type":"integer","minimum":1,"maximum":2147483647},"step_key":{"oneOf":[{"$ref":"#/components/schemas/VcsTourKey"},{"type":"null"}]},"evidence_refs":{"$ref":"#/components/schemas/VcsTourEvidenceReferences"}}},"VcsTourEvidenceReferences":{"type":"array","minItems":1,"maxItems":8,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":128}},"VcsTourKey":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9_-]*$"},"VcsTourDigest":{"type":"string","pattern":"^[0-9a-f]{64}$"},"VirtualRepository":{"type":"object","required":["id","organization_id","organization_slug","organization_name","repository_id","repository_slug","repository_name","slug","name","description","root_path","icon_name","status","sync_provider_kind","sync_mode","sync_repository_owner","sync_repository_name","sync_repository_full_name","sync_remote_url","sync_remote_display_name","sync_auth_username","sync_auth_secret_id","sync_default_branch","github_app_installation_id","sync_source_bookmark","sync_target_branch","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","auto_land_enabled","github_primary_eligible","sync_auto_enabled","sync_configured","sync_discover_cursor","projection_status","projection_version","projection_source_bookmark","effective_projection_source_bookmark","last_projected_source_commit_id","last_projected_virtual_commit_id","last_projected_git_sha","last_projection_error","last_sync_run_id","last_projected_at","last_projected_at_label","last_synced_at","last_synced_at_label","merge_policy_updated_at","merge_policy_updated_at_label","created_at","created_at_label","updated_at","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"organization_slug":{"type":"string"},"organization_name":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"repository_name":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"root_path":{"type":"string"},"icon_name":{"type":"string"},"status":{"type":"string","enum":["active","archived"]},"sync_provider_kind":{"type":"string","enum":["none","github","git","gitlab"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"sync_repository_owner":{"type":"string","nullable":true},"sync_repository_name":{"type":"string","nullable":true},"sync_repository_full_name":{"type":"string","nullable":true},"sync_remote_url":{"type":"string","nullable":true},"sync_remote_display_name":{"type":"string","nullable":true},"sync_auth_username":{"type":"string","nullable":true},"sync_auth_secret_id":{"type":"string","nullable":true},"sync_default_branch":{"type":"string","nullable":true},"github_app_installation_id":{"type":"string","nullable":true},"sync_source_bookmark":{"type":"string","nullable":true},"sync_target_branch":{"type":"string","nullable":true},"merge_authority":{"type":"string","enum":["vex_primary","github_primary"]},"merge_authority_version":{"type":"integer"},"merge_policy_version":{"type":"integer"},"queue_validation_mode":{"type":"string","enum":["top_only","per_pr"]},"queue_concurrency":{"type":"integer"},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"sync_auto_enabled":{"type":"boolean"},"sync_configured":{"type":"boolean"},"sync_discover_cursor":{"type":"integer"},"projection_status":{"type":"string","enum":["pending","projecting","ready","failed","diverged"]},"projection_version":{"type":"integer"},"projection_source_bookmark":{"type":"string","nullable":true},"effective_projection_source_bookmark":{"type":"string"},"last_projected_source_commit_id":{"type":"string","nullable":true},"last_projected_virtual_commit_id":{"type":"string","nullable":true},"last_projected_git_sha":{"type":"string","nullable":true},"last_projection_error":{"type":"string","nullable":true},"last_sync_run_id":{"type":"string","nullable":true},"last_projected_at":{"type":"string","format":"date-time","nullable":true},"last_projected_at_label":{"type":"string","nullable":true},"last_synced_at":{"type":"string","format":"date-time","nullable":true},"last_synced_at_label":{"type":"string","nullable":true},"merge_policy_updated_at":{"type":"string","format":"date-time","nullable":true},"merge_policy_updated_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","nullable":true}}},"VirtualRepositorySyncRun":{"type":"object","required":["id","organization_id","virtual_repository_id","creator_user_id","trigger_kind","status","kind","sync_provider_kind","sync_mode","source_bookmark","staging_bookmark","merge_commit_id","projection_target_commit_id","source_op_head_ids","source_commit_id","source_change_id","source_git_sha","target_repository_owner","target_repository_name","target_repository_full_name","target_branch","remote_url","remote_before_sha","remote_after_sha","github_before_sha","github_after_sha","force","pulled_commit_count","projected_commit_count","skipped_commit_count","error_message","metadata","log_lines","started_at","started_at_label","finished_at","finished_at_label","created_at","created_at_label","updated_at","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"virtual_repository_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"trigger_kind":{"type":"string","enum":["manual","auto"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","skipped","canceled"]},"kind":{"type":"string","enum":["pull_sync","push_projection","materialization"]},"sync_provider_kind":{"type":"string","enum":["github","git"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"source_bookmark":{"type":"string"},"staging_bookmark":{"type":"string","nullable":true},"merge_commit_id":{"type":"string","nullable":true},"projection_target_commit_id":{"type":"string","nullable":true},"source_op_head_ids":{"type":"array","items":{"type":"string"}},"source_commit_id":{"type":"string","nullable":true},"source_change_id":{"type":"string","nullable":true},"source_git_sha":{"type":"string","nullable":true},"target_repository_owner":{"type":"string"},"target_repository_name":{"type":"string"},"target_repository_full_name":{"type":"string"},"target_branch":{"type":"string"},"remote_url":{"type":"string"},"remote_before_sha":{"type":"string","nullable":true},"remote_after_sha":{"type":"string","nullable":true},"github_before_sha":{"type":"string","nullable":true},"github_after_sha":{"type":"string","nullable":true},"force":{"type":"boolean"},"pulled_commit_count":{"type":"integer"},"projected_commit_count":{"type":"integer"},"skipped_commit_count":{"type":"integer"},"error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"log_lines":{"type":"array","items":{"type":"object","required":["timestamp","level","message"],"properties":{"timestamp":{"type":"string"},"timestamp_label":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"}}}},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","nullable":true}}},"WorkspaceActivityLiveItem":{"oneOf":[{"$ref":"#/components/schemas/WorkspaceActivityLandingLiveItem"},{"$ref":"#/components/schemas/WorkspaceActivityDeploymentLiveItem"},{"$ref":"#/components/schemas/WorkspaceActivityDeploymentGroupLiveItem"},{"$ref":"#/components/schemas/WorkspaceActivityGithubImportLiveItem"}]},"WorkspaceActivityRepositorySummary":{"type":"object","required":["slug","name"],"properties":{"slug":{"type":"string"},"name":{"type":"string"}}},"WorkspaceActivityChangeSummary":{"type":"object","required":["id","number","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"title":{"type":"string"}}},"WorkspaceActivityActorSummary":{"type":"object","required":["id","name","picture_url"],"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"WorkspaceActivityLandingLiveItem":{"type":"object","required":["id","kind","occurred_at","state","change_count","repository","change","changes","actor"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["landing"]},"occurred_at":{"type":"string","format":"date-time"},"state":{"type":"string","enum":["queued","validating","ready","merging"]},"change_count":{"type":"integer"},"repository":{"$ref":"#/components/schemas/WorkspaceActivityRepositorySummary"},"change":{"$ref":"#/components/schemas/WorkspaceActivityChangeSummary"},"changes":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceActivityChangeSummary"}},"actor":{"allOf":[{"$ref":"#/components/schemas/WorkspaceActivityActorSummary"}],"nullable":true}}},"WorkspaceActivityDeploymentLiveItem":{"type":"object","required":["id","kind","occurred_at","status","service_name","environment_name","deployment_id","live_region_count","region_count","actor"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["deployment"]},"occurred_at":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["queued","building","deploying"]},"service_name":{"type":"string"},"environment_name":{"type":"string"},"deployment_id":{"type":"string"},"live_region_count":{"type":"integer"},"region_count":{"type":"integer"},"actor":{"allOf":[{"$ref":"#/components/schemas/WorkspaceActivityActorSummary"}],"nullable":true}}},"WorkspaceActivityDeploymentGroupLiveItem":{"type":"object","required":["id","kind","occurred_at","title","service_names","actor"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["deployment_group"]},"occurred_at":{"type":"string","format":"date-time"},"title":{"type":"string"},"service_names":{"type":"array","items":{"type":"string"}},"actor":{"allOf":[{"$ref":"#/components/schemas/WorkspaceActivityActorSummary"}],"nullable":true}}},"WorkspaceActivityGithubImportLiveItem":{"type":"object","required":["id","kind","occurred_at","completed_count","total_count","actor"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["github_import"]},"occurred_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer"},"total_count":{"type":"integer"},"actor":{"allOf":[{"$ref":"#/components/schemas/WorkspaceActivityActorSummary"}],"nullable":true}}},"WorkspaceActivityRecentItem":{"oneOf":[{"$ref":"#/components/schemas/WorkspaceActivityReviewRequestedItem"},{"$ref":"#/components/schemas/WorkspaceActivityChangesRequestedItem"},{"$ref":"#/components/schemas/WorkspaceActivityGithubAccessItem"},{"$ref":"#/components/schemas/WorkspaceActivityLandingItem"},{"$ref":"#/components/schemas/WorkspaceActivityDeploymentItem"},{"$ref":"#/components/schemas/WorkspaceActivityGithubImportItem"}]},"WorkspaceActivityReviewRequestedItem":{"type":"object","required":["id","kind","occurred_at","repository","change","actor"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["review_requested"]},"occurred_at":{"type":"string","format":"date-time"},"repository":{"$ref":"#/components/schemas/WorkspaceActivityRepositorySummary"},"change":{"$ref":"#/components/schemas/WorkspaceActivityChangeSummary"},"actor":{"$ref":"#/components/schemas/WorkspaceActivityActorSummary"}}},"WorkspaceActivityChangesRequestedItem":{"type":"object","required":["id","kind","occurred_at","repository","change","actors"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["changes_requested"]},"occurred_at":{"type":"string","format":"date-time"},"repository":{"$ref":"#/components/schemas/WorkspaceActivityRepositorySummary"},"change":{"$ref":"#/components/schemas/WorkspaceActivityChangeSummary"},"actors":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceActivityActorSummary"}}}},"WorkspaceActivityLandingItem":{"type":"object","required":["id","kind","occurred_at","outcome","change_count","repository","change","changes","actor"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["landing"]},"occurred_at":{"type":"string","format":"date-time"},"outcome":{"type":"string","enum":["merged","ejected","cancelled","needs_attention"]},"change_count":{"type":"integer"},"repository":{"$ref":"#/components/schemas/WorkspaceActivityRepositorySummary"},"change":{"$ref":"#/components/schemas/WorkspaceActivityChangeSummary"},"changes":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceActivityChangeSummary"}},"actor":{"allOf":[{"$ref":"#/components/schemas/WorkspaceActivityActorSummary"}],"nullable":true}}},"WorkspaceActivityDeploymentItem":{"type":"object","required":["id","kind","occurred_at","outcome","service_name","environment_name","deployment_id","live_region_count","region_count","actor"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["deployment"]},"occurred_at":{"type":"string","format":"date-time"},"outcome":{"type":"string","enum":["active","failed","canceled","rolled_back"]},"service_name":{"type":"string"},"environment_name":{"type":"string"},"deployment_id":{"type":"string"},"live_region_count":{"type":"integer"},"region_count":{"type":"integer"},"actor":{"allOf":[{"$ref":"#/components/schemas/WorkspaceActivityActorSummary"}],"nullable":true}}},"WorkspaceActivityGithubImportItem":{"type":"object","required":["id","kind","occurred_at","outcome","imported_count","total_count","actor"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["github_import"]},"occurred_at":{"type":"string","format":"date-time"},"outcome":{"type":"string","enum":["success","attention"]},"imported_count":{"type":"integer"},"total_count":{"type":"integer"},"actor":{"allOf":[{"$ref":"#/components/schemas/WorkspaceActivityActorSummary"}],"nullable":true}}},"WorkspaceActivityPage":{"type":"object","required":["live_activity","recent_items","unresolved_notification_count"],"properties":{"live_activity":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceActivityLiveItem"}},"recent_items":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceActivityRecentItem"}},"unresolved_notification_count":{"type":"integer"}}},"WorkspaceActivityGithubAccessItem":{"type":"object","required":["id","kind","occurred_at","installation_id","account_login","message"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["github_connection_health"]},"occurred_at":{"type":"string","format":"date-time"},"installation_id":{"type":"string"},"account_login":{"type":"string"},"message":{"type":"string"}}},"OrganizationSummary":{"type":"object","required":["id","slug","name","logo_url","role","personal","member_count","pending_invitation_count","activated_products","can_activate_products","github_prs_authored_by_change_author","allow_author_self_review_on_main_repo","author_self_review_on_main_repo_effective","allow_author_self_review_on_home_repository","author_self_review_on_home_repository_effective","main_repository_slug","main_repository_display_name","home_repository_slug","home_repository_display_name","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"personal":{"type":"boolean"},"member_count":{"type":"integer","minimum":0},"pending_invitation_count":{"type":"integer","minimum":0},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"github_prs_authored_by_change_author":{"type":"boolean"},"allow_author_self_review_on_main_repo":{"type":"boolean"},"author_self_review_on_main_repo_effective":{"type":"boolean"},"allow_author_self_review_on_home_repository":{"type":"boolean"},"author_self_review_on_home_repository_effective":{"type":"boolean"},"main_repository_slug":{"type":"string"},"main_repository_display_name":{"type":"string"},"home_repository_slug":{"type":"string"},"home_repository_display_name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"WorkspaceSpace":{"type":"object","required":["id","organization_id","repository_id","repository_slug","slug","name","description","root_path","icon_name","status","sync_provider_kind","sync_mode","sync_repository_full_name","sync_status","sync_run_id","sync_error_message","can_retry_import","hidden","position","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"root_path":{"type":"string"},"icon_name":{"type":"string","enum":["book-open","boxes","briefcase-business","code-xml","file-text","folder","folder-code","globe-2","lightbulb","panel-top","rocket","server","shield-check","sparkles","terminal"]},"status":{"type":"string","enum":["active","archived"]},"sync_provider_kind":{"type":"string","enum":["none","github","git","gitlab"]},"sync_mode":{"type":"string","enum":["pull","push","bidirectional"]},"sync_repository_full_name":{"type":"string","nullable":true},"sync_status":{"type":"string","enum":["none","importing","syncing","failed","ready"]},"sync_run_id":{"type":"string","nullable":true},"sync_error_message":{"type":"string","nullable":true},"can_retry_import":{"type":"boolean"},"hidden":{"type":"boolean"},"position":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/reconciliations/{reconciliation_id}/output":{"post":{"summary":"Accept a lease-scoped generated-file reconciliation delta","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["outputs"],"properties":{"outputs":{"type":"array","maxItems":100,"items":{"oneOf":[{"type":"object","additionalProperties":false,"required":["path","operation","content_base64","sha256","executable"],"properties":{"path":{"type":"string","maxLength":4096},"operation":{"type":"string","enum":["write"]},"content_base64":{"type":"string"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"executable":{"type":"boolean"}}},{"type":"object","additionalProperties":false,"required":["path","operation"],"properties":{"path":{"type":"string","maxLength":4096},"operation":{"type":"string","enum":["delete"]}}}]}}}}}}},"responses":{"200":{"description":"Immutable output receipt accepted; candidate publication is separate","content":{"application/json":{"schema":{"type":"object","required":["receipt_id","digest","status"],"properties":{"receipt_id":{"type":"string"},"digest":{"type":"string"},"status":{"type":"string","enum":["accepted"]}}}}}},"401":{"description":"Node certificate authentication failed"},"404":{"description":"Lease or reconciliation not available to this node"},"409":{"description":"Stale lease or conflicting output receipt"},"422":{"description":"Invalid or disallowed output delta"}}}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/claim":{"post":{"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"batch_deadline_supported":{"type":"boolean","default":false,"description":"Runner enforces the batch execution deadline in lease metadata locally. Required to claim an adjacent batch job; ordinary jobs remain compatible without it."}}}}}}}},"/api/v1/ci/runner_pools/{runner_pool_id}/runners/{runner_id}/leases/{id}/claim":{"post":{"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"batch_deadline_supported":{"type":"boolean","default":false,"description":"Runner enforces the batch execution deadline in lease metadata locally. Required to claim an adjacent batch job; ordinary jobs remain compatible without it."}}}}}}}},"parameters":{"TranscriptReadSource":{"in":"query","name":"source_ref","description":"Opaque source reference returned by discovery, required on the source route unless continuing with a cursor.","schema":{"type":"string"}},"TranscriptReadCursor":{"in":"query","name":"cursor","schema":{"type":"string"}},"TranscriptReadLimit":{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},"TranscriptReadBytes":{"in":"query","name":"max_bytes","schema":{"type":"integer","minimum":8192,"maximum":131072,"default":32768}},"TranscriptReadTools":{"in":"query","name":"include_tools","schema":{"type":"boolean","default":false}},"TranscriptReadAround":{"in":"query","name":"around_event","schema":{"type":"integer","minimum":0},"description":"Cited event index, paired with event_digest and without cursor."},"TranscriptReadDigest":{"in":"query","name":"event_digest","schema":{"type":"string","pattern":"^[0-9a-f]{64}$"}}}},"tags":[{"name":"agent"},{"name":"agent_sessions"},{"name":"app_access"},{"name":"artifacts"},{"name":"auth"},{"name":"bazel"},{"name":"billing"},{"name":"cdn_spaces"},{"name":"check"},{"name":"ci"},{"name":"cli_releases"},{"name":"contact_submissions"},{"name":"edge"},{"name":"email_verifications"},{"name":"execution"},{"name":"git_import_workers"},{"name":"git_imports"},{"name":"github"},{"name":"github_app"},{"name":"gitlab"},{"name":"hosting"},{"name":"identity"},{"name":"jj"},{"name":"mcp"},{"name":"me"},{"name":"metronome"},{"name":"networking"},{"name":"observability"},{"name":"open_source_publish_contracts"},{"name":"openapi"},{"name":"org_invitations"},{"name":"organizations"},{"name":"personal_access_tokens"},{"name":"public"},{"name":"registry"},{"name":"relay"},{"name":"repositories"},{"name":"repository_access"},{"name":"repository_events"},{"name":"repository_import_sessions"},{"name":"roder"},{"name":"signals"},{"name":"static_sites"},{"name":"stripe"},{"name":"submit_telemetry"},{"name":"transcripts"},{"name":"virtual_repositories"},{"name":"waitlist_applications"},{"name":"webhooks"}],"security":[{"bearerAuth":[]}]}