{"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/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":[],"responses":{"200":{"description":"Agent swarms visible to the current user","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/{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/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","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},"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","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},"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","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},"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","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},"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","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},"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","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},"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","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},"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","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},"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}}}}}},"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":"api_v1_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/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/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}/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},"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},"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":{"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},"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"}}}}},"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"],"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"},"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"],"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"],"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/{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/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/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/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}/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":{"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"},"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}/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","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},"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","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},"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","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},"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","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},"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/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"}},"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","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},"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":"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":"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":{"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/VcsUserSummary"}}}}}}}}},"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}/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/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/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/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/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"}}],"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"}]}}}}}},"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. 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)."}},"/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_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}/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"}}],"responses":{"200":{"description":"Actions page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["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":{"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/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","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"},"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","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"},"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/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}/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"}},"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"}},"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}/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":{"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}/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_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"}},"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}/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}/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"}}},"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"},"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_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":{"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"}}},"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"},"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_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":{"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}/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"}}},"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"},"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_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":{"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"}}},"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"},"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_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":{"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}}}}}},"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"}}},"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"},"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_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":{"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"}}},"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"},"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_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":{"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"}}},"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"},"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_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":{"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"}}},"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"},"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_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":{"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}/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"}}},"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"},"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_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":{"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"}}},"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"},"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_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":{"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}/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/{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}/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_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}/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_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":"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":"Unprocessable entity"},"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.","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"]},"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"]},"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"]},"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"]},"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"]},"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"]},"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"]},"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"]},"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"]},"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/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/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/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"},"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"]},"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"},"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"]},"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/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/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/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"]},"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"]},"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"]},"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":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"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"}}},"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 or tool 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","other"],"description":"Rails-owned conversation meaning for this event."},"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."}}},"AgentSwarm":{"type":"object","required":["id","organization_id","creator_user_id","number","display_id","slug","status","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","queued_at_label","started_at_label","finished_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"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","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","running","succeeded","failed","canceled"]},"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":["repo_url","prompt"],"properties":{"repo_url":{"type":"string","format":"uri"},"prompt":{"type":"string"}}},"AgentSwarmCreatePayload":{"type":"object","required":["organization_slug","slug","tasks"],"properties":{"organization_slug":{"type":"string"},"slug":{"type":"string"},"model_provider":{"type":"string"},"model":{"type":"string"},"base_ref":{"type":"string"},"concurrency_key":{"type":"string"},"task_template_json":{"type":"string"},"queued_at":{"type":"string","format":"date-time"},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmTaskCreatePayload"}}}},"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"}}},"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},"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},"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":{"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},"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"}}}}},"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"],"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"}}},"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"},"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_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_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","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},"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"],"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."},"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"],"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."},"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"}}},"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"],"properties":{"id":{"type":"string"},"account_login":{"type":"string"},"account_avatar_url":{"type":"string","format":"uri","nullable":true},"connection_status":{"type":"string","enum":["connected","unavailable"]},"connection_status_label":{"type":"string"},"imported_repositories_count":{"type":"integer","minimum":0},"imported_repositories_count_label":{"type":"string"}}},"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"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"github_repository":{"type":"string"}}},"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"}}},"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"}}},"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","signals_ui","transcripts_ui","registry_ui","secrets_ui","hosting_cdn_ui"]}},"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"}}},"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"}}},"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"},"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"]},"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"},"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"]},"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"}}},"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}}},"RepositoryStats":{"type":"object","required":["engine","freshness","storage","shape","pack_tier","liveness","housekeeping","series","warnings","can_refresh"],"properties":{"engine":{"$ref":"#/components/schemas/RepositoryStatsEngine"},"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"}}},"SessionShowMarker":{"type":"object","description":"A \"Jump to checkpoint\" scroll target. `event_count` is the checkpoint's transcript event total (cumulative by snapshot nature); the web scrolls to event index `event_count - 1` in the resolved transcript. Emitted only for checkpoints whose index is built. `linked_commit_ids` lets the transcript landmark open the native Vex commit diff directly.","required":["checkpoint_id","sequence_number","label","event_count","linked_commit_ids"],"properties":{"checkpoint_id":{"type":"string"},"sequence_number":{"type":"integer"},"label":{"type":"string"},"event_count":{"type":"integer"},"linked_commit_ids":{"type":"array","items":{"type":"string"}}}},"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; the per-type fields and `model` are best-effort from the latest uploaded checkpoint (null when the harness did not report them).","required":["input_tokens","cached_input_tokens","output_tokens","reasoning_output_tokens","total_tokens","model","token_usage_scope"],"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}}},"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":{"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)."}}},"OrganizationSessionStats":{"type":"object","required":["checkpoint_count","uploaded_count","failed_count","pending_count","redaction_count","last_captured_at","total_tokens","token_usage_scope","message_count","agent_count","model"],"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},"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."}}},"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","models","redaction_count","linked_commits","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)."},"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"}},"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"}}}}]},"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"}}},"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},"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","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"},"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"},"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}}},"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},"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"},"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"]},"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/VcsUserSummary"},"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_edit_description","can_edit_labels","can_edit_reviewers","can_comment"],"properties":{"can_edit_description":{"type":"boolean"},"can_edit_labels":{"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"},"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":{"id":{"type":"string"},"state":{"type":"string"},"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/VcsUserSummary"}],"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":{"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/VcsUserSummary"}],"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":{"$ref":"#/components/schemas/VcsOrganizationChangeSummary"}},"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/VcsUserSummary"}}},{"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":{"$ref":"#/components/schemas/VcsOrganizationChangeSummary"}},"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/VcsUserSummary"},"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":{"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/VcsUserSummary"},"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"},"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":["hunk_references","source_references","change_description","transcript_events"],"properties":{"hunk_references":{"type":"array","maxItems":128,"items":{"$ref":"#/components/schemas/VcsTourContextHunkReference"}},"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"}}}},"VcsTourContextHunkReference":{"type":"object","additionalProperties":false,"required":["id","path","position","old_start","old_lines","new_start","new_lines"],"properties":{"id":{"type":"string","minLength":1,"maxLength":128},"path":{"type":"string","minLength":1,"maxLength":1024},"position":{"type":"integer","minimum":0},"old_start":{"type":"integer","minimum":0},"old_lines":{"type":"integer","minimum":0},"new_start":{"type":"integer","minimum":0},"new_lines":{"type":"integer","minimum":0}}},"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_hunks","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_hunks":{"type":"integer","const":128},"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":{"$ref":"#/components/schemas/VcsTourManifest"}}},"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,"maxItems":2048,"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},"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}}},"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,"maxItems":32,"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"]},"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/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"}}},"OrganizationSummary":{"type":"object","required":["id","slug","name","logo_url","role","personal","member_count","pending_invitation_count","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},"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"]},"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"}}}}},"tags":[{"name":"agent"},{"name":"app_access"},{"name":"artifacts"},{"name":"auth"},{"name":"bazel"},{"name":"cdn_spaces"},{"name":"ci"},{"name":"cli_releases"},{"name":"edge"},{"name":"email_verifications"},{"name":"execution"},{"name":"github_app"},{"name":"hosting"},{"name":"identity"},{"name":"jj"},{"name":"mcp"},{"name":"me"},{"name":"networking"},{"name":"observability"},{"name":"open_source_publish_contracts"},{"name":"openapi"},{"name":"org_invitations"},{"name":"organizations"},{"name":"personal_access_tokens"},{"name":"registry"},{"name":"relay"},{"name":"repository_access"},{"name":"repository_events"},{"name":"repository_import_sessions"},{"name":"signals"},{"name":"static_sites"},{"name":"virtual_repositories"},{"name":"waitlist_applications"}],"security":[{"bearerAuth":[]}]}