{"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/admin/organizations":{"get":{"operationId":"api_v1_admin_organizations","tags":["admin"],"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":[]}],"summary":"List the 100 most recently created customer organizations (superadmin)"},"post":{"operationId":"post_api_v1_admin_organizations","tags":["admin"],"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":"Organization, owner invitation URL, and queued email delivery status","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/AdminInvitationResult"},{"type":"object","required":["organization"],"properties":{"organization":{"$ref":"#/components/schemas/AdminOrganization"}}}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["name","slug","owner_email"],"properties":{"name":{"type":"string"},"slug":{"type":"string"},"owner_email":{"type":"string","format":"email"},"package_id":{"type":"string","description":"Active customer package public ID"},"monthly_price_dollars":{"type":["string","number"],"description":"Ongoing USD workspace price, for example '50.00'"},"billing_reason":{"type":"string","description":"Required when setting an agreed price"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Provision a customer and invite its owner (superadmin)","description":"Does not make the operator a member. Slugs are unique; a retry with the same slug fails validation rather than creating a second account."}},"/api/v1/admin/organizations/{org_slug}":{"get":{"operationId":"api_v1_admin_organization","tags":["admin"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Customer account settings","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AdminOrganization"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read a customer by slug or organization public ID (superadmin)"}},"/api/v1/admin/organizations/{org_slug}/billing_agreement":{"put":{"operationId":"billing_agreement_api_v1_admin_organization","tags":["admin"],"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":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["monthly_price_dollars","reason"],"properties":{"monthly_price_dollars":{"type":["string","number"]},"reason":{"type":"string","maxLength":500}}}}}},"security":[{"bearerAuth":[]}],"summary":"Set an ongoing monthly USD agreement (superadmin)"}},"/api/v1/admin/organizations/{org_slug}/billing_contact":{"patch":{"operationId":"billing_contact_api_v1_admin_organization","tags":["admin"],"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":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["billing_email"],"properties":{"billing_email":{"type":"string","format":"email"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Set a customer invoice recipient (superadmin)"}},"/api/v1/admin/organizations/{org_slug}/checkout_session":{"post":{"operationId":"checkout_session_api_v1_admin_organization","tags":["admin"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Hosted Stripe Checkout URL","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingHostedSession"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Create a shareable payment setup link (superadmin)","description":"Collects payment details for the customer's saved agreement. No payment is collected by creating a session."}},"/api/v1/admin/organizations/{org_slug}/invitations":{"post":{"operationId":"api_v1_admin","tags":["admin"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Invitation URL and queued email delivery status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminInvitationResult"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["email","role"],"properties":{"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["owner","admin","member"]}}}}}},"security":[{"bearerAuth":[]}],"summary":"Invite a customer member or owner (superadmin)"}},"/api/v1/admin/organizations/{org_slug}/invitations/{id}":{"delete":{"operationId":"delete_api_v1_admin_organizations_org_slug_invitations_id_","tags":["admin"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Revoke a customer invitation by public ID (superadmin)"}},"/api/v1/admin/organizations/{org_slug}/package":{"put":{"operationId":"package_api_v1_admin_organization","tags":["admin"],"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":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["package_id"],"properties":{"package_id":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Assign an active customer billing package (superadmin)"}},"/api/v1/admin/organizations/{org_slug}/settings":{"patch":{"operationId":"settings_api_v1_admin_organization","tags":["admin"],"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":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"deployment_usage_visibility":{"type":"string","enum":["automatic","hidden","shown"]},"name":{"type":"string"},"monthly_budget_dollars":{"type":["string","number","null"]},"monthly_browser_minutes_limit_override":{"type":["integer","null"],"minimum":0},"daily_run_limit_override":{"type":["integer","null"],"minimum":0},"concurrent_run_limit_override":{"type":["integer","null"],"minimum":1}}}}}},"security":[{"bearerAuth":[]}],"summary":"Update customer limits, budget and deployment usage visibility (superadmin)"}},"/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/persistent/compute/commands/complete":{"post":{"operationId":"api_v1_persistent_compute_commands_complete","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Private allocation-bound exchange","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"commit":{"type":"string"},"result":{"$ref":"#/components/schemas/PersistentAgentToolResult"}},"required":["commit","result"]}}}},"401":{"description":"Compute credential unavailable or revoked"},"403":{"description":"Current task or capability unavailable"},"404":{"description":"Task unavailable"},"409":{"description":"Reconciliation required; dispatch retries are lookup only"},"422":{"description":"Invalid request"},"503":{"description":"Canonical source unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"action":{"$ref":"#/components/schemas/PersistentAgentToolAction"},"frame":{"$ref":"#/components/schemas/PersistentAgentWorkspaceCommandFrame"},"snapshot":{"$ref":"#/components/schemas/PersistentAgentWorkspaceSnapshot"}},"required":["scope","action","frame","snapshot"]}}}},"security":[{"persistentAgentComputeSession":[]}],"summary":"Atomically publish drained command outcome workspace and plan acknowledgement","description":"Trusted executor only. No provider keys or model-chosen authority. Private bodies must never enter Temporal Workflow history or heartbeat data."}},"/api/v1/agent/persistent/compute/commands/pending":{"post":{"operationId":"api_v1_persistent_compute_commands_pending","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Private allocation-bound exchange","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"pending_writer":{"type":"boolean"}},"required":["pending_writer"]}}}},"401":{"description":"Compute credential unavailable or revoked"},"403":{"description":"Current task or capability unavailable"},"404":{"description":"Task unavailable"},"409":{"description":"Reconciliation required; dispatch retries are lookup only"},"422":{"description":"Invalid request"},"503":{"description":"Canonical source unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"}},"required":["scope"]}}}},"security":[{"persistentAgentComputeSession":[]}],"summary":"Inspect unacknowledged writer state before restoring a VM workspace","description":"Trusted executor only. No provider keys or model-chosen authority. Private bodies must never enter Temporal Workflow history or heartbeat data."}},"/api/v1/agent/persistent/compute/commands/prepare":{"post":{"operationId":"api_v1_persistent_compute_commands_prepare","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Private allocation-bound exchange","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"operation":{"type":"string","enum":["execute","lookup"]},"dispatch":{"$ref":"#/components/schemas/PersistentAgentWorkspaceCommandDispatch"},"commit":{"type":"string"}},"required":["operation","dispatch","commit"]}}}},"401":{"description":"Compute credential unavailable or revoked"},"403":{"description":"Current task or capability unavailable"},"404":{"description":"Task unavailable"},"409":{"description":"Reconciliation required; dispatch retries are lookup only"},"422":{"description":"Invalid request"},"503":{"description":"Canonical source unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"action":{"$ref":"#/components/schemas/PersistentAgentToolAction"}},"required":["scope","action"]}}}},"security":[{"persistentAgentComputeSession":[]}],"summary":"Reserve one allocation-bound command dispatch; subsequent requests only look up","description":"Trusted executor only. No provider keys or model-chosen authority. Private bodies must never enter Temporal Workflow history or heartbeat data."}},"/api/v1/agent/persistent/compute/restore":{"post":{"operationId":"api_v1_persistent_compute_restore","tags":["agent","Persistent agents"],"parameters":[],"responses":{"200":{"description":"Validated private exchange","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentComputeSessionRestore"}}}},"401":{"description":"Credential unavailable or revoked"},"403":{"description":"Current authority unavailable"},"404":{"description":"Task unavailable"},"422":{"description":"Invalid request"},"502":{"description":"Bad gateway"},"409":{"description":"Reconciliation required"},"503":{"description":"Canonical state temporarily unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"}},"required":["scope"]}}}},"security":[{"persistentAgentComputeSession":[]}],"summary":"Restore the currently authorized compute session binding and workspace capsule","description":"Private Activity/executor data only. Current Rails/Git authority is required; never put credentials, snapshots or results into Temporal Workflow payloads or heartbeats."}},"/api/v1/agent/persistent/conversations/next_input":{"post":{"operationId":"api_v1_persistent_conversations_next_input","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Next eligible input and scoped credential, or paired nulls. Response must not be cached.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentConversationDiscovery"}}}},"401":{"description":"Invalid, expired, superseded or disabled-agent dispatch capability","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Current task dispatch operation is not authorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Not found"},"422":{"description":"Invalid or oversized JSON request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"502":{"description":"Bad gateway"},"409":{"description":"Canonical conflict or different workflow chain; reconcile the original identity","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"503":{"description":"Canonical state is temporarily unavailable; retry without inventing another task/workflow identity","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"security":[{"persistentAgentConversation":[]}],"summary":"Discover the next canonical conversation input","description":"Internal trusted Activity port. A short-lived conversation-scoped credential fixes the controlling principal, agent, conversation and lifecycle. The request is empty. Returns only an authorized input locator and short-lived input dispatch credential, or nulls when parked/caught up; no message bodies or execution permission. Never place credentials in workflow history."}},"/api/v1/agent/persistent/inference/complete":{"post":{"operationId":"api_v1_persistent_inference_complete","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Acknowledged canonical decision. Only a fresh dispatch decision grants one model call. Uncertain calls must be reconciled.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"state":{"type":"string","enum":["completed"]},"call":{"$ref":"#/components/schemas/PersistentAgentWorkerModelCall"},"output":{"oneOf":[{"$ref":"#/components/schemas/PersistentAgentWorkerModelOutput"},{"type":"null"}]}},"required":["state","call","output"]}}}},"401":{"description":"Invalid, expired or superseded worker capability","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Current operation or provider policy is not authorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Not found"},"422":{"description":"Invalid or oversized request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"502":{"description":"Bad gateway"},"409":{"description":"Canonical conflict; reconciliation required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"503":{"description":"Canonical state temporarily unavailable; no dispatch acknowledgement","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentWorkerCompleteRequest"}}}},"security":[{"persistentAgentWorker":[]}],"summary":"Commit exact model response and settle complete usage","description":"Internal trusted-worker port. A session or personal access token is insufficient. Credentials are scheduler-issued, non-delegable and bound to a live canonical task/segment/claim. The default OpenAI policy counts exact SDK-mapped input, reserves captured-price budgets and records platform billing before dispatch acknowledgment. Incomplete usage remains held. This endpoint does not start a worker or enable agent execution. Maximum request body: 800000 bytes."}},"/api/v1/agent/persistent/inference/prepare":{"post":{"operationId":"api_v1_persistent_inference_prepare","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Acknowledged canonical decision. Only a fresh dispatch decision grants one model call. Uncertain calls must be reconciled.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"state":{"type":"string","enum":["dispatch","uncertain","replay"]},"call":{"$ref":"#/components/schemas/PersistentAgentWorkerModelCall"},"output":{"oneOf":[{"$ref":"#/components/schemas/PersistentAgentWorkerModelOutput"},{"type":"null"}]}},"required":["state","call","output"]}}}},"401":{"description":"Invalid, expired or superseded worker capability","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Current operation or provider policy is not authorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Not found"},"422":{"description":"Invalid or oversized request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"502":{"description":"Bad gateway"},"409":{"description":"Canonical conflict; reconciliation required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"503":{"description":"Canonical state temporarily unavailable; no dispatch acknowledgement","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentWorkerPrepareRequest"}}}},"security":[{"persistentAgentWorker":[]}],"summary":"Fund and prepare exact task-scoped model work","description":"Internal trusted-worker port. A session or personal access token is insufficient. Credentials are scheduler-issued, non-delegable and bound to a live canonical task/segment/claim. The default OpenAI policy counts exact SDK-mapped input, reserves captured-price budgets and records platform billing before dispatch acknowledgment. Incomplete usage remains held. This endpoint does not start a worker or enable agent execution. Maximum request body: 800000 bytes."}},"/api/v1/agent/persistent/scheduler/allocate_compute":{"post":{"operationId":"api_v1_persistent_scheduler_allocate_compute","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Compute control-plane state; not execution credentials or settled usage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentComputeLifecycle"}}}},"401":{"description":"Scheduler authentication required"},"403":{"description":"Current authorization unavailable"},"404":{"description":"Task unavailable"},"422":{"description":"Invalid request"},"502":{"description":"Bad gateway"},"409":{"description":"Provider or task outcome needs reconciliation"},"503":{"description":"Canonical state unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentComputeAllocateRequest"}}}},"security":[{"persistentAgentScheduler":[]}],"summary":"Allocate a funded private task allocation","description":"Consume funded compute through one durable create intent. Only the first acknowledged intent may dispatch; retries are lookup-only. Allocated verifies provider identity/image/shape/absolute expiry, not workspace readiness. No credentials are returned. Trusted Activity data only; never put machine identity or private pins in Workflow payloads."}},"/api/v1/agent/persistent/scheduler/checkpoint_compute":{"post":{"operationId":"api_v1_persistent_scheduler_checkpoint_compute","tags":["agent","Persistent agents"],"parameters":[],"responses":{"200":{"description":"Validated private exchange","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentComputeCheckpointReceipt"}}}},"401":{"description":"Credential unavailable or revoked"},"403":{"description":"Current authority unavailable"},"404":{"description":"Task unavailable"},"422":{"description":"Invalid request"},"502":{"description":"Bad gateway"},"409":{"description":"Reconciliation required"},"503":{"description":"Canonical state temporarily unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentComputeCheckpointRequest"}}}},"security":[{"persistentAgentScheduler":[]}],"summary":"Publish drained execution result and workspace atomically before cleanup","description":"Private Activity/executor data only. Current Rails/Git authority is required; never put credentials, snapshots or results into Temporal Workflow payloads or heartbeats."}},"/api/v1/agent/persistent/scheduler/checkpoint_task":{"post":{"operationId":"api_v1_persistent_scheduler_checkpoint_task","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Original immutable checkpoint publication receipt","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentTaskCheckpointReceipt"}}}},"401":{"description":"Invalid platform scheduler credential"},"403":{"description":"Current task authority unavailable"},"404":{"description":"Task or organization unavailable"},"422":{"description":"Invalid or oversized request"},"502":{"description":"Bad gateway"},"409":{"description":"Canonical attachment or generation requires reconciliation"},"503":{"description":"State or scheduler configuration temporarily unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentTaskCheckpointRequest"}}}},"security":[{"persistentAgentScheduler":[]}],"summary":"Publish or reconcile a task checkpoint and outcome","description":"Trusted Activity only. Canonically attached original workflow chain and current task authority required. Exact operation retries recover their immutable receipt after completion or replacement without regaining execution authority. Result/checkpoint precedes any conversation wake. Bounded 1400000-byte JSON request; no-store receipt contains locators only."}},"/api/v1/agent/persistent/scheduler/checkpoint_workspace":{"post":{"operationId":"api_v1_persistent_scheduler_checkpoint_workspace","tags":["agent"],"parameters":[],"responses":{"200":{"description":"No-store trusted Activity response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentWorkspaceCheckpointReceipt"}}}},"401":{"description":"Invalid platform scheduler credential"},"403":{"description":"Current task authority unavailable"},"404":{"description":"Task or organization unavailable"},"422":{"description":"Invalid or oversized request"},"502":{"description":"Bad gateway"},"409":{"description":"Canonical state or generation requires reconciliation"},"503":{"description":"Canonical state or scheduler unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string"},"agent_id":{"type":"string"},"task_id":{"type":"string"},"first_execution_run_id":{"type":"string"},"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"expected_head":{"type":"string","pattern":"^(?!0{40}$)[0-9a-f]{40}$"},"operation_key":{"type":"string"},"snapshot":{"$ref":"#/components/schemas/PersistentAgentWorkspaceSnapshot"}},"required":["organization_id","agent_id","task_id","first_execution_run_id","scope","expected_head","operation_key","snapshot"]}}}},"security":[{"persistentAgentScheduler":[]}],"summary":"Checkpoint workspace","description":"Publish capsule and canonical continuation pointer in one fenced Git transaction. Preserve existing model decisions, action receipts, task limits and generation. Retry an uncertain publication using the identical original head, operation and snapshot; never substitute private payloads."}},"/api/v1/agent/persistent/scheduler/claim_task":{"post":{"operationId":"api_v1_persistent_scheduler_claim_task","tags":["agent"],"parameters":[],"responses":{"200":{"description":"No-store trusted Activity response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentTaskWorkerClaim"}}}},"401":{"description":"Invalid platform scheduler credential"},"403":{"description":"Current task authority unavailable"},"404":{"description":"Task or organization unavailable"},"422":{"description":"Invalid or oversized request"},"502":{"description":"Bad gateway"},"409":{"description":"Canonical attachment or generation requires reconciliation"},"503":{"description":"State or scheduler configuration temporarily unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string"},"agent_id":{"type":"string"},"task_id":{"type":"string"},"first_execution_run_id":{"type":"string"},"expected_head":{"type":"string"},"claim_id":{"type":"string"},"replace_generation":{"type":["integer","null"],"minimum":1}},"required":["organization_id","agent_id","task_id","first_execution_run_id","expected_head","claim_id","replace_generation"]}}}},"security":[{"persistentAgentScheduler":[]}],"summary":"Claim task","description":"Claim the exact observed task generation and restore private pinned input/settings/checkpoint and any immutable segment seed. Returns separate short-lived inference and tool credentials for trusted Activity use only; never workflow payloads."}},"/api/v1/agent/persistent/scheduler/compute_credential":{"post":{"operationId":"api_v1_persistent_scheduler_compute_credential","tags":["agent","Persistent agents"],"parameters":[],"responses":{"200":{"description":"Validated private exchange","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentComputeCredential"}}}},"401":{"description":"Credential unavailable or revoked"},"403":{"description":"Current authority unavailable"},"404":{"description":"Task unavailable"},"422":{"description":"Invalid request"},"502":{"description":"Bad gateway"},"409":{"description":"Reconciliation required"},"503":{"description":"Canonical state temporarily unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentComputeAllocateRequest"}}}},"security":[{"persistentAgentScheduler":[]}],"summary":"Issue an allocation-bound compute session credential","description":"Private Activity/executor data only. Current Rails/Git authority is required; never put credentials, snapshots or results into Temporal Workflow payloads or heartbeats."}},"/api/v1/agent/persistent/scheduler/conversation_credential":{"post":{"operationId":"api_v1_persistent_scheduler_conversation_credential","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Fresh short-lived conversation capability for the exact authorized scope; never cache or put in workflow history.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentSchedulerConversationCredential"}}}},"401":{"description":"Invalid dedicated scheduler transport credential","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Current controlling authority is unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"No matching persisted/canonical conversation"},"422":{"description":"Invalid or oversized JSON request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"502":{"description":"Bad gateway"},"409":{"description":"Lifecycle or source index requires reconciliation","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"503":{"description":"Canonical state is temporarily unavailable; retry without inventing another task/workflow identity","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string"},"agent_id":{"type":"string"},"conversation_id":{"type":"string"}},"required":["organization_id","agent_id","conversation_id"]}}}},"security":[{"persistentAgentScheduler":[]}],"summary":"Issue a conversation credential to the trusted scheduler","description":"Platform-service-only credential broker. Requires the dedicated scheduler transport secret, never the general API signing secret or a user/org credential. Resolves the current controlling principal and verifies canonical published conversation state before issuing a short-lived conversation token. Body contains locators only. No execution authority is returned. No-store response."}},"/api/v1/agent/persistent/scheduler/inspect_task":{"post":{"operationId":"api_v1_persistent_scheduler_inspect_task","tags":["agent"],"parameters":[],"responses":{"200":{"description":"No-store trusted Activity response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentTaskWorkerSnapshot"}}}},"401":{"description":"Invalid platform scheduler credential"},"403":{"description":"Current task authority unavailable"},"404":{"description":"Task or organization unavailable"},"422":{"description":"Invalid or oversized request"},"502":{"description":"Bad gateway"},"409":{"description":"Canonical attachment or generation requires reconciliation"},"503":{"description":"State or scheduler configuration temporarily unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string"},"agent_id":{"type":"string"},"task_id":{"type":"string"},"first_execution_run_id":{"type":"string"}},"required":["organization_id","agent_id","task_id","first_execution_run_id"]}}}},"security":[{"persistentAgentScheduler":[]}],"summary":"Inspect task","description":"Read task state after verifying current authority and the canonical first workflow chain. No worker authority or private input/configuration is returned."}},"/api/v1/agent/persistent/scheduler/prepare_compute":{"post":{"operationId":"api_v1_persistent_scheduler_prepare_compute","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Immutable funded preparation or reconciliation metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentComputePreparation"}}}},"401":{"description":"Invalid scheduler credential"},"403":{"description":"Current task authorization unavailable"},"404":{"description":"Task or organization unavailable"},"422":{"description":"Invalid selection or request"},"502":{"description":"Bad gateway"},"409":{"description":"Task scope, saved limits or prior allocation requires reconciliation"},"503":{"description":"Canonical state unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentComputePrepareRequest"}}}},"security":[{"persistentAgentScheduler":[]}],"summary":"Atomically reserve a private task compute plan","description":"Trusted Activity only; original workflow attachment and current task authority required. Funding and immutable workspace/resource/price/expiry pins share one Git publication. Prepared identifies the first acknowledged preparation; uncertainty or expiry never permits repeated allocation. This port does not create a provider resource, issue provider credentials, settle usage or prove hard expiry. Return private data only inside trusted Activities, never Workflow payloads."}},"/api/v1/agent/persistent/scheduler/prepare_segment":{"post":{"operationId":"api_v1_persistent_scheduler_prepare_segment","tags":["agent"],"parameters":[],"responses":{"200":{"description":"No-store trusted Activity response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentSegmentSeedReceipt"}}}},"401":{"description":"Invalid platform scheduler credential"},"403":{"description":"Current task authority unavailable"},"404":{"description":"Task or organization unavailable"},"422":{"description":"Invalid or oversized request"},"502":{"description":"Bad gateway"},"409":{"description":"Canonical attachment or generation requires reconciliation"},"503":{"description":"State or scheduler configuration temporarily unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string"},"agent_id":{"type":"string"},"task_id":{"type":"string"},"first_execution_run_id":{"type":"string"},"scope":{"type":"object","additionalProperties":false,"properties":{"task_id":{"type":"string"},"segment_id":{"type":"string"},"generation":{"type":"integer","minimum":1,"maximum":2147483646},"claim_id":{"type":"string"}},"required":["task_id","segment_id","generation","claim_id"]},"selection":{"$ref":"#/components/schemas/PersistentAgentSegmentCaptureSelection"}},"required":["organization_id","agent_id","task_id","first_execution_run_id","scope","selection"]}}}},"security":[{"persistentAgentScheduler":[]}],"summary":"Capture immutable segment input","description":"Capture exact private Roder input, limits and immutable work-repository selections before inference. Exact retries and replacement workers recover the same seed. This does not authorize inference, allocate compute or put private data in Workflow history. Omit repositories to capture the complete configured default-branch set; retries restore the original capture rather than reading current branches."}},"/api/v1/agent/persistent/scheduler/prepare_workspace":{"post":{"operationId":"api_v1_persistent_scheduler_prepare_workspace","tags":["agent"],"parameters":[],"responses":{"200":{"description":"No-store trusted Activity response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentWorkspaceRestore"}}}},"401":{"description":"Invalid platform scheduler credential"},"403":{"description":"Current task authority unavailable"},"404":{"description":"Task or organization unavailable"},"422":{"description":"Invalid or oversized request"},"502":{"description":"Bad gateway"},"409":{"description":"Canonical state or generation requires reconciliation"},"503":{"description":"Canonical state or scheduler unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string"},"agent_id":{"type":"string"},"task_id":{"type":"string"},"first_execution_run_id":{"type":"string"},"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"spec":{"$ref":"#/components/schemas/PersistentAgentWorkspaceSpec"}},"required":["organization_id","agent_id","task_id","first_execution_run_id","scope","spec"]}}}},"security":[{"persistentAgentScheduler":[]}],"summary":"Prepare workspace","description":"Capture immutable task/configuration/image/setup/durable-path selection before model execution. Exact retries restore the current saved capsule; does not provision compute or prove setup applied."}},"/api/v1/agent/persistent/scheduler/reconcile_deadline":{"post":{"operationId":"api_v1_persistent_scheduler_reconcile_deadline","tags":["agent"],"parameters":[],"responses":{"200":{"description":"No-store trusted Activity response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentTaskWorkerSnapshot"}}}},"401":{"description":"Invalid platform scheduler credential"},"403":{"description":"Current task authority unavailable"},"404":{"description":"Task or organization unavailable"},"422":{"description":"Invalid or oversized request"},"502":{"description":"Bad gateway"},"409":{"description":"Canonical attachment or generation requires reconciliation"},"503":{"description":"State or scheduler configuration temporarily unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string"},"agent_id":{"type":"string"},"task_id":{"type":"string"},"first_execution_run_id":{"type":"string"}},"required":["organization_id","agent_id","task_id","first_execution_run_id"]}}}},"security":[{"persistentAgentScheduler":[]}],"summary":"Reconcile task deadline","description":"Verify the original attached workflow chain and current private-state access, then atomically fail an expired nonterminal task while preserving its continuation and unresolved usage/actions. Returns only bounded snapshot metadata, never work authority or proof of executor drainage. Paused or revoked work grants cannot authorize execution but do not prevent authorized state repair."}},"/api/v1/agent/persistent/scheduler/release_compute":{"post":{"operationId":"api_v1_persistent_scheduler_release_compute","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Compute control-plane state; not execution credentials or settled usage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentComputeLifecycle"}}}},"401":{"description":"Scheduler authentication required"},"403":{"description":"Current authorization unavailable"},"404":{"description":"Task unavailable"},"422":{"description":"Invalid request"},"502":{"description":"Bad gateway"},"409":{"description":"Provider or task outcome needs reconciliation"},"503":{"description":"Canonical state unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentComputeReleaseRequest"}}}},"security":[{"persistentAgentScheduler":[]}],"summary":"Release a funded private task allocation","description":"Request deletion of the exact funded allocation. Cleanup remains authorized by state-management access after pause, task expiry or work-grant revocation. Observed allocations require positive observation followed by provider absence; unknown usage stays held. An expired plan with no allocation intent can instead publish an atomic never-dispatched proof, zero usage and original-day/task balance refund. Once any allocation intent exists, missing resources or provider refusal cannot authorize this zero settlement. Trusted Activity data only; never put machine identity or private pins in Workflow payloads."}},"/api/v1/agent/persistent/scheduler/restore_workspace":{"post":{"operationId":"api_v1_persistent_scheduler_restore_workspace","tags":["agent"],"parameters":[],"responses":{"200":{"description":"No-store trusted Activity response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentWorkspaceRestore"}}}},"401":{"description":"Invalid platform scheduler credential"},"403":{"description":"Current task authority unavailable"},"404":{"description":"Task or organization unavailable"},"422":{"description":"Invalid or oversized request"},"502":{"description":"Bad gateway"},"409":{"description":"Canonical state or generation requires reconciliation"},"503":{"description":"Canonical state or scheduler unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string"},"agent_id":{"type":"string"},"task_id":{"type":"string"},"first_execution_run_id":{"type":"string"},"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"}},"required":["organization_id","agent_id","task_id","first_execution_run_id","scope"]}}}},"security":[{"persistentAgentScheduler":[]}],"summary":"Restore workspace","description":"Restore the saved specification and capsule under the current original Workflow chain, task generation, lifecycle and repository grants."}},"/api/v1/agent/persistent/segments/restore":{"post":{"operationId":"api_v1_persistent_segments_restore","tags":["agent"],"parameters":[],"responses":{"200":{"description":"No-store trusted Activity response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentSegmentSeedReceipt"}}}},"401":{"description":"Invalid platform scheduler credential"},"403":{"description":"Current task authority unavailable"},"404":{"description":"Task or organization unavailable"},"422":{"description":"Invalid or oversized request"},"502":{"description":"Bad gateway"},"409":{"description":"Canonical attachment or generation requires reconciliation"},"503":{"description":"State or scheduler configuration temporarily unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"scope":{"type":"object","additionalProperties":false,"properties":{"task_id":{"type":"string"},"segment_id":{"type":"string"},"generation":{"type":"integer","minimum":1,"maximum":2147483646},"claim_id":{"type":"string"}},"required":["task_id","segment_id","generation","claim_id"]}},"required":["scope"]}}}},"security":[{"persistentAgentWorker":[]}],"summary":"Restore immutable segment input","description":"Read the existing private seed through the current task-scoped inference credential. Never creates a seed, accepts caller private input or grants provider dispatch authority."}},"/api/v1/agent/persistent/tasks/attach_workflow":{"post":{"operationId":"api_v1_persistent_tasks_attach_workflow","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Canonical handoff state; this never grants model/tool execution. start_allowed=false permits lookup/receipt repair only, not a fresh workflow start.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentTaskWorkflowAttachment"}}}},"401":{"description":"Invalid, expired, superseded or disabled-agent dispatch capability","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Current task dispatch operation is not authorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Not found"},"422":{"description":"Invalid or oversized JSON request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"502":{"description":"Bad gateway"},"409":{"description":"Canonical conflict or different workflow chain; reconcile the original identity","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"503":{"description":"Canonical state is temporarily unavailable; retry without inventing another task/workflow identity","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"workflow_id":{"type":"string","pattern":"^persistent-task-v1/[0-9a-f]{64}$"},"first_execution_run_id":{"type":"string","format":"uuid"}},"required":["workflow_id","first_execution_run_id"]}}}},"security":[{"persistentAgentDispatch":[]}],"summary":"Attach a confirmed original task workflow chain","description":"Internal scheduler/Activity port. Requires a non-delegable input-scoped capability; a user, repository or inference-worker token is insufficient. The trusted adapter must first start or look up the exact stable workflow identity and report its first execution run. A receipt records orchestration attachment, not task execution/completion. Maximum body: 16384 bytes. No production dispatch adapter is installed."}},"/api/v1/agent/persistent/tasks/prepare_dispatch":{"post":{"operationId":"api_v1_persistent_tasks_prepare_dispatch","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Canonical handoff state; this never grants model/tool execution. start_allowed=false permits lookup/receipt repair only, not a fresh workflow start.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentTaskDispatchPreparation"}}}},"401":{"description":"Invalid, expired, superseded or disabled-agent dispatch capability","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Current task dispatch operation is not authorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Not found"},"422":{"description":"Invalid or oversized JSON request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"502":{"description":"Bad gateway"},"409":{"description":"Canonical conflict or different workflow chain; reconcile the original identity","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"503":{"description":"Canonical state is temporarily unavailable; retry without inventing another task/workflow identity","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"security":[{"persistentAgentDispatch":[]}],"summary":"Prepare an original task workflow handoff","description":"Internal scheduler/Activity port. Requires a non-delegable input-scoped capability; a user, repository or inference-worker token is insufficient. The trusted adapter must first start or look up the exact stable workflow identity and report its first execution run. A receipt records orchestration attachment, not task execution/completion. Maximum body: 16384 bytes. No production dispatch adapter is installed."}},"/api/v1/agent/persistent/tools/execute":{"post":{"operationId":"api_v1_persistent_tools_execute","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Canonical result or unresolved provider outcome","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentToolReceipt"}}}},"401":{"description":"Invalid or expired tool capability"},"403":{"description":"Current tool or repository grant unavailable"},"404":{"description":"Not found"},"422":{"description":"Malformed or oversized request"},"502":{"description":"Bad gateway"},"409":{"description":"Canonical action or generation requires reconciliation"},"503":{"description":"Canonical state temporarily unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentToolRequest"}}}},"security":[{"persistentAgentTool":[]}],"summary":"Execute or reconcile a canonical tool action","description":"Tool-scoped capability and current task authority required. Canonical model plan must match. A terminal receipt and completed-action checkpoint precede the result. Uncertain outcomes are lookup-only; no-store bounded 140000-byte JSON response."}},"/api/v1/agent/roder/browser_authorization":{"get":{"operationId":"api_v1_roder_browser_authorization","tags":["agent"],"parameters":[{"in":"query","name":"organization_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Browser collaboration is enabled for the current organization member"},"403":{"description":"Browser collaboration or beta access is disabled"},"404":{"description":"Organization membership is unavailable"}},"security":[{"bearerAuth":[]}],"summary":"Revalidate live browser collaboration authority"}},"/api/v1/agent/roder/browser_executor_authorization":{"post":{"operationId":"api_v1_roder_browser_executor_authorization","tags":["agent"],"parameters":[],"responses":{"204":{"description":"Browser executor authority remains valid"},"403":{"description":"Invalid capability or browser authority is unavailable"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Revalidate a hosted browser executor using its signed setup capability","description":"Accepts only the original browser-setup capability. Checks live organization membership, beta access and the browser gate. Issues no credential and extends no expiry. Delegated turn capabilities and ordinary user credentials reject.\n"}},"/api/v1/agent/roder/code_repair_settings":{"get":{"operationId":"api_v1_roder_code_repair_settings","tags":["agent"],"parameters":[{"in":"query","name":"organization_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Internal automatic-intake settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyCodeRepairSettings"}}}},"403":{"description":"Internal operator access is required"},"404":{"description":"Organization membership is unavailable"}},"security":[{"bearerAuth":[]}],"summary":"Read internal automatic code-repair enrollment"},"post":{"operationId":"post_api_v1_agent_roder_code_repair_settings","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Internal automatic-intake settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyCodeRepairSettings"}}}},"400":{"description":"A required field is missing"},"403":{"description":"Internal operator access is required"},"404":{"description":"Organization membership is unavailable"},"422":{"description":"Internal rollout or source access is unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization_id","enabled"],"properties":{"organization_id":{"type":"string"},"enabled":{"type":"boolean"},"repository_slug":{"type":"string","description":"Connected Composal repository required when enabling"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Enable or disable automatic investigation of new blocked internal runs","description":"Requires internal operator membership and the organization rollout flag. Enabling selects the caller as operator and one connected Composal source. The enrollment timestamp excludes earlier blocks. Disabling prevents queued automatic launches; active turns can be cancelled through their repair API. Automatic intake admits at most three investigations per organization per UTC day, using normal Roder limits and tools.\n"}},"/api/v1/agent/roder/code_repairs":{"get":{"operationId":"api_v1_roder_code_repairs","tags":["agent"],"parameters":[{"in":"query","name":"scenario_run_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Investigation launch record","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyCodeRepair"}}}},"400":{"description":"Scenario execution is required"},"403":{"description":"Internal operator access is required"},"404":{"description":"Investigation is unavailable to this operator"},"422":{"description":"Source organization authority is unavailable"}},"security":[{"bearerAuth":[]}],"summary":"Find an operator's investigation by its source scenario execution","description":"Returns the durable link without contacting Roder; use the ID route for native status."},"post":{"operationId":"api_v1_code_repairs","tags":["agent"],"parameters":[],"responses":{"202":{"description":"Investigation launch record","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyCodeRepair"}}}},"403":{"description":"Internal operator access is required"},"404":{"description":"Source organization or scenario is unavailable"},"422":{"description":"Disabled, ineligible, invalid or conflicting request"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization_id","scenario_run_id","repository_slug","base_sha"],"properties":{"organization_id":{"type":"string"},"scenario_run_id":{"type":"string"},"repository_slug":{"type":"string"},"base_sha":{"type":"string","pattern":"^[0-9a-f]{40}$"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Request an internal Composal code investigation of one blocked scenario","description":"Internal operators only. Requires membership in the source organization, the default-off verify_internal_code_repair actor flag, and a connected ComposalAI/vex repository in that organization. One durable investigation per scenario execution; repeated matching requests reuse it. No automatic result regrading, merge or deployment is performed by this request.\n"}},"/api/v1/agent/roder/code_repairs/{id}":{"get":{"operationId":"api_v1_code_repair","tags":["agent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Investigation launch record","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyCodeRepair"}}}},"403":{"description":"Internal operator access is required"},"404":{"description":"Investigation is unavailable to this operator"},"422":{"description":"Original workspace authority is unavailable"},"503":{"description":"Roder status is temporarily unavailable; no new task was started"}},"security":[{"bearerAuth":[]}],"summary":"Read an internal investigation and its current native Roder status"}},"/api/v1/agent/roder/code_repairs/{id}/cancel":{"post":{"operationId":"cancel_api_v1_code_repair","tags":["agent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Investigation launch record","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyCodeRepair"}}}},"403":{"description":"Internal operator access is required"},"404":{"description":"Investigation is unavailable to this operator"},"422":{"description":"Original workspace authority is unavailable"},"503":{"description":"Cancellation recorded; interruption could not be confirmed with Roder"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Cancel a queued investigation or interrupt its original Roder turn"}},"/api/v1/agent/roder/machines/{public_id}":{"post":{"operationId":"post_api_v1_agent_roder_machines_public_id_","tags":["agent"],"parameters":[{"name":"public_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/roder/run/automation_artifact":{"post":{"operationId":"api_v1_roder_run_automation_artifact","tags":["agent"],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Artifact-Filename","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"is_error":{"type":"boolean"},"value":{"type":"object","properties":{"artifact":{"$ref":"#/components/schemas/AutomationArtifactManifest"}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"string","additionalProperties":true,"format":"binary"}},"text/html":{"schema":{"type":"string","format":"binary"}},"text/plain":{"schema":{"type":"string","format":"binary"}},"text/markdown":{"schema":{"type":"string","format":"binary"}},"application/pdf":{"schema":{"type":"string","format":"binary"}},"image/png":{"schema":{"type":"string","format":"binary"}},"image/jpeg":{"schema":{"type":"string","format":"binary"}},"image/svg+xml":{"schema":{"type":"string","format":"binary"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/roder/run/automation_tool":{"post":{"operationId":"api_v1_roder_run_automation_tool","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/roder/run/automation_transcript":{"post":{"operationId":"api_v1_roder_run_automation_transcript","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["sequence","truncated"],"properties":{"sequence":{"type":"integer"},"truncated":{"type":"boolean"}}}}}},"401":{"description":"Invalid or revoked run capability"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Invalid entry"},"502":{"description":"Bad gateway"},"409":{"description":"Sequence conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["sequence","kind","content"],"properties":{"sequence":{"type":"integer","minimum":1,"maximum":128},"kind":{"type":"string","enum":["instructions","input","assistant","tool_call","tool_result","correction","error"]},"name":{"type":"string","maxLength":100},"call_id":{"type":"string","maxLength":128},"content":{"type":"string","description":"Visible UTF-8 text, at most 65536 bytes."},"truncated":{"type":"boolean"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/roder/run/swarm_activity":{"post":{"operationId":"api_v1_roder_run_swarm_activity","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Activity batch accepted","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["accepted","last_seq"],"properties":{"accepted":{"type":"integer","minimum":1},"last_seq":{"type":"integer","minimum":1}}}}}},"401":{"description":"Swarm not visible to the current user","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Swarm not visible to the current user","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"},"409":{"description":"Swarm not visible to the current user","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"429":{"description":"Swarm not visible to the current user","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["events"],"properties":{"events":{"type":"array","minItems":1,"maxItems":20,"items":{"$ref":"#/components/schemas/AgentSwarmActivityReport"}}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/roder/run/swarm_stack":{"post":{"operationId":"api_v1_roder_run_swarm_stack","tags":["agent"],"parameters":[],"responses":{"201":{"description":"Stack received and composed; the receipt","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"200":{"description":"Replay of an already received stack; the existing receipt","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"202":{"description":"The receipt is still composing in another request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"409":{"description":"stack_payload_conflict or attempt_fenced","content":{"application/json":{"schema":{"type":"object","required":["error","refusal"],"properties":{"error":{"type":"string"},"refusal":{"type":"object","required":["code"],"properties":{"code":{"type":"string"},"detail":{"type":"string"}}},"receipt":{"type":"object","additionalProperties":true}}}}}},"413":{"description":"stack_too_large (detail bytes); the body exceeds 25 MiB declared or decoded","content":{"application/json":{"schema":{"type":"object","required":["error","refusal"],"properties":{"error":{"type":"string"},"refusal":{"type":"object","required":["code"],"properties":{"code":{"type":"string"},"detail":{"type":"string"}}},"receipt":{"type":"object","additionalProperties":true}}}}}},"422":{"description":"invalid_payload, an unreadable body, or a refused stack with its receipt","content":{"application/json":{"schema":{"type":"object","required":["error","refusal"],"properties":{"error":{"type":"string"},"refusal":{"type":"object","required":["code"],"properties":{"code":{"type":"string"},"detail":{"type":"string"}}},"receipt":{"type":"object","additionalProperties":true}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Post a swarm worker's stack and receive its receipt","description":"Requires a run capability carrying the swarm.submit_stack operation. One receipt per attempt: an identical replay answers 200 with the existing receipt, a different payload for the same attempt is 409 stack_payload_conflict, and a new payload behind the swarm's generation is 409 attempt_fenced. Bodies over 25 MiB, declared or decoded, are 413 stack_too_large before any receipt exists. input_revision and notice target_tip values are original 40-character Git commit IDs. Change keys retain their stable 32-character hex or reverse-hex spelling; SHA-256 evidence digests remain 64-character hex values.\n"}},"/api/v1/agent/roder/run/swarm_transcript":{"post":{"operationId":"api_v1_roder_run_swarm_transcript","tags":["agent"],"parameters":[],"responses":{"200":{"description":"The transcript is stored and attached","content":{"application/json":{"schema":{"type":"object","required":["session_id","checkpoint_id","attached_commit_ids"],"properties":{"session_id":{"type":"string"},"checkpoint_id":{"type":"string"},"attached_commit_ids":{"type":"array","items":{"type":"string"}}}}}}},"401":{"description":"Unauthorized"},"413":{"description":"The body exceeds the transcript cap"},"422":{"description":"An invalid payload or an archive that failed verification"},"502":{"description":"jj-backend refused or failed the attachment"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Attach a swarm worker's transcript to its stack's Changes","description":"Requires a run capability carrying the swarm.submit_stack operation. The body names the opaque session and checkpoint identities, the archive's declared sizes and SHA-256 digests, and the zlib archive as base64. Idempotent: a replay finds the same session and checkpoint and re-appends the same native attachments.\n"}},"/api/v1/agent/roder/run/workspace_authorization":{"post":{"operationId":"api_v1_roder_run_workspace_authorization","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/roder/run/workspace_credentials":{"post":{"operationId":"api_v1_roder_run_workspace_credentials","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/roder/session":{"post":{"operationId":"api_v1_roder_session","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Roder browser session","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AgentRoderSession"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Checkpoint handoff context is unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"},"400":{"description":"Organization is required","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AgentRoderSessionPayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/roder/workspace_authorization":{"post":{"operationId":"api_v1_roder_workspace_authorization","tags":["agent"],"parameters":[],"responses":{"204":{"description":"The capability still authorizes native runner access"},"401":{"description":"Invalid, expired, revoked, or unauthorized agent capability","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Revalidate a hosted runner capability at a native tool boundary","description":"Requires the server-held turn capability delegated by Roder and re-checks current user membership and beta access. Browser session capabilities are not accepted."}},"/api/v1/agent/roder/workspace_credentials":{"post":{"operationId":"api_v1_roder_workspace_credentials","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Short-lived repository clone and user API credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentRoderWorkspaceCredentials"}}}},"401":{"description":"Invalid, expired, or unauthorized agent capability","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"400":{"description":"Required credential lifetime is missing or invalid","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"503":{"description":"Agent repository access is not configured","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AgentRoderWorkspaceCredentialRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Exchange a delegated runner capability for home-repository and user API credentials","description":"Requires the server-held turn capability delegated by Roder. Browser session capabilities, browser cookies, and personal access tokens are not accepted. Returns a short-lived repository credential for the org Home checkout and a short-lived system personal access token that authenticates API/CLI calls as the spawning user. Both expire together and are reissued on refresh.\n"}},"/api/v1/agent/swarms":{"get":{"operationId":"api_v1_swarms","tags":["agent"],"parameters":[{"name":"org","in":"query","required":true,"description":"Organization slug. Swarms belong to one organization and the list is read under one.","schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"1-based page number. The list is paginated because counting tasks for every swarm is not free.","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","required":false,"description":"Swarms per page, 1 to 100. Defaults to 25.","schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"One page of agent swarms in the organization","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["swarms","page","per_page","total","has_more"],"properties":{"swarms":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarm"}},"page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"},"has_more":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_agent_swarms","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"404":{"description":"Not found"},"422":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"201":{"description":"Agent swarm created","content":{"application/json":{"schema":{"type":"object","required":["swarm"],"properties":{"swarm":{"$ref":"#/components/schemas/AgentSwarmDetail"}}}}}},"400":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AgentSwarmCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{id}":{"get":{"operationId":"api_v1_swarm","tags":["agent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Agent swarm with recent tasks","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["swarm"],"properties":{"swarm":{"$ref":"#/components/schemas/AgentSwarmDetail"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{id}/cancel":{"post":{"operationId":"cancel_api_v1_swarm","tags":["agent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Agent swarm canceled (PRD 146 FR30)","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["swarm"],"properties":{"swarm":{"$ref":"#/components/schemas/AgentSwarmDetail"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"404":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"409":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"reason":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{id}/live":{"get":{"operationId":"get_api_v1_agent_swarms_id_live","tags":["agent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"One page response for the swarm live view","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AgentSwarmLivePage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Swarm not visible to the current user","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{id}/live/replay":{"get":{"operationId":"get_api_v1_agent_swarms_id_live_replay","tags":["agent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cursor","in":"query","required":false,"description":"The previous page's next_cursor; omit to start from launch.","schema":{"type":"string"}},{"name":"after_seq","in":"query","required":false,"description":"Only activity events with a greater seq.","schema":{"type":"integer","minimum":0}},{"name":"after_event_id","in":"query","required":false,"description":"Only scheduler events with a greater id.","schema":{"type":"integer","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":2000}}],"responses":{"200":{"description":"One page of the stored stream, activity and scheduler events interleaved by time","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AgentSwarmLiveReplayPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Swarm not visible to the current user","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Swarm not visible to the current user","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{id}/policy":{"get":{"operationId":"policy_api_v1_swarm","tags":["agent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The swarm's effective policy, budget and pinned environment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AgentSwarmPolicy"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_agent_swarms_id_policy","tags":["agent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The swarm's effective policy after the edit","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AgentSwarmPolicy"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"404":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"422":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"400":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"409":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["policy"],"properties":{"policy":{"type":"object","additionalProperties":true}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{swarm_id}/events":{"get":{"operationId":"api_v1_swarm_events","tags":["agent"],"parameters":[{"name":"swarm_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"after","in":"query","required":false,"schema":{"type":"integer"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000}}],"responses":{"200":{"description":"The swarm's decision log, oldest first","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["events"],"properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmEvent"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{swarm_id}/notes":{"post":{"operationId":"api_v1_swarm_notes","tags":["agent"],"parameters":[{"name":"swarm_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"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":"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":"The note as a live feed event","content":{"application/json":{"schema":{"type":"object","required":["event"],"properties":{"event":{"$ref":"#/components/schemas/AgentSwarmLiveEvent"}}}}}},"409":{"description":"Invalid agent swarm request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["text"],"properties":{"text":{"type":"string","maxLength":2000},"task_id":{"type":"string","nullable":true,"description":"A task public id; omitted","the note is for the whole swarm and its orchestrator.":null}}}}}},"security":[{"bearerAuth":[]}],"summary":"Leave an operator note for the orchestrator or one task","description":"Operator steering. The note is recorded as an `operator_note` swarm event (in the feed and the replay), reaches the planner in its next plan or re-plan input, and reaches a running task on its next heartbeat, which steers the turn with it."}},"/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}/activity":{"get":{"operationId":"api_v1_swarm_task_activity_index","tags":["agent"],"parameters":[{"name":"swarm_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"task_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"after_seq","in":"query","required":false,"schema":{"type":"integer","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":2000}}],"responses":{"200":{"description":"The task, its activity page and its events","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AgentSwarmTaskConversation"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Swarm not visible to the current user","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"One task's whole conversation, paged by seq","description":"Every activity line the task's runner reported — thoughts, prose, tool calls, harness narration — in stream order from `after_seq`, plus the scheduler events about the task. The live board keeps only a window; this is the page a click into an agent opens."}},"/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,"properties":{"lease_token":{"type":"string"},"worker_identity":{"type":"object","additionalProperties":false,"required":["protocol","allocation_id","process_id"],"properties":{"protocol":{"type":"string","enum":["roder-worker-v1"]},"allocation_id":{"type":"string","format":"uuid"},"process_id":{"type":"string","format":"uuid"}}}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{swarm_id}/tasks/{task_id}/leases/{id}/evidence":{"post":{"operationId":"evidence_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"}},{"name":"cancelled_recovery","in":"query","required":false,"description":"Retain browser evidence only for an already cancelled ScenarioRun within its recovery window.","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/swarms/{swarm_id}/tasks/{task_id}/leases/{id}/verification_account_session":{"post":{"operationId":"verification_account_session_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"}},{"in":"header","name":"X-Vex-Lease-Token","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Shared sign-in recorded"},"401":{"description":"Invalid executor lease token"},"404":{"description":"Execution unavailable"},"422":{"description":"The report was rejected; the code is also recorded on a sharing run.","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string"},"code":{"type":"string","description":"invalid_session for a malformed report, otherwise the refusal's Verify error code such as invalid_browser_authentication or credential_unavailable."}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"browser_session":{"type":"string","description":"JSON browser storage state for the shared origin"},"rejected":{"type":"boolean","const":true},"failed":{"type":"object","description":"The sharing run has no copy to publish; the code is recorded with the run.","required":["code"],"properties":{"code":{"type":"string","pattern":"^[a-z_]{1,64}$"}}}}}}}},"security":[{"bearerAuth":[]},{"executorLease":[]}],"summary":"ScenarioRun executor shared sign-in exchange","description":"The run dispatched to share an account's sign-in publishes its app state after signing in. A run started from that copy reports when the copy opened on a sign-in page."}},"/api/v1/agent/swarms/{swarm_id}/tasks/{task_id}/leases/{id}/verification_cleanup":{"post":{"operationId":"verification_cleanup_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"}},{"in":"header","name":"X-Vex-Lease-Token","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Sandbox deletion confirmed"},"401":{"description":"Invalid executor lease token"},"404":{"description":"Execution unavailable"},"422":{"description":"Rejected execution input"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["sandbox_deleted"],"properties":{"sandbox_deleted":{"type":"boolean","const":true}}}}}},"security":[{"executorLease":[]}],"summary":"ScenarioRun executor cleanup exchange"}},"/api/v1/agent/swarms/{swarm_id}/tasks/{task_id}/leases/{id}/verification_diagnostics":{"post":{"operationId":"verification_diagnostics_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"}},{"in":"header","name":"X-Vex-Lease-Token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Executor exchange accepted"},"401":{"description":"Invalid executor lease token"},"404":{"description":"Execution unavailable"},"422":{"description":"Rejected execution input"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["browser_events"],"properties":{"browser_events":{"type":"object","additionalProperties":true},"live_browser":{"type":"object","description":"Latest masked viewport checkpoint while the scenario runs","additionalProperties":true},"live_view":{"type":"object","description":"The supervisor's read-only frame stream for run page viewers","required":["url","token"],"properties":{"url":{"type":"string","format":"uri"},"token":{"type":"string","pattern":"^view_[a-f0-9]{32}$"},"cdp_token":{"type":"string","description":"Opens full Chrome DevTools on the attempt; shown only to people who may run tests.","pattern":"^cdp_[a-f0-9]{32}$"}}}}}}}},"security":[{"executorLease":[]}],"summary":"ScenarioRun executor diagnostics exchange"}},"/api/v1/agent/swarms/{swarm_id}/tasks/{task_id}/leases/{id}/verification_evidence":{"post":{"operationId":"verification_evidence_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"}},{"in":"header","name":"X-Vex-Lease-Token","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Redacted evidence stored"},"401":{"description":"Invalid executor lease token"},"404":{"description":"Execution unavailable"},"422":{"description":"Rejected execution input"}},"security":[{"executorLease":[]}],"summary":"ScenarioRun executor evidence exchange","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["metadata","file"],"properties":{"metadata":{"type":"string","description":"Serialized owned evidence manifest entry"},"file":{"type":"string","format":"binary"}}}}}}}},"/api/v1/agent/swarms/{swarm_id}/tasks/{task_id}/leases/{id}/verification_mail":{"post":{"operationId":"verification_mail_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"}},{"in":"header","name":"X-Vex-Lease-Token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Executor exchange accepted","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid executor lease token"},"403":{"description":"Forbidden"},"404":{"description":"Execution unavailable"},"422":{"description":"Rejected execution input"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"executorLease":[]}],"summary":"ScenarioRun executor mail exchange"}},"/api/v1/agent/swarms/{swarm_id}/tasks/{task_id}/leases/{id}/verification_messages_session":{"post":{"operationId":"verification_messages_session_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"}},{"in":"header","name":"X-Vex-Lease-Token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The Messages URL and its host-only session cookie, in Playwright cookie fields","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyMessagingSessionGrant"}}}},"401":{"description":"Invalid executor lease token"},"403":{"description":"Forbidden"},"404":{"description":"Execution unavailable"},"422":{"description":"The run does not hold a messaging conversation"},"502":{"description":"Bad gateway"},"503":{"description":"The Messages origin is not configured"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"executorLease":[]}],"summary":"Issue the run's Messages page session for the runner to install"}},"/api/v1/agent/swarms/{swarm_id}/tasks/{task_id}/leases/{id}/verification_secrets":{"post":{"operationId":"verification_secrets_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"}},{"in":"header","name":"X-Vex-Lease-Token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Executor exchange accepted","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid executor lease token"},"403":{"description":"Forbidden"},"404":{"description":"Execution unavailable"},"422":{"description":"Rejected execution input"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"executorLease":[]}],"summary":"ScenarioRun executor secrets exchange"}},"/api/v1/agent/swarms/{swarm_id}/tasks/{task_id}/leases/{id}/verify_checkpoint":{"post":{"operationId":"verify_checkpoint_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":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Progress stored durably","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["sequence","digest"],"properties":{"sequence":{"type":"integer","minimum":0},"digest":{"type":"string","pattern":"^[0-9a-f]{64}$"}}}}}},"401":{"description":"Invalid executor token"},"403":{"description":"Forbidden"},"404":{"description":"Execution unavailable or no longer active"},"422":{"description":"Invalid progress or missing evidence. Application actions must remain paused; only invalid_report permits report-only correction without replaying actions.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","code","invalid_fields","recovery"],"properties":{"error":{"type":"string"},"code":{"type":"string","enum":["invalid_sequence","invalid_document","invalid_result","invalid_report","sequence_reused","actions_rewritten","evidence_discarded","request_too_large","evidence_manifest_duplicate","evidence_missing","evidence_manifest_mismatch","evidence_manifest_invalid","policy_refused","invalid_request","invalid_usage"]},"recovery":{"type":"string","enum":["report_only","stop"]},"invalid_fields":{"type":"array","maxItems":8,"items":{"type":"object","additionalProperties":false,"required":["path","type"],"properties":{"path":{"type":"string"},"type":{"type":"string"},"schema_path":{"type":"string"}}}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["sequence","document"],"properties":{"sequence":{"type":"integer","minimum":0,"maximum":9007199254740991},"document":{"type":"object","additionalProperties":true},"usage_snapshot":{"type":"object","additionalProperties":true,"nullable":true}}}}}},"security":[{"bearerAuth":[]},{"executorLease":[]}],"summary":"Acknowledge durable Verify execution progress","description":"Stores cumulative execution progress only while its executor lease remains active. Sequence zero registers allocation intent; higher sequences require a validated partial result and already stored evidence. This exchange never performs application actions or completes the run."}},"/api/v1/agent/swarms/{swarm_id}/tasks/{task_id}/leases/{id}/verify_diagnostics":{"post":{"operationId":"verify_diagnostics_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":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":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"},"204":{"description":"Browser diagnostics checkpoint accepted"},"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":false,"required":["browser_events"],"properties":{"browser_events":{"type":"object","additionalProperties":true},"steps":{"type":"array","maxItems":200,"items":{"type":"object","additionalProperties":false,"required":["id","status","start_ms","duration_ms"],"properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{1,127}$"},"status":{"type":"string","enum":["passed","failed","skipped","cancelled"]},"start_ms":{"type":"integer","minimum":0,"maximum":86400000},"duration_ms":{"type":"integer","minimum":0,"maximum":86400000},"safe_error":{"type":"string","maxLength":1000}}}},"live_view":{"type":"object","description":"The tester's read-only live stream for page viewers.","additionalProperties":false,"required":["url","token"],"properties":{"url":{"type":"string","format":"uri"},"token":{"type":"string","pattern":"^view_[a-f0-9]{32}$"},"cdp_token":{"type":"string","description":"Opens full Chrome DevTools on the tester; sent only when its runner serves DevTools, and shown only to people who may run tests.","pattern":"^cdp_[a-f0-9]{32}$"}}},"live_browser":{"type":"object","additionalProperties":false,"required":["captured_at","url","action","completed_steps","image"],"properties":{"captured_at":{"type":"string","format":"date-time"},"url":{"type":"string","maxLength":1000},"action":{"type":"string","maxLength":1000},"completed_steps":{"type":"integer","minimum":0,"maximum":1000},"image":{"type":"string","nullable":true,"maxLength":200023}}}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{swarm_id}/tasks/{task_id}/leases/{id}/verify_jev":{"post":{"operationId":"verify_jev_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":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Bounded browser decision evaluation result","content":{"application/json":{"schema":{"type":"object","additionalProperties":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"}}}}}}},"503":{"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":false,"required":["request"],"properties":{"provider":{"type":"string","enum":["openai"]},"request":{"type":"object","additionalProperties":true}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/swarms/{swarm_id}/tasks/{task_id}/leases/{id}/verify_learning":{"post":{"operationId":"verify_learning_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":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":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"},"204":{"description":"Learning report stored with the ScenarioRun"},"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":false,"required":["steps","replay"],"description":"Validated against vex-api/config/verify/schemas/verify-learning.v1.json.","properties":{"steps":{"type":"array","maxItems":60,"items":{"type":"object","additionalProperties":false,"required":["step_index","actions","postcondition","source"],"properties":{"step_index":{"type":"integer","minimum":0,"maximum":99},"actions":{"type":"array","maxItems":40,"items":{"type":"object","additionalProperties":true}},"postcondition":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"object","additionalProperties":true}},"source":{"type":"string","enum":["replayed","healed","model"]}}}},"outcomes":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["outcome_index","postcondition","source"],"properties":{"outcome_index":{"type":"integer","minimum":0,"maximum":99},"postcondition":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"object","additionalProperties":true}},"source":{"type":"string","enum":["replayed","model"]}}}},"cleanup":{"type":"object","additionalProperties":false,"required":["actions","postcondition","source"],"properties":{"actions":{"type":"array","maxItems":40,"items":{"type":"object","additionalProperties":true}},"postcondition":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"object","additionalProperties":true}},"source":{"type":"string","enum":["replayed","healed","model"]}}},"replay":{"type":"object","additionalProperties":false,"required":["offered_steps","replayed_steps","healed_actions"],"properties":{"offered_steps":{"type":"integer","minimum":0,"maximum":100},"replayed_steps":{"type":"integer","minimum":0,"maximum":100},"healed_actions":{"type":"integer","minimum":0,"maximum":4000},"model_from_step":{"type":["integer","null"],"minimum":0,"maximum":99},"replay_ms":{"type":["integer","null"],"minimum":0,"maximum":86400000},"offered_outcomes":{"type":"integer","minimum":0,"maximum":100},"replayed_outcomes":{"type":"integer","minimum":0,"maximum":100},"cleanup_replayed":{"type":"boolean"}}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Browser ScenarioRun learning report","description":"The steps a single-actor browser ScenarioRun completed and how it completed them, the live checks of the outcomes it proved, and the actions and checks of the cleanup checkpoint that followed, posted once before its result. Verify promotes them to learned steps, outcomes and cleanup only when the run passes with cleanup complete. Values never hold a credential; a fill of a granted handle names its kind."}},"/api/v1/agent/swarms/{swarm_id}/tasks/{task_id}/leases/{id}/verify_mail":{"post":{"operationId":"verify_mail_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}/verify_secrets":{"post":{"operationId":"verify_secrets_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}/verify_sign_in":{"post":{"operationId":"verify_sign_in_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":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":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"},"204":{"description":"Sign-in report recorded"},"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,"properties":{"replayed":{"type":"object","required":["id","version","sha256","signed_in"],"properties":{"id":{"type":"string"},"version":{"type":"integer","minimum":1,"description":"The script version the run was offered."},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"signed_in":{"type":"boolean"},"confirmed":{"type":"boolean","description":"Decisions confirmed the page is signed in."},"code":{"type":"string","maxLength":64}}},"learned":{"type":"object","required":["script"],"properties":{"script":{"type":"string","maxLength":65536},"model":{"type":"string"},"reasoning_effort":{"type":"string"},"sign_in_url":{"type":"string"},"usage":{"type":"object","additionalProperties":true}}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Browser run learned sign-in report","description":"How the account's learned sign-in script a browser run was offered did, or the script the run wrote once its sign-in was confirmed. A Scenario run or a Discovery or Deep Scan run may post either. Scripts name credentials only by kind and never hold a credential key or value."}},"/api/v1/agent/threads":{"get":{"operationId":"api_v1_threads","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_agent_threads","tags":["agent"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/threads/{id}":{"get":{"operationId":"api_v1_thread","tags":["agent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent/threads/{id}/archive":{"post":{"operationId":"archive_api_v1_thread","tags":["agent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/agent_sessions/{session_id}/transcript":{"get":{"operationId":"get_api_v1_agent_sessions_session_id_transcript","tags":["agent_sessions"],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"session_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"checkpoint","schema":{"type":"string"}},{"$ref":"#/components/parameters/TranscriptReadSource"},{"$ref":"#/components/parameters/TranscriptReadCursor"},{"$ref":"#/components/parameters/TranscriptReadLimit"},{"$ref":"#/components/parameters/TranscriptReadBytes"},{"$ref":"#/components/parameters/TranscriptReadTools"},{"$ref":"#/components/parameters/TranscriptReadAround"},{"$ref":"#/components/parameters/TranscriptReadDigest"}],"responses":{"200":{"description":"Indexed events or an explicit content availability state.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/TranscriptReadPage"}}}},"401":{"description":"Authentication required."},"403":{"description":"Forbidden"},"404":{"description":"Missing or inaccessible session or checkpoint."},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid limits or source reference."},"409":{"description":"The cursor no longer identifies the same content or filters."},"413":{"description":"Increase max_bytes to fit the next complete indexed event."}},"security":[{"bearerAuth":[]}],"summary":"Read a bounded page of indexed conversation events","description":"Authorizes the session before selecting a checkpoint. Returns the latest conversation events in chronological order, with an older_cursor for earlier context. Each cursor fixes the checkpoint and index identity. Tools are opt in; reasoning is excluded. Indexed message truncation is disclosed and omitted text cannot be recovered through this API."}},"/api/v1/app_access/callback":{"get":{"operationId":"api_v1_app_access_callback","tags":["app_access"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/app_access/jwks":{"get":{"operationId":"api_v1_app_access_jwks","tags":["app_access"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/app_access/start":{"get":{"operationId":"api_v1_app_access_start","tags":["app_access"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/artifacts":{"get":{"operationId":"api_v1_artifacts","tags":["artifacts"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_artifacts_artifacts","tags":["artifacts"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/artifacts/{id}":{"get":{"operationId":"api_v1_artifact","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_artifacts_artifacts_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_artifacts_artifacts_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_artifacts_artifacts_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/artifacts/{id}/expire":{"post":{"operationId":"expire_api_v1_artifact","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/artifacts/{id}/issue_contract":{"post":{"operationId":"issue_contract_api_v1_artifact","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/artifacts/{id}/restore":{"post":{"operationId":"restore_api_v1_artifact","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces":{"get":{"operationId":"api_v1_cache_namespaces","tags":["artifacts"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_artifacts_cache_namespaces","tags":["artifacts"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces/{cache_namespace_id}/entries":{"get":{"operationId":"api_v1_cache_namespace_entries","tags":["artifacts"],"parameters":[{"name":"cache_namespace_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_artifacts_cache_namespaces_cache_namespace_id_entries","tags":["artifacts"],"parameters":[{"name":"cache_namespace_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces/{cache_namespace_id}/entries/{id}":{"get":{"operationId":"api_v1_cache_namespace_entry","tags":["artifacts"],"parameters":[{"name":"cache_namespace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_artifacts_cache_namespaces_cache_namespace_id_entries_id_","tags":["artifacts"],"parameters":[{"name":"cache_namespace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_artifacts_cache_namespaces_cache_namespace_id_entries_id_","tags":["artifacts"],"parameters":[{"name":"cache_namespace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_artifacts_cache_namespaces_cache_namespace_id_entries_id_","tags":["artifacts"],"parameters":[{"name":"cache_namespace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces/{cache_namespace_id}/entries/{id}/evict":{"post":{"operationId":"evict_api_v1_cache_namespace_entry","tags":["artifacts"],"parameters":[{"name":"cache_namespace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces/{cache_namespace_id}/entries/{id}/issue_contract":{"post":{"operationId":"issue_contract_api_v1_cache_namespace_entry","tags":["artifacts"],"parameters":[{"name":"cache_namespace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces/{cache_namespace_id}/entries/{id}/record_hit":{"post":{"operationId":"record_hit_api_v1_cache_namespace_entry","tags":["artifacts"],"parameters":[{"name":"cache_namespace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces/{cache_namespace_id}/entries/{id}/record_miss":{"post":{"operationId":"record_miss_api_v1_cache_namespace_entry","tags":["artifacts"],"parameters":[{"name":"cache_namespace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces/{id}":{"get":{"operationId":"api_v1_cache_namespace","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_artifacts_cache_namespaces_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_artifacts_cache_namespaces_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_artifacts_cache_namespaces_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces/{id}/archive":{"post":{"operationId":"archive_api_v1_cache_namespace","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces/{id}/pause":{"post":{"operationId":"pause_api_v1_cache_namespace","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/cache_namespaces/{id}/resume":{"post":{"operationId":"resume_api_v1_cache_namespace","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/image_repositories":{"get":{"operationId":"get_api_v1_artifacts_image_repositories","tags":["artifacts"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_artifacts_image_repositories","tags":["artifacts"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/image_repositories/{id}":{"get":{"operationId":"api_v1_image_repository","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_artifacts_image_repositories_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_artifacts_image_repositories_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_artifacts_image_repositories_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/image_repositories/{id}/archive":{"post":{"operationId":"archive_api_v1_image_repository","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/image_repositories/{id}/contract":{"post":{"operationId":"contract_api_v1_image_repository","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Image repository push or pull contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ImageRepositoryContractResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ImageRepositoryContractPayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/image_repositories/{id}/pause":{"post":{"operationId":"pause_api_v1_image_repository","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/image_repositories/{id}/resume":{"post":{"operationId":"resume_api_v1_image_repository","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/image_repositories/{id}/tags":{"get":{"operationId":"tags_api_v1_image_repository","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Image repository tags","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ImageRepositoryTagsResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/package_mirrors":{"get":{"operationId":"api_v1_package_mirrors","tags":["artifacts"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_artifacts_package_mirrors","tags":["artifacts"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/package_mirrors/{id}":{"get":{"operationId":"api_v1_package_mirror","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_artifacts_package_mirrors_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_artifacts_package_mirrors_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_artifacts_package_mirrors_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/package_mirrors/{id}/pause":{"post":{"operationId":"pause_api_v1_package_mirror","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/package_mirrors/{id}/resume":{"post":{"operationId":"resume_api_v1_package_mirror","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/package_mirrors/{id}/sync":{"post":{"operationId":"sync_api_v1_package_mirror","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/retention_policies":{"get":{"operationId":"api_v1_retention_policies","tags":["artifacts"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_artifacts_retention_policies","tags":["artifacts"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/artifacts/retention_policies/{id}":{"get":{"operationId":"api_v1_retention_policy","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_artifacts_retention_policies_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_artifacts_retention_policies_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_artifacts_retention_policies_id_","tags":["artifacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/auth/cli/complete":{"post":{"operationId":"api_v1_auth_cli_complete","tags":["auth"],"parameters":[],"responses":{"200":{"description":"CLI login completed, or waiting for the user to choose an organization","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["status","organization"],"properties":{"status":{"type":"string","enum":["complete","organization_required"]},"organization":{"description":"The organization the CLI saves as its default; null when there is none or a choice is required.","oneOf":[{"$ref":"#/components/schemas/CliLoginOrganization"},{"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/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","timezone","sandbox_region","logo_url","role","personal","member_count","pending_invitation_count","repository_count","activated_products","can_activate_products","github_prs_authored_by_change_author","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"timezone":{"type":"string","description":"Default IANA timezone for organization-local schedules such as nightly dreaming."},"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},"repository_count":{"type":"integer","minimum":0},"source_ui_enabled":{"type":"boolean","description":"Organization-scoped Source workspace rollout; missing values mean disabled."},"source_control_providers":{"type":"array","description":"Connected source control providers for this organization. Missing values mean no providers are known.","uniqueItems":true,"items":{"type":"string","enum":["github","gitlab"]}},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"sandbox_region":{"type":"string","enum":["us-was-1","us-pdx-1","eu-lon-1","eu-fra-1","auto"]},"github_prs_authored_by_change_author":{"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}}}},"active_organization":{"oneOf":[{"type":"object","required":["id","slug","name","timezone","sandbox_region","logo_url","role","personal","member_count","pending_invitation_count","repository_count","activated_products","can_activate_products","github_prs_authored_by_change_author","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"timezone":{"type":"string","description":"Default IANA timezone for organization-local schedules such as nightly dreaming."},"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},"repository_count":{"type":"integer","minimum":0},"source_ui_enabled":{"type":"boolean","description":"Organization-scoped Source workspace rollout; missing values mean disabled."},"source_control_providers":{"type":"array","description":"Connected source control providers for this organization. Missing values mean no providers are known.","uniqueItems":true,"items":{"type":"string","enum":["github","gitlab"]}},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"sandbox_region":{"type":"string","enum":["us-was-1","us-pdx-1","eu-lon-1","eu-fra-1","auto"]},"github_prs_authored_by_change_author":{"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}}},{"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":"The email has no account, needs beta access, or requires email verification","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string"},"code":{"type":"string","enum":["account_not_found","beta_access_required","email_verification_required"]}}}}}},"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","timezone","sandbox_region","logo_url","role","personal","member_count","pending_invitation_count","repository_count","activated_products","can_activate_products","github_prs_authored_by_change_author","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"timezone":{"type":"string","description":"Default IANA timezone for organization-local schedules such as nightly dreaming."},"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},"repository_count":{"type":"integer","minimum":0},"source_ui_enabled":{"type":"boolean","description":"Organization-scoped Source workspace rollout; missing values mean disabled."},"source_control_providers":{"type":"array","description":"Connected source control providers for this organization. Missing values mean no providers are known.","uniqueItems":true,"items":{"type":"string","enum":["github","gitlab"]}},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"sandbox_region":{"type":"string","enum":["us-was-1","us-pdx-1","eu-lon-1","eu-fra-1","auto"]},"github_prs_authored_by_change_author":{"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}}}},"active_organization":{"oneOf":[{"type":"object","required":["id","slug","name","timezone","sandbox_region","logo_url","role","personal","member_count","pending_invitation_count","repository_count","activated_products","can_activate_products","github_prs_authored_by_change_author","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"timezone":{"type":"string","description":"Default IANA timezone for organization-local schedules such as nightly dreaming."},"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},"repository_count":{"type":"integer","minimum":0},"source_ui_enabled":{"type":"boolean","description":"Organization-scoped Source workspace rollout; missing values mean disabled."},"source_control_providers":{"type":"array","description":"Connected source control providers for this organization. Missing values mean no providers are known.","uniqueItems":true,"items":{"type":"string","enum":["github","gitlab"]}},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"sandbox_region":{"type":"string","enum":["us-was-1","us-pdx-1","eu-lon-1","eu-fra-1","auto"]},"github_prs_authored_by_change_author":{"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}}},{"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":"The email has no account, needs beta access, or requires email verification","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string"},"code":{"type":"string","enum":["account_not_found","beta_access_required","email_verification_required"]}}}}}},"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","timezone","sandbox_region","logo_url","role","personal","member_count","pending_invitation_count","repository_count","activated_products","can_activate_products","github_prs_authored_by_change_author","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"timezone":{"type":"string","description":"Default IANA timezone for organization-local schedules such as nightly dreaming."},"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},"repository_count":{"type":"integer","minimum":0},"source_ui_enabled":{"type":"boolean","description":"Organization-scoped Source workspace rollout; missing values mean disabled."},"source_control_providers":{"type":"array","description":"Connected source control providers for this organization. Missing values mean no providers are known.","uniqueItems":true,"items":{"type":"string","enum":["github","gitlab"]}},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"sandbox_region":{"type":"string","enum":["us-was-1","us-pdx-1","eu-lon-1","eu-fra-1","auto"]},"github_prs_authored_by_change_author":{"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}}}},"active_organization":{"oneOf":[{"type":"object","required":["id","slug","name","timezone","sandbox_region","logo_url","role","personal","member_count","pending_invitation_count","repository_count","activated_products","can_activate_products","github_prs_authored_by_change_author","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"timezone":{"type":"string","description":"Default IANA timezone for organization-local schedules such as nightly dreaming."},"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},"repository_count":{"type":"integer","minimum":0},"source_ui_enabled":{"type":"boolean","description":"Organization-scoped Source workspace rollout; missing values mean disabled."},"source_control_providers":{"type":"array","description":"Connected source control providers for this organization. Missing values mean no providers are known.","uniqueItems":true,"items":{"type":"string","enum":["github","gitlab"]}},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"sandbox_region":{"type":"string","enum":["us-was-1","us-pdx-1","eu-lon-1","eu-fra-1","auto"]},"github_prs_authored_by_change_author":{"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}}},{"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","timezone","sandbox_region","logo_url","role","personal","member_count","pending_invitation_count","repository_count","activated_products","can_activate_products","github_prs_authored_by_change_author","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"timezone":{"type":"string","description":"Default IANA timezone for organization-local schedules such as nightly dreaming."},"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},"repository_count":{"type":"integer","minimum":0},"source_ui_enabled":{"type":"boolean","description":"Organization-scoped Source workspace rollout; missing values mean disabled."},"source_control_providers":{"type":"array","description":"Connected source control providers for this organization. Missing values mean no providers are known.","uniqueItems":true,"items":{"type":"string","enum":["github","gitlab"]}},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"sandbox_region":{"type":"string","enum":["us-was-1","us-pdx-1","eu-lon-1","eu-fra-1","auto"]},"github_prs_authored_by_change_author":{"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}}}},"active_organization":{"oneOf":[{"type":"object","required":["id","slug","name","timezone","sandbox_region","logo_url","role","personal","member_count","pending_invitation_count","repository_count","activated_products","can_activate_products","github_prs_authored_by_change_author","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"timezone":{"type":"string","description":"Default IANA timezone for organization-local schedules such as nightly dreaming."},"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},"repository_count":{"type":"integer","minimum":0},"source_ui_enabled":{"type":"boolean","description":"Organization-scoped Source workspace rollout; missing values mean disabled."},"source_control_providers":{"type":"array","description":"Connected source control providers for this organization. Missing values mean no providers are known.","uniqueItems":true,"items":{"type":"string","enum":["github","gitlab"]}},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"sandbox_region":{"type":"string","enum":["us-was-1","us-pdx-1","eu-lon-1","eu-fra-1","auto"]},"github_prs_authored_by_change_author":{"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}}},{"type":"null"}]},"pending_organization_invitation_count":{"type":"integer","minimum":0},"pending_organization_invitation_count_label":{"type":"string"},"api_token":{"type":"string"},"api_base_url":{"type":"string","format":"uri"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["email","password"],"properties":{"email":{"type":"string","format":"email"},"password":{"type":"string","format":"password"},"name":{"type":"string","nullable":true},"invite_code":{"type":"string","description":"Optional waitlist bypass code that admits a new account."}}}}}},"security":[]}},"/api/v1/bazel/action_results/{hash}/{size_bytes}":{"get":{"operationId":"get_api_v1_bazel_action_results_hash_size_bytes_","tags":["bazel"],"parameters":[{"name":"hash","in":"path","required":true,"schema":{"type":"string"}},{"name":"size_bytes","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_bazel_action_results_hash_size_bytes_","tags":["bazel"],"parameters":[{"name":"hash","in":"path","required":true,"schema":{"type":"string"}},{"name":"size_bytes","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/authorize":{"post":{"operationId":"post_api_v1_bazel_authorize","tags":["bazel"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/backends":{"get":{"operationId":"api_v1_backends","tags":["bazel"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_bazel_backends","tags":["bazel"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/backends/{backend_id}/runner_pools":{"get":{"operationId":"api_v1_backend_runner_pools","tags":["bazel"],"parameters":[{"name":"backend_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_bazel_backends_backend_id_runner_pools","tags":["bazel"],"parameters":[{"name":"backend_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/backends/{backend_id}/runner_pools/{id}":{"delete":{"operationId":"api_v1_backend_runner_pool","tags":["bazel"],"parameters":[{"name":"backend_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/backends/{id}":{"get":{"operationId":"api_v1_backend","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_bazel_backends_id_","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_bazel_backends_id_","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_bazel_backends_id_","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/backends/{id}/issue_token":{"post":{"operationId":"issue_token_api_v1_backend","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/backends/{id}/pause":{"post":{"operationId":"pause_api_v1_backend","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/backends/{id}/resume":{"post":{"operationId":"resume_api_v1_backend","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/blobs/{kind}/{hash}/{size_bytes}":{"put":{"operationId":"put_api_v1_bazel_blobs_kind_hash_size_bytes_","tags":["bazel"],"parameters":[{"name":"kind","in":"path","required":true,"schema":{"type":"string"}},{"name":"hash","in":"path","required":true,"schema":{"type":"string"}},{"name":"size_bytes","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"get":{"operationId":"get_api_v1_bazel_blobs_kind_hash_size_bytes_","tags":["bazel"],"parameters":[{"name":"kind","in":"path","required":true,"schema":{"type":"string"}},{"name":"hash","in":"path","required":true,"schema":{"type":"string"}},{"name":"size_bytes","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/executions":{"post":{"operationId":"api_v1_executions","tags":["bazel"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/executions/claim_next":{"post":{"operationId":"api_v1_executions_claim_next","tags":["bazel"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/executions/lookup":{"get":{"operationId":"api_v1_executions_lookup","tags":["bazel"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/executions/{id}":{"get":{"operationId":"get_api_v1_bazel_executions_id_","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/executions/{id}/complete":{"post":{"operationId":"post_api_v1_bazel_executions_id_complete","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/executions/{id}/fail":{"post":{"operationId":"post_api_v1_bazel_executions_id_fail","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/executions/{id}/heartbeat":{"post":{"operationId":"post_api_v1_bazel_executions_id_heartbeat","tags":["bazel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bazel/find_missing_blobs":{"post":{"operationId":"api_v1_find_missing_blobs","tags":["bazel"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/billing/packages":{"get":{"operationId":"api_v1_billing_packages","tags":["billing"],"parameters":[],"responses":{"200":{"description":"Packages","content":{"application/json":{"schema":{"type":"object","required":["packages"],"properties":{"packages":{"type":"array","items":{"$ref":"#/components/schemas/BillingPackage"}}}}}}}},"security":[],"summary":"The public package catalog for the pricing page (no auth)"}},"/api/v1/cdn_spaces/{cdn_space_id}/objects":{"put":{"operationId":"api_v1_cdn_space_objects","tags":["cdn_spaces"],"parameters":[{"name":"cdn_space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"get":{"operationId":"get_api_v1_cdn_spaces_cdn_space_id_objects","tags":["cdn_spaces"],"parameters":[{"name":"cdn_space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/cdn_spaces/{cdn_space_id}/objects/{path}":{"get":{"operationId":"get_api_v1_cdn_spaces_cdn_space_id_objects_path_","tags":["cdn_spaces"],"parameters":[{"name":"cdn_space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"path","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_cdn_spaces_cdn_space_id_objects_path_","tags":["cdn_spaces"],"parameters":[{"name":"cdn_space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"path","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/cdn_spaces/{id}":{"get":{"operationId":"api_v1_cdn_space","tags":["cdn_spaces"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_cdn_spaces_id_","tags":["cdn_spaces"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_cdn_spaces_id_","tags":["cdn_spaces"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_cdn_spaces_id_","tags":["cdn_spaces"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/cdn_spaces/{id}/archive":{"post":{"operationId":"archive_api_v1_cdn_space","tags":["cdn_spaces"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/cdn_spaces/{id}/provision":{"post":{"operationId":"provision_api_v1_cdn_space","tags":["cdn_spaces"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/check/user(/{posthog_path})":{"get|post|options|head":{"operationId":"api_v1_posthog_proxy","tags":["check"],"parameters":[{"name":"posthog_path","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/enroll":{"post":{"operationId":"api_v1_nodes_enroll","tags":["ci"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}":{"get":{"operationId":"api_v1_node","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI runner","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["runner"],"properties":{"runner":{"type":"object","required":["id","organization_id","ci_runner_pool_id","network_peer_id","slug","name","status","kind","os","architecture","version","labels_csv","node_capabilities_csv","node_certificate_fingerprint_sha256","node_certificate_serial","node_certificate_expires_at","bazel_enabled","bazel_properties_json","last_seen_at","online_at","offline_at","cordoned_at","revoked_at","health_state","schedulable","heartbeat_age_seconds","created_at","updated_at","node_certificate_expires_at_label","last_seen_at_label","online_at_label","offline_at_label","cordoned_at_label","revoked_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"network_peer_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"kind":{"type":"string"},"os":{"type":"string","nullable":true},"architecture":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"node_certificate_fingerprint_sha256":{"type":"string","nullable":true},"node_certificate_serial":{"type":"string","nullable":true},"node_certificate_expires_at":{"type":"string","format":"date-time","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"last_seen_at":{"type":"string","format":"date-time","nullable":true},"online_at":{"type":"string","format":"date-time","nullable":true},"offline_at":{"type":"string","format":"date-time","nullable":true},"cordoned_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"health_state":{"type":"string"},"schedulable":{"type":"boolean"},"heartbeat_age_seconds":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"node_certificate_expires_at_label":{"type":"string","nullable":true},"last_seen_at_label":{"type":"string","nullable":true},"online_at_label":{"type":"string","nullable":true},"offline_at_label":{"type":"string","nullable":true},"cordoned_at_label":{"type":"string","nullable":true},"revoked_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/certificate/rotate":{"post":{"operationId":"certificate_rotate_api_v1_node","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/cordon":{"post":{"operationId":"cordon_api_v1_node","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI runner","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["runner"],"properties":{"runner":{"type":"object","required":["id","organization_id","ci_runner_pool_id","network_peer_id","slug","name","status","kind","os","architecture","version","labels_csv","node_capabilities_csv","node_certificate_fingerprint_sha256","node_certificate_serial","node_certificate_expires_at","bazel_enabled","bazel_properties_json","last_seen_at","online_at","offline_at","cordoned_at","revoked_at","health_state","schedulable","heartbeat_age_seconds","created_at","updated_at","node_certificate_expires_at_label","last_seen_at_label","online_at_label","offline_at_label","cordoned_at_label","revoked_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"network_peer_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"kind":{"type":"string"},"os":{"type":"string","nullable":true},"architecture":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"node_certificate_fingerprint_sha256":{"type":"string","nullable":true},"node_certificate_serial":{"type":"string","nullable":true},"node_certificate_expires_at":{"type":"string","format":"date-time","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"last_seen_at":{"type":"string","format":"date-time","nullable":true},"online_at":{"type":"string","format":"date-time","nullable":true},"offline_at":{"type":"string","format":"date-time","nullable":true},"cordoned_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"health_state":{"type":"string"},"schedulable":{"type":"boolean"},"heartbeat_age_seconds":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"node_certificate_expires_at_label":{"type":"string","nullable":true},"last_seen_at_label":{"type":"string","nullable":true},"online_at_label":{"type":"string","nullable":true},"offline_at_label":{"type":"string","nullable":true},"cordoned_at_label":{"type":"string","nullable":true},"revoked_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/drain":{"post":{"operationId":"drain_api_v1_node","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI runner","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["runner"],"properties":{"runner":{"type":"object","required":["id","organization_id","ci_runner_pool_id","network_peer_id","slug","name","status","kind","os","architecture","version","labels_csv","node_capabilities_csv","node_certificate_fingerprint_sha256","node_certificate_serial","node_certificate_expires_at","bazel_enabled","bazel_properties_json","last_seen_at","online_at","offline_at","cordoned_at","revoked_at","health_state","schedulable","heartbeat_age_seconds","created_at","updated_at","node_certificate_expires_at_label","last_seen_at_label","online_at_label","offline_at_label","cordoned_at_label","revoked_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"network_peer_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"kind":{"type":"string"},"os":{"type":"string","nullable":true},"architecture":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"node_certificate_fingerprint_sha256":{"type":"string","nullable":true},"node_certificate_serial":{"type":"string","nullable":true},"node_certificate_expires_at":{"type":"string","format":"date-time","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"last_seen_at":{"type":"string","format":"date-time","nullable":true},"online_at":{"type":"string","format":"date-time","nullable":true},"offline_at":{"type":"string","format":"date-time","nullable":true},"cordoned_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"health_state":{"type":"string"},"schedulable":{"type":"boolean"},"heartbeat_age_seconds":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"node_certificate_expires_at_label":{"type":"string","nullable":true},"last_seen_at_label":{"type":"string","nullable":true},"online_at_label":{"type":"string","nullable":true},"offline_at_label":{"type":"string","nullable":true},"cordoned_at_label":{"type":"string","nullable":true},"revoked_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/heartbeat":{"post":{"operationId":"heartbeat_api_v1_node","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases":{"get":{"operationId":"leases_api_v1_node","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/artifacts":{"post":{"operationId":"post_api_v1_ci_nodes_id_leases_lease_id_artifacts","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/cache/restore":{"post":{"operationId":"post_api_v1_ci_nodes_id_leases_lease_id_cache_restore","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/cache/save":{"post":{"operationId":"post_api_v1_ci_nodes_id_leases_lease_id_cache_save","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/claim":{"post":{"operationId":"post_api_v1_ci_nodes_id_leases_lease_id_claim","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/heartbeat":{"post":{"operationId":"post_api_v1_ci_nodes_id_leases_lease_id_heartbeat","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/job":{"get":{"operationId":"get_api_v1_ci_nodes_id_leases_lease_id_job","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/log_chunks":{"post":{"operationId":"post_api_v1_ci_nodes_id_leases_lease_id_log_chunks","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/reconciliations/{reconciliation_id}/output":{"post":{"operationId":"post_api_v1_ci_nodes_id_leases_lease_id_reconciliations_reconciliation_id_output","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"reconciliation_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/release":{"post":{"operationId":"post_api_v1_ci_nodes_id_leases_lease_id_release","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/steps/{ci_step_id}":{"patch":{"operationId":"patch_api_v1_ci_nodes_id_leases_lease_id_steps_ci_step_id_","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"ci_step_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/workspace_archive":{"get":{"operationId":"get_api_v1_ci_nodes_id_leases_lease_id_workspace_archive","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/workspaces/{ci_workspace_id}":{"patch":{"operationId":"patch_api_v1_ci_nodes_id_leases_lease_id_workspaces_ci_workspace_id_","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lease_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"ci_workspace_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/nodes/{id}/uncordon":{"post":{"operationId":"uncordon_api_v1_node","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI runner","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["runner"],"properties":{"runner":{"type":"object","required":["id","organization_id","ci_runner_pool_id","network_peer_id","slug","name","status","kind","os","architecture","version","labels_csv","node_capabilities_csv","node_certificate_fingerprint_sha256","node_certificate_serial","node_certificate_expires_at","bazel_enabled","bazel_properties_json","last_seen_at","online_at","offline_at","cordoned_at","revoked_at","health_state","schedulable","heartbeat_age_seconds","created_at","updated_at","node_certificate_expires_at_label","last_seen_at_label","online_at_label","offline_at_label","cordoned_at_label","revoked_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"network_peer_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"kind":{"type":"string"},"os":{"type":"string","nullable":true},"architecture":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"node_certificate_fingerprint_sha256":{"type":"string","nullable":true},"node_certificate_serial":{"type":"string","nullable":true},"node_certificate_expires_at":{"type":"string","format":"date-time","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"last_seen_at":{"type":"string","format":"date-time","nullable":true},"online_at":{"type":"string","format":"date-time","nullable":true},"offline_at":{"type":"string","format":"date-time","nullable":true},"cordoned_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"health_state":{"type":"string"},"schedulable":{"type":"boolean"},"heartbeat_age_seconds":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"node_certificate_expires_at_label":{"type":"string","nullable":true},"last_seen_at_label":{"type":"string","nullable":true},"online_at_label":{"type":"string","nullable":true},"offline_at_label":{"type":"string","nullable":true},"cordoned_at_label":{"type":"string","nullable":true},"revoked_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines":{"get":{"operationId":"api_v1_pipelines","tags":["ci"],"parameters":[],"responses":{"200":{"description":"CI pipelines","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["pipelines"],"properties":{"pipelines":{"type":"array","items":{"type":"object","required":["id","organization_id","repository_id","hosted_app_id","ci_runner_pool_id","required_capabilities_csv","slug","name","description","source_kind","status","default_branch","workflow_path","trigger_on_push","trigger_on_pull_request","trigger_on_schedule","concurrency_key","created_at","updated_at","status_label","status_state","status_tone"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string","nullable":true},"hosted_app_id":{"type":"string","nullable":true},"ci_runner_pool_id":{"type":"string","nullable":true},"required_capabilities_csv":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"source_kind":{"type":"string"},"status":{"type":"string"},"default_branch":{"type":"string","nullable":true},"workflow_path":{"type":"string","nullable":true},"trigger_on_push":{"type":"boolean"},"trigger_on_pull_request":{"type":"boolean"},"trigger_on_schedule":{"type":"boolean"},"concurrency_key":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_pipelines","tags":["ci"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{id}":{"get":{"operationId":"api_v1_pipeline","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI pipeline catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["pipeline"],"properties":{"pipeline":{"allOf":[{"type":"object","required":["id","organization_id","repository_id","hosted_app_id","ci_runner_pool_id","required_capabilities_csv","slug","name","description","source_kind","status","default_branch","workflow_path","trigger_on_push","trigger_on_pull_request","trigger_on_schedule","concurrency_key","created_at","updated_at","status_label","status_state","status_tone"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string","nullable":true},"hosted_app_id":{"type":"string","nullable":true},"ci_runner_pool_id":{"type":"string","nullable":true},"required_capabilities_csv":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"source_kind":{"type":"string"},"status":{"type":"string"},"default_branch":{"type":"string","nullable":true},"workflow_path":{"type":"string","nullable":true},"trigger_on_push":{"type":"boolean"},"trigger_on_pull_request":{"type":"boolean"},"trigger_on_schedule":{"type":"boolean"},"concurrency_key":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]}}},{"type":"object","required":["runner_pool","runs"],"properties":{"runner_pool":{"type":"object","nullable":true,"additionalProperties":true},"runs":{"type":"array","items":{"type":"object","required":["id","organization_id","repository_id","hosted_app_id","ci_pipeline_id","ci_runner_pool_id","creator_user_id","required_capabilities_csv","number","display_id","slug","status","trigger_kind","ref_name","commit_sha","source_url","message","concurrency_key","retry_number","queued_at","started_at","finished_at","canceled_at","parameters_json","created_at","updated_at","status_label","status_state","status_tone","active","failed","retryable"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string","nullable":true},"hosted_app_id":{"type":"string","nullable":true},"ci_pipeline_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"creator_user_id":{"type":"string","nullable":true},"required_capabilities_csv":{"type":"string","nullable":true},"number":{"type":"integer"},"display_id":{"type":"integer"},"slug":{"type":"string"},"status":{"type":"string"},"trigger_kind":{"type":"string"},"ref_name":{"type":"string","nullable":true},"commit_sha":{"type":"string","nullable":true},"source_url":{"type":"string","nullable":true},"message":{"type":"string","nullable":true},"concurrency_key":{"type":"string","nullable":true},"retry_number":{"type":"integer"},"queued_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"canceled_at":{"type":"string","format":"date-time","nullable":true},"parameters_json":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"},"retryable":{"type":"boolean"}}}}}}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs":{"get":{"operationId":"api_v1_pipeline_runs","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_pipelines_pipeline_id_runs","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{id}":{"get":{"operationId":"api_v1_pipeline_run","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI pipeline run catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["pipeline_run"],"properties":{"pipeline_run":{"allOf":[{"type":"object","required":["id","organization_id","repository_id","hosted_app_id","ci_pipeline_id","ci_runner_pool_id","creator_user_id","required_capabilities_csv","number","display_id","slug","status","trigger_kind","ref_name","commit_sha","source_url","message","concurrency_key","retry_number","queued_at","started_at","finished_at","canceled_at","parameters_json","created_at","updated_at","status_label","status_state","status_tone","active","failed","retryable"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string","nullable":true},"hosted_app_id":{"type":"string","nullable":true},"ci_pipeline_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"creator_user_id":{"type":"string","nullable":true},"required_capabilities_csv":{"type":"string","nullable":true},"number":{"type":"integer"},"display_id":{"type":"integer"},"slug":{"type":"string"},"status":{"type":"string"},"trigger_kind":{"type":"string"},"ref_name":{"type":"string","nullable":true},"commit_sha":{"type":"string","nullable":true},"source_url":{"type":"string","nullable":true},"message":{"type":"string","nullable":true},"concurrency_key":{"type":"string","nullable":true},"retry_number":{"type":"integer"},"queued_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"canceled_at":{"type":"string","format":"date-time","nullable":true},"parameters_json":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"},"retryable":{"type":"boolean"}}},{"type":"object","required":["jobs"],"properties":{"jobs":{"type":"array","items":{"type":"object","required":["id","organization_id","ci_pipeline_run_id","ci_runner_id","number","display_id","slug","name","kind","status","execution_order","runner_label_selector","timeout_seconds","allow_failure","queued_at","started_at","finished_at","exit_code","retry_number","environment_csv","dependencies_csv","created_at","updated_at","status_label","status_state","status_tone","active","failed"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_pipeline_run_id":{"type":"string"},"ci_runner_id":{"type":"string","nullable":true},"number":{"type":"integer"},"display_id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"execution_order":{"type":"integer"},"runner_label_selector":{"type":"string","nullable":true},"timeout_seconds":{"type":"integer","nullable":true},"allow_failure":{"type":"boolean"},"queued_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"exit_code":{"type":"integer","nullable":true},"retry_number":{"type":"integer"},"environment_csv":{"type":"string","nullable":true},"dependencies_csv":{"type":"string","nullable":true},"cache_archive_observations":{"type":"object","nullable":true,"description":"Bounded server response history; it does not confirm runner extraction or test-result reuse.","required":["events","omitted_count"],"properties":{"omitted_count":{"type":"integer","minimum":0},"events":{"type":"array","maxItems":32,"items":{"type":"object","required":["outcome","label","observed_at","response_bytes","elapsed_ms","attempt"],"properties":{"outcome":{"type":"string","enum":["miss","archive_missing","exact_response","prefix_response","published_exact_response","published_prefix_response","error"]},"label":{"type":"string"},"observed_at":{"type":"string","format":"date-time"},"response_bytes":{"type":"integer","minimum":0},"elapsed_ms":{"type":"number","minimum":0},"attempt":{"type":"integer","minimum":1},"native_publication_id":{"type":"string"},"cache_entry_id":{"type":"string"},"source_run_id":{"type":"string"},"source_commit_id":{"type":"string","nullable":true},"source_url":{"type":"string"}}}}}},"reuse":{"type":"object","nullable":true,"required":["source_job_id","source_run_id","source_url"],"properties":{"source_job_id":{"type":"string"},"source_run_id":{"type":"string"},"source_url":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"}}}}}}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{id}/retry":{"post":{"operationId":"retry_api_v1_pipeline_run","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Existing CI retry for this request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["pipeline_run"],"properties":{"pipeline_run":{"$ref":"#/components/schemas/CiPipelineRun"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"CI retry created","content":{"application/json":{"schema":{"type":"object","required":["pipeline_run"],"properties":{"pipeline_run":{"$ref":"#/components/schemas/CiPipelineRun"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string","maxLength":100}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{run_id}/artifacts":{"get":{"operationId":"api_v1_pipeline_run_artifacts","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_pipelines_pipeline_id_runs_run_id_artifacts","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{run_id}/jobs":{"get":{"operationId":"api_v1_pipeline_run_jobs","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_pipelines_pipeline_id_runs_run_id_jobs","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{run_id}/jobs/{id}":{"get":{"operationId":"api_v1_pipeline_run_job","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI job catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["job"],"properties":{"job":{"allOf":[{"type":"object","required":["id","organization_id","ci_pipeline_run_id","ci_runner_id","number","display_id","slug","name","kind","status","execution_order","runner_label_selector","timeout_seconds","allow_failure","queued_at","started_at","finished_at","exit_code","retry_number","environment_csv","dependencies_csv","created_at","updated_at","status_label","status_state","status_tone","active","failed"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_pipeline_run_id":{"type":"string"},"ci_runner_id":{"type":"string","nullable":true},"number":{"type":"integer"},"display_id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"execution_order":{"type":"integer"},"runner_label_selector":{"type":"string","nullable":true},"timeout_seconds":{"type":"integer","nullable":true},"allow_failure":{"type":"boolean"},"queued_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"exit_code":{"type":"integer","nullable":true},"retry_number":{"type":"integer"},"environment_csv":{"type":"string","nullable":true},"dependencies_csv":{"type":"string","nullable":true},"cache_archive_observations":{"type":"object","nullable":true,"description":"Bounded server response history; it does not confirm runner extraction or test-result reuse.","required":["events","omitted_count"],"properties":{"omitted_count":{"type":"integer","minimum":0},"events":{"type":"array","maxItems":32,"items":{"type":"object","required":["outcome","label","observed_at","response_bytes","elapsed_ms","attempt"],"properties":{"outcome":{"type":"string","enum":["miss","archive_missing","exact_response","prefix_response","published_exact_response","published_prefix_response","error"]},"label":{"type":"string"},"observed_at":{"type":"string","format":"date-time"},"response_bytes":{"type":"integer","minimum":0},"elapsed_ms":{"type":"number","minimum":0},"attempt":{"type":"integer","minimum":1},"native_publication_id":{"type":"string"},"cache_entry_id":{"type":"string"},"source_run_id":{"type":"string"},"source_commit_id":{"type":"string","nullable":true},"source_url":{"type":"string"}}}}}},"reuse":{"type":"object","nullable":true,"required":["source_job_id","source_run_id","source_url"],"properties":{"source_job_id":{"type":"string"},"source_run_id":{"type":"string"},"source_url":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"}}},{"type":"object","required":["steps","log_chunks"],"properties":{"reconciliation_id":{"type":"string","nullable":true},"execution_profile":{"type":"string","enum":["automation-offline-v1","reconciliation-offline-v1"],"nullable":true},"steps":{"type":"array","items":{"type":"object","required":["id","organization_id","ci_job_id","slug","name","command","shell","working_directory","status","execution_order","retry_number","exit_code","started_at","finished_at","created_at","updated_at","status_label","status_state","status_tone","active","failed","secret_refs"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_job_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"command":{"type":"string"},"shell":{"type":"string","nullable":true},"working_directory":{"type":"string","nullable":true},"status":{"type":"string"},"execution_order":{"type":"integer"},"retry_number":{"type":"integer"},"exit_code":{"type":"integer","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"observed_started_at":{"type":"string","format":"date-time","nullable":true,"readOnly":true,"description":"When the API first accepted a running update. Independent of the runner clock; absent or null for older and unobserved steps."},"observed_finished_at":{"type":"string","format":"date-time","nullable":true,"readOnly":true,"description":"When the API first accepted a terminal update. Includes transport effects; not a runner-local command duration."},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"},"secret_refs":{"type":"object","additionalProperties":{"type":"string"}},"cache_request":{"type":"object","nullable":true,"required":["key","restore_keys","paths","output_id"],"properties":{"key":{"type":"string"},"restore_keys":{"type":"array","items":{"type":"string"}},"paths":{"type":"array","items":{"type":"string"}},"output_id":{"type":"string"}}}}}},"log_chunks":{"type":"array","maxItems":25,"items":{"type":"object","required":["id","organization_id","ci_pipeline_run_id","ci_job_id","ci_step_id","sequence_number","stream","content_format","content","byte_size","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_pipeline_run_id":{"type":"string","nullable":true},"ci_job_id":{"type":"string","nullable":true},"ci_step_id":{"type":"string","nullable":true},"sequence_number":{"type":"integer"},"stream":{"type":"string"},"content_format":{"type":"string"},"content":{"type":"string"},"byte_size":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{run_id}/jobs/{job_id}/log_chunks":{"get":{"operationId":"api_v1_pipeline_run_job_log_chunks","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"after_sequence","in":"query","required":false,"description":"Return only chunks with a sequence number greater than this.","schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"CI job log chunks","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["log_chunks","job_status","job","steps"],"properties":{"log_chunks":{"type":"array","items":{"type":"object","required":["id","organization_id","ci_pipeline_run_id","ci_job_id","ci_step_id","sequence_number","stream","content_format","content","byte_size","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_pipeline_run_id":{"type":"string","nullable":true},"ci_job_id":{"type":"string","nullable":true},"ci_step_id":{"type":"string","nullable":true},"sequence_number":{"type":"integer"},"stream":{"type":"string"},"content_format":{"type":"string"},"content":{"type":"string"},"byte_size":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}},"job_status":{"type":"string"},"job":{"type":"object","required":["id","organization_id","ci_pipeline_run_id","ci_runner_id","number","display_id","slug","name","kind","status","execution_order","runner_label_selector","timeout_seconds","allow_failure","queued_at","started_at","finished_at","exit_code","retry_number","environment_csv","dependencies_csv","created_at","updated_at","status_label","status_state","status_tone","active","failed"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_pipeline_run_id":{"type":"string"},"ci_runner_id":{"type":"string","nullable":true},"number":{"type":"integer"},"display_id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"execution_order":{"type":"integer"},"runner_label_selector":{"type":"string","nullable":true},"timeout_seconds":{"type":"integer","nullable":true},"allow_failure":{"type":"boolean"},"queued_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"exit_code":{"type":"integer","nullable":true},"retry_number":{"type":"integer"},"environment_csv":{"type":"string","nullable":true},"dependencies_csv":{"type":"string","nullable":true},"cache_archive_observations":{"type":"object","nullable":true,"description":"Bounded server response history; it does not confirm runner extraction or test-result reuse.","required":["events","omitted_count"],"properties":{"omitted_count":{"type":"integer","minimum":0},"events":{"type":"array","maxItems":32,"items":{"type":"object","required":["outcome","label","observed_at","response_bytes","elapsed_ms","attempt"],"properties":{"outcome":{"type":"string","enum":["miss","archive_missing","exact_response","prefix_response","published_exact_response","published_prefix_response","error"]},"label":{"type":"string"},"observed_at":{"type":"string","format":"date-time"},"response_bytes":{"type":"integer","minimum":0},"elapsed_ms":{"type":"number","minimum":0},"attempt":{"type":"integer","minimum":1},"native_publication_id":{"type":"string"},"cache_entry_id":{"type":"string"},"source_run_id":{"type":"string"},"source_commit_id":{"type":"string","nullable":true},"source_url":{"type":"string"}}}}}},"reuse":{"type":"object","nullable":true,"required":["source_job_id","source_run_id","source_url"],"properties":{"source_job_id":{"type":"string"},"source_run_id":{"type":"string"},"source_url":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"}}},"steps":{"type":"array","items":{"type":"object","required":["id","organization_id","ci_job_id","slug","name","command","shell","working_directory","status","execution_order","retry_number","exit_code","started_at","finished_at","created_at","updated_at","status_label","status_state","status_tone","active","failed","secret_refs"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_job_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"command":{"type":"string"},"shell":{"type":"string","nullable":true},"working_directory":{"type":"string","nullable":true},"status":{"type":"string"},"execution_order":{"type":"integer"},"retry_number":{"type":"integer"},"exit_code":{"type":"integer","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"observed_started_at":{"type":"string","format":"date-time","nullable":true,"readOnly":true,"description":"When the API first accepted a running update. Independent of the runner clock; absent or null for older and unobserved steps."},"observed_finished_at":{"type":"string","format":"date-time","nullable":true,"readOnly":true,"description":"When the API first accepted a terminal update. Includes transport effects; not a runner-local command duration."},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"},"secret_refs":{"type":"object","additionalProperties":{"type":"string"}},"cache_request":{"type":"object","nullable":true,"required":["key","restore_keys","paths","output_id"],"properties":{"key":{"type":"string"},"restore_keys":{"type":"array","items":{"type":"string"}},"paths":{"type":"array","items":{"type":"string"}},"output_id":{"type":"string"}}}}}},"pagination":{"type":"object","additionalProperties":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_pipelines_pipeline_id_runs_run_id_jobs_job_id_log_chunks","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{run_id}/jobs/{job_id}/steps":{"get":{"operationId":"api_v1_pipeline_run_job_steps","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_pipelines_pipeline_id_runs_run_id_jobs_job_id_steps","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{run_id}/jobs/{job_id}/steps/{id}":{"patch":{"operationId":"api_v1_pipeline_run_job_step","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_ci_pipelines_pipeline_id_runs_run_id_jobs_job_id_steps_id_","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{run_id}/jobs/{job_id}/workspaces":{"get":{"operationId":"api_v1_pipeline_run_job_workspaces","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_pipelines_pipeline_id_runs_run_id_jobs_job_id_workspaces","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{run_id}/jobs/{job_id}/workspaces/{id}":{"patch":{"operationId":"api_v1_pipeline_run_job_workspace","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_ci_pipelines_pipeline_id_runs_run_id_jobs_job_id_workspaces_id_","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/pipelines/{pipeline_id}/runs/{run_id}/page":{"get":{"operationId":"api_v1_pipeline_run_page","tags":["ci"],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI action run page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["jobs","error"],"properties":{"jobs":{"type":"array","items":{"$ref":"#/components/schemas/CiJobCatalog"}},"error":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools":{"get":{"operationId":"api_v1_runner_pools","tags":["ci"],"parameters":[{"name":"organization_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI runner pools","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["runner_pools"],"properties":{"runner_pools":{"type":"array","items":{"type":"object","required":["id","organization_id","network_space_id","slug","name","status","runner_kind","isolation_mode","description","max_concurrency","labels_csv","node_capabilities_csv","elastic_provider_kind","elastic_config_json","bazel_enabled","bazel_properties_json","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"network_space_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"runner_kind":{"type":"string"},"isolation_mode":{"type":"string"},"description":{"type":"string","nullable":true},"max_concurrency":{"type":"integer"},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"elastic_provider_kind":{"type":"string","nullable":true},"elastic_config_json":{"type":"string","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_runner_pools","tags":["ci"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools/{id}":{"get":{"operationId":"api_v1_runner_pool","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI runner pool catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["runner_pool"],"properties":{"runner_pool":{"allOf":[{"type":"object","required":["id","organization_id","network_space_id","slug","name","status","runner_kind","isolation_mode","description","max_concurrency","labels_csv","node_capabilities_csv","elastic_provider_kind","elastic_config_json","bazel_enabled","bazel_properties_json","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"network_space_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"runner_kind":{"type":"string"},"isolation_mode":{"type":"string"},"description":{"type":"string","nullable":true},"max_concurrency":{"type":"integer"},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"elastic_provider_kind":{"type":"string","nullable":true},"elastic_config_json":{"type":"string","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},{"type":"object","required":["runners","runner_count_label","modal_capacity","modal_runner_invocations"],"properties":{"runners":{"type":"array","items":{"type":"object","required":["id","organization_id","ci_runner_pool_id","network_peer_id","slug","name","status","kind","os","architecture","version","labels_csv","node_capabilities_csv","node_certificate_fingerprint_sha256","node_certificate_serial","node_certificate_expires_at","bazel_enabled","bazel_properties_json","last_seen_at","online_at","offline_at","cordoned_at","revoked_at","health_state","schedulable","heartbeat_age_seconds","created_at","updated_at","node_certificate_expires_at_label","last_seen_at_label","online_at_label","offline_at_label","cordoned_at_label","revoked_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"network_peer_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"kind":{"type":"string"},"os":{"type":"string","nullable":true},"architecture":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"node_certificate_fingerprint_sha256":{"type":"string","nullable":true},"node_certificate_serial":{"type":"string","nullable":true},"node_certificate_expires_at":{"type":"string","format":"date-time","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"last_seen_at":{"type":"string","format":"date-time","nullable":true},"online_at":{"type":"string","format":"date-time","nullable":true},"offline_at":{"type":"string","format":"date-time","nullable":true},"cordoned_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"health_state":{"type":"string"},"schedulable":{"type":"boolean"},"heartbeat_age_seconds":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"node_certificate_expires_at_label":{"type":"string","nullable":true},"last_seen_at_label":{"type":"string","nullable":true},"online_at_label":{"type":"string","nullable":true},"offline_at_label":{"type":"string","nullable":true},"cordoned_at_label":{"type":"string","nullable":true},"revoked_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}},"runner_count_label":{"type":"string"},"modal_capacity":{"type":"object","required":["queued_jobs","active_or_pending_leases","inflight_modal_invocations","failed_modal_invocations","deficit"],"properties":{"queued_jobs":{"type":"integer"},"active_or_pending_leases":{"type":"integer"},"inflight_modal_invocations":{"type":"integer"},"failed_modal_invocations":{"type":"integer"},"deficit":{"type":"integer"}}},"modal_runner_invocations":{"type":"array","maxItems":50,"items":{"type":"object","required":["id","organization_id","ci_runner_pool_id","ci_runner_id","ci_runner_lease_id","ci_pipeline_run_id","ci_job_id","status","modal_app_name","modal_function_name","modal_environment_name","modal_call_id","modal_sandbox_id","runtime_kind","image_version","failure_kind","runner_slug","resource_class","cpu_millicores","memory_mb","ephemeral_disk_mb","retry_count","last_error","spawned_at","claimed_at","finished_at","created_at","updated_at","spawned_at_label","claimed_at_label","finished_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"ci_runner_id":{"type":"string","nullable":true},"ci_runner_lease_id":{"type":"string","nullable":true},"ci_pipeline_run_id":{"type":"string","nullable":true},"ci_job_id":{"type":"string","nullable":true},"status":{"type":"string"},"modal_app_name":{"type":"string"},"modal_function_name":{"type":"string"},"modal_environment_name":{"type":"string","nullable":true},"modal_call_id":{"type":"string","nullable":true},"modal_sandbox_id":{"type":"string","nullable":true},"runtime_kind":{"type":"string","enum":["modal_function","modal_vm_sandbox"]},"image_version":{"type":"string"},"failure_kind":{"type":"string","enum":["provider","bootstrap","job","transport"],"nullable":true},"runner_slug":{"type":"string"},"resource_class":{"type":"string"},"cpu_millicores":{"type":"integer"},"memory_mb":{"type":"integer"},"ephemeral_disk_mb":{"type":"integer"},"retry_count":{"type":"integer"},"last_error":{"type":"string","nullable":true},"spawned_at":{"type":"string","format":"date-time","nullable":true},"claimed_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"spawned_at_label":{"type":"string","nullable":true},"claimed_at_label":{"type":"string","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_ci_runner_pools_id_","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI runner pool catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["runner_pool"],"properties":{"runner_pool":{"allOf":[{"type":"object","required":["id","organization_id","network_space_id","slug","name","status","runner_kind","isolation_mode","description","max_concurrency","labels_csv","node_capabilities_csv","elastic_provider_kind","elastic_config_json","bazel_enabled","bazel_properties_json","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"network_space_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"runner_kind":{"type":"string"},"isolation_mode":{"type":"string"},"description":{"type":"string","nullable":true},"max_concurrency":{"type":"integer"},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"elastic_provider_kind":{"type":"string","nullable":true},"elastic_config_json":{"type":"string","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},{"type":"object","required":["runners","runner_count_label","modal_capacity","modal_runner_invocations"],"properties":{"runners":{"type":"array","items":{"type":"object","required":["id","organization_id","ci_runner_pool_id","network_peer_id","slug","name","status","kind","os","architecture","version","labels_csv","node_capabilities_csv","node_certificate_fingerprint_sha256","node_certificate_serial","node_certificate_expires_at","bazel_enabled","bazel_properties_json","last_seen_at","online_at","offline_at","cordoned_at","revoked_at","health_state","schedulable","heartbeat_age_seconds","created_at","updated_at","node_certificate_expires_at_label","last_seen_at_label","online_at_label","offline_at_label","cordoned_at_label","revoked_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"network_peer_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"kind":{"type":"string"},"os":{"type":"string","nullable":true},"architecture":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"node_certificate_fingerprint_sha256":{"type":"string","nullable":true},"node_certificate_serial":{"type":"string","nullable":true},"node_certificate_expires_at":{"type":"string","format":"date-time","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"last_seen_at":{"type":"string","format":"date-time","nullable":true},"online_at":{"type":"string","format":"date-time","nullable":true},"offline_at":{"type":"string","format":"date-time","nullable":true},"cordoned_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"health_state":{"type":"string"},"schedulable":{"type":"boolean"},"heartbeat_age_seconds":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"node_certificate_expires_at_label":{"type":"string","nullable":true},"last_seen_at_label":{"type":"string","nullable":true},"online_at_label":{"type":"string","nullable":true},"offline_at_label":{"type":"string","nullable":true},"cordoned_at_label":{"type":"string","nullable":true},"revoked_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}},"runner_count_label":{"type":"string"},"modal_capacity":{"type":"object","required":["queued_jobs","active_or_pending_leases","inflight_modal_invocations","failed_modal_invocations","deficit"],"properties":{"queued_jobs":{"type":"integer"},"active_or_pending_leases":{"type":"integer"},"inflight_modal_invocations":{"type":"integer"},"failed_modal_invocations":{"type":"integer"},"deficit":{"type":"integer"}}},"modal_runner_invocations":{"type":"array","maxItems":50,"items":{"type":"object","required":["id","organization_id","ci_runner_pool_id","ci_runner_id","ci_runner_lease_id","ci_pipeline_run_id","ci_job_id","status","modal_app_name","modal_function_name","modal_environment_name","modal_call_id","modal_sandbox_id","runtime_kind","image_version","failure_kind","runner_slug","resource_class","cpu_millicores","memory_mb","ephemeral_disk_mb","retry_count","last_error","spawned_at","claimed_at","finished_at","created_at","updated_at","spawned_at_label","claimed_at_label","finished_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"ci_runner_id":{"type":"string","nullable":true},"ci_runner_lease_id":{"type":"string","nullable":true},"ci_pipeline_run_id":{"type":"string","nullable":true},"ci_job_id":{"type":"string","nullable":true},"status":{"type":"string"},"modal_app_name":{"type":"string"},"modal_function_name":{"type":"string"},"modal_environment_name":{"type":"string","nullable":true},"modal_call_id":{"type":"string","nullable":true},"modal_sandbox_id":{"type":"string","nullable":true},"runtime_kind":{"type":"string","enum":["modal_function","modal_vm_sandbox"]},"image_version":{"type":"string"},"failure_kind":{"type":"string","enum":["provider","bootstrap","job","transport"],"nullable":true},"runner_slug":{"type":"string"},"resource_class":{"type":"string"},"cpu_millicores":{"type":"integer"},"memory_mb":{"type":"integer"},"ephemeral_disk_mb":{"type":"integer"},"retry_count":{"type":"integer"},"last_error":{"type":"string","nullable":true},"spawned_at":{"type":"string","format":"date-time","nullable":true},"claimed_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"spawned_at_label":{"type":"string","nullable":true},"claimed_at_label":{"type":"string","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"status":{"type":"string"},"runner_kind":{"type":"string"},"isolation_mode":{"type":"string"},"description":{"type":"string","nullable":true},"max_concurrency":{"type":"integer"},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"elastic_provider_kind":{"type":"string","nullable":true},"elastic_config_json":{"type":"string","nullable":true}}}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_ci_runner_pools_id_","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools/{id}/promote_reconciliation_runtime":{"post":{"operationId":"promote_reconciliation_runtime_api_v1_runner_pool","tags":["ci"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Verified runtime promoted for future reconciliation generations","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["runner_pool_id","runtime"],"properties":{"runner_pool_id":{"type":"string"},"runtime":{"type":"object","required":["image_id","image_version","runtime_kind","retained_reconciliation_images"],"properties":{"image_id":{"type":"string"},"image_version":{"type":"string"},"runtime_kind":{"type":"string"},"retained_reconciliation_images":{"type":"boolean"}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Platform administrator required"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"409":{"description":"Runtime verification or expected configuration no longer matches"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_image_version","image_version"],"properties":{"expected_image_version":{"type":"string"},"image_version":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Promote a verified reconciliation image for a system runner pool","description":"Platform administrators only. Verifies deployed retained-image support and rejects concurrent pool configuration changes."}},"/api/v1/ci/runner_pools/{runner_pool_id}/node_enrollment_tokens":{"get":{"operationId":"api_v1_runner_pool_node_enrollment_tokens","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI node enrollment tokens","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["node_enrollment_tokens"],"properties":{"node_enrollment_tokens":{"type":"array","items":{"type":"object","required":["id","organization_id","ci_runner_pool_id","creator_user_id","name","description","status","kind","capabilities_csv","token_hint","usage_count","expires_at","last_used_at","revoked_at","raw_token","created_at","updated_at","expires_at_label","last_used_at_label","created_at_label","updated_at_label","usage_count_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"name":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string"},"kind":{"type":"string"},"capabilities_csv":{"type":"string","nullable":true},"token_hint":{"type":"string"},"usage_count":{"type":"integer"},"expires_at":{"type":"string","format":"date-time","nullable":true},"last_used_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"raw_token":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"expires_at_label":{"type":"string","nullable":true},"last_used_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true},"usage_count_label":{"type":"string"}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_runner_pools_runner_pool_id_node_enrollment_tokens","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI node enrollment token","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["node_enrollment_token"],"properties":{"node_enrollment_token":{"type":"object","required":["id","organization_id","ci_runner_pool_id","creator_user_id","name","description","status","kind","capabilities_csv","token_hint","usage_count","expires_at","last_used_at","revoked_at","raw_token","created_at","updated_at","expires_at_label","last_used_at_label","created_at_label","updated_at_label","usage_count_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"name":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string"},"kind":{"type":"string"},"capabilities_csv":{"type":"string","nullable":true},"token_hint":{"type":"string"},"usage_count":{"type":"integer"},"expires_at":{"type":"string","format":"date-time","nullable":true},"last_used_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"raw_token":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"expires_at_label":{"type":"string","nullable":true},"last_used_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true},"usage_count_label":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"CI node enrollment token","content":{"application/json":{"schema":{"type":"object","required":["node_enrollment_token"],"properties":{"node_enrollment_token":{"type":"object","required":["id","organization_id","ci_runner_pool_id","creator_user_id","name","description","status","kind","capabilities_csv","token_hint","usage_count","expires_at","last_used_at","revoked_at","raw_token","created_at","updated_at","expires_at_label","last_used_at_label","created_at_label","updated_at_label","usage_count_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"name":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string"},"kind":{"type":"string"},"capabilities_csv":{"type":"string","nullable":true},"token_hint":{"type":"string"},"usage_count":{"type":"integer"},"expires_at":{"type":"string","format":"date-time","nullable":true},"last_used_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"raw_token":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"expires_at_label":{"type":"string","nullable":true},"last_used_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true},"usage_count_label":{"type":"string"}}}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["name"],"properties":{"name":{"type":"string"},"capabilities_csv":{"type":"string"},"expires_at":{"type":"string","format":"date-time","nullable":true},"kind":{"type":"string"},"description":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools/{runner_pool_id}/node_enrollment_tokens/{id}/revoke":{"post":{"operationId":"revoke_api_v1_runner_pool_node_enrollment_token","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI node enrollment token","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["node_enrollment_token"],"properties":{"node_enrollment_token":{"type":"object","required":["id","organization_id","ci_runner_pool_id","creator_user_id","name","description","status","kind","capabilities_csv","token_hint","usage_count","expires_at","last_used_at","revoked_at","raw_token","created_at","updated_at","expires_at_label","last_used_at_label","created_at_label","updated_at_label","usage_count_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"name":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string"},"kind":{"type":"string"},"capabilities_csv":{"type":"string","nullable":true},"token_hint":{"type":"string"},"usage_count":{"type":"integer"},"expires_at":{"type":"string","format":"date-time","nullable":true},"last_used_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"raw_token":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"expires_at_label":{"type":"string","nullable":true},"last_used_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true},"usage_count_label":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools/{runner_pool_id}/runners":{"get":{"operationId":"api_v1_runner_pool_runners","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_runner_pools_runner_pool_id_runners","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools/{runner_pool_id}/runners/{id}":{"get":{"operationId":"api_v1_runner_pool_runner","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_ci_runner_pools_runner_pool_id_runners_id_","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_ci_runner_pools_runner_pool_id_runners_id_","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools/{runner_pool_id}/runners/{id}/heartbeat":{"post":{"operationId":"heartbeat_api_v1_runner_pool_runner","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools/{runner_pool_id}/runners/{runner_id}/leases":{"get":{"operationId":"api_v1_runner_pool_runner_leases","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"runner_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_ci_runner_pools_runner_pool_id_runners_runner_id_leases","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"runner_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools/{runner_pool_id}/runners/{runner_id}/leases/{id}/claim":{"post":{"operationId":"claim_api_v1_runner_pool_runner_lease","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"runner_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools/{runner_pool_id}/runners/{runner_id}/leases/{id}/heartbeat":{"post":{"operationId":"heartbeat_api_v1_runner_pool_runner_lease","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"runner_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/ci/runner_pools/{runner_pool_id}/runners/{runner_id}/leases/{id}/release":{"post":{"operationId":"release_api_v1_runner_pool_runner_lease","tags":["ci"],"parameters":[{"name":"runner_pool_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"runner_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/cli_releases":{"get":{"operationId":"api_v1_cli_releases","tags":["cli_releases"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_cli_releases","tags":["cli_releases"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/cli_releases/latest":{"get":{"operationId":"latest_api_v1_cli_releases","tags":["cli_releases"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/contact_submissions":{"post":{"operationId":"api_v1_contact_submissions","tags":["contact_submissions"],"parameters":[],"responses":{"201":{"description":"The message was accepted (or silently discarded as spam).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactSubmissionCreated"}}}},"400":{"description":"A required field was missing from the request body."},"422":{"description":"A field failed validation."},"429":{"description":"Too many submissions from this IP."}},"security":[],"summary":"Send a message from the public marketing contact form","description":"Unauthenticated and CSRF-exempt: the marketing site posts this straight from a browser with no Vex session. Rate limited per IP (5 per minute). `website` is a honeypot — a field no human sees. When it is filled in the response is an ordinary 201 and nothing is stored, so a bot learns nothing from the reply.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactSubmissionRequest"}}}}}},"/api/v1/edge/tls-check":{"get":{"operationId":"api_v1_edge_tls_check","tags":["edge"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/email_verifications/verify":{"get":{"operationId":"api_v1_email_verifications_verify","tags":["email_verifications"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/desired_states":{"get":{"operationId":"api_v1_desired_states","tags":["execution"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_execution_desired_states","tags":["execution"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/desired_states/{id}":{"get":{"operationId":"api_v1_desired_state","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Desired state and current scheduler termination proof","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["desired_state","stop_observed"],"properties":{"desired_state":{"type":"object","additionalProperties":true},"stop_observed":{"type":"boolean","description":"True only for archived zero-capacity states with all known jobs stopped and allocations terminated. Unknown observations return false."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_execution_desired_states_id_","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_execution_desired_states_id_","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_execution_desired_states_id_","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/desired_states/{id}/reconcile":{"post":{"operationId":"reconcile_api_v1_desired_state","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/reconciler_ticks":{"get":{"operationId":"api_v1_reconciler_ticks","tags":["execution"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_execution_reconciler_ticks","tags":["execution"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/reconciler_ticks/{id}":{"get":{"operationId":"api_v1_reconciler_tick","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/releases":{"get":{"operationId":"api_v1_releases","tags":["execution"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_execution_releases","tags":["execution"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/releases/{id}":{"get":{"operationId":"api_v1_release","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/releases/{id}/activate":{"post":{"operationId":"activate_api_v1_release","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/releases/{id}/fail":{"post":{"operationId":"fail_api_v1_release","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/releases/{id}/mark_ready":{"post":{"operationId":"mark_ready_api_v1_release","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/releases/{release_id}/rollouts":{"get":{"operationId":"api_v1_release_rollouts","tags":["execution"],"parameters":[{"name":"release_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_execution_releases_release_id_rollouts","tags":["execution"],"parameters":[{"name":"release_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/releases/{release_id}/rollouts/{id}":{"get":{"operationId":"api_v1_release_rollout","tags":["execution"],"parameters":[{"name":"release_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/releases/{release_id}/rollouts/{id}/complete":{"post":{"operationId":"complete_api_v1_release_rollout","tags":["execution"],"parameters":[{"name":"release_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/releases/{release_id}/rollouts/{id}/fail":{"post":{"operationId":"fail_api_v1_release_rollout","tags":["execution"],"parameters":[{"name":"release_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/releases/{release_id}/rollouts/{id}/start":{"post":{"operationId":"start_api_v1_release_rollout","tags":["execution"],"parameters":[{"name":"release_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/runtime_instances":{"get":{"operationId":"api_v1_runtime_instances","tags":["execution"],"parameters":[{"name":"hosted_app_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"app_environment_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"app_service_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Recent and live runtime instances","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["runtime_instances","pagination"],"properties":{"runtime_instances":{"type":"array","items":{"$ref":"#/components/schemas/RuntimeInstance"}},"pagination":{"type":"object","additionalProperties":true,"required":["page","limit","count","last"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":100},"count":{"type":"integer","minimum":0},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","minimum":1,"nullable":true},"next":{"type":"integer","minimum":1,"nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_execution_runtime_instances","tags":["execution"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/runtime_instances/{id}":{"get":{"operationId":"api_v1_runtime_instance","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_execution_runtime_instances_id_","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_execution_runtime_instances_id_","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_execution_runtime_instances_id_","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/runtime_instances/{id}/refresh":{"post":{"operationId":"refresh_api_v1_runtime_instance","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/runtime_instances/{id}/terminate":{"post":{"operationId":"terminate_api_v1_runtime_instance","tags":["execution"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/execution/runtime_instances/{runtime_instance_id}/health_snapshots":{"get":{"operationId":"api_v1_runtime_instance_health_snapshots","tags":["execution"],"parameters":[{"name":"runtime_instance_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_execution_runtime_instances_runtime_instance_id_health_snapshots","tags":["execution"],"parameters":[{"name":"runtime_instance_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/git_imports/{id}":{"get":{"operationId":"api_v1_git_import","tags":["git_imports"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Git durability and native readiness","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/GitImportStatus"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Git durability and native readiness"}},"/api/v1/git_imports/{id}/complete":{"post":{"operationId":"complete_api_v1_git_import","tags":["git_imports"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Git is durable; conversion proceeds asynchronously","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitImportStatus"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Git is durable; conversion proceeds asynchronously"}},"/api/v1/git_imports/{id}/retry":{"post":{"operationId":"retry_api_v1_git_import","tags":["git_imports"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Native repair queued from retained Git storage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitImportStatus"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Native repair queued from retained Git storage"}},"/api/v1/github/repository_lookup":{"get":{"operationId":"api_v1_github_repository_lookup","tags":["github"],"parameters":[{"name":"owner","in":"query","required":true,"schema":{"type":"string"}},{"name":"name","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The physical Composal repository this GitHub remote resolves to","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization_slug","repository_slug","github_full_name"],"properties":{"organization_slug":{"type":"string"},"repository_slug":{"type":"string"},"github_full_name":{"type":"string"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"No organization the caller belongs to has imported this remote","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"409":{"description":"More than one reachable repository syncs this remote","content":{"application/json":{"schema":{"type":"object","required":["error","candidates"],"properties":{"error":{"type":"string"},"candidates":{"type":"array","items":{"type":"object","required":["organization_slug","repository_slug"],"properties":{"organization_slug":{"type":"string"},"repository_slug":{"type":"string"}}}}}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/github_app/importable_repositories":{"get":{"operationId":"api_v1_github_app_importable_repositories","tags":["github_app"],"parameters":[{"name":"github_app_installation_id","in":"query","required":false,"description":"When set with page, returns one installation page for client-side streaming.","schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"GitHub installation-repositories page (1-based). Defaults to 1.","schema":{"type":"integer","minimum":1,"default":1}}],"responses":{"200":{"description":"Importable GitHub repositories grouped by installation account","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["accounts"],"properties":{"accounts":{"type":"array","items":{"type":"object","required":["github_app_installation_id","account_login","repositories","next_page"],"properties":{"github_app_installation_id":{"type":"string"},"account_login":{"type":"string"},"next_page":{"type":"integer","nullable":true,"description":"Next GitHub page for this installation","or null when exhausted":null},"repositories":{"type":"array","items":{"type":"object","required":["owner","name","full_name","default_branch","visibility","private","empty","html_url","updated_at","already_imported"],"properties":{"owner":{"type":"string"},"name":{"type":"string"},"full_name":{"type":"string"},"default_branch":{"type":"string","nullable":true},"visibility":{"type":"string","nullable":true},"private":{"type":"boolean","nullable":true},"empty":{"type":"boolean","nullable":true},"html_url":{"type":"string","nullable":true},"updated_at":{"type":"string","nullable":true},"already_imported":{"type":"boolean"}}}}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/github_app/installation_authorizations":{"post":{"operationId":"api_v1_github_app_installation_authorizations","tags":["github_app"],"parameters":[],"responses":{"200":{"description":"GitHub App installation URL with opaque setup state","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["installation_url"],"properties":{"installation_url":{"type":"string","format":"uri"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"GitHub App installation URL with opaque setup state","content":{"application/json":{"schema":{"type":"object","required":["installation_url"],"properties":{"installation_url":{"type":"string","format":"uri"}}}}}},"503":{"description":"GitHub App or durable authorization state is not configured"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization_slug","return_target"],"properties":{"organization_slug":{"type":"string","description":"Vex organization slug whose installation will be linked."},"return_target":{"type":"string","description":"Server-validated Vex application target used after verification."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Start verified GitHub App installation linking","description":"Creates a short-lived, user-bound setup state for an organization administrator and returns the server-generated GitHub App installation URL. Requires an authenticated Vex session or bearer token."}},"/api/v1/github_app/installation_authorizations/complete":{"post":{"operationId":"api_v1_github_app_installation_authorizations_complete","tags":["github_app"],"parameters":[],"responses":{"200":{"description":"Existing verified installation link refreshed","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["return_target"],"properties":{"github_app_installation":{"type":"object","required":["id","organization_id","installation_id","account_login","account_id","account_avatar_url","manage_access_url","status","permissions","permission_entries","installed_at","installed_at_label","suspended_at","suspended_at_label","created_at","created_at_label","updated_at","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"installation_id":{"type":"string"},"account_login":{"type":"string"},"account_id":{"type":"string","nullable":true},"account_avatar_url":{"type":"string","format":"uri","nullable":true},"manage_access_url":{"type":"string","format":"uri"},"status":{"type":"string","enum":["active","suspended"]},"permissions":{"type":"object","additionalProperties":true},"permission_entries":{"description":"GitHub's permission hash as a display-ready list, sorted by name.","type":"array","items":{"type":"object","required":["key","name","access"],"properties":{"key":{"type":"string"},"name":{"type":"string"},"access":{"type":"string"}}}},"installed_at":{"type":"string","format":"date-time","nullable":true},"installed_at_label":{"type":"string","nullable":true},"suspended_at":{"type":"string","format":"date-time","nullable":true},"suspended_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","nullable":true}}},"github_user_authorization_connected":{"type":"boolean"},"return_target":{"type":"string"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Verified installation link created","content":{"application/json":{"schema":{"type":"object","required":["return_target"],"properties":{"github_app_installation":{"type":"object","required":["id","organization_id","installation_id","account_login","account_id","account_avatar_url","manage_access_url","status","permissions","permission_entries","installed_at","installed_at_label","suspended_at","suspended_at_label","created_at","created_at_label","updated_at","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"installation_id":{"type":"string"},"account_login":{"type":"string"},"account_id":{"type":"string","nullable":true},"account_avatar_url":{"type":"string","format":"uri","nullable":true},"manage_access_url":{"type":"string","format":"uri"},"status":{"type":"string","enum":["active","suspended"]},"permissions":{"type":"object","additionalProperties":true},"permission_entries":{"description":"GitHub's permission hash as a display-ready list, sorted by name.","type":"array","items":{"type":"object","required":["key","name","access"],"properties":{"key":{"type":"string"},"name":{"type":"string"},"access":{"type":"string"}}}},"installed_at":{"type":"string","format":"date-time","nullable":true},"installed_at_label":{"type":"string","nullable":true},"suspended_at":{"type":"string","format":"date-time","nullable":true},"suspended_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","nullable":true}}},"github_user_authorization_connected":{"type":"boolean"},"return_target":{"type":"string"}}}}}},"409":{"description":"The GitHub account is already linked to another Vex organization"},"503":{"description":"GitHub App OAuth or durable authorization state is not configured"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["state"],"properties":{"code":{"type":"string","description":"GitHub App user authorization code when authorization succeeds."},"error":{"type":"string","description":"GitHub OAuth error when the user denies or cannot grant authorization."},"state":{"type":"string","description":"Opaque one-time verification state returned by GitHub OAuth."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Verify ownership and link a GitHub App installation","description":"Consumes the one-time verification state and GitHub OAuth result, verifies the current GitHub identity, organization ownership or personal-account identity, complete repository visibility, and repository administration before creating or refreshing the Vex link."}},"/api/v1/github_app/installation_authorizations/setup":{"post":{"operationId":"api_v1_github_app_installation_authorizations_setup","tags":["github_app"],"parameters":[],"responses":{"200":{"description":"PKCE-protected GitHub App user authorization URL","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["authorization_url"],"properties":{"authorization_url":{"type":"string","format":"uri"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"PKCE-protected GitHub App user authorization URL","content":{"application/json":{"schema":{"type":"object","required":["authorization_url"],"properties":{"authorization_url":{"type":"string","format":"uri"}}}}}},"503":{"description":"GitHub App OAuth or durable authorization state is not configured"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["installation_id","setup_action","state"],"properties":{"installation_id":{"type":"string"},"setup_action":{"type":"string","enum":["install","update"]},"state":{"type":"string","description":"Opaque one-time state returned in the GitHub Setup URL callback."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Begin GitHub user verification for an installation","description":"Consumes the one-time installation setup state, records the App-owned installation snapshot, and returns a PKCE-protected GitHub App user authorization URL. No installation is linked at this stage."}},"/api/v1/github_app/user_authorizations":{"post":{"operationId":"api_v1_github_app_user_authorizations","tags":["github_app"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"GitHub App user authorization started","content":{"application/json":{"schema":{"type":"object","required":["authorization_url"],"properties":{"authorization_url":{"type":"string","format":"uri"}}}}}},"503":{"description":"GitHub App OAuth or durable authorization state is not configured"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Connect the current user's GitHub identity for PR authorship","description":"Creates a short-lived PKCE-protected GitHub App user authorization state. Requires an authenticated Vex session or bearer token."}},"/api/v1/github_app/webhook":{"post":{"operationId":"api_v1_github_app_webhook","tags":["github_app"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/github_runner_admission":{"post":{"operationId":"api_v1_github_runner_admission","tags":["github_runner_admission"],"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/github_runner_cache":{"post":{"operationId":"api_v1_github_runner_cache","tags":["github_runner_cache"],"parameters":[],"responses":{"200":{"description":"Cache lookup, upload reservation, or publication result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["ok"],"properties":{"ok":{"type":"boolean"},"entry_id":{"type":"string"},"upload_path":{"type":"string"},"signed_download_url":{"type":"string"},"matched_key":{"type":"string"},"size_bytes":{"type":"string"}}}}}},"401":{"description":"Invalid or expired runner attempt"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"409":{"description":"Cache key exists or upload belongs to another attempt"},"503":{"description":"Namespace disabled or actual assignment not yet observed"},"507":{"description":"Namespace capacity exhausted"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["operation"],"properties":{"operation":{"type":"string","enum":["GetCacheEntryDownloadURL","CreateCacheEntry","ReserveUpload","FinalizeCacheEntryUpload"]},"key":{"type":"string","maxLength":512},"version":{"type":"string","maxLength":512},"restore_keys":{"type":"array","maxItems":32,"items":{"type":"string","maxLength":512}},"entry_id":{"type":"string"},"size_bytes":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Runner-owned Actions cache control plane","description":"Internal runner protocol. Requires an expiring invocation-attempt bearer credential; user API tokens do not authorize this endpoint. Repository and branch scope come from the runner's actual GitHub assignment. Archive bytes flow through the runner's CloudBucketMount, not this API."}},"/api/v1/github_runner_checkout":{"post":{"operationId":"api_v1_github_runner_checkout","tags":["github_runner_checkout"],"parameters":[],"responses":{"200":{"description":"Pending, prepared or failed Git object cache preparation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["status"],"properties":{"status":{"type":"string","enum":["pending","ready","failed"]},"ticket":{"type":"string"},"commit":{"type":"string","pattern":"^[0-9a-f]{40}$"},"object_oid":{"type":"string","pattern":"^[0-9a-f]{40}$"},"refs":{"type":"object","additionalProperties":{"type":"string","pattern":"^[0-9a-f]{40}$"}},"cache_hit":{"type":"boolean"},"source":{"type":"string","enum":["cache","composal","github"]},"prepare_seconds":{"type":"number","minimum":0}}}}}},"401":{"description":"Invalid attempt credential","repository scope or status ticket":null},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Unsupported operation or invalid ref or object ID"},"503":{"description":"Preparation unavailable or another revision is still preparing"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"oneOf":[{"type":"object","required":["operation","repository","ref"],"properties":{"operation":{"type":"string","enum":["prepare"]},"repository":{"type":"string","example":"acme/monorepo"},"ref":{"type":"string","minLength":1,"maxLength":1024},"sha":{"type":"string","pattern":"^[0-9a-f]{40}$"},"all_refs":{"type":"boolean","default":false}}},{"type":"object","required":["operation","ticket"],"properties":{"operation":{"type":"string","enum":["status"]},"ticket":{"type":"string"}}}]}}}},"security":[{"bearerAuth":[]},{"RunnerCheckoutToken":[]}],"summary":"Prepare a runner's Git object cache","description":"Internal runner protocol. Requires an expiring invocation-attempt credential. User API tokens do not authorize this endpoint. Repository scope comes from the runner pool; source credentials are never returned."}},"/api/v1/gitlab/oauth/callback":{"get":{"operationId":"api_v1_gitlab_oauth_callback","tags":["gitlab"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/app_runs":{"get":{"operationId":"api_v1_app_runs","tags":["hosting"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_app_runs","tags":["hosting"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"402":{"description":"The organization's billing limit refuses this usage; see `error.upgrade_path`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingLimitExceededError"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"image":{"type":"string","description":"Optional fully qualified digest-pinned image from the deployed service's registry and repository. Uses the active release's execution context without deploying. Mutable tags are rejected."}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/app_runs/{id}":{"get":{"operationId":"api_v1_app_run","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/app_runs/{id}/cancel":{"post":{"operationId":"cancel_api_v1_app_run","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps":{"get":{"operationId":"api_v1_apps","tags":["hosting"],"parameters":[{"name":"organization_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Hosted apps visible to the current user","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["apps"],"properties":{"apps":{"type":"array","items":{"$ref":"#/components/schemas/HostedApp"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps","tags":["hosting"],"parameters":[],"responses":{"200":{"description":"Hosted app created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["app"],"properties":{"app":{"$ref":"#/components/schemas/HostedApp"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Hosted app created","content":{"application/json":{"schema":{"type":"object","required":["app"],"properties":{"app":{"$ref":"#/components/schemas/HostedApp"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/HostedAppCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/catalog":{"get":{"operationId":"api_v1_app_catalog","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Hosted app configuration catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["app"],"properties":{"app":{"$ref":"#/components/schemas/HostedAppCatalog"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/catalog/selectors":{"get":{"operationId":"selectors_api_v1_app_catalog","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Target selectors without deployment history or configuration values","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["app"],"properties":{"app":{"type":"object","additionalProperties":false,"required":["id","services","environments","locations"],"properties":{"id":{"type":"string"},"services":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","slug","name"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}}},"environments":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","slug","name"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}}},"locations":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","code","name"],"properties":{"id":{"type":"string"},"code":{"type":"string"},"name":{"type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read the service, environment and location identities for a hosted app"}},"/api/v1/hosting/apps/{app_id}/cdns":{"get":{"operationId":"api_v1_app_cdns","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_cdns","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App CDN distribution created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["cdn"],"properties":{"cdn":{"$ref":"#/components/schemas/AppCdnDistribution"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"CDN request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"201":{"description":"App CDN distribution created","content":{"application/json":{"schema":{"type":"object","required":["cdn"],"properties":{"cdn":{"$ref":"#/components/schemas/AppCdnDistribution"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppCdnDistributionCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{cdn_id}/deployments":{"get":{"operationId":"api_v1_app_cdn_deployments","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cdn_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_cdns_cdn_id_deployments","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cdn_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{cdn_id}/deployments/{id}":{"get":{"operationId":"api_v1_app_cdn_deployment","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cdn_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{cdn_id}/hostnames":{"get":{"operationId":"api_v1_app_cdn_hostnames","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cdn_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_cdns_cdn_id_hostnames","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cdn_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App CDN hostname created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["hostname"],"properties":{"hostname":{"$ref":"#/components/schemas/AppCdnHostname"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"CDN request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"201":{"description":"App CDN hostname created","content":{"application/json":{"schema":{"type":"object","required":["hostname"],"properties":{"hostname":{"$ref":"#/components/schemas/AppCdnHostname"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppCdnHostnameCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{cdn_id}/hostnames/{id}":{"get":{"operationId":"api_v1_app_cdn_hostname","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cdn_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_hosting_apps_app_id_cdns_cdn_id_hostnames_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cdn_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_cdns_cdn_id_hostnames_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cdn_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_hosting_apps_app_id_cdns_cdn_id_hostnames_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cdn_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"204":{"description":"App CDN hostname deleted"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{id}":{"get":{"operationId":"api_v1_app_cdn","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_hosting_apps_app_id_cdns_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app CDN distribution","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["cdn"],"properties":{"cdn":{"$ref":"#/components/schemas/AppCdnDistribution"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"CDN request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppCdnDistributionUpdatePayload"}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_cdns_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app CDN distribution","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["cdn"],"properties":{"cdn":{"$ref":"#/components/schemas/AppCdnDistribution"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"CDN request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppCdnDistributionUpdatePayload"}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_hosting_apps_app_id_cdns_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{id}/archive":{"post":{"operationId":"archive_api_v1_app_cdn","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app CDN distribution","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["cdn"],"properties":{"cdn":{"$ref":"#/components/schemas/AppCdnDistribution"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{id}/pause":{"post":{"operationId":"pause_api_v1_app_cdn","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app CDN distribution","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["cdn"],"properties":{"cdn":{"$ref":"#/components/schemas/AppCdnDistribution"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{id}/provision":{"post":{"operationId":"provision_api_v1_app_cdn","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App CDN deployment action completed","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["deployment"],"properties":{"deployment":{"$ref":"#/components/schemas/AppCdnDeployment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"CDN request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppCdnDeploymentPayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{id}/purge":{"post":{"operationId":"purge_api_v1_app_cdn","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App CDN deployment action completed","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["deployment"],"properties":{"deployment":{"$ref":"#/components/schemas/AppCdnDeployment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"CDN request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppCdnPurgePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{id}/resume":{"post":{"operationId":"resume_api_v1_app_cdn","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app CDN distribution","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["cdn"],"properties":{"cdn":{"$ref":"#/components/schemas/AppCdnDistribution"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/cdns/{id}/sync":{"post":{"operationId":"sync_api_v1_app_cdn","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App CDN deployment action completed","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["deployment"],"properties":{"deployment":{"$ref":"#/components/schemas/AppCdnDeployment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"CDN request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppCdnDeploymentPayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/config_variables":{"get":{"operationId":"api_v1_app_config_variables","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"app_environment_id","in":"query","required":false,"description":"Return only records scoped to this environment of the app, including archived previews.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_config_variables","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App configuration variable created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["config_variable"],"properties":{"config_variable":{"$ref":"#/components/schemas/AppConfigVariable"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Hosting delivery request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"201":{"description":"App configuration variable created","content":{"application/json":{"schema":{"type":"object","required":["config_variable"],"properties":{"config_variable":{"$ref":"#/components/schemas/AppConfigVariable"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppConfigVariableCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/config_variables/{id}":{"get":{"operationId":"api_v1_app_config_variable","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_hosting_apps_app_id_config_variables_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_config_variables_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_hosting_apps_app_id_config_variables_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/config_variables/{id}/disable":{"post":{"operationId":"disable_api_v1_app_config_variable","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app configuration variable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["config_variable"],"properties":{"config_variable":{"$ref":"#/components/schemas/AppConfigVariable"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/config_variables/{id}/rotate":{"post":{"operationId":"rotate_api_v1_app_config_variable","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app configuration variable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["config_variable"],"properties":{"config_variable":{"$ref":"#/components/schemas/AppConfigVariable"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Hosting delivery request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppConfigVariableRotatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/data_resources":{"get":{"operationId":"api_v1_app_data_resources","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_data_resources","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App data resource created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["data_resource"],"properties":{"data_resource":{"$ref":"#/components/schemas/AppDataResource"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Infrastructure request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Data resource provider request failed","content":{"application/json":{"schema":{"type":"object","required":["data_resource"],"properties":{"data_resource":{"$ref":"#/components/schemas/AppDataResource"}}}}}},"201":{"description":"App data resource created","content":{"application/json":{"schema":{"type":"object","required":["data_resource"],"properties":{"data_resource":{"$ref":"#/components/schemas/AppDataResource"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppDataResourceCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/data_resources/{id}":{"get":{"operationId":"api_v1_app_data_resource","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_hosting_apps_app_id_data_resources_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_data_resources_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_hosting_apps_app_id_data_resources_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/data_resources/{id}/archive":{"post":{"operationId":"archive_api_v1_app_data_resource","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/data_resources/{id}/refresh":{"post":{"operationId":"refresh_api_v1_app_data_resource","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app data resource","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["data_resource"],"properties":{"data_resource":{"$ref":"#/components/schemas/AppDataResource"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Data resource provider request failed","content":{"application/json":{"schema":{"type":"object","required":["data_resource"],"properties":{"data_resource":{"$ref":"#/components/schemas/AppDataResource"}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/data_resources/{id}/restore":{"post":{"operationId":"restore_api_v1_app_data_resource","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Restored app data resource created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["data_resource"],"properties":{"data_resource":{"$ref":"#/components/schemas/AppDataResource"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Infrastructure request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Data resource provider request failed","content":{"application/json":{"schema":{"type":"object","required":["data_resource"],"properties":{"data_resource":{"$ref":"#/components/schemas/AppDataResource"}}}}}},"201":{"description":"Restored app data resource created","content":{"application/json":{"schema":{"type":"object","required":["data_resource"],"properties":{"data_resource":{"$ref":"#/components/schemas/AppDataResource"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppDataResourceRestorePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/data_resources/{id}/resume":{"post":{"operationId":"resume_api_v1_app_data_resource","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/data_resources/{id}/rotate_credentials":{"post":{"operationId":"rotate_credentials_api_v1_app_data_resource","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app data resource","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["data_resource"],"properties":{"data_resource":{"$ref":"#/components/schemas/AppDataResource"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Data resource provider request failed","content":{"application/json":{"schema":{"type":"object","required":["data_resource"],"properties":{"data_resource":{"$ref":"#/components/schemas/AppDataResource"}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/data_resources/{id}/suspend":{"post":{"operationId":"suspend_api_v1_app_data_resource","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_dashboard":{"get":{"operationId":"api_v1_app_deployment_dashboard","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"metrics_range","in":"query","required":false,"schema":{"type":"string","enum":["1h","6h","24h","7d"]}}],"responses":{"200":{"description":"Hosted app deployment dashboard","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DeploymentDashboard"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_dashboard/nomad/allocation":{"get":{"operationId":"nomad_allocation_api_v1_app_deployment_dashboard","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"service","in":"query","required":false,"schema":{"type":"string"},"description":"Service id","slug":null,"or name.":null},{"name":"environment","in":"query","required":false,"schema":{"type":"string"},"description":"Environment id","slug":null,"or name.":null},{"name":"location","in":"query","required":false,"schema":{"type":"string"},"description":"Location code or name."}],"responses":{"200":{"description":"Live Nomad allocation details","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/NomadAllocationDetails"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"The app, allocation, or selector names nothing","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Nomad request failed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"400":{"description":"The selectors match more than one service","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"410":{"description":"Nomad no longer holds the allocation, so its logs are gone","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_dashboard/nomad/allocations/{allocation_id}":{"get":{"operationId":"get_api_v1_hosting_apps_app_id_deployment_dashboard_nomad_allocations_allocation_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"allocation_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Live Nomad allocation details","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/NomadAllocationDetails"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"The app, allocation, or selector names nothing","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Nomad request failed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"410":{"description":"Nomad no longer holds the allocation, so its logs are gone","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_dashboard/nomad/allocations/{allocation_id}/logs":{"get":{"operationId":"get_api_v1_hosting_apps_app_id_deployment_dashboard_nomad_allocations_allocation_id_logs","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"allocation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"task","in":"query","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["stdout","stderr"],"default":"stdout"}},{"name":"origin","in":"query","required":false,"schema":{"type":"string","enum":["start","end"],"default":"end"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":262144,"default":65536}}],"responses":{"200":{"description":"Live Nomad task logs","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/NomadAllocationLogs"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"The app, allocation, or selector names nothing","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Nomad request failed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"400":{"description":"Invalid task or log options -- including a task name the allocation does not have","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"410":{"description":"Nomad no longer holds the allocation, so its logs are gone","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_dashboard/nomad/logs":{"get":{"operationId":"nomad_logs_api_v1_app_deployment_dashboard","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"service","in":"query","required":false,"schema":{"type":"string"},"description":"Service id","slug":null,"or name.":null},{"name":"environment","in":"query","required":false,"schema":{"type":"string"},"description":"Environment id","slug":null,"or name.":null},{"name":"location","in":"query","required":false,"schema":{"type":"string"},"description":"Location code or name."},{"name":"task","in":"query","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["stdout","stderr"],"default":"stdout"}},{"name":"origin","in":"query","required":false,"schema":{"type":"string","enum":["start","end"],"default":"end"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":262144,"default":65536}}],"responses":{"200":{"description":"Live Nomad task logs","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/NomadAllocationLogs"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"The app, allocation, or selector names nothing","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Nomad request failed","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"400":{"description":"The selectors match more than one service","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"410":{"description":"Nomad no longer holds the allocation, so its logs are gone","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_operations":{"get":{"operationId":"api_v1_app_deployment_operations","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Logical deployment operations","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["operations","pagination"],"properties":{"operations":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentOperation"}},"pagination":{"type":"object","additionalProperties":true,"required":["page","limit","count","last"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":100},"count":{"type":"integer","minimum":0},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","minimum":1,"nullable":true},"next":{"type":"integer","minimum":1,"nullable":true}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_deployment_operations","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"402":{"description":"The organization's billing limit refuses this usage; see `error.upgrade_path`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingLimitExceededError"}}}},"201":{"description":"Logical deployment operation","content":{"application/json":{"schema":{"type":"object","required":["operation"],"properties":{"operation":{"$ref":"#/components/schemas/DeploymentOperation"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"409":{"description":"Idempotency key already names a different deployment","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Deployment request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppDeploymentCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_operations/{operation_id}":{"get":{"operationId":"api_v1_app_deployment_operation","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"operation_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Logical deployment operation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["operation"],"properties":{"operation":{"$ref":"#/components/schemas/DeploymentOperation"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_operations/{operation_id}/cancel":{"post":{"operationId":"cancel_api_v1_app_deployment_operation","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"operation_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Logical deployment operation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["operation"],"properties":{"operation":{"$ref":"#/components/schemas/DeploymentOperation"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_operations/{operation_id}/live":{"get":{"operationId":"live_api_v1_app_deployment_operation","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"operation_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Aggregate deployment operation live status","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_operations/{operation_id}/redeploy":{"post":{"operationId":"redeploy_api_v1_app_deployment_operation","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"operation_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Logical deployment operation","content":{"application/json":{"schema":{"type":"object","required":["operation"],"properties":{"operation":{"$ref":"#/components/schemas/DeploymentOperation"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"409":{"description":"Idempotency key already names a different deployment","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Deployment request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"idempotency_key":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_operations/{operation_id}/rollback":{"post":{"operationId":"rollback_api_v1_app_deployment_operation","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"operation_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Logical deployment operation","content":{"application/json":{"schema":{"type":"object","required":["operation"],"properties":{"operation":{"$ref":"#/components/schemas/DeploymentOperation"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"409":{"description":"Idempotency key already names a different deployment","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Deployment request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DeploymentRollbackPayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_rollbacks":{"post":{"operationId":"api_v1_app_deployment_rollbacks","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Existing idempotent deployment rollback","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DeploymentRollbackResult"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Deployment request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"201":{"description":"Deployment rollback created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentRollbackResult"}}}},"409":{"description":"Idempotency key already names a different deployment","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DeploymentRollbackPayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployment_rollbacks/plan":{"post":{"operationId":"api_v1_app_deployment_rollbacks_plan","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Deployment rollback plan","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DeploymentRollbackPlan"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DeploymentRollbackPayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployments":{"get":{"operationId":"api_v1_app_deployments","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_deployments","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App deployment created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["deployment"],"properties":{"deployment":{"$ref":"#/components/schemas/AppDeployment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Deployment request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"402":{"description":"The organization's billing limit refuses this usage; see `error.upgrade_path`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingLimitExceededError"}}}},"201":{"description":"App deployment created","content":{"application/json":{"schema":{"type":"object","required":["deployment"],"properties":{"deployment":{"$ref":"#/components/schemas/AppDeployment"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppDeploymentCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployments/{deployment_id}/live":{"get":{"operationId":"get_api_v1_hosting_apps_app_id_deployments_deployment_id_live","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"deployment_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployments/{id}":{"get":{"operationId":"api_v1_app_deployment","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_hosting_apps_app_id_deployments_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_deployments_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_hosting_apps_app_id_deployments_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployments/{id}/cancel":{"post":{"operationId":"cancel_api_v1_app_deployment","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app deployment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["deployment"],"properties":{"deployment":{"$ref":"#/components/schemas/AppDeployment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployments/{id}/fail":{"post":{"operationId":"fail_api_v1_app_deployment","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app deployment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["deployment"],"properties":{"deployment":{"$ref":"#/components/schemas/AppDeployment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deployments/{id}/succeed":{"post":{"operationId":"succeed_api_v1_app_deployment","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app deployment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["deployment"],"properties":{"deployment":{"$ref":"#/components/schemas/AppDeployment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/deploys":{"post":{"operationId":"api_v1_app_deploys","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Invalid image, no eligible placements, or placement changed before deployment."},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["image"],"properties":{"image":{"type":"string"},"service":{"type":"string","description":"Service slug or public ID; required unless app_service_id is supplied."},"app_service_id":{"type":"string"},"environment":{"type":"string","description":"Environment slug or public ID, all, or existing."},"app_environment_id":{"type":"string"},"region":{"type":"string"},"desired_instances":{"type":"integer","minimum":0},"command":{"type":"string"},"channel":{"type":"string"},"source_ref":{"type":"string"},"commit_sha":{"type":"string"},"rollout_predecessor":{"type":"string","description":"Public deployment operation ID from the same app that must succeed before this rollout starts."}}}}}},"security":[{"bearerAuth":[]}],"description":"Deploy a pre-built image. environment accepts a slug or public ID, all (the default), or existing. existing selects this service's placements in active environments with positive replica counts and enabled regions; it preserves their replica counts unless desired_instances overrides them and never creates a placement or restarts a drained placement. No eligible placements returns 422. Existing Git writer placements roll out sequentially in the background. rollout_predecessor queues a deployment until the named operation has completed successfully; failure or cancellation stops its followers."}},"/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"}},{"name":"app_environment_id","in":"query","required":false,"description":"Return only records scoped to this environment of the app, including archived previews.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_domains","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App domain created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["domain"],"properties":{"domain":{"$ref":"#/components/schemas/AppDomain"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Hosting delivery request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"201":{"description":"App domain created","content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"$ref":"#/components/schemas/AppDomain"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppDomainCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/domains/{domain_id}/path_rules":{"get":{"operationId":"api_v1_app_domain_path_rules","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Path rules for the domain, in routing precedence (most-specific prefix first, \"/\" catch-all last)","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["path_rules"],"properties":{"path_rules":{"type":"array","items":{"$ref":"#/components/schemas/AppDomainPathRule"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_domains_domain_id_path_rules","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Path rule created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["path_rule"],"properties":{"path_rule":{"$ref":"#/components/schemas/AppDomainPathRule"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Hosting delivery request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"201":{"description":"Path rule created","content":{"application/json":{"schema":{"type":"object","required":["path_rule"],"properties":{"path_rule":{"$ref":"#/components/schemas/AppDomainPathRule"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppDomainPathRuleUpsertPayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/domains/{domain_id}/path_rules/{id}":{"get":{"operationId":"api_v1_app_domain_path_rule","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App domain path rule","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["path_rule"],"properties":{"path_rule":{"$ref":"#/components/schemas/AppDomainPathRule"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_hosting_apps_app_id_domains_domain_id_path_rules_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App domain path rule","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["path_rule"],"properties":{"path_rule":{"$ref":"#/components/schemas/AppDomainPathRule"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Hosting delivery request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppDomainPathRuleUpsertPayload"}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_domains_domain_id_path_rules_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App domain path rule","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["path_rule"],"properties":{"path_rule":{"$ref":"#/components/schemas/AppDomainPathRule"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Hosting delivery request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppDomainPathRuleUpsertPayload"}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_hosting_apps_app_id_domains_domain_id_path_rules_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Hosting delivery request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"204":{"description":"Path rule deleted"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/domains/{id}":{"get":{"operationId":"api_v1_app_domain","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_hosting_apps_app_id_domains_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_domains_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_hosting_apps_app_id_domains_id_","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/domains/{id}/disable":{"post":{"operationId":"disable_api_v1_app_domain","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app domain","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["domain"],"properties":{"domain":{"$ref":"#/components/schemas/AppDomain"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/domains/{id}/enable":{"post":{"operationId":"enable_api_v1_app_domain","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated app domain","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["domain"],"properties":{"domain":{"$ref":"#/components/schemas/AppDomain"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/domains/{id}/verify":{"post":{"operationId":"verify_api_v1_app_domain","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Domain verification scheduled","content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"$ref":"#/components/schemas/AppDomain"}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Recheck custom-domain ownership and resume certificate provisioning"}},"/api/v1/hosting/apps/{app_id}/environments":{"get":{"operationId":"api_v1_app_environments","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_hosting_apps_app_id_environments","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App environment created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["environment"],"properties":{"environment":{"$ref":"#/components/schemas/AppEnvironment"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Deployment request failed validation","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"502":{"description":"Bad gateway"},"201":{"description":"App environment created","content":{"application/json":{"schema":{"type":"object","required":["environment"],"properties":{"environment":{"$ref":"#/components/schemas/AppEnvironment"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AppEnvironmentCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/environments/{environment_id}/secret_bindings":{"get":{"operationId":"api_v1_app_environment_secret_bindings","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"environment_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"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_environment_id_secret_bindings","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"environment_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"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,"$ref":"#/components/schemas/PreviewBindingSelection"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/environments/{environment_id}/secret_bindings/copy":{"post":{"operationId":"copy_api_v1_app_environment_secret_bindings","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"environment_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"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,"$ref":"#/components/schemas/PreviewBindingSelection"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/environments/{environment_id}/secret_bindings/{id}":{"delete":{"operationId":"api_v1_app_environment_secret_binding","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"environment_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"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}":{"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}/preview_profiles":{"get":{"operationId":"api_v1_app_preview_profiles","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_preview_profiles","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Authentication required"},"403":{"description":"Organization administrator required"},"404":{"description":"App or source not found"},"409":{"description":"Source cannot be captured"},"422":{"description":"Invalid preview configuration"},"502":{"description":"Hosting dependency unavailable"},"201":{"description":"Created preview defaults","content":{"application/json":{"schema":{"type":"object","required":["profile"],"properties":{"profile":{"$ref":"#/components/schemas/PreviewProfileRecord"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["name","slug","source_environment_id"],"properties":{"name":{"type":"string"},"slug":{"type":"string"},"source_environment_id":{"type":"string"},"ttl_days":{"type":"integer"},"automatic":{"type":"boolean"},"configuration":{"$ref":"#/components/schemas/PreviewDefaultsConfiguration"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/preview_profiles/{id}":{"get":{"operationId":"api_v1_app_preview_profile","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_preview_profiles_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 preview defaults","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["profile"],"properties":{"profile":{"$ref":"#/components/schemas/PreviewProfileRecord"}}}}}},"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"},"slug":{"type":"string"},"source_environment_id":{"type":"string"},"ttl_days":{"type":"integer"},"automatic":{"type":"boolean"},"configuration":{"$ref":"#/components/schemas/PreviewDefaultsConfiguration"}}}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_preview_profiles_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_preview_profiles_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}/preview_profiles/{preview_profile_id}/secret_bindings":{"get":{"operationId":"api_v1_app_preview_profile_secret_bindings","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"preview_profile_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"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_preview_profiles_preview_profile_id_secret_bindings","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"preview_profile_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"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,"$ref":"#/components/schemas/PreviewBindingSelection"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/preview_profiles/{preview_profile_id}/secret_bindings/{id}":{"delete":{"operationId":"api_v1_app_preview_profile_secret_binding","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"preview_profile_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"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}/previews":{"get":{"operationId":"api_v1_app_previews","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_previews","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Authentication required"},"403":{"description":"Organization administrator required"},"404":{"description":"App or source not found"},"409":{"description":"Source cannot be captured"},"422":{"description":"Invalid preview configuration"},"502":{"description":"Hosting dependency unavailable"},"201":{"description":"Created preview","content":{"application/json":{"schema":{"type":"object","required":["preview"],"properties":{"preview":{"$ref":"#/components/schemas/PreviewEnvironmentRecord"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["name","slug","app_preview_profile_id"],"properties":{"name":{"type":"string"},"slug":{"type":"string"},"app_preview_profile_id":{"type":"string"},"source_ref":{"type":"string"},"change_number":{"type":"string","description":"Organization Change number, optionally prefixed with #; mutually exclusive with source_ref. Home reviews resolve the app's physical component."},"expected_patchset":{"type":"integer","minimum":1,"description":"Optional public Change patchset fence; stale selections return 409."}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/previews/administration_index":{"get":{"operationId":"administration_index_api_v1_app_previews","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Preview administration index","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["app","previews","profiles","source_environments","can_manage","binding_sources","resource_services"],"properties":{"app":{"$ref":"#/components/schemas/HostedApp"},"previews":{"type":"array","items":{"$ref":"#/components/schemas/PreviewEnvironmentRecord"}},"profiles":{"type":"array","items":{"$ref":"#/components/schemas/PreviewDefaultsRecord"}},"source_environments":{"type":"array","items":{"$ref":"#/components/schemas/AppEnvironment"}},"resource_services":{"type":"array","items":{"type":"object","required":["id","name","resources"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"resources":{"$ref":"#/components/schemas/PreviewResourceSettings"}}}},"can_manage":{"type":"boolean"},"binding_sources":{"type":"array","items":{"$ref":"#/components/schemas/PreviewBindingSource"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List previews and creation choices for one app"}},"/api/v1/hosting/apps/{app_id}/previews/{id}":{"get":{"operationId":"api_v1_app_preview","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_previews_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":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"access":{"type":"string","enum":["org_members","public"]},"retained":{"type":"boolean"},"expires_at":{"type":"string"},"expected_generation":{"type":"integer","description":"Required for resource_overrides, storage_binding_resources, shared_service_binding_ids or shared_data_binding_ids; stale generations return 409."},"storage_binding_resources":{"type":"object","additionalProperties":{"type":"string"},"description":"Replace preview storage selections, mapping captured mount binding IDs to storage resource IDs. Empty removes mounts. Requires a paused preview and completed cleanup. Shared source local caches and compatible pre-provisioned preview-owned volumes are supported; production single-writer volumes cannot be shared. Source refresh resets selections."},"shared_data_binding_ids":{"type":"array","items":{"type":"string"},"description":"Replace explicitly shared captured native data connections. Empty removes sharing. Requires paused preview and completed cleanup; runtime credentials come only from active managed connection secrets and require workload grants."},"shared_service_binding_ids":{"type":"array","items":{"type":"string"},"description":"Replace the explicitly shared captured service dependencies. Empty removes sharing. Requires paused preview and completed cleanup. Source refresh resets this selection."},"resource_overrides":{"$ref":"#/components/schemas/PreviewResourceOverrides"}}}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_hosting_apps_app_id_previews_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_previews_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}/previews/{id}/administration":{"get":{"operationId":"administration_api_v1_app_preview","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":"Preview administration page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PreviewAdministrationPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Inspect a preview administration page","description":"Combined preview policy, configuration, binding, lifecycle and isolated deployment state. Members receive read-only actions. Unavailable configuration is reported by section without hiding the page or returning credentials."}},"/api/v1/hosting/apps/{app_id}/previews/{id}/archive":{"post":{"operationId":"archive_api_v1_app_preview","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}/previews/{id}/deploy":{"post":{"operationId":"deploy_api_v1_app_preview","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Selected deployment operations accepted","content":{"application/json":{"schema":{"type":"object","required":["preview","operation_ids"],"properties":{"preview":{"type":"object","additionalProperties":true},"operation_ids":{"type":"array","items":{"type":"string"}}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"app_service_ids":{"type":"array","minItems":1,"items":{"type":"string"},"description":"Public service IDs belonging to this app and configured in this preview. Omit to deploy all configured services. Invalid or empty selections queue no deployments."},"share_app_default_secrets":{"type":"boolean","default":false,"description":"Explicitly approve active app-default secrets for this preview before deployment."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Deploy all or selected services of a preview"}},"/api/v1/hosting/apps/{app_id}/previews/{id}/expire":{"post":{"operationId":"expire_api_v1_app_preview","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}/previews/{id}/operations":{"get":{"operationId":"operations_api_v1_app_preview","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}/previews/{id}/pause":{"post":{"operationId":"pause_api_v1_app_preview","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}/previews/{id}/refresh_source":{"post":{"operationId":"refresh_source_api_v1_app_preview","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":"Refreshed preview","content":{"application/json":{"schema":{"type":"object","required":["preview"],"properties":{"preview":{"$ref":"#/components/schemas/PreviewEnvironmentRecord"}}}}}},"400":{"description":"Review token required"},"401":{"description":"Authentication required"},"403":{"description":"Organization administrator required"},"404":{"description":"Preview not found"},"409":{"description":"Review expired","source changed or cleanup incomplete":null}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["review_token"],"properties":{"review_token":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Apply a reviewed source snapshot after preview cleanup"}},"/api/v1/hosting/apps/{app_id}/previews/{id}/resume":{"post":{"operationId":"resume_api_v1_app_preview","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Selected deployment operations accepted","content":{"application/json":{"schema":{"type":"object","required":["preview","operation_ids"],"properties":{"preview":{"type":"object","additionalProperties":true},"operation_ids":{"type":"array","items":{"type":"string"}}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"app_service_ids":{"type":"array","minItems":1,"items":{"type":"string"},"description":"Public service IDs belonging to this app and configured in this preview. Omit to deploy all configured services. Invalid or empty selections queue no deployments."},"share_app_default_secrets":{"type":"boolean","default":false,"description":"Explicitly approve active app-default secrets for this preview before deployment."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Resume all or selected services of a preview"}},"/api/v1/hosting/apps/{app_id}/previews/{id}/review_source":{"post":{"operationId":"review_source_api_v1_app_preview","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":"Expiring source refresh review","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSourceReview"}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization administrator required"},"404":{"description":"Preview not found"},"409":{"description":"Preview or source unavailable"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Review source configuration changes without values"}},"/api/v1/hosting/apps/{app_id}/previews/{id}/secret_comparison":{"get":{"operationId":"secret_comparison_api_v1_app_preview","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}/previews/{id}/sharing_approvals":{"post":{"operationId":"sharing_approvals_api_v1_app_preview","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":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PreviewSharingSelection"}}}},"security":[{"bearerAuth":[]}]},"get":{"operationId":"get_api_v1_hosting_apps_app_id_previews_id_sharing_approvals","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":"Sharing selections and available metadata without values","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PreviewSharingApprovals"}}}},"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}/previews/{id}/update_revision":{"post":{"operationId":"update_revision_api_v1_app_preview","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":"Preview with the selected resolved revision and current generation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Organization-admin access required"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"409":{"description":"Preview changed, is Change-owned, is unavailable, or has not finished pause cleanup"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["source_ref","expected_generation"],"properties":{"source_ref":{"type":"string","minLength":1},"expected_generation":{"type":"integer","minimum":1}}}}}},"security":[{"bearerAuth":[]}],"summary":"Select a manual preview's next code revision","description":"Requires organization-admin access and a paused preview whose cleanup has completed. Resolves the ref in the preview app's repository, fences concurrent changes with expected_generation, and preserves configuration and URL reservations. Does not start a deployment or extend expiry. Change-owned previews follow their Change."}},"/api/v1/hosting/apps/{app_id}/previews/{preview_id}/secrets":{"post":{"operationId":"api_v1_app_preview_secrets","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"preview_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/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":"Preview-owned secret created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewOwnedSecretReply"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["name","slug","env_key","value"],"properties":{"name":{"type":"string"},"slug":{"type":"string"},"env_key":{"type":"string"},"value":{"type":"string","writeOnly":true}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/hosting/apps/{app_id}/previews/{preview_id}/secrets/{id}":{"delete":{"operationId":"api_v1_app_preview_secret","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"preview_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"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}/previews/{preview_id}/secrets/{id}/rotate":{"post":{"operationId":"rotate_api_v1_app_preview_secret","tags":["hosting"],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"preview_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/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":"New preview-owned secret version","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewOwnedSecretReply"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["value"],"properties":{"value":{"type":"string","writeOnly":true}}}}}},"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"}},{"name":"environment","in":"query","schema":{"type":"string"},"description":"Environment id, slug or name belonging to the app."},{"name":"service","in":"query","schema":{"type":"string"},"description":"Optional service id, slug or name. Requires an environment; applies service-specific preview overrides."}],"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 selected app or environment 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"}},{"name":"service","in":"query","description":"Filter by a service slug belonging to this app.","schema":{"type":"string"}},{"name":"existing","in":"query","description":"Return positive-replica placements with enabled targets in active, undeleted services and environments.","schema":{"type":"boolean"}}],"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"},"409":{"description":"Preview placement requires completed pause cleanup and the current generation"}},"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"}}}}}},"409":{"description":"Preview is active, archived, expired, or waiting for cleanup","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/AppStorageResourceCreatePayload"}}}},"security":[{"bearerAuth":[]}],"description":"Preview-owned storage can be created only while the preview is paused with cleanup complete. Creation and provisioning are fenced against preview teardown."}},"/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/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/mcp/oauth/authorize":{"get":{"operationId":"api_v1_mcp_oauth_authorize","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/mcp/oauth/consent":{"get":{"operationId":"api_v1_mcp_oauth_consent","tags":["mcp"],"parameters":[{"name":"request","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Verified client request and accessible Verify organizations","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["client_name","redirect_uri","scope","organizations"],"properties":{"client_name":{"type":"string"},"redirect_uri":{"type":"string"},"scope":{"type":"string"},"organizations":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Review an OAuth request to connect a verification client"},"post":{"operationId":"post_api_v1_mcp_oauth_consent","tags":["mcp"],"parameters":[],"responses":{"200":{"description":"Validated client callback URL","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["redirect_url"],"properties":{"redirect_url":{"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":["request","approve"],"properties":{"request":{"type":"string"},"approve":{"type":"boolean"},"organization_id":{"type":"string"},"all_organizations":{"type":"boolean","description":"Approve access to all organizations the signed-in user can access, including future memberships. Defaults to false; otherwise organization_id is required."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Approve or deny a verification OAuth connection"}},"/api/v1/mcp/oauth/register":{"post":{"operationId":"api_v1_mcp_oauth_register","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"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/mcp/oauth/revoke":{"post":{"operationId":"api_v1_mcp_oauth_revoke","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"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/mcp/oauth/token":{"post":{"operationId":"api_v1_mcp_oauth_token","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"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/mcp/verify":{"get|post|delete":{"operationId":"api_v1_mcp_verify","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","timezone","sandbox_region","logo_url","role","personal","member_count","pending_invitation_count","repository_count","activated_products","can_activate_products","github_prs_authored_by_change_author","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"timezone":{"type":"string","description":"Default IANA timezone for organization-local schedules such as nightly dreaming."},"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},"repository_count":{"type":"integer","minimum":0},"source_ui_enabled":{"type":"boolean","description":"Organization-scoped Source workspace rollout; missing values mean disabled."},"source_control_providers":{"type":"array","description":"Connected source control providers for this organization. Missing values mean no providers are known.","uniqueItems":true,"items":{"type":"string","enum":["github","gitlab"]}},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"sandbox_region":{"type":"string","enum":["us-was-1","us-pdx-1","eu-lon-1","eu-fra-1","auto"]},"github_prs_authored_by_change_author":{"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}}}},"active_organization":{"oneOf":[{"type":"object","required":["id","slug","name","timezone","sandbox_region","logo_url","role","personal","member_count","pending_invitation_count","repository_count","activated_products","can_activate_products","github_prs_authored_by_change_author","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"timezone":{"type":"string","description":"Default IANA timezone for organization-local schedules such as nightly dreaming."},"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},"repository_count":{"type":"integer","minimum":0},"source_ui_enabled":{"type":"boolean","description":"Organization-scoped Source workspace rollout; missing values mean disabled."},"source_control_providers":{"type":"array","description":"Connected source control providers for this organization. Missing values mean no providers are known.","uniqueItems":true,"items":{"type":"string","enum":["github","gitlab"]}},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"sandbox_region":{"type":"string","enum":["us-was-1","us-pdx-1","eu-lon-1","eu-fra-1","auto"]},"github_prs_authored_by_change_author":{"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}}},{"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","timezone","sandbox_region","logo_url","role","personal","member_count","pending_invitation_count","repository_count","activated_products","can_activate_products","github_prs_authored_by_change_author","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"timezone":{"type":"string","description":"Default IANA timezone for organization-local schedules such as nightly dreaming."},"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},"repository_count":{"type":"integer","minimum":0},"source_ui_enabled":{"type":"boolean","description":"Organization-scoped Source workspace rollout; missing values mean disabled."},"source_control_providers":{"type":"array","description":"Connected source control providers for this organization. Missing values mean no providers are known.","uniqueItems":true,"items":{"type":"string","enum":["github","gitlab"]}},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"sandbox_region":{"type":"string","enum":["us-was-1","us-pdx-1","eu-lon-1","eu-fra-1","auto"]},"github_prs_authored_by_change_author":{"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}}}},"active_organization":{"oneOf":[{"type":"object","required":["id","slug","name","timezone","sandbox_region","logo_url","role","personal","member_count","pending_invitation_count","repository_count","activated_products","can_activate_products","github_prs_authored_by_change_author","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"timezone":{"type":"string","description":"Default IANA timezone for organization-local schedules such as nightly dreaming."},"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},"repository_count":{"type":"integer","minimum":0},"source_ui_enabled":{"type":"boolean","description":"Organization-scoped Source workspace rollout; missing values mean disabled."},"source_control_providers":{"type":"array","description":"Connected source control providers for this organization. Missing values mean no providers are known.","uniqueItems":true,"items":{"type":"string","enum":["github","gitlab"]}},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"sandbox_region":{"type":"string","enum":["us-was-1","us-pdx-1","eu-lon-1","eu-fra-1","auto"]},"github_prs_authored_by_change_author":{"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}}},{"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/landing":{"get":{"operationId":"api_v1_me_landing","tags":["me"],"parameters":[],"responses":{"200":{"description":"Final organization or project destination","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["path"],"properties":{"path":{"type":"string"}}}}}},"401":{"description":"Authentication required"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Resolve the authenticated web landing destination"}},"/api/v1/me/organization_session":{"post":{"operationId":"api_v1_me_organization_session","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":"Organization is not accessible"},"422":{"description":"Organization switching requires a session login"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization_slug"],"properties":{"organization_slug":{"type":"string"}}}}}},"security":[{"browserSession":[],"csrfToken":[]}],"summary":"Select an accessible organization by slug and return the updated session","description":"Requires the browser session cookie issued by login and an X-CSRF-Token obtained from GET /api/v1/auth/csrf with that same cookie. Bearer credentials are not supported."}},"/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/merge_resolutions":{"post":{"operationId":"createMergeResolution","tags":["merge_resolutions"],"parameters":[],"responses":{"200":{"description":"Resolved file bytes, or resolved=false when the conflict is left intact","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/MergeResolutionResult"}}}},"401":{"description":"Authentication required"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Input is not three UTF-8 strings"},"502":{"description":"Bad gateway"},"413":{"description":"Body exceeds 4 MiB"},"429":{"description":"Per-user resolution rate limit exceeded"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/MergeResolutionInput"}}}},"security":[{"bearerAuth":[]}],"summary":"Resolve a three-way file conflict after line merge and Mergiraf, using MagicMerge as last resort"}},"/api/v1/metronome/webhooks":{"post":{"operationId":"api_v1_metronome_webhooks","tags":["metronome"],"parameters":[],"responses":{"200":{"description":"Event stored; processing runs in a job."},"400":{"description":"Malformed body."},"401":{"description":"Signature invalid or the secret is not configured."}},"security":[],"summary":"Metronome event destination (signature verified)"}},"/api/v1/networking/spaces":{"get":{"operationId":"api_v1_spaces","tags":["networking"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_networking_spaces","tags":["networking"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{id}":{"get":{"operationId":"api_v1_space","tags":["networking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_networking_spaces_id_","tags":["networking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_networking_spaces_id_","tags":["networking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_networking_spaces_id_","tags":["networking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{id}/activate":{"post":{"operationId":"activate_api_v1_space","tags":["networking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{id}/archive":{"post":{"operationId":"archive_api_v1_space","tags":["networking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{id}/pause":{"post":{"operationId":"pause_api_v1_space","tags":["networking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{id}/validate_route":{"post":{"operationId":"validate_route_api_v1_space","tags":["networking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/catalog":{"get":{"operationId":"api_v1_space_catalog","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/dns_records":{"get":{"operationId":"api_v1_space_dns_records","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_networking_spaces_space_id_dns_records","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/dns_records/config":{"get":{"operationId":"config_api_v1_space_dns_records","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/dns_records/sync_report":{"post":{"operationId":"sync_report_api_v1_space_dns_records","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/dns_records/{id}":{"get":{"operationId":"api_v1_space_dns_record","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_networking_spaces_space_id_dns_records_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_networking_spaces_space_id_dns_records_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_networking_spaces_space_id_dns_records_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/enrollment_tokens":{"get":{"operationId":"api_v1_space_enrollment_tokens","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_networking_spaces_space_id_enrollment_tokens","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/enrollment_tokens/{id}":{"get":{"operationId":"api_v1_space_enrollment_token","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_networking_spaces_space_id_enrollment_tokens_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_networking_spaces_space_id_enrollment_tokens_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_networking_spaces_space_id_enrollment_tokens_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/enrollment_tokens/{id}/revoke":{"post":{"operationId":"revoke_api_v1_space_enrollment_token","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/gateways":{"get":{"operationId":"api_v1_space_gateways","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_networking_spaces_space_id_gateways","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/gateways/{id}":{"get":{"operationId":"api_v1_space_gateway","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_networking_spaces_space_id_gateways_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_networking_spaces_space_id_gateways_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_networking_spaces_space_id_gateways_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/gateways/{id}/config":{"get":{"operationId":"config_api_v1_space_gateway","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/gateways/{id}/heartbeat":{"post":{"operationId":"heartbeat_api_v1_space_gateway","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/gateways/{id}/sync":{"post":{"operationId":"sync_api_v1_space_gateway","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/group_memberships":{"get":{"operationId":"api_v1_space_group_memberships","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_networking_spaces_space_id_group_memberships","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/group_memberships/{id}":{"patch":{"operationId":"api_v1_space_group_membership","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_networking_spaces_space_id_group_memberships_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_networking_spaces_space_id_group_memberships_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/groups":{"get":{"operationId":"api_v1_space_groups","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_networking_spaces_space_id_groups","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/groups/{id}":{"patch":{"operationId":"api_v1_space_group","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_networking_spaces_space_id_groups_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_networking_spaces_space_id_groups_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/peer_attachments":{"get":{"operationId":"api_v1_space_peer_attachments","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_networking_spaces_space_id_peer_attachments","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/peer_attachments/{id}":{"patch":{"operationId":"api_v1_space_peer_attachment","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_networking_spaces_space_id_peer_attachments_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_networking_spaces_space_id_peer_attachments_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/peers":{"get":{"operationId":"api_v1_space_peers","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_networking_spaces_space_id_peers","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/peers/enroll":{"post":{"operationId":"enroll_api_v1_space_peers","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/peers/{id}":{"get":{"operationId":"api_v1_space_peer","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_networking_spaces_space_id_peers_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_networking_spaces_space_id_peers_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_networking_spaces_space_id_peers_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/peers/{id}/approve":{"post":{"operationId":"approve_api_v1_space_peer","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/peers/{id}/bootstrap":{"get":{"operationId":"bootstrap_api_v1_space_peer","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/peers/{id}/revoke":{"post":{"operationId":"revoke_api_v1_space_peer","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/peers/{id}/suspend":{"post":{"operationId":"suspend_api_v1_space_peer","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/policies":{"get":{"operationId":"api_v1_space_policies","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_networking_spaces_space_id_policies","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/policies/{id}":{"get":{"operationId":"api_v1_space_policy","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_networking_spaces_space_id_policies_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_networking_spaces_space_id_policies_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_networking_spaces_space_id_policies_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/policies/{id}/activate":{"post":{"operationId":"activate_api_v1_space_policy","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/policies/{id}/archive":{"post":{"operationId":"archive_api_v1_space_policy","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/policies/{id}/pause":{"post":{"operationId":"pause_api_v1_space_policy","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/segments":{"get":{"operationId":"api_v1_space_segments","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_networking_spaces_space_id_segments","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/networking/spaces/{space_id}/segments/{id}":{"get":{"operationId":"api_v1_space_segment","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_networking_spaces_space_id_segments_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_networking_spaces_space_id_segments_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_networking_spaces_space_id_segments_id_","tags":["networking"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/clickhouse_clusters":{"get":{"operationId":"api_v1_clickhouse_clusters","tags":["observability"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_clickhouse_clusters","tags":["observability"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/clickhouse_clusters/{id}":{"get":{"operationId":"api_v1_clickhouse_cluster","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_observability_clickhouse_clusters_id_","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_observability_clickhouse_clusters_id_","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_observability_clickhouse_clusters_id_","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/clickhouse_clusters/{id}/activate":{"post":{"operationId":"activate_api_v1_clickhouse_cluster","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/clickhouse_clusters/{id}/archive":{"post":{"operationId":"archive_api_v1_clickhouse_cluster","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/clickhouse_clusters/{id}/deploy":{"post":{"operationId":"deploy_api_v1_clickhouse_cluster","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/clickhouse_clusters/{id}/pause":{"post":{"operationId":"pause_api_v1_clickhouse_cluster","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/quickwit_clusters":{"get":{"operationId":"api_v1_quickwit_clusters","tags":["observability"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_quickwit_clusters","tags":["observability"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/quickwit_clusters/{id}":{"get":{"operationId":"api_v1_quickwit_cluster","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_observability_quickwit_clusters_id_","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_observability_quickwit_clusters_id_","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_observability_quickwit_clusters_id_","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/quickwit_clusters/{id}/activate":{"post":{"operationId":"activate_api_v1_quickwit_cluster","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/quickwit_clusters/{id}/archive":{"post":{"operationId":"archive_api_v1_quickwit_cluster","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/quickwit_clusters/{id}/deploy":{"post":{"operationId":"deploy_api_v1_quickwit_cluster","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/quickwit_clusters/{id}/pause":{"post":{"operationId":"pause_api_v1_quickwit_cluster","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces":{"get":{"operationId":"get_api_v1_observability_spaces","tags":["observability"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_spaces","tags":["observability"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{id}":{"get":{"operationId":"get_api_v1_observability_spaces_id_","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_observability_spaces_id_","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_observability_spaces_id_","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_observability_spaces_id_","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{id}/activate":{"post":{"operationId":"post_api_v1_observability_spaces_id_activate","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{id}/archive":{"post":{"operationId":"post_api_v1_observability_spaces_id_archive","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{id}/pause":{"post":{"operationId":"post_api_v1_observability_spaces_id_pause","tags":["observability"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/alert_rules":{"get":{"operationId":"api_v1_space_alert_rules","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_spaces_space_id_alert_rules","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/alert_rules/{alert_rule_id}/events":{"get":{"operationId":"api_v1_space_alert_rule_events","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_spaces_space_id_alert_rules_alert_rule_id_events","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/alert_rules/{alert_rule_id}/events/{id}":{"get":{"operationId":"api_v1_space_alert_rule_event","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_observability_spaces_space_id_alert_rules_alert_rule_id_events_id_","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/alert_rules/{alert_rule_id}/events/{id}/acknowledge":{"post":{"operationId":"acknowledge_api_v1_space_alert_rule_event","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/alert_rules/{alert_rule_id}/events/{id}/resolve":{"post":{"operationId":"resolve_api_v1_space_alert_rule_event","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/alert_rules/{alert_rule_id}/events/{id}/silence":{"post":{"operationId":"silence_api_v1_space_alert_rule_event","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/alert_rules/{id}":{"get":{"operationId":"api_v1_space_alert_rule","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_observability_spaces_space_id_alert_rules_id_","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_observability_spaces_space_id_alert_rules_id_","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_observability_spaces_space_id_alert_rules_id_","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/alert_rules/{id}/activate":{"post":{"operationId":"activate_api_v1_space_alert_rule","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/alert_rules/{id}/archive":{"post":{"operationId":"archive_api_v1_space_alert_rule","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/alert_rules/{id}/pause":{"post":{"operationId":"pause_api_v1_space_alert_rule","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/audit_events":{"get":{"operationId":"api_v1_space_audit_events","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_spaces_space_id_audit_events","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/log_streams":{"get":{"operationId":"api_v1_space_log_streams","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_spaces_space_id_log_streams","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/log_streams/{log_stream_id}/chunks":{"get":{"operationId":"api_v1_space_log_stream_chunks","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"log_stream_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_spaces_space_id_log_streams_log_stream_id_chunks","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"log_stream_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/log_streams/{log_stream_id}/chunks/{id}":{"get":{"operationId":"api_v1_space_log_stream_chunk","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"log_stream_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/metric_series":{"get":{"operationId":"api_v1_space_metric_series_index","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_spaces_space_id_metric_series","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/otel_collectors":{"get":{"operationId":"api_v1_space_otel_collectors","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_spaces_space_id_otel_collectors","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/otel_collectors/{id}":{"get":{"operationId":"api_v1_space_otel_collector","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_observability_spaces_space_id_otel_collectors_id_","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_observability_spaces_space_id_otel_collectors_id_","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_observability_spaces_space_id_otel_collectors_id_","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/otel_collectors/{id}/activate":{"post":{"operationId":"activate_api_v1_space_otel_collector","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/otel_collectors/{id}/archive":{"post":{"operationId":"archive_api_v1_space_otel_collector","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/otel_collectors/{id}/bootstrap_config":{"get":{"operationId":"bootstrap_config_api_v1_space_otel_collector","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/otel_collectors/{id}/deploy":{"post":{"operationId":"deploy_api_v1_space_otel_collector","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/otel_collectors/{id}/heartbeat":{"post":{"operationId":"heartbeat_api_v1_space_otel_collector","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/otel_collectors/{id}/nomad_spec":{"get":{"operationId":"nomad_spec_api_v1_space_otel_collector","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/otel_collectors/{id}/pause":{"post":{"operationId":"pause_api_v1_space_otel_collector","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/otel_collectors/{id}/rendered_config":{"get":{"operationId":"rendered_config_api_v1_space_otel_collector","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/observability/spaces/{space_id}/trace_spans":{"get":{"operationId":"api_v1_space_trace_spans","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_observability_spaces_space_id_trace_spans","tags":["observability"],"parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/openapi":{"get":{"operationId":"api_v1_openapi","tags":["openapi"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/org_invitations/{token}":{"get":{"operationId":"get_api_v1_org_invitations_token_","tags":["org_invitations"],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization invitation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["invitation"],"properties":{"invitation":{"$ref":"#/components/schemas/OrganizationInvitation"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/org_invitations/{token}/accept":{"post":{"operationId":"post_api_v1_org_invitations_token_accept","tags":["org_invitations"],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Accepted organization invitation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["invitation","organization"],"properties":{"invitation":{"$ref":"#/components/schemas/OrganizationInvitation"},"organization":{"$ref":"#/components/schemas/OrganizationSummary"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"402":{"description":"The organization's billing limit refuses this usage; see `error.upgrade_path`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingLimitExceededError"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations":{"get":{"operationId":"api_v1_organizations","tags":["organizations"],"parameters":[],"responses":{"200":{"description":"Organizations visible to the current user","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organizations","active_organization"],"properties":{"organizations":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationSummary"}},"active_organization":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSummary"},{"type":"null"}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations","tags":["organizations"],"parameters":[],"responses":{"200":{"description":"Organization","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Organization","content":{"application/json":{"schema":{"type":"object","required":["organization"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OrganizationCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{id}":{"get":{"operationId":"api_v1_organization","tags":["organizations"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization detail","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization","organization"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary","type":"object","required":["id","slug","name","timezone","sandbox_region","logo_url","role","personal","member_count","pending_invitation_count","repository_count","activated_products","can_activate_products","github_prs_authored_by_change_author","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"timezone":{"type":"string","description":"Default IANA timezone for organization-local schedules such as nightly dreaming."},"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},"repository_count":{"type":"integer","minimum":0},"source_ui_enabled":{"type":"boolean","description":"Organization-scoped Source workspace rollout; missing values mean disabled."},"source_control_providers":{"type":"array","description":"Connected source control providers for this organization. Missing values mean no providers are known.","uniqueItems":true,"items":{"type":"string","enum":["github","gitlab"]}},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"sandbox_region":{"type":"string","enum":["us-was-1","us-pdx-1","eu-lon-1","eu-fra-1","auto"]},"github_prs_authored_by_change_author":{"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}}}}}}}},"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}/agents/repository_choices":{"get":{"operationId":"api_v1_agents_repository_choices","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"selected","in":"query","required":false,"description":"Slug of the repository the page currently uses.","schema":{"type":"string"}}],"responses":{"200":{"description":"The picker's repository choices.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["repositories","count","selected"],"properties":{"repositories":{"type":"array","items":{"$ref":"#/components/schemas/AgentRepositoryChoice"}},"count":{"type":"integer","description":"Every repository matching `q`, which can exceed the returned page."},"selected":{"description":"The `selected` repository, or null when absent, archived or unknown.","anyOf":[{"$ref":"#/components/schemas/AgentRepositoryChoice"},{"type":"null"}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Organization not found or not accessible."},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Source repositories for the Agents page picker","description":"Active standard repositories an Agents session can open with, ordered by name and narrowed by `q` against name or slug. Returns the first page; `count` is every match. `selected` resolves the page's chosen repository independently of the search. Organization membership required."}},"/api/v1/organizations/{org_slug}/cdn_spaces":{"get":{"operationId":"api_v1_cdn_spaces","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_org_slug_cdn_spaces","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/changes":{"get":{"operationId":"api_v1_changes","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"source","in":"query","schema":{"type":"string","enum":["all","vex","github"]}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["open","needs_review","changes_requested","approved","ready_to_land","landed","abandoned","folded","orphaned","needs_restack"]}},{"name":"repo","in":"query","required":false,"schema":{"type":"string"}},{"name":"author","in":"query","required":false,"description":"Public ID of the user who created the change.","schema":{"type":"string"}},{"name":"mine","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"tips_only","in":"query","required":false,"description":"Show only active stack tips and standalone changes.","schema":{"type":"boolean"}},{"name":"awaiting_review","in":"query","required":false,"description":"Only open changes that explicitly request a current patchset review from the signed-in user. Excludes changes authored by that user.","schema":{"type":"boolean"}},{"name":"target","in":"query","required":false,"schema":{"type":"string"}},{"name":"stack","in":"query","required":false,"description":"Durable stack code or the stack's optional human alias.","schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["submitted","updated","number"],"default":"submitted"}},{"name":"direction","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"view","in":"query","required":false,"description":"Return paginated groups instead of the flat change list. `stack` groups by active stack, `author` by the user who created each change, and `created_time` by rolling period.","schema":{"type":"string","enum":["list","stack","author","created_time"],"default":"list"}},{"name":"number","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"label","in":"query","required":false,"description":"Label slug. Repeat the parameter or comma-separate values to require every label.","schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"Outer page. Selects changes in the list view and group keys in a grouped view. Ignored by `created_time`, whose four periods are all returned.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"group_pages","in":"query","required":false,"description":"Inner page positions, as a comma-separated list of `key:page` pairs such as `usr_a:3,usr_b:2`. Keys are the group keys this endpoint returned. Unknown, duplicate, malformed, and currently invisible keys are ignored, and a page past the end of a group resolves to that group's last page.","schema":{"type":"string"}}],"responses":{"200":{"description":"One page of the organization change queue, flat or grouped","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["result","counts","filters"],"properties":{"github_sync":{"$ref":"#/components/schemas/GithubReviewSync"},"result":{"description":"What this page is a page of. `kind` states what the top-level pagination describes: changes in the list view, group keys in a grouped view.","oneOf":[{"$ref":"#/components/schemas/VcsOrganizationChangeListResult"},{"$ref":"#/components/schemas/VcsOrganizationChangeGroupedResult"}]},"counts":{"type":"object","description":"Counts for each state across the active non-state filters.","additionalProperties":false,"required":["all","open","needs_review","changes_requested","approved","ready_to_land","landed","abandoned","folded","orphaned","needs_restack"],"properties":{"all":{"type":"integer","minimum":0},"open":{"type":"integer","minimum":0},"needs_review":{"type":"integer","minimum":0},"changes_requested":{"type":"integer","minimum":0},"approved":{"type":"integer","minimum":0},"ready_to_land":{"type":"integer","minimum":0},"landed":{"type":"integer","minimum":0},"abandoned":{"type":"integer","minimum":0},"folded":{"type":"integer","minimum":0},"orphaned":{"type":"integer","minimum":0},"needs_restack":{"type":"integer","minimum":0}}},"filters":{"type":"object","required":["repos","labels","authors"],"properties":{"repos":{"type":"array","items":{"type":"object","required":["slug","name"],"properties":{"slug":{"type":"string"},"name":{"type":"string"}}}},"labels":{"type":"array","items":{"$ref":"#/components/schemas/VcsLabelFacet"}},"authors":{"type":"array","items":{"$ref":"#/components/schemas/VcsActorSummary"}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List changes across an organization"}},"/api/v1/organizations/{org_slug}/changes/transcript_summaries":{"get":{"operationId":"api_v1_changes_transcript_summaries","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"ids","in":"query","required":true,"description":"Up to 100 comma-separated public Change IDs.","schema":{"type":"string"}}],"responses":{"200":{"description":"Transcript summaries keyed by public Change ID","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["summaries"],"properties":{"summaries":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/VcsChangeTranscriptSummary"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Invalid Change IDs"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Summarize transcripts for visible organization changes","description":"Returns summaries only for requested, authorized repository Changes."}},"/api/v1/organizations/{org_slug}/gh/{github_owner}/{github_repo}/{number}":{"get":{"operationId":"get_api_v1_organizations_org_slug_gh_github_owner_github_repo_number_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"github_owner","in":"path","required":true,"schema":{"type":"string"}},{"name":"github_repo","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"org_slug","required":true,"schema":{"type":"string"}},{"in":"path","required":true,"schema":{"type":"string"},"name":"github_owner"},{"in":"path","required":true,"schema":{"type":"string"},"name":"github_repo"},{"in":"path","name":"number","required":true,"schema":{"type":"string"}},{"in":"query","name":"section","schema":{"type":"string"}},{"in":"query","name":"page","schema":{"type":"integer"}},{"in":"query","name":"cursor","schema":{"type":"string"}},{"name":"thread_id","in":"query","schema":{"type":"string"}},{"name":"check_id","in":"query","schema":{"type":"string"}},{"in":"query","name":"run_id","schema":{"type":"string"}},{"in":"query","name":"job_id","schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub review response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/GithubReviewPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read a GitHub pull request inside Vex"}},"/api/v1/organizations/{org_slug}/github/pull_requests/refresh":{"post":{"operationId":"api_v1_github_pull_requests_refresh","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"GitHub review response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"}},"required":["status"]}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Discover GitHub pull requests"}},"/api/v1/organizations/{org_slug}/github/pull_requests/{github_repository_id}/{number}":{"get":{"operationId":"get_api_v1_organizations_org_slug_github_pull_requests_github_repository_id_number_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"github_repository_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"org_slug","required":true,"schema":{"type":"string"}},{"in":"path","name":"github_repository_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"number","required":true,"schema":{"type":"string"}},{"in":"query","name":"section","schema":{"type":"string"}},{"in":"query","name":"page","schema":{"type":"integer"}},{"in":"query","name":"cursor","schema":{"type":"string"}},{"name":"thread_id","in":"query","schema":{"type":"string"}},{"name":"check_id","in":"query","schema":{"type":"string"}},{"in":"query","name":"run_id","schema":{"type":"string"}},{"in":"query","name":"job_id","schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub review response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/GithubReviewPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read a GitHub pull request inside Vex"}},"/api/v1/organizations/{org_slug}/github/pull_requests/{github_repository_id}/{number}/actions":{"post":{"operationId":"post_api_v1_organizations_org_slug_github_pull_requests_github_repository_id_number_actions","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"github_repository_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"org_slug","required":true,"schema":{"type":"string"}},{"in":"path","name":"github_repository_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"number","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub review response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/GithubReviewOperation"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"GitHub review response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GithubReviewOperation"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/GithubReviewMutation"}}}},"security":[{"bearerAuth":[]}],"summary":"Comment or review on GitHub as the current user"}},"/api/v1/organizations/{org_slug}/github/pull_requests/{github_repository_id}/{number}/magic_merge/merge":{"post":{"operationId":"post_api_v1_organizations_org_slug_github_pull_requests_github_repository_id_number_magic_merge_merge","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"github_repository_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"org_slug","required":true,"schema":{"type":"string"}},{"in":"path","name":"github_repository_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"number","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The exact merge commit was applied and read back","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/MagicMergeApplyResult"}}}},"401":{"description":"Unauthorized"},"403":{"description":"GitHub repository admin access is required"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"409":{"description":"The candidate was refused or its GitHub outcome is uncertain"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_head_sha","expected_base_sha"],"properties":{"expected_head_sha":{"type":"string"},"expected_base_sha":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Apply one reviewed MagicMerge merge commit"}},"/api/v1/organizations/{org_slug}/github/pull_requests/{github_repository_id}/{number}/magic_merge/rebase":{"post":{"operationId":"post_api_v1_organizations_org_slug_github_pull_requests_github_repository_id_number_magic_merge_rebase","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"github_repository_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"org_slug","required":true,"schema":{"type":"string"}},{"in":"path","name":"github_repository_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"number","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The exact candidate was applied and read back","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/MagicMergeApplyResult"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"409":{"description":"The approval was refused or the Git push outcome is uncertain"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"idempotency_key":{"type":"string"}},"required":["idempotency_key"]}}}},"security":[{"bearerAuth":[]}],"summary":"Approve and apply one current MagicMerge rebase candidate"}},"/api/v1/organizations/{org_slug}/github/pull_requests/{github_repository_id}/{number}/magic_merge/resolve":{"post":{"operationId":"post_api_v1_organizations_org_slug_github_pull_requests_github_repository_id_number_magic_merge_resolve","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"github_repository_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"org_slug","required":true,"schema":{"type":"string"}},{"in":"path","name":"github_repository_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"number","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"A clean candidate was published privately","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"status":{"type":"string"},"tip_sha":{"type":"string"},"resolution_ref":{"type":"string"}},"required":["status","tip_sha","resolution_ref"]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"409":{"description":"The pair changed or the supplied resolution was refused"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"expected_head_sha":{"type":"string"},"expected_base_sha":{"type":"string"},"mode":{"type":"string","enum":["merge","rebase"]},"resolutions":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"path":{"type":"string"},"content":{"type":"string"}},"required":["path","content"]},{"type":"object","properties":{"path":{"type":"string"},"sides":{"type":"array","items":{"type":"string","enum":["head","destination"]}}},"required":["path","sides"]},{"type":"object","properties":{"original_sha":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"content":{"type":"string"}},"required":["path","content"]}}},"required":["original_sha","files"]}]}}},"required":["expected_head_sha","expected_base_sha","mode","resolutions"]}}}},"security":[{"bearerAuth":[]}],"summary":"Publish a reviewed manual merge or rebase resolution for one exact MagicMerge pair"}},"/api/v1/organizations/{org_slug}/gitlab":{"get":{"operationId":"get_api_v1_organizations_org_slug_gitlab","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer"}},{"name":"search","in":"query","schema":{"type":"string"}},{"name":"integration_id","in":"query","schema":{"type":"string"}},{"name":"connection_ids","in":"query","schema":{"type":"string"},"description":"Comma-separated import connection IDs to resume; scoped to this organization."},{"name":"sort","in":"query","schema":{"type":"string","enum":["newest","alphabetical"]}}],"responses":{"200":{"description":"GitLab source integration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/GitlabPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/gitlab/authorize":{"post":{"operationId":"api_v1_authorize","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"GitLab source integration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitlabAuthorizationUrl"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"integration_id":{"type":"string"},"instance_url":{"type":"string"},"client_id":{"type":"string"},"client_secret":{"type":"string"},"webhook_authentication":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/gitlab/connections/{connection_id}/control":{"post":{"operationId":"post_api_v1_organizations_org_slug_gitlab_connections_connection_id_control","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"204":{"description":"Sync control applied"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["action_name"],"properties":{"action_name":{"type":"string","enum":["pause","resume","disconnect","sync","replace","remap"]},"integration_id":{"type":"string"},"source_branch":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/gitlab/connections/{connection_id}/retry":{"post":{"operationId":"post_api_v1_organizations_org_slug_gitlab_connections_connection_id_retry","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"GitLab source integration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitlabConnection"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/gitlab/imports":{"post":{"operationId":"api_v1_imports","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"GitLab source integration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitlabConnection"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["integration_id","project_id"],"properties":{"integration_id":{"type":"string"},"project_id":{"type":"integer"},"source_branch":{"type":"string"},"repo_slug":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/image_repositories":{"get":{"operationId":"api_v1_image_repositories","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Image repositories for an organization","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["image_repositories"],"properties":{"image_repositories":{"type":"array","items":{"$ref":"#/components/schemas/ImageRepository"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_org_slug_image_repositories","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Image repository created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["image_repository"],"properties":{"image_repository":{"$ref":"#/components/schemas/ImageRepository"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Image repository created","content":{"application/json":{"schema":{"type":"object","required":["image_repository"],"properties":{"image_repository":{"$ref":"#/components/schemas/ImageRepository"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ImageRepositoryCreatePayload"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/labels":{"get":{"operationId":"api_v1_labels","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_unused","in":"query","required":false,"description":"Include labels no change currently carries.","schema":{"type":"boolean","default":false}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}}],"responses":{"200":{"description":"Organization change labels","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["labels"],"properties":{"labels":{"type":"array","items":{"$ref":"#/components/schemas/VcsLabel"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List the organization's change labels","description":"Ordered by how many changes carry each label, for facet lists and label autocomplete."}},"/api/v1/organizations/{org_slug}/pages/agent_usage":{"get":{"operationId":"api_v1_pages_agent_usage","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"window","required":false,"description":"`7d` (default) or `30d`.","schema":{"type":"string","enum":["7d","30d"]}}],"responses":{"200":{"description":"The analytics page.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AgentUsagePage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Organization not found or not accessible."},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Unknown window."}},"security":[{"bearerAuth":[]}],"summary":"Organization agent usage analytics page contract","description":"Coding-agent token usage and estimated cost per day and per person, split by model, over the last 7 or 30 days. Rows are per-checkpoint deltas priced at capture time, so every figure is a plain sum; `source` says whether Tinybird or the Rails outbox served them. Organization membership required; the outbox path is restricted to the organization's readable repositories."}},"/api/v1/organizations/{org_slug}/pages/agreements":{"get":{"operationId":"get_api_v1_organizations_org_slug_pages_agreements","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization agreements page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OrganizationAgreementsPage"}}}},"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/billing":{"get":{"operationId":"get_api_v1_organizations_org_slug_pages_billing","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Billing page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/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,"$ref":"#/components/schemas/DeploymentDetailsPage"}}}},"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/previews":{"get":{"operationId":"api_v1_pages_deployments_previews","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"app","in":"query","schema":{"type":"string"}},{"name":"owner","in":"query","schema":{"type":"string"}},{"name":"change","in":"query","schema":{"type":"string"}},{"name":"health","in":"query","schema":{"type":"string","enum":["degraded","running","starting","stopped"]}},{"name":"expiry","in":"query","schema":{"type":"string","enum":["expiring","expired","retained"]}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Organization preview inventory, filter choices and pagination","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OrganizationPreviewsPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List organization previews with administration filters"}},"/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/members":{"get":{"operationId":"get_api_v1_organizations_org_slug_pages_members","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization team page (members plus invitations for admins and owners)","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization","members","invitations"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"},"members":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationMember"}},"invitations":{"type":"array","description":"Invitation history for admins and owners; empty for other members.","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":[]}]}},"/api/v1/organizations/{org_slug}/pages/now":{"get":{"operationId":"api_v1_pages_now","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"page","required":false,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Organization Now page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["summary","needs_attention","shipping_now","recently_landed","pagination"],"properties":{"summary":{"type":"object","required":["needs_attention_count","shipping_count","landed_count"],"properties":{"needs_attention_count":{"type":"integer"},"shipping_count":{"type":"integer"},"landed_count":{"type":"integer"}}},"needs_attention":{"type":"array","items":{"$ref":"#/components/schemas/NowMergeQueueItem"}},"shipping_now":{"type":"array","items":{"$ref":"#/components/schemas/NowMergeQueueItem"}},"recently_landed":{"type":"array","items":{"$ref":"#/components/schemas/NowMergeQueueItem"}},"pagination":{"type":"object","additionalProperties":true,"required":["page","limit","count","count_label","last","series"],"properties":{"page":{"type":"integer"},"limit":{"type":"integer"},"count":{"type":"integer"},"count_label":{"type":"string"},"last":{"type":"integer"},"previous":{"type":"integer","nullable":true},"next":{"type":"integer","nullable":true},"series":{"type":"array","items":{"oneOf":[{"type":"integer"},{"type":"string"}]}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/pages/pull_zones":{"get":{"operationId":"api_v1_pages_pull_zones","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"app","schema":{"type":"string"}}],"responses":{"200":{"description":"Organization pull zones and the selected app's CDN configuration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["apps","selected_app_id","cdns","cdn_deployments","services","environments"],"properties":{"selected_app_id":{"type":"string","nullable":true},"apps":{"type":"array","items":{"type":"object","required":["id","name","slug"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}}},"services":{"type":"array","items":{"type":"object","required":["id","name","slug"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}}},"environments":{"type":"array","items":{"type":"object","required":["id","name","slug"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}}},"cdns":{"type":"array","items":{"$ref":"#/components/schemas/AppCdnDistribution"}},"cdn_deployments":{"type":"array","items":{"$ref":"#/components/schemas/AppCdnDeployment"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/pages/registry":{"get":{"operationId":"api_v1_pages_registry","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"page","required":false,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Organization registry page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["repositories","repository_count","active_repository_count","pagination","error"],"properties":{"repositories":{"type":"array","items":{"$ref":"#/components/schemas/ImageRepository"}},"repository_count":{"type":"integer","minimum":0},"active_repository_count":{"type":"integer","minimum":0},"pagination":{"type":"object","required":["page","limit","count","count_label","last","previous","next","series"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"count":{"type":"integer","minimum":0},"count_label":{"type":"string"},"last":{"type":"integer","minimum":1},"previous":{"type":"integer","nullable":true,"minimum":1},"next":{"type":"integer","nullable":true,"minimum":1},"series":{"type":"array","items":{"oneOf":[{"type":"integer","minimum":1},{"type":"string","enum":["gap"]}]}}}},"error":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/pages/repository_import":{"get":{"operationId":"api_v1_pages_repository_import","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"search","in":"query","required":false,"schema":{"type":"string"}},{"name":"accounts_only","in":"query","required":false,"schema":{"type":"boolean"},"description":"Return accounts and resumable imports without fetching provider repository inventories."}],"responses":{"200":{"description":"Connected source accounts for repository import","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RepositoryImportPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/pages/session/{session_id}":{"get":{"operationId":"get_api_v1_organizations_org_slug_pages_session_session_id_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"session_id","required":true,"description":"Public id of the session to show.","schema":{"type":"string"}},{"in":"query","name":"checkpoint","required":false,"description":"Public id of a specific uploaded checkpoint to resolve the transcript against. Defaults to the session's latest uploaded checkpoint.","schema":{"type":"string"}},{"in":"query","name":"around_event","schema":{"type":"integer","minimum":0},"description":"Search citation event index; requires checkpoint and event_digest."},{"in":"query","name":"event_digest","schema":{"type":"string","pattern":"^[0-9a-f]{64}$"},"description":"Verifies that the cited event still matches before opening the page."}],"responses":{"200":{"description":"Fullscreen session detail page contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/SessionShowPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"The session does not exist in a repository the caller can read.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Fullscreen session detail page contract","description":"Composes everything the fullscreen session page needs from Rails-owned records: the session (serialized identically to the org sessions page's expanded session so the web reuses one builder), the \"Jump to checkpoint\" markers, session-level token usage for the header cost estimate, and the resolved checkpoint's transcript-index state plus derived header stats (files/lines/duration + prompt/response/step counts). The resolved checkpoint is an explicit `checkpoint` (public id) or the session's latest uploaded checkpoint; when its index is not yet current a build is lazily enqueued and the state reads `preparing`. Fail-closed authorization: a session outside the caller's readable organization repositories resolves to 404. Payloads carry sanitized provenance only — no storage keys, checksums, or archive/chunk URLs."}},"/api/v1/organizations/{org_slug}/pages/sessions":{"get":{"operationId":"api_v1_pages_sessions","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"repo","required":false,"description":"Repository slug filter.","schema":{"type":"string"}},{"in":"query","name":"adapter","required":false,"description":"Agent adapter/harness filter (codex, claude, cursor, roder, grok).","schema":{"type":"string"}},{"in":"query","name":"user_id","required":false,"description":"Public id of the session owner to filter by.","schema":{"type":"string"}},{"in":"query","name":"status","required":false,"description":"Session status filter (active, completed, abandoned).","schema":{"type":"string"}},{"in":"query","name":"from","required":false,"description":"ISO8601 lower bound (inclusive) on session started_at.","schema":{"type":"string"}},{"in":"query","name":"to","required":false,"description":"ISO8601 upper bound (inclusive) on session started_at.","schema":{"type":"string"}},{"in":"query","name":"offset","required":false,"schema":{"type":"integer","minimum":0}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"in":"query","name":"session","required":false,"description":"Public id of a session to expand with its checkpoint timeline.","schema":{"type":"string"}}],"responses":{"200":{"description":"Organization sessions page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["sessions","pagination","facets","session"],"properties":{"sessions":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationSessionSummary"}},"pagination":{"type":"object","required":["offset","limit","has_more"],"properties":{"offset":{"type":"integer"},"limit":{"type":"integer"},"has_more":{"type":"boolean"}}},"facets":{"type":"object","required":["adapters","repositories","users"],"properties":{"adapters":{"type":"array","items":{"type":"string"}},"repositories":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/OrganizationSessionRepository"},{"type":"object","required":["session_count"],"properties":{"session_count":{"type":"integer"}}}]}},"users":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/OrganizationSessionUser"},{"type":"object","required":["session_count"],"properties":{"session_count":{"type":"integer"}}}]}}}},"session":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSessionDetail"},{"type":"null"}]},"search_enabled":{"type":"boolean"},"search":{"nullable":true,"oneOf":[{"$ref":"#/components/schemas/TranscriptSearchResult"},{"$ref":"#/components/schemas/TranscriptSearchError"}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Organization agent sessions page contract","description":"Cross-repo browser of captured agent sessions for one organization, restricted to repositories the current user can read. Returns the filtered/paginated session list with per-session stats, filter facets, and — when `session` is supplied — the expanded session's checkpoint timeline, its server-derived git `commits` and `pull_requests`, and its checkpoint `linked_commits`. Each expanded checkpoint carries the Git commit IDs it is attached to (`linked_commits`), resolved through the reverse checkpoint→commit lookup; `linked_commits_available` is false and the lists are empty when that lookup is unavailable. Payloads carry sanitized provenance only (no storage keys, checksums, or archive URLs)."},"post":{"operationId":"post_api_v1_organizations_org_slug_pages_sessions","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"org_slug","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Composed transcript search page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["sessions","pagination","facets","session"],"properties":{"sessions":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationSessionSummary"}},"pagination":{"type":"object","required":["offset","limit","has_more"],"properties":{"offset":{"type":"integer"},"limit":{"type":"integer"},"has_more":{"type":"boolean"}}},"facets":{"type":"object","required":["adapters","repositories","users"],"properties":{"adapters":{"type":"array","items":{"type":"string"}},"repositories":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/OrganizationSessionRepository"},{"type":"object","required":["session_count"],"properties":{"session_count":{"type":"integer"}}}]}},"users":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/OrganizationSessionUser"},{"type":"object","required":["session_count"],"properties":{"session_count":{"type":"integer"}}}]}}}},"session":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSessionDetail"},{"type":"null"}]},"search_enabled":{"type":"boolean"},"search":{"nullable":true,"oneOf":[{"$ref":"#/components/schemas/TranscriptSearchResult"},{"$ref":"#/components/schemas/TranscriptSearchError"}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"query":{"type":"string","minLength":1,"maxLength":4000},"mode":{"type":"string","enum":["hybrid","keyword","semantic"],"default":"hybrid"},"repo":{"type":"string"},"adapter":{"type":"string"},"status":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"cursor":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":50,"default":20},"max_bytes":{"type":"integer","minimum":8192,"maximum":131072,"default":32768},"user_id":{"type":"string"},"offset":{"type":"integer"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Search transcripts with permitted page facets"}},"/api/v1/organizations/{org_slug}/pages/settings":{"get":{"operationId":"get_api_v1_organizations_org_slug_pages_settings","tags":["organizations"],"parameters":[{"name":"org_slug","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","sandbox_regions","can_manage_sandbox_region","dedicated_outbound_ip_addresses"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"},"can_manage_sandbox_region":{"type":"boolean"},"sandbox_regions":{"type":"array","items":{"type":"object","required":["value","label"],"properties":{"value":{"type":"string","enum":["us-was-1","us-pdx-1","eu-lon-1","eu-fra-1","auto"]},"label":{"type":"string"}}}},"dedicated_outbound_ip_addresses":{"$ref":"#/components/schemas/DedicatedOutboundIpAddresses"}}}]}}}},"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/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/vcs_nodes":{"get":{"operationId":"get_api_v1_organizations_org_slug_pages_vcs_nodes","tags":["organizations"],"parameters":[{"name":"org_slug","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","github_runner_pools","github_installations","github_runner_egress"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"},"github_runner_egress":{"$ref":"#/components/schemas/GithubRunnerEgress"},"github_runner_private_links":{"type":"array","items":{"$ref":"#/components/schemas/GithubRunnerPrivateLink"}},"github_runner_pools":{"type":"array","items":{"$ref":"#/components/schemas/GithubRunnerPool"}},"github_installations":{"type":"array","items":{"$ref":"#/components/schemas/GithubAppInstallation"}},"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/{org_slug}/pages/vcs_settings":{"get":{"operationId":"get_api_v1_organizations_org_slug_pages_vcs_settings","tags":["organizations"],"parameters":[{"name":"org_slug","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","sandbox_regions","can_manage_sandbox_region","dedicated_outbound_ip_addresses"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"},"dedicated_outbound_ip_addresses":{"$ref":"#/components/schemas/DedicatedOutboundIpAddresses"},"can_manage_sandbox_region":{"type":"boolean"},"sandbox_regions":{"type":"array","items":{"type":"object","required":["value","label"],"properties":{"value":{"type":"string","enum":["us-was-1","us-pdx-1","eu-lon-1","eu-fra-1","auto"]},"label":{"type":"string"}}}}}}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Organization not found or Source is not enabled"},"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","is_home","disclaimer","federated_in_home","root_path"],"properties":{"id":{"type":"string","description":"Virtual repository public ID for non-Home rows; Home uses the physical repository public ID."},"slug":{"type":"string"},"name":{"type":"string"},"icon_name":{"type":"string"},"github_repository":{"type":"string","nullable":true},"sync_provider":{"type":"string","enum":["none","github","git","gitlab"]},"remote_repository":{"type":"string","nullable":true},"sync_status":{"type":"string","enum":["none","importing","syncing","failed","ready"]},"sync_error_message":{"type":"string","nullable":true},"can_retry_sync":{"type":"boolean","description":"True when the latest sync run failed and can be retried."},"can_retry_import":{"type":"boolean","description":"True when a failed client import can be requeued for CLI resume."},"import_item_id":{"type":"string","nullable":true},"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}":{"delete":{"operationId":"delete_api_v1_organizations_org_slug_repos_repo_slug_","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"},"204":{"description":"Repository deleted"},"409":{"description":"Repository mutation is busy or deletion is restricted"}},"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"],"properties":{"name":{"type":"string"},"permission_level":{"type":"string","enum":["read_only","read_write"]},"credential_purpose":{"type":"string","enum":["git_remote_helper"],"description":"Issues a revocable read-write system credential valid for one hour."},"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/prepare_chunks":{"post":{"operationId":"prepare_chunks_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"}},"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/{agent_session_id}/checkpoints/{id}/seal":{"post":{"operationId":"seal_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":"The recorded checkpoint source, after required queue admission.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["agent_checkpoint"],"properties":{"agent_checkpoint":{"$ref":"#/components/schemas/GitSealedAgentCheckpoint"}}}}}},"401":{"description":"Authentication required."},"403":{"description":"Only the session owner may seal a checkpoint."},"404":{"description":"Missing or inaccessible repository, session or checkpoint."},"422":{"description":"Malformed or all-zero Git source."},"502":{"description":"Bad gateway"},"400":{"description":"Missing or blank Git source."},"409":{"description":"Source already differs or checkpoint is no longer available."},"503":{"description":"Retry; the source may have committed before PR-link queue admission failed."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["git_commit_sha"],"properties":{"git_commit_sha":{"type":"string","pattern":"^[0-9a-fA-F]{40}$","description":"Complete nonzero original Git SHA; normalized to lowercase."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Seal a checkpoint at its original Git commit","description":"The session owner may add a Git source once to a pending or uploaded checkpoint. Repeating the same source is idempotent and retries PR-link queue admission. No archive bytes or new upload contract are required, including when the delivered archive was already pruned locally. Retained, purging or failed checkpoints cannot be sealed. This records source metadata; it does not publish a Git commit or authorize a push."}},"/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}/code_rules":{"get":{"operationId":"api_v1_code_rules","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"rule","in":"query","required":false,"description":"Slug or code_rule ID of one rule to expand inline as selected_rule","schema":{"type":"string"}}],"responses":{"200":{"description":"Code rules for the Repo","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/CodeRuleCollectionResponse"}}}},"401":{"description":"Authentication required"},"403":{"description":"Forbidden"},"404":{"description":"Repo not accessible"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List every code rule for the canonical Repo with capabilities and limits"},"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_code_rules","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":"Authentication required"},"403":{"description":"Readable Repo but the caller may not manage rules","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleError"}}}},"404":{"description":"Repo or rule not accessible"},"422":{"description":"Invalid definition, unknown revision or rule limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleError"}}}},"502":{"description":"Bad gateway"},"201":{"description":"The rule after the operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleDetailResponse"}}}},"413":{"description":"Request body over the documented limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleError"}}}},"409":{"description":"Stale expected_version or duplicate slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["definition"],"properties":{"definition":{"$ref":"#/components/schemas/CodeRuleDefinitionInput"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Create a code rule with revision 1 saved but disabled"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/code_rules/evaluations":{"post":{"operationId":"api_v1_code_rules_evaluations","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":"Advisory evaluation, including explicit incomplete coverage when disabled or unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/CodeRuleEvaluationResult"}}}},"401":{"description":"Authentication required"},"403":{"description":"Forbidden"},"404":{"description":"Repo not accessible"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"413":{"description":"Body exceeds 2 MiB"},"429":{"description":"Per-user evaluation rate limit exceeded"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/CodeRuleEvaluationInput"}}}},"security":[{"bearerAuth":[]}],"summary":"Evaluate a bounded diff against frozen active code rules without retaining source"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/code_rules/{rule}":{"get":{"operationId":"api_v1_code_rule","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"rule","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The rule after the operation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/CodeRuleDetailResponse"}}}},"401":{"description":"Authentication required"},"403":{"description":"Forbidden"},"404":{"description":"Repo or rule not accessible"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Code rule detail with exact latest and active content and recent revisions"},"patch":{"operationId":"patch_api_v1_organizations_org_slug_repos_repo_slug_code_rules_rule_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"rule","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The rule after the operation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/CodeRuleDetailResponse"}}}},"401":{"description":"Authentication required"},"403":{"description":"Readable Repo but the caller may not manage rules","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleError"}}}},"404":{"description":"Repo or rule not accessible"},"422":{"description":"Invalid definition, unknown revision or rule limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleError"}}}},"502":{"description":"Bad gateway"},"413":{"description":"Request body over the documented limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleError"}}}},"409":{"description":"Stale expected_version or duplicate slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["definition","expected_version"],"properties":{"definition":{"$ref":"#/components/schemas/CodeRuleDefinitionInput"},"expected_version":{"type":"integer"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Append a draft revision; the active revision is unchanged"},"put":{"operationId":"put_api_v1_organizations_org_slug_repos_repo_slug_code_rules_rule_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"rule","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The rule after the operation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/CodeRuleDetailResponse"}}}},"401":{"description":"Authentication required"},"403":{"description":"Readable Repo but the caller may not manage rules","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleError"}}}},"404":{"description":"Repo or rule not accessible"},"422":{"description":"Invalid definition, unknown revision or rule limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleError"}}}},"502":{"description":"Bad gateway"},"409":{"description":"Stale expected_version or duplicate slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["definition","expected_version"],"properties":{"definition":{"$ref":"#/components/schemas/CodeRuleDefinitionInput"},"expected_version":{"type":"integer"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Same as PATCH"},"delete":{"operationId":"delete_api_v1_organizations_org_slug_repos_repo_slug_code_rules_rule_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"rule","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The deleted rule identity and its canonical Repo","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/CodeRuleDeletedResponse"}}}},"401":{"description":"Authentication required"},"403":{"description":"Readable Repo but the caller may not manage rules","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleError"}}}},"404":{"description":"Repo or rule not accessible"},"422":{"description":"Invalid definition, unknown revision or rule limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleError"}}}},"502":{"description":"Bad gateway"},"409":{"description":"Stale expected_version or duplicate slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleError"}}}}},"security":[{"bearerAuth":[]}],"summary":"Delete the rule and its revisions","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["expected_version"],"properties":{"expected_version":{"type":"integer"}}}}}}}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/code_rules/{rule}/activation":{"put":{"operationId":"activation_api_v1_code_rule","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"rule","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The rule after the operation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/CodeRuleDetailResponse"}}}},"401":{"description":"Authentication required"},"403":{"description":"Readable Repo but the caller may not manage rules","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleError"}}}},"404":{"description":"Repo or rule not accessible"},"422":{"description":"Invalid definition, unknown revision or rule limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleError"}}}},"502":{"description":"Bad gateway"},"409":{"description":"Stale expected_version or duplicate slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["revision","expected_version"],"properties":{"revision":{"type":"integer"},"expected_version":{"type":"integer"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Enable an exact stored revision"},"delete":{"operationId":"delete_api_v1_organizations_org_slug_repos_repo_slug_code_rules_rule_activation","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"rule","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The rule after the operation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/CodeRuleDetailResponse"}}}},"401":{"description":"Authentication required"},"403":{"description":"Readable Repo but the caller may not manage rules","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleError"}}}},"404":{"description":"Repo or rule not accessible"},"422":{"description":"Invalid definition, unknown revision or rule limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleError"}}}},"502":{"description":"Bad gateway"},"409":{"description":"Stale expected_version or duplicate slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeRuleError"}}}}},"security":[{"bearerAuth":[]}],"summary":"Disable the rule; revisions are kept","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["expected_version"],"properties":{"expected_version":{"type":"integer"}}}}}}}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/knowledge_settings":{"get":{"operationId":"api_v1_knowledge_settings","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repository Knowledge folder settings","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["folders","configured","can_manage"],"properties":{"folders":{"type":"array","items":{"type":"string"}},"configured":{"type":"boolean"},"can_manage":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read the repository's shared Knowledge folder settings"},"patch":{"operationId":"patch_api_v1_organizations_org_slug_repos_repo_slug_knowledge_settings","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated repository Knowledge folder settings","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["folders","configured","can_manage"],"properties":{"folders":{"type":"array","items":{"type":"string"}},"configured":{"type":"boolean"},"can_manage":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["folders"],"properties":{"folders":{"type":"array","items":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Update the repository's shared Knowledge folder settings"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/pages/access":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_pages_access","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"org_slug","required":true,"schema":{"type":"string"}},{"in":"path","name":"repo_slug","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repository access page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["catalog","selected_entry","catalog_error","supports_manual_transport","tokens","tokens_error"],"properties":{"catalog":{"type":"array","items":{"$ref":"#/components/schemas/RepositoryAccessEntry"}},"selected_entry":{"oneOf":[{"$ref":"#/components/schemas/RepositoryAccessEntry"},{"type":"null"}]},"catalog_error":{"type":"string","nullable":true},"supports_manual_transport":{"type":"boolean"},"tokens":{"type":"array","items":{"$ref":"#/components/schemas/RepositoryAccessToken"}},"tokens_error":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/pages/actions":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_pages_actions","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"range","schema":{"type":"string","enum":["7d","14d","30d"]}},{"in":"query","name":"pipeline_id","schema":{"type":"string"}}],"responses":{"200":{"description":"Actions page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["analytics","default_branch","can_retry_ci","repository_id","pipelines","action_runs","error","organization_id","github_source","github_installations","github_installations_error","github_ci_repositories","github_ci_runner_pools","github_ci_error","github_runner_egress","github_ci_compatibility_reports_by_repository","github_ci_compatibility_error_by_repository"],"properties":{"analytics":{"type":"object","required":["range","sample_count","successful_count","truncated","median_seconds","p95_seconds","median_change_percent","success_rate","median_wait_seconds","daily","slow_jobs"],"properties":{"range":{"type":"string"},"sample_count":{"type":"integer"},"successful_count":{"type":"integer"},"truncated":{"type":"boolean"},"median_seconds":{"type":"number","nullable":true},"p95_seconds":{"type":"number","nullable":true},"median_change_percent":{"type":"number","nullable":true},"success_rate":{"type":"number","nullable":true},"median_wait_seconds":{"type":"number","nullable":true},"daily":{"type":"array","items":{"type":"object","required":["date","median_seconds","p95_seconds","succeeded","failed","canceled"],"properties":{"date":{"type":"string"},"median_seconds":{"type":"number","nullable":true},"p95_seconds":{"type":"number","nullable":true},"succeeded":{"type":"integer"},"failed":{"type":"integer"},"canceled":{"type":"integer"}}}},"slow_jobs":{"type":"array","items":{"type":"object","required":["name","pipeline_name","pipeline_id","run_id","run_number","sample_count","median_seconds","p95_seconds","peak_seconds","total_seconds","median_wait_seconds"],"properties":{"name":{"type":"string"},"pipeline_name":{"type":"string"},"pipeline_id":{"type":"string"},"run_id":{"type":"string"},"run_number":{"type":"integer"},"sample_count":{"type":"integer"},"median_seconds":{"type":"number"},"p95_seconds":{"type":"number"},"peak_seconds":{"type":"number"},"total_seconds":{"type":"number"},"median_wait_seconds":{"type":"number","nullable":true}}}}}},"default_branch":{"type":"string"},"can_retry_ci":{"type":"boolean"},"repository_id":{"type":"string"},"pipelines":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/CiPipeline"},{"type":"object","required":["runner_pool","runs"],"properties":{"runner_pool":{"oneOf":[{"$ref":"#/components/schemas/CiRunnerPool"},{"type":"null"}]},"runs":{"type":"array","items":{"$ref":"#/components/schemas/CiPipelineRun"}}}}]}},"action_runs":{"type":"array","items":{"type":"object","required":["pipeline","run"],"properties":{"pipeline":{"$ref":"#/components/schemas/CiPipeline"},"run":{"$ref":"#/components/schemas/CiPipelineRun"}}}},"error":{"type":"string","nullable":true},"organization_id":{"type":"string"},"github_source":{"type":"object","nullable":true,"required":["repository_owner","repository_name","github_repository_id","github_app_installation_id","default_branch"],"properties":{"repository_owner":{"type":"string"},"repository_name":{"type":"string"},"github_repository_id":{"type":"string","nullable":true},"github_app_installation_id":{"type":"string"},"default_branch":{"type":"string"}}},"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_runner_egress":{"$ref":"#/components/schemas/GithubRunnerEgress"},"github_runner_private_links":{"type":"array","items":{"$ref":"#/components/schemas/GithubRunnerPrivateLink"}},"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":["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":["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":["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/pull_request/{number}/transcripts":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_pages_pull_request_number_transcripts","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"paginated","description":"Opt in to bounded session pages. Omit to retain the legacy complete list.","schema":{"type":"boolean","default":false}},{"in":"query","name":"cursor","description":"Opaque next_cursor from a previous page for this pull request.","schema":{"type":"string"}},{"in":"query","name":"limit","description":"Maximum sessions in paginated mode.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"in":"path","name":"number","required":true,"description":"The pull request number on GitHub.","schema":{"type":"integer"}}],"responses":{"200":{"description":"Pull request agent transcripts page contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["pull_request","sessions"],"properties":{"pull_request":{"$ref":"#/components/schemas/OrganizationSessionPullRequest"},"pagination":{"type":"object","description":"Present only when paginated=true.","required":["next_cursor","has_more","limit"],"properties":{"next_cursor":{"type":"string","nullable":true},"has_more":{"type":"boolean"},"limit":{"type":"integer"}}},"sessions":{"type":"array","description":"Sessions linked to this pull request, newest first, in the Transcripts list row shape.","items":{"$ref":"#/components/schemas/OrganizationSessionSummary"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"No such pull request in this repository"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid pagination cursor or limit"}},"security":[{"bearerAuth":[]}],"summary":"Pull request agent transcripts page contract","description":"The page the Vex comment on a GitHub pull request links to: the pull request as the server last recorded it, and every agent session the server derived a link to, in the same row shape as the organization Transcripts list. A pull request with no linked session returns an empty `sessions` array rather than a 404; a number this repository has no pull request for, and one belonging to another organization, are both 404. `repo_slug` addresses the repository the way the CLI does — the backing repository, across every virtual repository synced to GitHub under it."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/pages/sync":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_pages_sync","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Git source availability and refresh capability","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["sync_targets","error"],"properties":{"sync_targets":{"type":"array","items":{"type":"object","required":["id","provider_label","remote_repository","source_branch","status","status_label","status_description","github_app_installation_id","can_sync"],"properties":{"id":{"type":"string"},"provider_label":{"type":"string"},"remote_repository":{"type":"string","nullable":true},"source_branch":{"type":"string"},"status":{"type":"string","enum":["ready","unavailable"]},"status_label":{"type":"string"},"status_description":{"type":"string"},"github_app_installation_id":{"type":"string","nullable":true},"can_sync":{"type":"boolean"}}}},"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}/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":"Physical Git repository settings snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["org","repo","organization_id","repository","can_manage_settings","default_branch","default_change_land_method","github_installations","github_installations_error","magic_merge_settings","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","mutation_lease"],"properties":{"org":{"type":"string"},"repo":{"type":"string"},"organization_id":{"type":"string"},"repository":{"$ref":"#/components/schemas/Repository"},"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},"magic_merge_settings":{"oneOf":[{"type":"object","required":["github_repository","application_mode"],"properties":{"github_repository":{"type":"string"},"application_mode":{"type":"string","enum":["off","automatic","review","command"]}}},{"type":"null"}]},"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"},"mutation_lease":{"oneOf":[{"$ref":"#/components/schemas/RepositoryMutationLease"},{"type":"null"}]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_organizations_org_slug_repos_repo_slug_settings","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 metadata updated","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["repository"],"properties":{"repository":{"$ref":"#/components/schemas/Repository"}}}}}},"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","minLength":1},"description":{"type":"string","nullable":true},"icon_name":{"type":"string"},"status":{"type":"string","enum":["active","archived"]}}}}}},"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/magic_merge":{"patch":{"operationId":"api_v1_settings_magic_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":"Repository MagicMerge mode updated","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["application_mode"],"properties":{"application_mode":{"type":"string","enum":["off","automatic","review","command"]}}}}}},"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":["application_mode"],"properties":{"application_mode":{"type":"string","enum":["off","automatic","review","command"]}}}}}},"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/RepositoryGitStats"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"503":{"description":"Git inventory is unavailable for this repository","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Physical Git object inventory and recorded history"}},"/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/RepositoryGitStats"}}}}}},"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":"Git inventory is unavailable 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 bounded scan over the repository's Git inventory, 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":"recursive","in":"query","required":false,"description":"Set false to read only root and ancestors of path. Knowledge always uses the complete index.","schema":{"type":"boolean","default":true}},{"name":"path","in":"query","required":false,"description":"Entry to reveal when recursive is false.","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/git_commit_identities":{"post":{"operationId":"api_v1_git_commit_identities","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Exact patchset identities and explicit unmatched Git commits; no native conversion","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["identities","missing_git_commit_ids"],"properties":{"identities":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/GitReviewIdentity"}},"missing_git_commit_ids":{"type":"array","maxItems":100,"items":{"type":"string","minLength":40,"maxLength":40,"pattern":"^[0-9a-f]{40}$"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Repository unavailable to the caller"},"422":{"description":"Invalid or oversized Git identity selection"},"502":{"description":"Bad gateway"},"409":{"description":"Ambiguous association or retained revision unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["git_commit_ids"],"properties":{"git_commit_ids":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"string","minLength":40,"maxLength":40,"pattern":"^[0-9a-f]{40}$"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Look up exact sealed Git review patchsets in one authorized repository"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/git_commit_identities/{id}":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_git_commit_identities_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":"Exact persisted Git patchset in the authorized physical repository","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/GitReviewIdentity"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Repository or reviewed Git revision unavailable to the caller"},"422":{"description":"Invalid Git identity"},"502":{"description":"Bad gateway"},"409":{"description":"Ambiguous association or retained revision unavailable"}},"security":[{"bearerAuth":[]}],"summary":"Resolve a sealed Git commit to its exact review identity and patchset lease"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/git_publications":{"post":{"operationId":"api_v1_git_publications","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Invalid graph or unsupported repository scope"},"502":{"description":"Bad gateway"},"201":{"description":"Receipt prepared or identical retry acknowledged; object readiness is checked separately","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitPublicationReceipt"}}}},"409":{"description":"Operation key reused with a different graph","target":null,"or mirror binding":null}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["operation_key","request"],"properties":{"operation_key":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,96}$"},"request":{"$ref":"#/components/schemas/GitPublicationRequest"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Prepare an immutable Git publication receipt"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/git_publications/{id}":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_git_publications_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":"Original Git objects, Change identities, exact parents, and target verified","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"allOf":[{"$ref":"#/components/schemas/GitPublicationReceipt"},{"type":"object","required":["revisions","expected_target_commit_id"],"properties":{"expected_target_commit_id":{"type":"string","pattern":"^[0-9a-f]{40}$"},"revisions":{"type":"array","items":{"type":"object","required":["change_id","commit_id","parent_commit_id","base_commit_id","description","title"],"properties":{"change_id":{"type":"string","pattern":"^[0-9a-f]{32}$"},"commit_id":{"type":"string","pattern":"^[0-9a-f]{40}$"},"parent_commit_id":{"type":"string","nullable":true,"pattern":"^[0-9a-f]{40}$"},"base_commit_id":{"type":"string","nullable":true,"pattern":"^[0-9a-f]{40}$"},"description":{"type":"string"},"title":{"type":"string"}}}}}}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Receipt unavailable in this repository or for this author"},"422":{"description":"Git identity","graph":null,"or repository binding is invalid":null},"502":{"description":"Bad gateway"},"202":{"description":"Receipt-owned immutable Git anchors are awaiting durable publication","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1}}}},"409":{"description":"Git target moved since receipt preparation; refresh before retrying"}},"security":[{"bearerAuth":[]}],"summary":"Verify original Git objects and durable publication anchors"}},"/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"},"202":{"description":"Git revision anchors are awaiting durable publication; no review was created","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1}}}},"201":{"description":"Created or updated change outcomes","content":{"application/json":{"schema":{"type":"object","required":["changes","requested_reviewers","removed_reviewers"],"properties":{"changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeSubmitOutcome"}},"requested_reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsResolvedReviewer"}},"removed_reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsResolvedReviewer"}},"validated_target_commit_id":{"type":"string","description":"Target commit validated during submission."},"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,"$ref":"#/components/schemas/GitPublicationSubmitRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Submit repository revisions as independent changes","description":"Upserts by stable change identity and appends a patchset only when the commit changes. Git publication receipts own their revision graph and target."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/submit_preview":{"get":{"operationId":"api_v1_submit_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":"head","in":"query","required":true,"schema":{"type":"string"}},{"name":"base","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Resolved Git revision, target, and observed review lease","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["base","base_commit_id","head_commit_id","change_id","parent_commit_id","title","description","directly_on_base","review_head_commit_id","review_patchset_number"],"properties":{"base":{"type":"string"},"base_commit_id":{"type":"string"},"head_commit_id":{"type":"string"},"change_id":{"type":"string"},"parent_commit_id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"directly_on_base":{"type":"boolean"},"review_head_commit_id":{"type":"string","nullable":true},"review_patchset_number":{"type":"integer","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Ref or commit cannot be submitted"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Preview a Git branch or commit for browser submission"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/submit_ref":{"post":{"operationId":"api_v1_submit_ref","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":"Ref or commit cannot be submitted"},"502":{"description":"Bad gateway"},"201":{"description":"Created or updated Change","content":{"application/json":{"schema":{"type":"object","required":["changes"],"properties":{"changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeSubmitOutcome"}}}}}}},"409":{"description":"Head or base moved since comparison"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["head","base","expected_head_commit_id","expected_base_commit_id","title"],"properties":{"head":{"type":"string"},"base":{"type":"string"},"expected_head_commit_id":{"type":"string"},"expected_base_commit_id":{"type":"string"},"expected_review_head_commit_id":{"type":"string","nullable":true},"expected_review_patchset_number":{"type":"integer","nullable":true},"title":{"type":"string"},"description":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Submit a Git branch or commit from the browser"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/sync":{"post":{"operationId":"api_v1_sync","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Created or updated change outcomes","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["changes","requested_reviewers","removed_reviewers"],"properties":{"changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeSubmitOutcome"}},"requested_reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsResolvedReviewer"}},"removed_reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsResolvedReviewer"}},"validated_target_commit_id":{"type":"string","description":"Target commit validated during submission."},"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"},"202":{"description":"Git revision anchors are awaiting durable publication; no review was created","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1}}}},"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/GitPublicationSubmitRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Synchronize submitted Git reviews","description":"Upserts by stable change identity and appends a patchset only when the commit changes. Git publication receipts own their revision graph and target."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{change_id}/diff":{"get":{"operationId":"api_v1_change_diff","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"change_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"base","in":"query","required":false,"schema":{"type":"string"}},{"name":"head","in":"query","required":false,"schema":{"type":"string"}},{"name":"base_patchset_number","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"head_patchset_number","in":"query","required":false,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Selected comparison, picker options, and persisted diff files","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsChangeDiff"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read one Rails-selected Change comparison"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{change_id}/tours":{"get":{"operationId":"api_v1_change_tours","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"change_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"tour_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The selected or latest Tour with retained versions and personal progress","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read the Tour page for one change"},"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_change_id_tours","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"change_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"The Tour request or patchset context is invalid","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"},"202":{"description":"The queued or reused Tour","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsTour"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourCreateRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Generate or reuse a Tour for one patchset"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{change_id}/transcript_chat":{"post":{"operationId":"api_v1_change_transcript_chat","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"change_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"A stateless answer. Accept text/event-stream for start, delta (text), done, and error (message) SSE events.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["answer","checkpoint_id","patchset_number"],"properties":{"answer":{"type":"string"},"checkpoint_id":{"type":"string"},"patchset_number":{"type":"integer"}}}},"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Invalid conversation or unavailable checkpoint context"},"502":{"description":"Bad gateway"},"429":{"description":"Too many questions"},"503":{"description":"Model provider unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["transcript_chat"],"properties":{"transcript_chat":{"type":"object","required":["checkpoint_id","messages"],"properties":{"checkpoint_id":{"type":"string"},"messages":{"type":"array","minItems":1,"maxItems":21,"items":{"type":"object","required":["role","content"],"properties":{"role":{"type":"string","enum":["user","assistant"]},"content":{"type":"string","maxLength":20000}}}}}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Ask a temporary question about an attached checkpoint"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{change_id}/transcripts":{"get":{"operationId":"api_v1_change_transcripts","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"change_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Bounded transcript metadata for the Change","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsChangeTranscripts"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List transcript rows attached to one Change"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}":{"get":{"operationId":"api_v1_change","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Change detail, canonical product path, relation chain, target state, sync preview, and landing closure","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["canonical_path","target_advanced","change","relation_chain","related_changes","previews","landing","activity","target","sync"],"properties":{"review_summary":{"type":"object","properties":{"diff":{"type":["object","null"],"required":["file_count","files","additions","deletions"],"properties":{"file_count":{"type":"integer"},"files":{"type":"array","maxItems":10,"items":{"type":"object","required":["path","change_type","additions","deletions"],"properties":{"path":{"type":"string"},"change_type":{"type":"string","enum":["added","modified","deleted","renamed"]},"additions":{"type":"integer"},"deletions":{"type":"integer"}}}},"additions":{"type":"integer"},"deletions":{"type":"integer"}}},"transcripts":{"type":["object","null"],"required":["session_count","total_tokens","tokens_partial"],"properties":{"session_count":{"type":"integer"},"total_tokens":{"type":["integer","null"]},"tokens_partial":{"type":"boolean"}}}}},"canonical_path":{"type":"string"},"target_advanced":{"type":"boolean"},"change":{"$ref":"#/components/schemas/VcsChangePage"},"relation_chain":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeRelationChainMember"}},"previews":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangePreview"}},"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"}}}}}},"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}}}}}},"503":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"security":[{"bearerAuth":[]}],"summary":"Queue synchronization of the physical GitHub review for one change","description":"Publication settings belong to the repository connection. This request does not confirm GitHub publication."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/labels":{"patch":{"operationId":"patch_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_labels","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Detailed canonical change","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["change"],"properties":{"change":{"$ref":"#/components/schemas/VcsChange"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"labels":{"type":"array","items":{"type":"string"}},"add":{"type":"array","items":{"type":"string"}},"remove":{"type":"array","items":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Curate the labels attached to a change","description":"Send `labels` to replace the manually attached set, or `add`/`remove` to adjust it. Labels derived from a `Label:` commit-message trailer are not touched here; they are reconciled on the next submit. Unknown label names are created in the organization."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/landing_hold/release":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_landing_hold_release","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/landing_requests":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_landing_requests","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Landing request created for the complete submitted-together closure","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["request"],"properties":{"request":{"$ref":"#/components/schemas/VcsChangeLandingRequest"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"},"201":{"description":"Landing request created for the complete submitted-together closure","content":{"application/json":{"schema":{"type":"object","required":["request"],"properties":{"request":{"$ref":"#/components/schemas/VcsChangeLandingRequest"}}}}}},"409":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"503":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"expected_scope_version":{"type":"string"},"override_acknowledged":{"type":"boolean"},"expected_requirement_version":{"type":"string"},"override_codes":{"type":"array","items":{"type":"string"}},"priority":{"type":"string","enum":["normal","high"],"default":"normal"},"defer_until_ready":{"type":"boolean","description":"Admit the request while approvals or checks are pending"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Request atomic landing for a change, its ancestors, and its group"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/landing_requests/{entry_id}":{"delete":{"operationId":"delete_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_landing_requests_entry_id_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"entry_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Landing request cancelled","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"},"409":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}}},"security":[{"bearerAuth":[]}],"summary":"Cancel a waiting canonical change landing request","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["expected_version"],"properties":{"expected_version":{"type":"integer","minimum":1}}}}}}}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/patchsets/{patchset_number}/diff/{fingerprint}":{"get":{"operationId":"api_v1_org_repo_change_patchset_diff","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"patchset_number","in":"path","required":true,"schema":{"type":"string"}},{"name":"fingerprint","in":"path","required":true,"schema":{"type":"string"}},{"name":"patchset_number","in":"path","required":true,"schema":{"type":"integer","minimum":1}},{"name":"fingerprint","in":"path","required":true,"description":"Opaque cache token from the patchset's `diff_path`. It is not a capability — every request is authorized like any other read of the change. A fingerprint that no longer matches still returns the current diff, but without the `immutable` directive.","schema":{"type":"string","pattern":"^[0-9a-f]{16}$"}}],"responses":{"200":{"description":"One patchset and its stored file diffs","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["patchset","files"],"properties":{"patchset":{"type":"object","required":["id","number","commit_id"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"commit_id":{"type":"string"},"parent_commit_id":{"type":"string","nullable":true},"base_commit_id":{"type":"string","nullable":true}}},"files":{"type":"array","items":{"$ref":"#/components/schemas/VcsDiffFile"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"The change or the patchset number does not exist","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read the stored diff of one patchset, with patch bodies","description":"Serves the patch text Rails persisted when the patchset was submitted, so viewing a patchset's own diff never depends on jj-backend recomputing it. The change page carries file summaries only and names this path as `diff_path` on each patchset.\nThe fingerprint segment covers everything that determines the bytes, including the diff serialization version, so a body that changes is retired by moving to a new path rather than by a cache entry expiring. A request whose fingerprint matches is therefore answered `immutable` for a year. Request the `diff_path` the change page gave you; do not construct this path."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/ready":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_ready","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Change marked ready","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["message"],"properties":{"message":{"type":"string"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Actor cannot mark this Change ready"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"409":{"description":"Change is no longer open"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Mark an open draft Change ready for review","description":"Idempotent for ready open Changes. Requires organization membership and repository access. Does not enqueue or bypass landing requirements."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/request_changes":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_request_changes","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Recorded vote. Reread the change page for its updated state.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["vote"],"properties":{"vote":{"type":"object","additionalProperties":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"message":{"type":"string","nullable":true}}}}}},"security":[{"bearerAuth":[]}],"summary":"Request changes on the current patchset of a change"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/retry_ci":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_retry_ci","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Existing retries for this request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["pipeline_runs"],"properties":{"pipeline_runs":{"type":"array","items":{"$ref":"#/components/schemas/CiPipelineRun"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"},"201":{"description":"Existing retries for this request","content":{"application/json":{"schema":{"type":"object","required":["pipeline_runs"],"properties":{"pipeline_runs":{"type":"array","items":{"$ref":"#/components/schemas/CiPipelineRun"}}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string","minLength":1,"maxLength":100}}}}}},"security":[{"bearerAuth":[]}],"summary":"Retry every failed, canceled, or blocked current CI run for a change"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/reviewers":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_reviewers","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current requested reviewers","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["reviewers"],"properties":{"reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsResolvedReviewer"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Change was not found in this repository","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List the reviewers requested for a change"},"patch":{"operationId":"patch_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_reviewers","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current requested reviewers and the assignments changed by this request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["reviewers","requested_reviewers","removed_reviewers"],"properties":{"reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsResolvedReviewer"}},"requested_reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsResolvedReviewer"}},"removed_reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsResolvedReviewer"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Change or reviewer was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"},"409":{"description":"The reviewer name is ambiguous","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string"},"code":{"type":"string","enum":["reviewer_ambiguous"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"add":{"type":"array","items":{"type":"string"}},"remove":{"type":"array","items":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Add or remove requested reviewers for a change","description":"Names and emails use the same organization member resolution as submit. Additions preserve existing reviewer requests. Removals affect only the named reviewers. Any organization member who can read the change can use this endpoint."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/state":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_state","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Uncached accepted revision metadata without backend or review-page reads","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["change"],"properties":{"change":{"type":"object","required":["number","reference","status","head_commit_id"],"properties":{"number":{"type":"integer"},"reference":{"type":"string"},"status":{"type":"string","enum":["open","landed","abandoned","folded"]},"head_commit_id":{"type":["string","null"]}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read authoritative Change state for submission checks"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/tours/context_export":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_tours_context_export","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The frozen input manifest and scrubbed source text","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourContextExport"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"The patchset cannot supply the minimum Tour context","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourContextPreviewRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Read the exact frozen context for a local Tour run"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/tours/context_preview":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_tours_context_preview","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The bounded context inventory without source bodies","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourContextPreview"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"The patchset cannot supply the minimum Tour context","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourContextPreviewRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Preview the frozen context for a Tour"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/tours/validate":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_tours_validate","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The validation result, including any manifest errors","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourValidationResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"The context is unavailable or its digest does not match","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourValidationRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Validate a Tour manifest against its exact frozen context"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/tours/{tour_id}/completion":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_tours_tour_id_completion","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"tour_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The ready Tour, or the failed Tour with validation errors","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourCompletionResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"503":{"description":"The exact Tour run capability is not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsTourUnavailable"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourCompletionRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Complete one pending Tour from its detached runner"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/tours/{tour_id}/evidence":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_tours_tour_id_evidence","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"tour_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The idempotently registered source","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourSource"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"503":{"description":"The evidence registry or exact Tour run capability is not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsTourUnavailable"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourEvidenceRegistrationRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Register verified repository evidence for one pending Tour"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/tours/{tour_id}/failure":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_tours_tour_id_failure","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"tour_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The failed Tour","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTour"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"503":{"description":"The exact Tour run capability is not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsTourUnavailable"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourFailureRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Fail one pending Tour from its detached runner"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/changes/{id}/tours/{tour_id}/viewer_state":{"patch":{"operationId":"patch_api_v1_organizations_org_slug_repos_repo_slug_vcs_changes_id_tours_tour_id_viewer_state","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"tour_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The current user's saved progress","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourViewerState"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTourViewerState"}}}},"security":[{"bearerAuth":[]}],"summary":"Update personal progress through a ready Tour"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/commit_file":{"post":{"operationId":"api_v1_org_repo_vcs_commit_file","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"402":{"description":"The organization's billing limit refuses this usage; see `error.upgrade_path`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingLimitExceededError"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{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_policy":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_policy","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current policy and GitHub-primary eligibility","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["policy"],"properties":{"policy":{"type":"object","required":["repository_id","merge_github_repository_connection_id","github_connections","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","repository_queue_concurrency","github_merge_gate","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"repository_id":{"type":"string"},"merge_github_repository_connection_id":{"type":"string","nullable":true},"github_connections":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"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},"repository_queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"github_merge_gate":{"type":"string","enum":["branch_protection","vex_checks"]},"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_organizations_org_slug_repos_repo_slug_vcs_merge_policy","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 policy","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["policy"],"properties":{"policy":{"type":"object","required":["repository_id","merge_github_repository_connection_id","github_connections","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","repository_queue_concurrency","github_merge_gate","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"repository_id":{"type":"string"},"merge_github_repository_connection_id":{"type":"string","nullable":true},"github_connections":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"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},"repository_queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"github_merge_gate":{"type":"string","enum":["branch_protection","vex_checks"]},"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},"github_merge_gate":{"type":"string","enum":["branch_protection","vex_checks"]},"auto_land_enabled":{"type":"boolean"},"merge_github_repository_connection_id":{"type":"string","nullable":true}}}}}},"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/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","skip_ci_enabled","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},"skip_ci_enabled":{"type":"boolean"},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_skipped":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_emergency_land":{"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":["repository_id","merge_github_repository_connection_id","github_connections","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","repository_queue_concurrency","github_merge_gate","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"repository_id":{"type":"string"},"merge_github_repository_connection_id":{"type":"string","nullable":true},"github_connections":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"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},"repository_queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"github_merge_gate":{"type":"string","enum":["branch_protection","vex_checks"]},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"503":{"description":"Merge queue rollout flag is disabled"}},"security":[{"bearerAuth":[]}],"summary":"Read a merge queue for the queue page","description":"The queue page's one request. `target` is optional — omitted, the repository's authoritative trunk is resolved server-side; the snapshot's `queue.target_branch` echoes the resolution. Also carries `target_branches` for the target picker."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"One-based page of terminal queue outcomes. Active entries are always included.","schema":{"type":"integer","minimum":1}},{"name":"window_days","in":"query","required":false,"description":"Queue analytics window. Unsupported values use the 14-day default.","schema":{"type":"integer","enum":[7,14,30],"default":14}},{"name":"entry_id","in":"query","required":false,"description":"Entry public id to resolve directly. Repeat or comma-separate for several.","schema":{"type":"string"}},{"name":"change","in":"query","required":false,"description":"Change number (`42` / `#42`) or public id whose entries should be resolved directly. Repeat or comma-separate for several.","schema":{"type":"string"}}],"responses":{"200":{"description":"Merge queue snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","skip_ci_enabled","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},"skip_ci_enabled":{"type":"boolean"},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_skipped":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_emergency_land":{"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":["repository_id","merge_github_repository_connection_id","github_connections","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","repository_queue_concurrency","github_merge_gate","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"repository_id":{"type":"string"},"merge_github_repository_connection_id":{"type":"string","nullable":true},"github_connections":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"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},"repository_queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"github_merge_gate":{"type":"string","enum":["branch_protection","vex_checks"]},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"503":{"description":"Merge queue rollout flag is disabled"}},"security":[{"bearerAuth":[]}],"summary":"Read a target branch merge queue","description":"Returns active Change and plain-GitHub-PR entries plus one page of recent terminal outcomes with the current authority policy. Before the first mutation, the queue is an empty read-only snapshot and its id is null. Name an entry or change to have it resolved directly regardless of the paged history."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}/concurrency":{"patch":{"operationId":"patch_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_concurrency","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated queue snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","skip_ci_enabled","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},"skip_ci_enabled":{"type":"boolean"},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_skipped":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_emergency_land":{"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":["repository_id","merge_github_repository_connection_id","github_connections","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","repository_queue_concurrency","github_merge_gate","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"repository_id":{"type":"string"},"merge_github_repository_connection_id":{"type":"string","nullable":true},"github_connections":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"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},"repository_queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"github_merge_gate":{"type":"string","enum":["branch_protection","vex_checks"]},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not allowed to perform this queue mutation"},"404":{"description":"Not found"},"422":{"description":"The requested state transition is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"The queue entry version changed"},"503":{"description":"Merge queue rollout flag is disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_version","concurrency"],"properties":{"expected_version":{"type":"integer"},"concurrency":{"type":"integer","minimum":1,"maximum":20}}}}}},"security":[{"bearerAuth":[]}],"summary":"Set native merge queue candidate concurrency"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}/entries":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_entries","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Queue snapshot after idempotent enqueue","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","skip_ci_enabled","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},"skip_ci_enabled":{"type":"boolean"},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_skipped":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_emergency_land":{"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":["repository_id","merge_github_repository_connection_id","github_connections","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","repository_queue_concurrency","github_merge_gate","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"repository_id":{"type":"string"},"merge_github_repository_connection_id":{"type":"string","nullable":true},"github_connections":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"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},"repository_queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"github_merge_gate":{"type":"string","enum":["branch_protection","vex_checks"]},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"The entry is not eligible for this queue"},"502":{"description":"Bad gateway"},"201":{"description":"Queue snapshot after enqueue","content":{"application/json":{"schema":{"type":"object","required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","skip_ci_enabled","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},"skip_ci_enabled":{"type":"boolean"},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_skipped":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_emergency_land":{"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":["repository_id","merge_github_repository_connection_id","github_connections","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","repository_queue_concurrency","github_merge_gate","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"repository_id":{"type":"string"},"merge_github_repository_connection_id":{"type":"string","nullable":true},"github_connections":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"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},"repository_queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"github_merge_gate":{"type":"string","enum":["branch_protection","vex_checks"]},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"409":{"description":"The queue or authority version changed"},"503":{"description":"Merge queue rollout flag is disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["kind","idempotency_key","expected_version"],"properties":{"kind":{"type":"string","enum":["change","github_pr"]},"change_id":{"type":"string","nullable":true},"github_pr_number":{"type":"integer","minimum":1,"nullable":true},"idempotency_key":{"type":"string"},"expected_version":{"type":"integer","minimum":1},"expected_target_commit_id":{"type":"string","nullable":true},"expected_target_version":{"type":"integer","nullable":true},"when_ready":{"type":"boolean","nullable":true},"priority":{"type":"string","enum":["normal","high"],"default":"normal"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Enqueue a Vex Change or plain GitHub pull request","description":"Change enqueue is atomic over its submitted-together set. Plain GitHub pull requests are accepted only under GitHub-primary authority."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}/entries/{id}":{"delete":{"operationId":"delete_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_entries_id_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated queue snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","skip_ci_enabled","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},"skip_ci_enabled":{"type":"boolean"},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_skipped":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_emergency_land":{"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":["repository_id","merge_github_repository_connection_id","github_connections","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","repository_queue_concurrency","github_merge_gate","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"repository_id":{"type":"string"},"merge_github_repository_connection_id":{"type":"string","nullable":true},"github_connections":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"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},"repository_queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"github_merge_gate":{"type":"string","enum":["branch_protection","vex_checks"]},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not allowed to perform this queue mutation"},"404":{"description":"Not found"},"422":{"description":"The requested state transition is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"The queue entry version changed"},"503":{"description":"Merge queue rollout flag is disabled"}},"security":[{"bearerAuth":[]}],"summary":"Cancel an active merge-queue entry","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["expected_version"],"properties":{"expected_version":{"type":"integer","minimum":1}}}}}}}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}/entries/{id}/merge":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_entries_id_merge","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated queue snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","skip_ci_enabled","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},"skip_ci_enabled":{"type":"boolean"},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_skipped":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_emergency_land":{"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":["repository_id","merge_github_repository_connection_id","github_connections","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","repository_queue_concurrency","github_merge_gate","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"repository_id":{"type":"string"},"merge_github_repository_connection_id":{"type":"string","nullable":true},"github_connections":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"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},"repository_queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"github_merge_gate":{"type":"string","enum":["branch_protection","vex_checks"]},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not allowed to perform this queue mutation"},"404":{"description":"Not found"},"422":{"description":"The requested state transition is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"The queue entry version changed"},"503":{"description":"Merge queue rollout flag is disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_version"],"properties":{"expected_version":{"type":"integer","minimum":1}}}}}},"security":[{"bearerAuth":[]}],"summary":"Merge the ready entry at the front of the queue"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}/entries/{id}/promote":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_entries_id_promote","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated queue snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","skip_ci_enabled","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},"skip_ci_enabled":{"type":"boolean"},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_skipped":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_emergency_land":{"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":["repository_id","merge_github_repository_connection_id","github_connections","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","repository_queue_concurrency","github_merge_gate","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"repository_id":{"type":"string"},"merge_github_repository_connection_id":{"type":"string","nullable":true},"github_connections":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"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},"repository_queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"github_merge_gate":{"type":"string","enum":["branch_protection","vex_checks"]},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not allowed to perform this queue mutation"},"404":{"description":"Not found"},"422":{"description":"The requested state transition is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"The queue entry version changed"},"503":{"description":"Merge queue rollout flag is disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_version"],"properties":{"expected_version":{"type":"integer","minimum":1}}}}}},"security":[{"bearerAuth":[]}],"summary":"Promote an active entry to the front of the queue"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}/entries/{id}/retry":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_entries_id_retry","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated queue snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","skip_ci_enabled","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},"skip_ci_enabled":{"type":"boolean"},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_skipped":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_emergency_land":{"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":["repository_id","merge_github_repository_connection_id","github_connections","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","repository_queue_concurrency","github_merge_gate","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"repository_id":{"type":"string"},"merge_github_repository_connection_id":{"type":"string","nullable":true},"github_connections":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"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},"repository_queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"github_merge_gate":{"type":"string","enum":["branch_protection","vex_checks"]},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not allowed to perform this queue mutation"},"404":{"description":"Not found"},"422":{"description":"The requested state transition is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"The queue entry version changed"},"503":{"description":"Merge queue rollout flag is disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_version"],"properties":{"expected_version":{"type":"integer","minimum":1}}}}}},"security":[{"bearerAuth":[]}],"summary":"Retry an ejected or needs-attention entry"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}/entries/{id}/skip_ci":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_entries_id_skip_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":"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","skip_ci_enabled","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},"skip_ci_enabled":{"type":"boolean"},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_skipped":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_emergency_land":{"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":["repository_id","merge_github_repository_connection_id","github_connections","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","repository_queue_concurrency","github_merge_gate","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"repository_id":{"type":"string"},"merge_github_repository_connection_id":{"type":"string","nullable":true},"github_connections":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"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},"repository_queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"github_merge_gate":{"type":"string","enum":["branch_protection","vex_checks"]},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not allowed to perform this queue mutation"},"404":{"description":"Not found"},"422":{"description":"The requested state transition is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"The queue entry version changed"},"503":{"description":"Merge queue rollout flag is disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_version"],"properties":{"expected_version":{"type":"integer","minimum":1}}}}}},"security":[{"bearerAuth":[]}],"summary":"Waive CI for one queued native entry","description":"Administrators only. Requires the queue Skip CI setting and bookmark protection bypass permission. Keeps queue order and review requirements. The waiver is audited and invalidated if its scope or authorization changes."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}/entries/{id}/validate_full":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_entries_id_validate_full","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated queue snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","skip_ci_enabled","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},"skip_ci_enabled":{"type":"boolean"},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_skipped":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_emergency_land":{"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":["repository_id","merge_github_repository_connection_id","github_connections","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","repository_queue_concurrency","github_merge_gate","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"repository_id":{"type":"string"},"merge_github_repository_connection_id":{"type":"string","nullable":true},"github_connections":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"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},"repository_queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"github_merge_gate":{"type":"string","enum":["branch_protection","vex_checks"]},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not allowed to perform this queue mutation"},"404":{"description":"Not found"},"422":{"description":"The requested state transition is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"The queue entry version changed"},"503":{"description":"Merge queue rollout flag is disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_version"],"properties":{"expected_version":{"type":"integer","minimum":1}}}}}},"security":[{"bearerAuth":[]}],"summary":"Request fresh full CI for an active native top-only entry","description":"Administrators only. Preserves order and approvals, invalidates previous candidate validation and dependent followers, and binds full workflow execution to a fresh request identity. Rejects entries already publishing or terminal. Applies through subsequent candidate rebuilds of this entry."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}/pause":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_pause","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated queue snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","skip_ci_enabled","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},"skip_ci_enabled":{"type":"boolean"},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_skipped":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_emergency_land":{"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":["repository_id","merge_github_repository_connection_id","github_connections","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","repository_queue_concurrency","github_merge_gate","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"repository_id":{"type":"string"},"merge_github_repository_connection_id":{"type":"string","nullable":true},"github_connections":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"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},"repository_queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"github_merge_gate":{"type":"string","enum":["branch_protection","vex_checks"]},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not allowed to perform this queue mutation"},"404":{"description":"Not found"},"422":{"description":"The requested state transition is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"The queue entry version changed"},"503":{"description":"Merge queue rollout flag is disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_version"],"properties":{"expected_version":{"type":"integer","minimum":1}}}}}},"security":[{"bearerAuth":[]}],"summary":"Pause queue validation and merging without discarding entries"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}/resume":{"post":{"operationId":"post_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_resume","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"target","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated queue snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["queue","policy"],"properties":{"queue":{"type":"object","required":["id","target_branch","state","state_label","state_version","merge_authority","merge_authority_version","merge_policy_version","validation_mode","concurrency","skip_ci_enabled","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},"skip_ci_enabled":{"type":"boolean"},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_skipped":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_emergency_land":{"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":["repository_id","merge_github_repository_connection_id","github_connections","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","repository_queue_concurrency","github_merge_gate","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"repository_id":{"type":"string"},"merge_github_repository_connection_id":{"type":"string","nullable":true},"github_connections":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"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},"repository_queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"github_merge_gate":{"type":"string","enum":["branch_protection","vex_checks"]},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not allowed to perform this queue mutation"},"404":{"description":"Not found"},"422":{"description":"The requested state transition is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"The queue entry version changed"},"503":{"description":"Merge queue rollout flag is disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_version"],"properties":{"expected_version":{"type":"integer","minimum":1}}}}}},"security":[{"bearerAuth":[]}],"summary":"Resume a paused merge queue"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/merge_queues/{target}/skip_ci":{"patch":{"operationId":"patch_api_v1_organizations_org_slug_repos_repo_slug_vcs_merge_queues_target_skip_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":"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","skip_ci_enabled","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},"skip_ci_enabled":{"type":"boolean"},"active_entry_count":{"type":"integer","minimum":0},"capabilities":{"type":"object","required":["can_enqueue","can_pause","can_resume","can_promote","can_retry","can_merge"],"properties":{"can_enqueue":{"type":"boolean"},"can_pause":{"type":"boolean"},"can_resume":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_merge":{"type":"boolean"}}},"entries":{"type":"array","items":{"type":"object","required":["id","kind","state","state_label","phase","position","queue_position","title","author","enqueued_by","stack","checks_target","speculation","eta","checks_status","recovery","version","merge_when_ready","recovery_count","processing_checkpoint","started_at","completed_at","queue_time_ms","queue_time_label","ci_time_ms","ci_time_label","outcome","outcome_label","capabilities","members"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["change","github_pr"]},"state":{"type":"string","enum":["queued","validating","ready","merging","merged","ejected","cancelled","needs_attention"]},"state_label":{"type":"string","description":"What this state is called in the product. Landing is the product word, so the client renders this rather than title-casing the machine state."},"phase":{"type":"string","enum":["active","terminal"],"description":"Server-owned grouping of the entry state machine. Active entries belong in the live queue view; terminal entries belong in outcome history."},"position":{"type":"integer","minimum":1},"queue_position":{"type":"integer","minimum":1,"nullable":true},"change_id":{"type":"string","nullable":true},"change_number":{"type":"integer","nullable":true},"change_reference":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"enqueued_by":{"type":"object","nullable":true,"required":["id","email","name","picture_url"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"stack":{"type":"object","nullable":true,"required":["code","name","reference","member_count"],"properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true},"reference":{"type":"string"},"member_count":{"type":"integer","minimum":0}}},"github_pr_number":{"type":"integer","nullable":true},"selected_count":{"type":"integer","nullable":true},"selected_count_label":{"type":"string","nullable":true},"change_generation":{"type":"integer","nullable":true},"candidate_ref":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"checks_target":{"type":"object","nullable":true,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["commit"]},"value":{"type":"string"}}},"batch":{"type":"object","nullable":true,"description":"Latest durable execution batch for this entry. Current identifies shared candidate validation; older released attempts remain diagnostic history.","required":["id","current","state","status_label","reason","candidate_sha","scopes"],"properties":{"id":{"type":"string"},"current":{"type":"boolean"},"state":{"type":"string"},"status_label":{"type":"string"},"reason":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"scopes":{"type":"array","maxItems":4,"items":{"type":"object","required":["entry_id","changes"],"properties":{"entry_id":{"type":"string"},"changes":{"type":"array","maxItems":12,"items":{"type":"object","required":["id","number","reference","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string"},"title":{"type":"string"}}}}}}}}},"full_ci_requested":{"type":"boolean"},"ci_skipped":{"type":"boolean"},"ci_impact":{"type":"object","nullable":true,"description":"Persisted candidate CI selection, not a claim that checks passed. Null when no impact receipt exists.","required":["status","summary","mode","reason","base_sha","candidate_sha","digest","changed_path_count","workflows","affected_components","suite_ids"],"properties":{"status":{"type":"string","enum":["current","stale"]},"summary":{"type":"string"},"mode":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"candidate_sha":{"type":"string","nullable":true},"digest":{"type":"string","nullable":true},"changed_path_count":{"type":"integer","minimum":0,"nullable":true},"affected_components":{"type":"array","items":{"type":"string"}},"suite_ids":{"type":"array","items":{"type":"string"}},"workflows":{"type":"array","items":{"type":"object","required":["path","selected","scheduled"],"properties":{"path":{"type":"string"},"selected":{"type":"boolean"},"scheduled":{"type":"boolean"}}}}}},"speculation":{"type":"object","nullable":true,"required":["kind","target_sha","base_ref","base_sha","candidate_ref","candidate_sha","prefix_fingerprint","build_duration_ms","ahead_count","cleanup_status"],"properties":{"kind":{"type":"string","enum":["exact_target","predicted_trunk"]},"target_sha":{"type":"string"},"base_ref":{"type":"string","nullable":true},"base_sha":{"type":"string"},"candidate_ref":{"type":"string"},"candidate_sha":{"type":"string"},"prefix_fingerprint":{"type":"string"},"build_duration_ms":{"type":"integer","minimum":0,"nullable":true},"ahead_count":{"type":"integer","minimum":0},"cleanup_status":{"type":"string","enum":["pending","cleaned","failed","not_required"]}}},"eta":{"type":"object","required":["status","target","label","detail","in_progress","reason","remaining_ms","remaining_label"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"target":{"type":"string","enum":["readiness","landing"],"description":"What the estimate is about. Readiness is validation finishing; landing is the merge itself, which is observed rather than predicted."},"label":{"type":"string","description":"The headline for this estimate, e.g. \"Ready now\", \"~28s to ready\", \"Landing now\"."},"detail":{"type":"string","description":"The sentence behind the headline, including the caveat that a readiness estimate is not a landing estimate."},"in_progress":{"type":"boolean","description":"The queue is acting on this entry right now, so the client shows activity rather than a countdown."},"reason":{"type":"string"},"remaining_ms":{"type":"integer","minimum":0,"nullable":true},"remaining_label":{"type":"string","nullable":true}}},"checks_status":{"type":"string","enum":["pending","passing","failing","stale","missing"]},"recovery":{"nullable":true,"type":"object","description":"Present on a stopped entry. Rails owns the wording; the client renders this rather than the raw ejection_reason, and uses checks_target to open the candidate's checks.","required":["kind","summary","next_step","action_required_by","action_kind"],"properties":{"kind":{"type":"string","enum":["checks_failed","landing_conflict","github_state_changed","github_access_problem","queue_policy_changed","merge_outcome_unknown","unknown"]},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]}}},"ejection_reason":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"version":{"type":"integer","minimum":1},"merge_when_ready":{"type":"boolean"},"priority":{"type":"string","enum":["normal","high"]},"recovery_count":{"type":"integer","minimum":0},"processing_checkpoint":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"started_at_label":{"type":"string","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"completed_at_label":{"type":"string","nullable":true},"queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"queue_time_label":{"type":"string","nullable":true},"ci_time_ms":{"type":"integer","minimum":0},"ci_time_label":{"type":"string"},"outcome":{"type":"string","nullable":true,"enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"outcome_label":{"type":"string","nullable":true,"description":"The same wording the analytics breakdown gives this outcome, so one entry and the legend cannot disagree."},"capabilities":{"type":"object","required":["can_cancel","can_promote","can_retry","can_merge"],"properties":{"can_cancel":{"type":"boolean"},"can_promote":{"type":"boolean"},"can_retry":{"type":"boolean"},"can_validate_full":{"type":"boolean"},"can_emergency_land":{"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":["repository_id","merge_github_repository_connection_id","github_connections","merge_authority","merge_authority_version","merge_policy_version","queue_validation_mode","queue_concurrency","repository_queue_concurrency","github_merge_gate","auto_land_enabled","github_primary_eligible","switch_blockers"],"properties":{"repository_id":{"type":"string"},"merge_github_repository_connection_id":{"type":"string","nullable":true},"github_connections":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"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},"repository_queue_concurrency":{"type":"integer","minimum":1,"maximum":20},"queue_concurrency_label":{"type":"string"},"github_merge_gate":{"type":"string","enum":["branch_protection","vex_checks"]},"auto_land_enabled":{"type":"boolean"},"github_primary_eligible":{"type":"boolean"},"switch_blockers":{"type":"array","items":{"type":"string"}}}},"analytics":{"type":"object","description":"Queue performance for the reporting window. Present on queue reads only — mutation responses omit it rather than pay for a full window scan.","required":["window_days","starts_at","ends_at","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","queue_time_change_percent","average_ci_time_ms","average_ci_time_label","ci_time_change_percent","average_outside_ci_time_ms","average_outside_ci_time_label","peak_queue_time_ms","peak_queue_time_label","outcomes","daily"],"properties":{"health":{"type":"object","required":["source","starts_at","ends_at","observed_count","success_rate","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable","failures","daily"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"observed_count":{"type":"integer"},"success_rate":{"type":"number","nullable":true},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0},"failures":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}}}},"daily":{"type":"array","items":{"type":"object","required":["date","landed","ejected","cancelled","needs_attention","error","retried","rebuilt","recovered","magic_merged","conflict","recoverable"],"properties":{"date":{"type":"string","format":"date"},"landed":{"type":"integer","minimum":0},"ejected":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"needs_attention":{"type":"integer","minimum":0},"error":{"type":"integer","minimum":0},"retried":{"type":"integer","minimum":0},"rebuilt":{"type":"integer","minimum":0},"recovered":{"type":"integer","minimum":0},"magic_merged":{"type":"integer","minimum":0},"conflict":{"type":"integer","minimum":0},"recoverable":{"type":"integer","minimum":0}}}}}},"window_days":{"type":"integer","enum":[7,14,30]},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"queue_time_change_percent":{"type":"integer","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"ci_time_change_percent":{"type":"integer","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true,"description":"Queue time not accounted for by CI — waiting behind earlier entries, plus the landing itself."},"average_outside_ci_time_label":{"type":"string","nullable":true},"peak_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"peak_queue_time_label":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"object","required":["key","label","count"],"properties":{"key":{"type":"string","enum":["merged","ci_failed","conflict","cancelled","other_failure"]},"label":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"daily":{"type":"array","items":{"type":"object","required":["date","label","completed_count","merged_count","average_queue_time_ms","average_queue_time_label","average_ci_time_ms","average_ci_time_label","average_outside_ci_time_ms","average_outside_ci_time_label"],"properties":{"date":{"type":"string","format":"date"},"label":{"type":"string"},"completed_count":{"type":"integer","minimum":0},"merged_count":{"type":"integer","minimum":0},"average_queue_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_queue_time_label":{"type":"string","nullable":true},"average_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_ci_time_label":{"type":"string","nullable":true},"average_outside_ci_time_ms":{"type":"integer","minimum":0,"nullable":true},"average_outside_ci_time_label":{"type":"string","nullable":true}}}}}},"target_branches":{"type":"array","items":{"type":"string"},"description":"Bookmark names for the target picker. Present only on the queue-page read (`GET /vcs/merge_queues`); mutation snapshots omit it. Empty while jj-backend is degraded."}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not allowed to perform this queue mutation"},"404":{"description":"Not found"},"422":{"description":"The requested state transition is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"The queue entry version changed"},"503":{"description":"Merge queue rollout flag is disabled"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["expected_version","enabled"],"properties":{"expected_version":{"type":"integer","minimum":1},"enabled":{"type":"boolean"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Enable or disable per-entry CI waivers for this queue","description":"Administrators only. Disabling prevents new waivers; already approved entries retain their audited waiver."}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/stacks":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_stacks","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Active stacks with their member changes ordered from tip to root","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["stacks"],"properties":{"stacks":{"type":"array","items":{"$ref":"#/components/schemas/VcsStack"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List active graph-derived stacks in one repository"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/stacks/{code}":{"get":{"operationId":"get_api_v1_organizations_org_slug_repos_repo_slug_vcs_stacks_code_","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"code","in":"path","required":true,"schema":{"type":"string"}},{"name":"code","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9]{4}$"}}],"responses":{"200":{"description":"Active stack with member changes ordered from tip to root","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["stack"],"properties":{"stack":{"$ref":"#/components/schemas/VcsStack"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read an active graph-derived stack by durable code"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/stacks/{code}/name":{"patch":{"operationId":"patch_api_v1_organizations_org_slug_repos_repo_slug_vcs_stacks_code_name","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"code","in":"path","required":true,"schema":{"type":"string"}},{"name":"code","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9]{4}$"}}],"responses":{"200":{"description":"The renamed active stack","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["stack"],"properties":{"stack":{"$ref":"#/components/schemas/VcsStack"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Change submission was invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VcsChangeError"}}}},"502":{"description":"Bad gateway"},"409":{"description":"The alias collides with a bookmark, another stack, or a concurrent alias update","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string"},"code":{"type":"string","enum":["bookmark_taken","stack_name_taken","concurrent_update","stack_archived"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["name"],"properties":{"name":{"type":"string","nullable":true}}}}}},"security":[{"bearerAuth":[]}],"summary":"Set or clear a stack's human bookmark alias"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/tree":{"get":{"operationId":"api_v1_org_repo_vcs_tree","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"ref","in":"query","required":true,"schema":{"type":"string"}},{"name":"path","in":"query","schema":{"type":"string","default":""}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Tree entries at path (with per-entry last commit and README)"}},"/api/v1/organizations/{org_slug}/repos/{repo_slug}/vcs/trunk_tip":{"get":{"operationId":"api_v1_org_repo_vcs_trunk_tip","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Trunk tip summary","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VcsTrunkTipResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Latest trunk commit, loaded independently of the browse tree/branches so the browse header strip can stream in without blocking the rest of the page.\n"}},"/api/v1/organizations/{org_slug}/transcripts/search":{"post":{"operationId":"api_v1_transcripts_search","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"org_slug","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Bounded ranked session window and indexing coverage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/TranscriptSearchResult"}}}},"401":{"description":"Authentication required"},"403":{"description":"Forbidden"},"404":{"description":"Missing or inaccessible scope"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid request"},"409":{"description":"Stale cursor"},"429":{"description":"Search quota exceeded"},"503":{"description":"Dependency unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/TranscriptSearchRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Search retained user and assistant transcript messages"}},"/api/v1/organizations/{org_slug}/workspace_activity/notifications/{id}/dismissal":{"patch":{"operationId":"patch_api_v1_organizations_org_slug_workspace_activity_notifications_id_dismissal","tags":["organizations"],"parameters":[{"name":"org_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The updated Workspace Activity page after the dismissal","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/WorkspaceActivityPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections":{"get":{"operationId":"api_v1_organization_agent_connections","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Connection response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"connections":{"type":"array","items":{"$ref":"#/components/schemas/AgentConnectionRecord"}},"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"catalog":{"type":"array","items":{"$ref":"#/components/schemas/AgentIntegrationManifest"}},"provider_triggers_enabled":{"type":"boolean"},"can_manage_safety":{"type":"boolean"},"custody_enabled":{"type":"boolean"}},"required":["connections","pagination","catalog","provider_triggers_enabled","custody_enabled"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Connection owner access required"},"404":{"description":"Connection or feature not found"},"422":{"description":"Invalid connection input"},"502":{"description":"Bad gateway"},"503":{"description":"Connection provider unavailable"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_organization_id_agent_connections","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"}},"required":["connection"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Connection owner access required"},"404":{"description":"Connection or feature not found"},"422":{"description":"Invalid connection input"},"502":{"description":"Bad gateway"},"503":{"description":"Connection provider unavailable"},"201":{"description":"Connection response","content":{"application/json":{"schema":{"type":"object","properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"}},"required":["connection"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"toolkit":{"type":"string","enum":["slack","gmail","notion","linear","github","granola_mcp","posthog","discordbot","googlecalendar","googledrive","googlesheets","outlook","jira"]},"name":{"type":"string","minLength":1,"maxLength":100}},"required":["toolkit","name"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/safety_controls":{"get":{"operationId":"safety_controls_api_v1_organization_agent_connections","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Administrator safety metadata only","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["connections","pagination","custody_enabled"],"properties":{"connections":{"type":"array","items":{"$ref":"#/components/schemas/AgentConnectionRecord"}},"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"custody_enabled":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{agent_connection_id}/trigger_subscriptions":{"get":{"operationId":"api_v1_organization_agent_connection_trigger_subscriptions","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_connection_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Owner subscription response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"subscriptions":{"type":"array","items":{"$ref":"#/components/schemas/AgentTriggerSubscriptionRecord"}},"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"catalog":{"type":"array","items":{"$ref":"#/components/schemas/AgentTriggerDefinition"}},"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"},"lifecycle_available":{"type":"boolean"},"health":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AgentTriggerSubscriptionHealth"}}},"required":["subscriptions","pagination","catalog","connection","lifecycle_available","health"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Owner access required"},"404":{"description":"Connection, subscription or feature not found"},"422":{"description":"Invalid subscription input"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_organization_id_agent_connections_agent_connection_id_trigger_subscriptions","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_connection_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Authentication required"},"403":{"description":"Owner access required"},"404":{"description":"Connection, subscription or feature not found"},"422":{"description":"Invalid subscription input"},"502":{"description":"Bad gateway"},"201":{"description":"Owner subscription response","content":{"application/json":{"schema":{"type":"object","properties":{"subscription":{"$ref":"#/components/schemas/AgentTriggerSubscriptionRecord"}},"required":["subscription"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"trigger_slug":{"type":"string"},"configuration":{"type":"object","additionalProperties":true}},"required":["trigger_slug","configuration"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{agent_connection_id}/trigger_subscriptions/{id}":{"patch":{"operationId":"api_v1_organization_agent_connection_trigger_subscription","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_connection_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Owner subscription response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"subscription":{"$ref":"#/components/schemas/AgentTriggerSubscriptionRecord"}},"required":["subscription"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Owner access required"},"404":{"description":"Connection, subscription or feature not found"},"422":{"description":"Invalid subscription input"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"}},"required":["enabled"]}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_agent_connections_agent_connection_id_trigger_subscriptions_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_connection_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Owner subscription response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"subscription":{"$ref":"#/components/schemas/AgentTriggerSubscriptionRecord"}},"required":["subscription"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Owner access required"},"404":{"description":"Connection, subscription or feature not found"},"422":{"description":"Invalid subscription input"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"}},"required":["enabled"]}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_organizations_organization_id_agent_connections_agent_connection_id_trigger_subscriptions_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_connection_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Owner subscription response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"subscription":{"$ref":"#/components/schemas/AgentTriggerSubscriptionRecord"}},"required":["subscription"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Owner access required"},"404":{"description":"Connection, subscription or feature not found"},"422":{"description":"Invalid subscription input"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{agent_connection_id}/trigger_subscriptions/{id}/bind":{"post":{"operationId":"bind_api_v1_organization_agent_connection_trigger_subscription","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_connection_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Owner access required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid revision authorization"},"502":{"description":"Bad gateway"},"201":{"description":"Owner binding response","content":{"application/json":{"schema":{"type":"object","properties":{"binding":{"$ref":"#/components/schemas/AutomationProviderBindingRecord"}},"required":["binding"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"automation":{"type":"string"},"revision":{"type":"integer"},"trigger_key":{"type":"string"}},"required":["automation","revision","trigger_key"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{agent_connection_id}/trigger_subscriptions/{id}/discover":{"post":{"operationId":"discover_api_v1_organization_agent_connection_trigger_subscription","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_connection_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Owner subscription response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"subscription":{"$ref":"#/components/schemas/AgentTriggerSubscriptionRecord"}},"required":["subscription"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Owner access required"},"404":{"description":"Connection, subscription or feature not found"},"422":{"description":"Invalid subscription input"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{agent_connection_id}/trigger_subscriptions/{id}/replace":{"post":{"operationId":"replace_api_v1_organization_agent_connection_trigger_subscription","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_connection_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Authentication required"},"403":{"description":"Owner access required"},"404":{"description":"Connection, subscription or feature not found"},"422":{"description":"Invalid subscription input"},"502":{"description":"Bad gateway"},"201":{"description":"Owner subscription response","content":{"application/json":{"schema":{"type":"object","properties":{"subscription":{"$ref":"#/components/schemas/AgentTriggerSubscriptionRecord"}},"required":["subscription"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"trigger_slug":{"type":"string"},"configuration":{"type":"object","additionalProperties":true},"enabled":{"type":"boolean"}},"required":["trigger_slug","configuration","enabled"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{agent_connection_id}/trigger_subscriptions/{id}/revoke_binding":{"post":{"operationId":"revoke_binding_api_v1_organization_agent_connection_trigger_subscription","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_connection_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Owner binding response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"binding":{"$ref":"#/components/schemas/AutomationProviderBindingRecord"}},"required":["binding"]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Owner access required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid revision authorization"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"binding_id":{"type":"string"}},"required":["binding_id"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}":{"get":{"operationId":"api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"grants_limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"grants_cursor","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"},"provider":{"$ref":"#/components/schemas/AgentIntegrationManifest"},"capabilities":{"type":"object","required":["can_rename","can_reconnect","can_disconnect","can_manage_custody","can_manage_subscriptions","can_manage_safety"],"properties":{"can_rename":{"type":"boolean"},"can_reconnect":{"type":"boolean"},"can_disconnect":{"type":"boolean"},"can_manage_custody":{"type":"boolean"},"can_manage_subscriptions":{"type":"boolean"},"can_manage_safety":{"type":"boolean"}}},"activity":{"type":"array","items":{"type":"object","required":["id","tool","action_name","state","created_at","updated_at","run"],"properties":{"id":{"type":"string"},"tool":{"type":"string","nullable":true},"action_name":{"type":"string"},"state":{"type":"string","enum":["pending","succeeded","failed","uncertain"]},"created_at":{"type":"string","nullable":true},"updated_at":{"type":"string","nullable":true},"run":{"type":"object","required":["id","automation_id","automation_slug","automation_name","revision"],"properties":{"id":{"type":"string"},"automation_id":{"type":"string"},"automation_slug":{"type":"string"},"automation_name":{"type":"string"},"revision":{"type":"integer"}},"nullable":true}}}},"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"grants":{"type":"array","items":{"type":"object","required":["id","status","usable","revision","created_at","revoked_at","can_revoke","automation","actions"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["active","revoked"]},"usable":{"type":"boolean"},"revision":{"type":"integer"},"created_at":{"type":"string","nullable":true},"revoked_at":{"type":"string","nullable":true},"can_revoke":{"type":"boolean"},"automation":{"type":"object","required":["id","slug","name"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}},"nullable":true},"actions":{"type":"array","items":{"type":"object","required":["tool","name","mode"],"properties":{"tool":{"type":"string"},"name":{"type":"string"},"mode":{"type":"string","enum":["approval_required","preauthorized"]}}}}}}},"grants_pagination":{"$ref":"#/components/schemas/AutomationPagination"}},"required":["connection","provider","capabilities","activity","pagination","grants","grants_pagination"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Connection owner access required"},"404":{"description":"Connection or feature not found"},"422":{"description":"Invalid connection input"},"502":{"description":"Bad gateway"},"503":{"description":"Connection provider unavailable"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_organizations_organization_id_agent_connections_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"}},"required":["connection"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Connection owner access required"},"404":{"description":"Connection or feature not found"},"422":{"description":"Invalid connection input"},"502":{"description":"Bad gateway"},"503":{"description":"Connection provider unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string","minLength":1,"maxLength":100}},"required":["name"]}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_agent_connections_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"}},"required":["connection"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Connection owner access required"},"404":{"description":"Connection or feature not found"},"422":{"description":"Invalid connection input"},"502":{"description":"Bad gateway"},"503":{"description":"Connection provider unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string","minLength":1,"maxLength":100}},"required":["name"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/adopt_custody":{"post":{"operationId":"adopt_custody_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated connection custody metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["connection"],"properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["reason"],"properties":{"reason":{"type":"string","minLength":1,"maxLength":500}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/authorize":{"post":{"operationId":"authorize_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"redirect_url":{"type":"string","format":"uri"},"expires_at":{"type":"string","format":"date-time"}},"required":["redirect_url","expires_at"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Connection owner access required"},"404":{"description":"Connection or feature not found"},"422":{"description":"Invalid connection input"},"502":{"description":"Bad gateway"},"503":{"description":"Connection provider unavailable"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/complete":{"post":{"operationId":"complete_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"}},"required":["connection"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Connection owner access required"},"404":{"description":"Connection or feature not found"},"422":{"description":"Invalid connection input"},"502":{"description":"Bad gateway"},"503":{"description":"Connection provider unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"state":{"type":"string","minLength":64,"maxLength":64}},"required":["state"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/custody":{"get":{"operationId":"custody_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Custody permissions and audit history","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"},"events":{"type":"array","items":{"type":"object","properties":{"action":{"type":"string"},"reason":{"type":"string"},"actor_id":{"type":"string"},"actor_name":{"type":"string"},"from_user_id":{"type":"string"},"from_name":{"type":"string"},"to_user_id":{"type":"string"},"to_name":{"type":"string"},"created_at":{"type":"string"}},"required":["action","reason","actor_id","actor_name","from_user_id","from_name","to_user_id","to_name","created_at"]}},"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"can_adopt":{"type":"boolean"},"can_reassign":{"type":"boolean"}},"required":["connection","events","pagination","can_adopt","can_reassign"]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/delegate":{"post":{"operationId":"delegate_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Owner-managed revision delegation","content":{"application/json":{"schema":{"type":"object","properties":{"delegation":{"$ref":"#/components/schemas/AgentConnectionAccessRecord"}},"required":["delegation"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"grant_id":{"type":"string"},"member_id":{"type":"string"},"roles":{"type":"array","items":{"type":"string","enum":["invoke","approve"]},"minItems":1,"maxItems":2,"uniqueItems":true}},"required":["grant_id","member_id","roles"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/delegations":{"get":{"operationId":"delegations_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Owner-managed revision delegation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"delegations":{"type":"array","items":{"$ref":"#/components/schemas/AgentConnectionAccessRecord"}},"pagination":{"$ref":"#/components/schemas/AutomationPagination"}},"required":["delegations","pagination"]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/disconnect":{"post":{"operationId":"disconnect_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"}},"required":["connection"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Connection owner access required"},"404":{"description":"Connection or feature not found"},"422":{"description":"Invalid connection input"},"502":{"description":"Bad gateway"},"503":{"description":"Connection provider unavailable"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/disconnect_impact":{"get":{"operationId":"disconnect_impact_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current disconnect impact","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["automations","subscription_count"],"properties":{"automations":{"type":"array","items":{"type":"object","required":["id","name","slug"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}}},"subscription_count":{"type":"integer","minimum":0}}}}}},"401":{"description":"Authentication required"},"403":{"description":"Forbidden"},"404":{"description":"Connection or feature not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/grant":{"post":{"operationId":"grant_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection grants","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"grant":{"$ref":"#/components/schemas/AutomationConnectionGrantRecord"}},"required":["grant"]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Connection grants","content":{"application/json":{"schema":{"type":"object","properties":{"grant":{"$ref":"#/components/schemas/AutomationConnectionGrantRecord"}},"required":["grant"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"automation":{"type":"string"},"revision":{"type":"integer","minimum":1},"actions":{"type":"array","minItems":1,"maxItems":30,"items":{"type":"object","properties":{"tool":{"type":"string"},"mode":{"type":"string","enum":["approval_required","preauthorized"]},"arguments":{"type":"object","additionalProperties":true}},"required":["tool","mode","arguments"]}},"permissions":{"type":"array","minItems":1,"maxItems":6,"items":{"type":"object","required":["tool","resources"],"properties":{"tool":{"type":"string"},"resources":{"type":"array","items":{"type":"string"}},"property_types":{"type":"object","minProperties":1,"maxProperties":10,"additionalProperties":{"type":"string","enum":["title","rich_text","number","checkbox","date"]},"description":"Required only for Notion entry writes: approved column names mapped to scalar types."},"mode":{"type":"string","enum":["preauthorized","approval_required"]}}}}},"required":["automation","revision"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/grants":{"get":{"operationId":"grants_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection grants","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"grants":{"type":"array","items":{"$ref":"#/components/schemas/AutomationConnectionGrantRecord"}}},"required":["grants"]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/reassign_custody":{"post":{"operationId":"reassign_custody_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated connection custody metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["connection"],"properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["reason","member_id"],"properties":{"reason":{"type":"string","minLength":1,"maxLength":500},"member_id":{"type":"string","minLength":1}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/resources":{"post":{"operationId":"resources_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Owned account resource metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["resources","next_cursor"],"properties":{"resources":{"type":"array","maxItems":50,"items":{"type":"object","required":["id","name","kind"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["channel","page","message"]}}}},"next_cursor":{"type":["string","null"]}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":200},"cursor":{"type":["string","null"],"maxLength":2048}}}}}},"security":[{"bearerAuth":[]}],"summary":"Browse resources in an owned integration account"}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/revoke_delegation":{"post":{"operationId":"revoke_delegation_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Owner-managed revision delegation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"delegation":{"$ref":"#/components/schemas/AgentConnectionAccessRecord"}},"required":["delegation"]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"delegation_id":{"type":"string"}},"required":["delegation_id"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/revoke_grant":{"post":{"operationId":"revoke_grant_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection grants","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"grant":{"$ref":"#/components/schemas/AutomationConnectionGrantRecord"}},"required":["grant"]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"grant_id":{"type":"string"}},"required":["grant_id"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agent_connections/{id}/safety_control":{"post":{"operationId":"safety_control_api_v1_organization_agent_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Administrator safety metadata only","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["connection"],"properties":{"connection":{"$ref":"#/components/schemas/AgentConnectionRecord"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["disabled","reason"],"properties":{"disabled":{"type":"boolean"},"reason":{"type":"string","minLength":1,"maxLength":500}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agents":{"get":{"operationId":"api_v1_organization_persistent_agents","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":30}},{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"q","in":"query","schema":{"type":"string","maxLength":128}},{"name":"status","in":"query","description":"Archived agents are excluded by default.","schema":{"type":"string","enum":["all","draft","active","paused","archived"]}}],"responses":{"200":{"description":"Private agent roster","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"agents":{"type":"array","items":{"$ref":"#/components/schemas/PersistentAgentSummary"},"maxItems":100},"pagination":{"$ref":"#/components/schemas/PersistentAgentPagination"},"creation_enabled":{"type":"boolean"}},"required":["agents","pagination","creation_enabled"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Current private-agent management authority required"},"404":{"description":"Organization or authorized agent not found"},"422":{"description":"Invalid configuration or operation"},"502":{"description":"Bad gateway"},"409":{"description":"Version or idempotency conflict; reload before starting a new operation"},"503":{"description":"Private Git state unavailable. Retry the same Idempotency-Key and unchanged body."}},"security":[{"bearerAuth":[]}],"summary":"List only explicitly authorized persistent agents without fetching Git state or transcripts"},"post":{"operationId":"post_api_v1_organizations_organization_id_agents","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"Stable unique operation key; reuse only for the identical request, including expected versions.","schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}}],"responses":{"200":{"description":"Authorized agent with current configuration and version tokens","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentResponse"}}}},"401":{"description":"Authentication required"},"403":{"description":"Current private-agent management authority required"},"404":{"description":"Organization or authorized agent not found"},"422":{"description":"Invalid configuration or operation"},"502":{"description":"Bad gateway"},"201":{"description":"Authorized agent with current configuration and version tokens","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersistentAgentResponse"}}}},"409":{"description":"Version or idempotency conflict; reload before starting a new operation"},"503":{"description":"Private Git state unavailable. Retry the same Idempotency-Key and unchanged body."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentCreate"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agents/page":{"get":{"operationId":"page_api_v1_organization_persistent_agents","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_view","in":"query","schema":{"type":"string","enum":["conversation","settings","updates"]}},{"name":"updates_before","in":"query","schema":{"type":"string"}},{"name":"agent_conversation","in":"query","schema":{"type":"string","maxLength":128,"pattern":"^[a-zA-Z0-9_-]{1,128}$"}},{"name":"conversations_after","in":"query","schema":{"type":"string","maxLength":128,"pattern":"^[a-zA-Z0-9_-]{1,128}$"}},{"name":"conversation_before","in":"query","schema":{"type":"string"}},{"name":"agent","in":"query","schema":{"type":"string"}},{"name":"agent_search","in":"query","schema":{"type":"string"}},{"name":"work_repository_search","in":"query","schema":{"type":"string"}},{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":30}}],"responses":{"200":{"description":"Custom-agent workspace page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentsWorkspacePage"}}}},"401":{"description":"Authentication required"},"403":{"description":"Forbidden"},"404":{"description":"Organization or selected authorized agent unavailable"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"503":{"description":"Selected private agent state temporarily unavailable"}},"security":[{"bearerAuth":[]}],"summary":"Authorized custom-agent roster and selected settings for the Agents workspace"}},"/api/v1/organizations/{organization_id}/agents/{id}":{"get":{"operationId":"api_v1_organization_persistent_agent","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":"Authorized agent settings","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentResponse"}}}},"401":{"description":"Authentication required"},"403":{"description":"Current private-agent management authority required"},"404":{"description":"Organization or authorized agent not found"},"422":{"description":"Invalid configuration or operation"},"502":{"description":"Bad gateway"},"409":{"description":"Version or idempotency conflict; reload before starting a new operation"},"503":{"description":"Private Git state unavailable. Retry the same Idempotency-Key and unchanged body."}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agents/{id}/activate":{"post":{"operationId":"activate_api_v1_organization_persistent_agent","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"Stable unique operation key; reuse only for the identical request, including expected versions.","schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}}],"responses":{"200":{"description":"Authorized agent with current configuration and version tokens","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentResponse"}}}},"401":{"description":"Authentication required"},"403":{"description":"Current private-agent management authority required"},"404":{"description":"Organization or authorized agent not found"},"422":{"description":"Invalid configuration or operation"},"502":{"description":"Bad gateway"},"409":{"description":"Version or idempotency conflict; reload before starting a new operation"},"503":{"description":"Private Git state unavailable. Retry the same Idempotency-Key and unchanged body."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"expected_version":{"type":["string","null"],"pattern":"^[0-9a-f]{40}$","description":"Opaque version token. Echo the version returned by the server; null denotes an empty stream."},"configuration_version":{"type":"string","pattern":"^[0-9a-f]{40}$"}},"required":["expected_version","configuration_version"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agents/{id}/approvals":{"post":{"operationId":"approvals_api_v1_organization_persistent_agent","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":"Canonical decision accepted or reconciled","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentApprovalDecision"}}}},"401":{"description":"Authentication required"},"403":{"description":"Original requester or current decision authority required"},"404":{"description":"Organization or private agent not found"},"422":{"description":"Invalid decision or version coordinates"},"502":{"description":"Bad gateway"},"409":{"description":"Another decision or changed approval state; refresh before a new decision"},"503":{"description":"Canonical state unavailable; retry the identical request"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentApprovalDecisionInput"}}}},"security":[{"bearerAuth":[]}],"summary":"Decide one exact pending action as its original requester","description":"Retry the same body after an uncertain reply. Task and wait identity determine the immutable decision; changing the decision conflicts. An acknowledgement proves decision acceptance and durable wake enqueue, not tool execution. Readers can reconcile their own already accepted decision without making a new write."}},"/api/v1/organizations/{organization_id}/agents/{id}/archive":{"post":{"operationId":"archive_api_v1_organization_persistent_agent","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"Stable unique operation key; reuse only for the identical request, including expected versions.","schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}}],"responses":{"200":{"description":"Authorized agent with current configuration and version tokens","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentResponse"}}}},"401":{"description":"Authentication required"},"403":{"description":"Current private-agent management authority required"},"404":{"description":"Organization or authorized agent not found"},"422":{"description":"Invalid configuration or operation"},"502":{"description":"Bad gateway"},"409":{"description":"Version or idempotency conflict; reload before starting a new operation"},"503":{"description":"Private Git state unavailable. Retry the same Idempotency-Key and unchanged body."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"expected_version":{"type":["string","null"],"pattern":"^[0-9a-f]{40}$","description":"Opaque version token. Echo the version returned by the server; null denotes an empty stream."}},"required":["expected_version"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agents/{id}/avatar":{"get":{"operationId":"get_persistent_agent_avatar","tags":["organizations","Persistent agents"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"query","required":true,"schema":{"type":"string","pattern":"^[0-9a-f]{64}$"}}],"responses":{"200":{"description":"Authorized private image","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"image/webp":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Authentication required"},"403":{"description":"Current private access required"},"404":{"description":"Agent or current image unavailable"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read the current private character image"}},"/api/v1/organizations/{organization_id}/agents/{id}/avatar/retry":{"post":{"operationId":"retry_persistent_agent_avatar","tags":["organizations","Persistent agents"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":128}}],"responses":{"200":{"description":"Generation request accepted or exact receipt replayed","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"persona":{"$ref":"#/components/schemas/PersistentAgentPersona"}},"required":["persona"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Current write access required for a fresh request"},"404":{"description":"Private agent unavailable"},"422":{"description":"Invalid request"},"502":{"description":"Bad gateway"},"409":{"description":"Generation changed; refresh before retrying"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"expected_generation":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"required":["expected_generation"]}}}},"security":[{"bearerAuth":[]}],"summary":"Retry a failed or uncertain character generation"}},"/api/v1/organizations/{organization_id}/agents/{id}/configuration":{"patch":{"operationId":"configuration_api_v1_organization_persistent_agent","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"Stable unique operation key; reuse only for the identical request, including expected versions.","schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}}],"responses":{"200":{"description":"Authorized agent with current configuration and version tokens","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentResponse"}}}},"401":{"description":"Authentication required"},"403":{"description":"Current private-agent management authority required"},"404":{"description":"Organization or authorized agent not found"},"422":{"description":"Invalid configuration or operation"},"502":{"description":"Bad gateway"},"409":{"description":"Version or idempotency conflict; reload before starting a new operation"},"503":{"description":"Private Git state unavailable. Retry the same Idempotency-Key and unchanged body."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"expected_version":{"type":["string","null"],"pattern":"^[0-9a-f]{40}$","description":"Opaque version token. Echo the version returned by the server; null denotes an empty stream."},"configuration":{"$ref":"#/components/schemas/PersistentAgentConfiguration"}},"required":["expected_version","configuration"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agents/{id}/events":{"post":{"operationId":"events_api_v1_organization_persistent_agent","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Canonical input accepted","content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"$ref":"#/components/schemas/PersistentAgentInput"}}}}}},"400":{"description":"Required field missing"},"401":{"description":"Authentication required"},"403":{"description":"Current principal/source authority unavailable"},"404":{"description":"Authorized agent or event unavailable"},"409":{"description":"Source/index changed or conflicting identity; retry identical event"},"422":{"description":"Invalid bounded event request"},"429":{"description":"Source quota exhausted"},"503":{"description":"Canonical storage unavailable; identical retry/shared recovery required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["binding_id","event_id"],"properties":{"binding_id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"event_id":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Accept a persisted resource-scoped platform event into a private agent inbox","description":"Requires current controlling principal, active approved platform-event binding and both default-off integration-event gates. The server resolves event content and repository identity. No request payload may select authority. Stable event/source identity deduplicates retries. A 201 proves canonical inbox publication only, not task execution."}},"/api/v1/organizations/{organization_id}/agents/{id}/files":{"get":{"operationId":"files_api_v1_organization_persistent_agent","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":"Private canonical files and opaque state version. Exact write retries return the original receipt.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentFiles"}}}},"401":{"description":"Authentication required"},"403":{"description":"Agent write access is no longer authorized"},"404":{"description":"Authorized agent not found"},"422":{"description":"Invalid or oversized files request"},"502":{"description":"Bad gateway"},"409":{"description":"State changed or operation key reused with different content"},"503":{"description":"Canonical agent state is temporarily unavailable; retry the identical operation"}},"security":[{"bearerAuth":[]}],"summary":"Inspect private agent text files","description":"Requires current private-agent read access. Returns bounded text files and an opaque Git state version. Responses are no-store."},"patch":{"operationId":"patch_api_v1_organizations_organization_id_agents_id_files","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}}],"responses":{"200":{"description":"Private canonical files and opaque state version. Exact write retries return the original receipt.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentFiles"}}}},"401":{"description":"Authentication required"},"403":{"description":"Agent write access is no longer authorized"},"404":{"description":"Authorized agent not found"},"422":{"description":"Invalid or oversized files request"},"502":{"description":"Bad gateway"},"409":{"description":"State changed or operation key reused with different content"},"503":{"description":"Canonical agent state is temporarily unavailable; retry the identical operation"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"expected_version":{"type":["string","null"],"pattern":"^[0-9a-f]{40}$","description":"Opaque agent state version. Echo the returned version; null denotes an empty state stream."},"entries":{"type":"array","maxItems":32,"items":{"$ref":"#/components/schemas/PersistentAgentFileInput"}}},"required":["expected_version","entries"]}}}},"security":[{"bearerAuth":[]}],"summary":"Replace private agent text files","description":"Requires current private-agent management access for new writes and Idempotency-Key. Replace the complete set using expected_version; omission removes a file from current use. Exact retries with private read access return the original receipt. Removal retains prior Git history and existing receipts. At most 32 text files, 32 KiB each and 128 KiB total; JSON request at most 1 MiB. Paths are relative labels, never disk paths. Server-authored provenance cannot be supplied. Files are data, never executable instructions, grants or VM home contents. Worker credentials cannot write this port."}},"/api/v1/organizations/{organization_id}/agents/{id}/inputs":{"get":{"operationId":"inputs_api_v1_organization_persistent_agent","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"conversation_id","in":"query","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":30}},{"name":"cursor","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Published inputs in acceptance order; pending inputs are excluded","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["inputs","pagination"],"properties":{"inputs":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/PersistentAgentInput"}},"pagination":{"$ref":"#/components/schemas/PersistentAgentPagination"}}}}}},"401":{"description":"Authentication required"},"403":{"description":"Current private-agent management authority required"},"404":{"description":"Organization or authorized agent not found"},"422":{"description":"Invalid configuration or operation"},"502":{"description":"Bad gateway"},"409":{"description":"Version or idempotency conflict; reload before starting a new operation"},"503":{"description":"Private Git state unavailable. Retry the same Idempotency-Key and unchanged body."}},"security":[{"bearerAuth":[]}],"summary":"Read canonical published inputs for one agent conversation"},"post":{"operationId":"post_api_v1_organizations_organization_id_agents_id_inputs","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}}],"responses":{"200":{"description":"Canonical input published; wakeup and execution remain separate","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["input"],"properties":{"input":{"$ref":"#/components/schemas/PersistentAgentInput"}}}}}},"401":{"description":"Authentication required"},"403":{"description":"Current private-agent management authority required"},"404":{"description":"Organization or authorized agent not found"},"422":{"description":"Invalid configuration or operation"},"502":{"description":"Bad gateway"},"201":{"description":"Canonical input published; wakeup and execution remain separate","content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"$ref":"#/components/schemas/PersistentAgentInput"}}}}}},"409":{"description":"Version or idempotency conflict; reload before starting a new operation"},"503":{"description":"Private Git state unavailable. Retry the same Idempotency-Key and unchanged body."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["conversation_id","text"],"properties":{"conversation_id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},"text":{"type":"string","description":"Nonblank UTF-8 text up to 32768 bytes","maxLength":32768},"mode":{"type":"string","enum":["steer","follow_up"],"default":"steer"},"reply_to":{"$ref":"#/components/schemas/PersistentAgentInputReplyCoordinates"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Durably publish an idempotent message without claiming execution has started"}},"/api/v1/organizations/{organization_id}/agents/{id}/memory":{"get":{"operationId":"memory_api_v1_organization_persistent_agent","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":"Private canonical memory and opaque state version. Exact write retries return the original receipt.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentMemory"}}}},"401":{"description":"Authentication required"},"403":{"description":"Agent write access is no longer authorized"},"404":{"description":"Authorized agent not found"},"422":{"description":"Invalid or oversized memory request"},"502":{"description":"Bad gateway"},"409":{"description":"State changed or operation key reused with different content"},"503":{"description":"Canonical agent state is temporarily unavailable; retry the identical operation"}},"security":[{"bearerAuth":[]}],"summary":"Inspect private agent memory","description":"Requires current private-agent read access. Reads current entries and source fingerprints without granting work-repository or execution authority. Responses are no-store."},"patch":{"operationId":"patch_api_v1_organizations_organization_id_agents_id_memory","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}}],"responses":{"200":{"description":"Private canonical memory and opaque state version. Exact write retries return the original receipt.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentMemory"}}}},"401":{"description":"Authentication required"},"403":{"description":"Agent write access is no longer authorized"},"404":{"description":"Authorized agent not found"},"422":{"description":"Invalid or oversized memory request"},"502":{"description":"Bad gateway"},"409":{"description":"State changed or operation key reused with different content"},"503":{"description":"Canonical agent state is temporarily unavailable; retry the identical operation"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"expected_version":{"type":["string","null"],"pattern":"^[0-9a-f]{40}$","description":"Opaque agent state version. Echo the returned version; null denotes an empty state stream."},"entries":{"type":"array","maxItems":64,"items":{"$ref":"#/components/schemas/PersistentAgentMemoryInput"}}},"required":["expected_version","entries"]}}}},"security":[{"bearerAuth":[]}],"summary":"Replace user-approved private agent memory","description":"New edits require current private-agent management access and Idempotency-Key. An exact original operation can be reconciled with current private read access; this cannot publish new content. Replace the complete current entry set using expected_version; omit an entry to remove it from current memory or send an empty entries array to clear it. Removal does not erase prior Git history, tool receipts or conversation results. Source IDs must exist in this agent at expected_version; the server supplies authorship and source hashes. Approved memory limits bound total text bytes; draft limits do not apply until activated. Disabled recall still permits explicit user edits within the limit. Maximum JSON request/catalog: 1 MiB. This endpoint cannot change approved instructions, grant capabilities or start execution. Worker capabilities cannot call it."}},"/api/v1/organizations/{organization_id}/agents/{id}/memory/entries/{entry_id}/sources/{source_id}":{"get":{"operationId":"get_api_v1_organizations_organization_id_agents_id_memory_entries_entry_id_sources_source_id_","tags":["organizations"],"parameters":[{"name":"organization_id","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"}},{"name":"source_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Verified source message without operation receipt metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentMemorySource"}}}},"401":{"description":"Authentication required"},"403":{"description":"Agent write access is no longer authorized"},"404":{"description":"Authorized agent not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"503":{"description":"Canonical agent state is temporarily unavailable; retry the identical operation"}},"security":[{"bearerAuth":[]}],"summary":"Read evidence for a current private memory entry","description":"Requires current private-agent read access and a current entry/source relationship. Returns only the canonical source message whose hash matches the saved provenance. Entry removal, changed references or revoked private access block subsequent reads. Private no-store response; never grants execution or work-repository access."}},"/api/v1/organizations/{organization_id}/agents/{id}/pause":{"post":{"operationId":"pause_api_v1_organization_persistent_agent","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"Stable unique operation key; reuse only for the identical request, including expected versions.","schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}}],"responses":{"200":{"description":"Authorized agent with current configuration and version tokens","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentResponse"}}}},"401":{"description":"Authentication required"},"403":{"description":"Current private-agent management authority required"},"404":{"description":"Organization or authorized agent not found"},"422":{"description":"Invalid configuration or operation"},"502":{"description":"Bad gateway"},"409":{"description":"Version or idempotency conflict; reload before starting a new operation"},"503":{"description":"Private Git state unavailable. Retry the same Idempotency-Key and unchanged body."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"expected_version":{"type":["string","null"],"pattern":"^[0-9a-f]{40}$","description":"Opaque version token. Echo the version returned by the server; null denotes an empty stream."}},"required":["expected_version"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agents/{id}/provider-grants":{"get":{"operationId":"provider_grants_api_v1_organization_persistent_agent","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Private provider consent metadata; no credentials or event content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersistentAgentProviderGrantPage"}}}},"400":{"description":"Missing selector or invalid public ID"},"401":{"description":"Authentication required; worker credentials are excluded"},"403":{"description":"Current controlling principal or source authority is unavailable"},"404":{"description":"Authorized agent, grant or saved resource not found"},"409":{"description":"Stale revision or revoked consent"},"422":{"description":"Invalid bounded body"},"503":{"description":"Canonical state temporarily unavailable"}},"security":[{"bearerAuth":[]}],"summary":"List private provider consent metadata","description":"Owner-only private consent port. Consent pins the saved source, account generation, resource scope and private agent audience; it grants no provider tools. Receiving requires separate default-off ingress gates; availability reports those gates, not agent activation or task execution. Revocation remains available with execution disabled. Responses are no-store."},"post":{"operationId":"post_api_v1_organizations_organization_id_agents_id_provider-grants","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Private provider consent metadata; no credentials or event content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersistentAgentProviderGrantResponse"}}}},"400":{"description":"Missing selector or invalid public ID"},"401":{"description":"Authentication required; worker credentials are excluded"},"403":{"description":"Current controlling principal or source authority is unavailable"},"404":{"description":"Authorized agent, grant or saved resource not found"},"409":{"description":"Stale revision or revoked consent"},"422":{"description":"Invalid bounded body"},"503":{"description":"Canonical state temporarily unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["configuration_commit","binding_id","expected_audience_digest"],"properties":{"configuration_commit":{"type":"string","pattern":"^[0-9a-f]{40}$"},"binding_id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"expected_audience_digest":{"type":"string","pattern":"^[0-9a-f]{64}$","description":"The server audience digest observed before owner consent. Stale audiences conflict."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Authorize one saved provider source for its current private audience","description":"Owner-only private consent port. Consent pins the saved source, account generation, resource scope and private agent audience; it grants no provider tools. Receiving requires separate default-off ingress gates; availability reports those gates, not agent activation or task execution. Revocation remains available with execution disabled. Responses are no-store."}},"/api/v1/organizations/{organization_id}/agents/{id}/provider-grants/{grant_id}/revoke":{"post":{"operationId":"post_api_v1_organizations_organization_id_agents_id_provider-grants_grant_id_revoke","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"grant_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Private provider consent metadata; no credentials or event content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersistentAgentProviderGrantResponse"}}}},"400":{"description":"Missing selector or invalid public ID"},"401":{"description":"Authentication required; worker credentials are excluded"},"403":{"description":"Current controlling principal or source authority is unavailable"},"404":{"description":"Authorized agent, grant or saved resource not found"},"409":{"description":"Stale revision or revoked consent"},"422":{"description":"Invalid bounded body"},"503":{"description":"Canonical state temporarily unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"security":[{"bearerAuth":[]}],"summary":"Revoke provider-source consent irreversibly","description":"Owner-only private consent port. Consent pins the saved source, account generation, resource scope and private agent audience; it grants no provider tools. Receiving requires separate default-off ingress gates; availability reports those gates, not agent activation or task execution. Revocation remains available with execution disabled. Responses are no-store."}},"/api/v1/organizations/{organization_id}/agents/{id}/provider-sources":{"get":{"operationId":"provider_sources_api_v1_organization_persistent_agent","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"subscription_cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"grant_cursor","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Private source setup page","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersistentAgentProviderSourcesPage"}}}},"401":{"description":"Authentication required"},"403":{"description":"Private authority unavailable"},"404":{"description":"Authorized source or cursor not found"},"503":{"description":"Canonical state unavailable"},"400":{"description":"Invalid cursor identity"}},"security":[{"bearerAuth":[]}],"summary":"Load private provider-source choices and saved-revision consent controls","description":"Current private-agent readers receive owner-management availability. Only the controlling principal receives bounded supported subscription choices, current saved-source consent, observed audience and previous authorizations. No provider credentials, remote/account locators or event bodies are included. This page grants no access and starts no execution. Responses are no-store."}},"/api/v1/organizations/{organization_id}/agents/{id}/resume":{"post":{"operationId":"resume_api_v1_organization_persistent_agent","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"Stable unique operation key; reuse only for the identical request, including expected versions.","schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}}],"responses":{"200":{"description":"Authorized agent with current configuration and version tokens","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentResponse"}}}},"401":{"description":"Authentication required"},"403":{"description":"Current private-agent management authority required"},"404":{"description":"Organization or authorized agent not found"},"422":{"description":"Invalid configuration or operation"},"502":{"description":"Bad gateway"},"409":{"description":"Version or idempotency conflict; reload before starting a new operation"},"503":{"description":"Private Git state unavailable. Retry the same Idempotency-Key and unchanged body."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"expected_version":{"type":["string","null"],"pattern":"^[0-9a-f]{40}$","description":"Opaque version token. Echo the version returned by the server; null denotes an empty stream."}},"required":["expected_version"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agents/{id}/revisions":{"get":{"operationId":"revisions_api_v1_organization_persistent_agent","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":30}},{"name":"cursor","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Immutable configuration revision index","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"revisions":{"type":"array","items":{"type":"object","properties":{"number":{"type":"integer"},"version":{"type":"string"},"created_by_user_id":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"}},"required":["number","version","created_by_user_id","created_at"],"additionalProperties":false},"maxItems":100},"pagination":{"$ref":"#/components/schemas/PersistentAgentPagination"}},"required":["revisions","pagination"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Current private-agent management authority required"},"404":{"description":"Organization or authorized agent not found"},"422":{"description":"Invalid configuration or operation"},"502":{"description":"Bad gateway"},"409":{"description":"Version or idempotency conflict; reload before starting a new operation"},"503":{"description":"Private Git state unavailable. Retry the same Idempotency-Key and unchanged body."}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/agents/{id}/schedule_preview":{"post":{"operationId":"schedule_preview_api_v1_organization_persistent_agent","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":"Prospective timing and explicit one-shot grace state","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersistentAgentSchedulePreview"}}}},"401":{"description":"Authentication required"},"403":{"description":"Current private-agent management authority required"},"404":{"description":"Authorized agent not found"},"422":{"description":"Invalid proposed schedule or oversized request"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["binding"],"properties":{"binding":{"$ref":"#/components/schemas/PersistentAgentScheduleBinding"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Preview proposed agent schedule timing","description":"Requires current private-agent management access. Computes one one-shot or five future recurring instants from server time without saving configuration, accepting input or enabling execution. Prospective activation/resume timing, not current cursor/backlog. No-store response."}},"/api/v1/organizations/{organization_id}/agents/{id}/updates":{"get":{"operationId":"updates_api_v1_organization_persistent_agent","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"before","in":"query","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Private update history","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersistentAgentUpdates"}}}},"401":{"description":"Authentication required"},"403":{"description":"Private access revoked"},"404":{"description":"Authorized agent not found"},"422":{"description":"Invalid cursor or sequence"},"503":{"description":"Canonical state unavailable"}},"security":[{"bearerAuth":[]}],"summary":"Read private durable task results and failures"}},"/api/v1/organizations/{organization_id}/agents/{id}/updates/read":{"post":{"operationId":"updates_read_api_v1_organization_persistent_agent","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":"Viewer cursor retained independently of other viewers and later results","content":{"application/json":{"schema":{"type":"object","required":["read_sequence"],"additionalProperties":false,"properties":{"read_sequence":{"type":"integer","minimum":0,"maximum":2147483646}}}}}},"401":{"description":"Authentication required"},"403":{"description":"Private access revoked"},"404":{"description":"Authorized agent not found"},"422":{"description":"Invalid cursor or sequence"},"503":{"description":"Canonical state unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["sequence"],"properties":{"sequence":{"type":"integer","minimum":0,"maximum":2147483646}}}}}},"security":[{"bearerAuth":[]}],"summary":"Monotonically acknowledge this viewer through the displayed update sequence"}},"/api/v1/organizations/{organization_id}/agents/{id}/webhooks":{"get":{"operationId":"webhooks_api_v1_organization_persistent_agent","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"endpoint_cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"event_cursor","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Private source management response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersistentAgentWebhookSources"}}}},"401":{"description":"Authentication required"},"403":{"description":"Current private management access or required feature gate unavailable"},"404":{"description":"Authorized agent or endpoint not found"},"409":{"description":"Stale generation, conflicting operation, or source history recovering"},"422":{"description":"Invalid bounded request"},"503":{"description":"Canonical source state temporarily unavailable"},"400":{"description":"A required request field or selector is missing"}},"security":[{"bearerAuth":[]}],"summary":"Inspect private webhook sources and bounded event-to-task history","description":"Requires current private-agent audience and authenticated user; worker credentials cannot use this management port. Responses are no-store. Event bodies and existing signing keys are never returned."},"post":{"operationId":"post_api_v1_organizations_organization_id_agents_id_webhooks","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}}],"responses":{"201":{"description":"Private source management response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersistentAgentWebhookSetup"}}}},"401":{"description":"Authentication required"},"403":{"description":"Current private management access or required feature gate unavailable"},"404":{"description":"Authorized agent or endpoint not found"},"409":{"description":"Stale generation, conflicting operation, or source history recovering"},"422":{"description":"Invalid bounded request"},"503":{"description":"Canonical source state temporarily unavailable"},"400":{"description":"A required request field or selector is missing"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"binding_id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}},"required":["binding_id"]}}}},"security":[{"bearerAuth":[]}],"summary":"Create a private webhook endpoint and reveal its independent key once","description":"Requires current private-agent audience and authenticated user; worker credentials cannot use this management port. Responses are no-store. Event bodies and existing signing keys are never returned."}},"/api/v1/organizations/{organization_id}/agents/{id}/webhooks/preview":{"post":{"operationId":"webhooks_preview_api_v1_organization_persistent_agent","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":"Prospective parse/filter result; never an acceptance receipt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersistentAgentWebhookPreview"}}}},"400":{"description":"Required field missing"},"401":{"description":"Authentication required"},"403":{"description":"Current private manager access required"},"404":{"description":"Authorized private agent not found"},"422":{"description":"Invalid binding or event body","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}},"field_errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["binding","event_body"],"properties":{"binding":{"$ref":"#/components/schemas/PersistentAgentWebhookBinding"},"event_body":{"type":"string","maxLength":65536}}}}}},"security":[{"bearerAuth":[]}],"summary":"Test a private webhook draft filter without receiving an event","description":"Current private agent managers only. No sender authentication, endpoint authorization, quota consumption, inbox publication or execution. Parses exact event_body bytes with live envelope rules; returns match metadata only. Responses are no-store."}},"/api/v1/organizations/{organization_id}/agents/{id}/webhooks/{endpoint_id}/revoke":{"post":{"operationId":"post_api_v1_organizations_organization_id_agents_id_webhooks_endpoint_id_revoke","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","pattern":"^webhook_[a-zA-Z0-9_-]{16,96}$"}}],"responses":{"200":{"description":"Private source management response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersistentAgentWebhookSetup"}}}},"401":{"description":"Authentication required"},"403":{"description":"Current private management access or required feature gate unavailable"},"404":{"description":"Authorized agent or endpoint not found"},"409":{"description":"Stale generation, conflicting operation, or source history recovering"},"422":{"description":"Invalid bounded request"},"503":{"description":"Canonical source state temporarily unavailable"},"400":{"description":"A required request field or selector is missing"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"expected_generation":{"type":"integer","minimum":1}},"required":["expected_generation"]}}}},"security":[{"bearerAuth":[]}],"summary":"Irreversibly revoke a private webhook even when ingress is disabled","description":"Requires current private-agent audience and authenticated user; worker credentials cannot use this management port. Responses are no-store. Event bodies and existing signing keys are never returned."}},"/api/v1/organizations/{organization_id}/agents/{id}/webhooks/{endpoint_id}/rotate":{"post":{"operationId":"post_api_v1_organizations_organization_id_agents_id_webhooks_endpoint_id_rotate","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}},{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","pattern":"^webhook_[a-zA-Z0-9_-]{16,96}$"}}],"responses":{"200":{"description":"Private source management response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersistentAgentWebhookSetup"}}}},"401":{"description":"Authentication required"},"403":{"description":"Current private management access or required feature gate unavailable"},"404":{"description":"Authorized agent or endpoint not found"},"409":{"description":"Stale generation, conflicting operation, or source history recovering"},"422":{"description":"Invalid bounded request"},"503":{"description":"Canonical source state temporarily unavailable"},"400":{"description":"A required request field or selector is missing"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"expected_generation":{"type":"integer","minimum":1}},"required":["expected_generation"]}}}},"security":[{"bearerAuth":[]}],"summary":"Rotate signing key once with five-minute overlap","description":"Requires current private-agent audience and authenticated user; worker credentials cannot use this management port. Responses are no-store. Event bodies and existing signing keys are never returned."}},"/api/v1/organizations/{organization_id}/agreement_access_request":{"post":{"operationId":"post_api_v1_organizations_organization_id_agreement_access_request","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":"Agreement access requested; the refreshed agreements page","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationAgreementsPage"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/artefacts":{"get":{"operationId":"api_v1_organization_artefacts","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Opaque next cursor from the preceding page with the same filters."},{"name":"q","in":"query","schema":{"type":"string","maxLength":200},"description":null,"filename or slug.":null},{"name":"source","in":"query","schema":{"type":"string","enum":["automation","agent","user"]}},{"name":"kind","in":"query","schema":{"type":"string","maxLength":200}},{"name":"harness","in":"query","schema":{"type":"string","maxLength":200}},{"name":"model","in":"query","schema":{"type":"string","maxLength":200}},{"name":"author","in":"query","schema":{"type":"string","maxLength":200},"description":"Publisher public ID, email, or unambiguous name."},{"name":"repo","in":"query","schema":{"type":"string","maxLength":200},"description":"Repository slug or public ID within the organization."},{"name":"slug","in":"query","schema":{"type":"string","maxLength":200},"description":"List available versions of one artefact slug."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"pagination":{"type":"object","required":["limit"],"properties":{"limit":{"type":"integer"},"next":{"type":"string"}}},"artefacts":{"type":"array","items":{"$ref":"#/components/schemas/Artefact"}}},"required":["artefacts","pagination"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Author or admin required"},"404":{"description":"Not found"},"422":{"description":"Invalid document or quota exceeded"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_organization_id_artefacts","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Authentication required"},"403":{"description":"Author or admin required"},"404":{"description":"Not found"},"422":{"description":"Invalid document or quota exceeded"},"502":{"description":"Bad gateway"},"201":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"artefact":{"$ref":"#/components/schemas/Artefact"}},"required":["artefact"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"multipart/form-data":{"schema":{"type":"object","oneOf":[{"required":["file"]},{"required":["files","paths","entrypoint"]}],"properties":{"files":{"type":"array","maxItems":200,"items":{"type":"string","format":"binary"}},"paths":{"type":"string","description":"JSON array of relative paths corresponding to files."},"entrypoint":{"type":"string","description":"Relative path opened by the viewer."},"title":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string"},"kind":{"type":"string"},"source":{"type":"string","enum":["agent","user"]},"harness":{"type":"string"},"harness_version":{"type":"string"},"model":{"type":"string"},"repository_id":{"type":"string","description":"Repository public ID or slug within the publishing organization."},"vcs_agent_session_id":{"type":"string"},"vcs_agent_checkpoint_id":{"type":"string"},"metadata_json":{"type":"object","description":"Allowlisted VcsAgentMetadata provenance; unknown fields are discarded.","additionalProperties":true},"file":{"type":"string","format":"binary"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/artefacts/page":{"get":{"operationId":"page_api_v1_organization_artefacts","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"q","in":"query","schema":{"type":"string","maxLength":200}},{"name":"kind","in":"query","schema":{"type":"string","maxLength":200}},{"name":"harness","in":"query","schema":{"type":"string","maxLength":200}},{"name":"model","in":"query","schema":{"type":"string","maxLength":200}},{"name":"author","in":"query","schema":{"type":"string","maxLength":200}},{"name":"repo","in":"query","schema":{"type":"string","maxLength":200}},{"name":"slug","in":"query","schema":{"type":"string","maxLength":200}},{"name":"source","in":"query","schema":{"type":"string","enum":["automation","agent","user"]}}],"responses":{"200":{"description":"Authorized private Artefacts page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ArtefactIndexPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Resource not found"},"422":{"description":"Invalid selection"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/artefacts/{artefact_ref}":{"get":{"operationId":"api_v1_organization_artefact","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"artefact_ref","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"artefact":{"$ref":"#/components/schemas/Artefact"}},"required":["artefact"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Author or admin required"},"404":{"description":"Not found"},"422":{"description":"Invalid document or quota exceeded"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_organizations_organization_id_artefacts_artefact_ref_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"artefact_ref","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"artefact":{"$ref":"#/components/schemas/Artefact"}},"required":["artefact"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Author or admin required"},"404":{"description":"Not found"},"422":{"description":"Invalid document or quota exceeded"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"title":{"type":"string"},"description":{"type":"string"},"kind":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_artefacts_artefact_ref_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"artefact_ref","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_organizations_organization_id_artefacts_artefact_ref_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"artefact_ref","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Authentication required"},"403":{"description":"Author or admin required"},"404":{"description":"Not found"},"422":{"description":"Invalid document or quota exceeded"},"502":{"description":"Bad gateway"},"204":{"description":"Deleted"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/artefacts/{artefact_ref}/download":{"get":{"operationId":"download_api_v1_organization_artefact","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"artefact_ref","in":"path","required":true,"schema":{"type":"string"}},{"name":"path","in":"query","schema":{"type":"string"},"description":"Exact file path within the selected revision manifest."}],"responses":{"200":{"description":"Private attachment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Authentication required"},"403":{"description":"Author or admin required"},"404":{"description":"Not found"},"422":{"description":"Invalid document or quota exceeded"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/artefacts/{artefact_ref}/page":{"get":{"operationId":"page_api_v1_organization_artefact","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"artefact_ref","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"query","schema":{"type":"integer","minimum":1}},{"name":"versions_page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"file","in":"query","schema":{"type":"string","maxLength":500}}],"responses":{"200":{"description":"Authorized private Artefacts page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ArtefactDetailPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Resource not found"},"422":{"description":"Invalid selection"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/artefacts/{artefact_ref}/view_tokens":{"post":{"operationId":"view_tokens_api_v1_organization_artefact","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"artefact_ref","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Short-lived viewer handshake URL","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["viewer_url","expires_in"],"properties":{"viewer_url":{"type":"string","format":"uri"},"expires_in":{"type":"integer"}}}}}},"401":{"description":"Authentication required"},"403":{"description":"Forbidden"},"404":{"description":"Document or membership unavailable"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/audit_events":{"get":{"operationId":"api_v1_organization_audit_events","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization audit events","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["audit_events","pagination"],"properties":{"audit_events":{"type":"array","items":{"$ref":"#/components/schemas/AuditEvent"}},"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":[]}],"summary":"Inspect organization audit history","description":"Administrator-only, paginated metadata history. Available without observability services; contains no secret values."}},"/api/v1/organizations/{organization_id}/automations":{"get":{"operationId":"api_v1_organization_automations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_triggerable","in":"query","description":"List active actions published with an Agent trigger.","schema":{"type":"boolean"}},{"name":"limit","in":"query","description":"Records per page, from 1 to 100 (default 100).","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Continue after pagination.next from the previous page in this collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"automations":{"type":"array","items":{"$ref":"#/components/schemas/AutomationRecord"}}},"required":["pagination","automations"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"409":{"description":"Revision or idempotency conflict"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_organization_id_automations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"automation":{"$ref":"#/components/schemas/AutomationRecord"}},"required":["automation"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"201":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","properties":{"automation":{"$ref":"#/components/schemas/AutomationRecord"}},"required":["automation"]}}}},"409":{"description":"Revision or idempotency conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AutomationDefinition"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/catalog":{"get":{"operationId":"catalog_api_v1_organization_automations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Automation event response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization administrator required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid replay request"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/events":{"get":{"operationId":"events_api_v1_organization_automations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Records per page, from 1 to 100 (default 100).","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Continue after pagination.next from the previous page in this collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Automation event response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"events":{"type":"array","items":{"$ref":"#/components/schemas/AutomationEventRecord"}}},"required":["pagination","events"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization administrator required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid replay request"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/new_page":{"get":{"operationId":"new_page_api_v1_organization_automations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Authorized automation page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AutomationNewPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Administrator access required"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/page":{"get":{"operationId":"page_api_v1_organization_automations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Authorized automation page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AutomationIndexPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Administrator access required"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations":{"get":{"operationId":"api_v1_organization_automation_invocations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Records per page, from 1 to 100 (default 100).","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Continue after pagination.next from the previous page in this collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"invocations":{"type":"array","items":{"$ref":"#/components/schemas/AutomationInvocationRecord"}}},"required":["pagination","invocations"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"409":{"description":"Revision or idempotency conflict"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_organization_id_automations_automation_id_invocations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":128}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"invocation":{"$ref":"#/components/schemas/AutomationInvocationRecord"}},"required":["invocation"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"202":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","properties":{"invocation":{"$ref":"#/components/schemas/AutomationInvocationRecord"}},"required":["invocation"]}}}},"409":{"description":"Revision or idempotency conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AutomationInvocationInput"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}":{"get":{"operationId":"api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"invocation":{"$ref":"#/components/schemas/AutomationInvocationRecord"}},"required":["invocation"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"409":{"description":"Revision or idempotency conflict"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/approvals":{"get":{"operationId":"approvals_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Continue from pagination.next in this owner's approval collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Owner-scoped approval payloads and pagination","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["approvals","pagination"],"properties":{"approvals":{"type":"array","items":{"$ref":"#/components/schemas/AutomationActionApprovalRecord"}},"pagination":{"$ref":"#/components/schemas/AutomationPagination"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Invocation or cursor is outside the authorized collection"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List the signed-in owner's action approvals for an invocation"}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/artifacts":{"get":{"operationId":"artifacts_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Records per page, from 1 to 100 (default 100).","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Continue after pagination.next from the previous page in this collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["pagination"],"properties":{"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"artifacts":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/AutomationArtifactManifest"},{"type":"object","properties":{"state":{"type":"string"}}}]}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/artifacts/{automation_artifact_id}":{"get":{"operationId":"get_api_v1_organizations_organization_id_automations_automation_id_invocations_id_artifacts_automation_artifact_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_artifact_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Private attachment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/attempts":{"get":{"operationId":"attempts_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Records per page, from 1 to 100 (default 100).","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Continue after pagination.next from the previous page in this collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Durable execution attempts","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"attempts":{"type":"array","items":{"$ref":"#/components/schemas/AutomationAttemptRecord"}}},"required":["pagination","attempts"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Forbidden"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/cancel":{"post":{"operationId":"cancel_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"invocation":{"$ref":"#/components/schemas/AutomationInvocationRecord"}},"required":["invocation"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"409":{"description":"Revision or idempotency conflict"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/decide_approval":{"post":{"operationId":"decide_approval_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Owner decision for the exact action","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["approval"],"properties":{"approval":{"$ref":"#/components/schemas/AutomationActionApprovalRecord"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["approval","decision"],"properties":{"approval":{"type":"string"},"decision":{"type":"string","enum":["approved","denied"]}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/page":{"get":{"operationId":"page_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"attempt","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"transcript_page","in":"query","required":false,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Authorized automation page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AutomationInvocationPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Administrator access required"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/recover_origin":{"post":{"operationId":"recover_origin_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Provider-verified origin; original receipt remains uncertain","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["origin_verification"],"properties":{"origin_verification":{"$ref":"#/components/schemas/AutomationOriginVerificationRecord"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Current connection authority is required"},"404":{"description":"Original invocation result is not accessible"},"422":{"description":"Original dispatch cannot be uniquely verified"},"502":{"description":"Bad gateway"},"409":{"description":"Provider log or action already verified differently"},"503":{"description":"Provider verification temporarily unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AutomationOriginVerificationInput"}}}},"security":[{"bearerAuth":[]}],"summary":"Verify the successful provider origin of an uncertain action without retrying it"}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/resolve_tool_call":{"post":{"operationId":"resolve_tool_call_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Immutable operator resolution; original receipt remains uncertain","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["resolution"],"properties":{"resolution":{"$ref":"#/components/schemas/AutomationToolResolutionRecord"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Only the current connection owner or custodian may resolve this action"},"404":{"description":"Invocation or action is outside the organization"},"422":{"description":"Action is not uncertain or evidence is invalid"},"502":{"description":"Bad gateway"},"409":{"description":"Action already has a different final resolution"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AutomationToolResolutionInput"}}}},"security":[{"bearerAuth":[]}],"summary":"Record owner evidence for an uncertain action without retrying it"}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/retry":{"post":{"operationId":"retry_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Linked successor invocation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"invocation":{"$ref":"#/components/schemas/AutomationInvocationRecord"}},"required":["invocation"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Administrator required"},"404":{"description":"Resource not found"},"422":{"description":"Retry not allowed"},"502":{"description":"Bad gateway"},"202":{"description":"Linked successor invocation","content":{"application/json":{"schema":{"type":"object","properties":{"invocation":{"$ref":"#/components/schemas/AutomationInvocationRecord"}},"required":["invocation"]}}}},"409":{"description":"Idempotency conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"idempotency_key":{"type":"string"}},"required":["idempotency_key"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/tool_calls":{"get":{"operationId":"tool_calls_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Records per page, from 1 to 100 (default 100).","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Continue after pagination.next from the previous page in this collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Bounded tool call history for this invocation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["pagination"],"properties":{"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"roder_run_id":{"type":"string"},"name":{"type":"string"},"state":{"enum":["pending","succeeded","failed","uncertain"]},"arguments":{"type":"object","additionalProperties":true},"result":{"type":"object","nullable":true,"additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{automation_id}/invocations/{id}/transcript":{"get":{"operationId":"transcript_api_v1_organization_automation_invocation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"attempt","in":"query","required":true,"schema":{"type":"integer","minimum":1}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["entries","pagination"],"properties":{"entries":{"type":"array","items":{"$ref":"#/components/schemas/AutomationTranscriptEntry"}},"pagination":{"type":"object","required":["limit"],"properties":{"limit":{"type":"integer"},"next":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{id}":{"get":{"operationId":"api_v1_organization_automation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"automation":{"$ref":"#/components/schemas/AutomationRecord"}},"required":["automation"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"409":{"description":"Revision or idempotency conflict"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_organizations_organization_id_automations_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"automation":{"$ref":"#/components/schemas/AutomationRecord"}},"required":["automation"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"409":{"description":"Revision or idempotency conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"slug":{"type":"string"},"name":{"type":"string"},"configuration":{"$ref":"#/components/schemas/AutomationConfiguration"},"expected_revision":{"type":"integer"}},"required":["expected_revision"]}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_automations_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{id}/activate":{"post":{"operationId":"activate_api_v1_organization_automation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"automation":{"$ref":"#/components/schemas/AutomationRecord"}},"required":["automation"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"409":{"description":"Revision or idempotency conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"expected_revision":{"type":"integer"}},"required":["expected_revision"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{id}/archive":{"post":{"operationId":"archive_api_v1_organization_automation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"automation":{"$ref":"#/components/schemas/AutomationRecord"}},"required":["automation"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"409":{"description":"Revision or idempotency conflict"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{id}/event_deliveries":{"get":{"operationId":"event_deliveries_api_v1_organization_automation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Records per page, from 1 to 100 (default 100).","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Continue after pagination.next from the previous page in this collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Automation event response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"deliveries":{"type":"array","items":{"$ref":"#/components/schemas/AutomationEventDeliveryRecord"}}},"required":["pagination","deliveries"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization administrator required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid replay request"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{id}/page":{"get":{"operationId":"page_api_v1_organization_automation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Authorized automation page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AutomationDetailPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Administrator access required"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{id}/pause":{"post":{"operationId":"pause_api_v1_organization_automation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"automation":{"$ref":"#/components/schemas/AutomationRecord"}},"required":["automation"]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"409":{"description":"Revision or idempotency conflict"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{id}/preview":{"post":{"operationId":"preview_api_v1_organization_automation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Automation response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"cooldown":{"type":"object","properties":{"applicable":{"type":"boolean"},"reason":{"type":"string","nullable":true},"until_at":{"type":"string","format":"date-time","nullable":true}},"required":["applicable","reason","until_at"]},"matches":{"type":"boolean"},"next_due_at":{"type":"string","format":"date-time","nullable":true},"triggers":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"matches":{"type":"boolean"},"next_occurrences":{"type":"array","items":{"type":"string","format":"date-time"}}},"required":["key","matches","next_occurrences"]}}},"required":[]}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization admin access or automation authority required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid definition, input or execution gate"},"502":{"description":"Bad gateway"},"409":{"description":"Revision or idempotency conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"input":{},"event":{"type":["object","null"],"additionalProperties":true}},"required":[]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{id}/replay":{"post":{"operationId":"replay_api_v1_organization_automation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Authentication required"},"403":{"description":"Organization administrator required"},"404":{"description":"Resource not found"},"422":{"description":"Invalid replay request"},"502":{"description":"Bad gateway"},"202":{"description":"Automation event response","content":{"application/json":{"schema":{"type":"object","properties":{"replay":{"type":"object","additionalProperties":true}},"required":["replay"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"event_ids":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"string"}}},"required":["event_ids"]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{id}/revisions":{"get":{"operationId":"revisions_api_v1_organization_automation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Records per page, from 1 to 100 (default 100).","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Continue after pagination.next from the previous page in this collection.","schema":{"type":"string"}}],"responses":{"200":{"description":"Immutable revisions, newest first","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["pagination","revisions"],"properties":{"pagination":{"$ref":"#/components/schemas/AutomationPagination"},"revisions":{"type":"array","items":{"type":"object","required":["number","configuration","created_at"],"properties":{"number":{"type":"integer"},"skills":{"type":"array","items":{"type":"object","additionalProperties":true}},"configuration":{"$ref":"#/components/schemas/AutomationStoredConfiguration"},"created_at":{"type":"string","format":"date-time"}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/automations/{id}/trigger":{"post":{"operationId":"trigger_api_v1_organization_automation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Authentication required"},"403":{"description":"Forbidden"},"404":{"description":"Organization or automation unavailable"},"422":{"description":"Agent action disabled or input invalid"},"502":{"description":"Bad gateway"},"202":{"description":"Accepted agent invocation","content":{"application/json":{"schema":{"type":"object","required":["invocation"],"properties":{"invocation":{"$ref":"#/components/schemas/AutomationInvocationRecord"}}}}}},"409":{"description":"Revision or idempotency conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/AutomationInvocationInput"}}}},"security":[{"bearerAuth":[]}],"summary":"Invoke the active Agent action as an organization member"}},"/api/v1/organizations/{organization_id}/billing":{"get":{"operationId":"api_v1_organization_billing","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Billing page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"The billing page contract for an organization","description":"Customer, subscription, the package entitlements are computed from (the subscription's, or the public Team package for an organization that has not subscribed), per-meter entitlements, add-ons, budget, and the Metronome draft-invoice preview. Any member may read it."}},"/api/v1/organizations/{organization_id}/billing/addons/{addon_key}":{"put":{"operationId":"put_api_v1_organizations_organization_id_billing_addons_addon_key_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"addon_key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated billing page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["quantity"],"properties":{"quantity":{"type":"integer","minimum":0}}}}}},"security":[{"bearerAuth":[]}],"summary":"Set an add-on quantity on the subscription (owner); 0 removes it"}},"/api/v1/organizations/{organization_id}/billing/budget":{"patch":{"operationId":"api_v1_organization_billing_budget","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated billing page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Set or clear the monthly usage budget (owner)"},"put":{"operationId":"put_api_v1_organizations_organization_id_billing_budget","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated billing page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"monthly_cap_cents":{"type":["integer","null"],"description":"Null clears the budget."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Set or clear the monthly usage budget (owner)"}},"/api/v1/organizations/{organization_id}/billing/checkout_sessions":{"post":{"operationId":"api_v1_organization_billing_checkout_sessions","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"The hosted Checkout URL to redirect the browser to","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingHostedSession"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"success_url":{"type":"string"},"cancel_url":{"type":"string"},"coupon_code":{"type":"string","maxLength":200}}}}}},"security":[{"bearerAuth":[]}],"summary":"Create a Stripe Checkout Session (owner)","description":"Collects a card and billing address; nothing is charged. A full-discount coupon uses no-cost payment-mode Checkout without collecting a card. The subscription is provisioned by the `checkout.session.completed` webhook. `success_url` and `cancel_url` are honoured only on the frontend origin."}},"/api/v1/organizations/{organization_id}/billing/contact":{"patch":{"operationId":"api_v1_organization_billing_contact","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated billing page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Invalid email"},"502":{"description":"Stripe contact synchronization failed"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["billing_email"],"properties":{"billing_email":{"type":"string","format":"email"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Set the invoice recipient email (owner)"},"put":{"operationId":"put_api_v1_organizations_organization_id_billing_contact","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}/billing/extra_spend":{"patch":{"operationId":"api_v1_organization_billing_extra_spend","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated billing page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["enabled"],"properties":{"enabled":{"type":"boolean"},"monthly_cap_cents":{"type":["integer","null"],"minimum":1,"maximum":2147483647,"description":"Monthly limit across all metered overages, excluding plan fees. Null removes the limit; omission preserves it."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Set extra-spend consent and an optional monthly overage limit (owner)"},"put":{"operationId":"put_api_v1_organizations_organization_id_billing_extra_spend","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated billing page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["enabled"],"properties":{"enabled":{"type":"boolean"},"monthly_cap_cents":{"type":["integer","null"],"minimum":1,"maximum":2147483647,"description":"Monthly limit across all metered overages, excluding plan fees. Null removes the limit; omission preserves it."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Set extra-spend consent and an optional monthly overage limit (owner)"}},"/api/v1/organizations/{organization_id}/billing/invoices":{"get":{"operationId":"api_v1_organization_billing_invoices","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Invoices","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingInvoicesPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"The Metronome draft and the Stripe invoice list","description":"`upcoming` is what Metronome would invoice now (the current draft total, its period, and the credit balance that offsets it), null without a subscription or when the preview is unavailable. `invoices` is the organization's Stripe invoices, newest first, with the hosted page and PDF links; empty without a Stripe customer. Cached for a minute per organization. Any member may read it. This is its own read rather than part of the page contract because Stripe answers slowly and the usage page must not wait on it."}},"/api/v1/organizations/{organization_id}/billing/portal_sessions":{"post":{"operationId":"api_v1_organization_billing_portal_sessions","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"The portal URL to redirect the browser to","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingHostedSession"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"return_url":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Create a Stripe Customer Portal session (owner)"}},"/api/v1/organizations/{organization_id}/billing/subscription":{"patch":{"operationId":"api_v1_organization_billing_subscription","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated billing page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["cancel_at_period_end"],"properties":{"cancel_at_period_end":{"type":"boolean"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Cancel or resume the subscription at period end (owner)"},"put":{"operationId":"put_api_v1_organizations_organization_id_billing_subscription","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated billing page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Cancel or resume the subscription at period end (owner)"}},"/api/v1/organizations/{organization_id}/billing/usage":{"get":{"operationId":"api_v1_organization_billing_usage","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Meters","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingUsage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"The entitlement meter table for the current period"}},"/api/v1/organizations/{organization_id}/billing/usage/breakdown":{"get":{"operationId":"usage_breakdown_api_v1_organization_billing","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"meter","in":"query","required":false,"schema":{"type":"string"},"description":"A meter key; without one the series cover every meter and `subjects` is empty."},{"name":"window","in":"query","required":false,"schema":{"type":"string","enum":["24h","7d","period"],"default":"24h"}}],"responses":{"200":{"description":"Usage breakdown","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/BillingUsageBreakdown"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Unknown meter or window"}},"security":[{"bearerAuth":[]}],"summary":"The live usage breakdown from the Tinybird pipes, or the rollup fallback","description":"The last 24 hours at 5-minute resolution, the hourly series and totals for `window`, and (when `meter` is given) the top subjects for that meter. `source` is `tinybird` when the pipes answered and `rollup` when Rails served its own hourly rollups instead; a rollup-sourced breakdown has no subjects and lags by up to an hour. Any member may read it."}},"/api/v1/organizations/{organization_id}/docker_builder_gateway/admit":{"post":{"operationId":"api_v1_organization_docker_builder_gateway_admit","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"},"description":"Bearer organization builder session capability"}],"responses":{"200":{"description":"Trusted gateway state","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DockerBuilderGatewayConnection"}}}},"401":{"description":"Gateway or capability is not authorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"409":{"description":"Capacity or generation conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"idempotency_key":{"type":"string","maxLength":100}},"required":["idempotency_key"]}}}},"security":[{"bearerAuth":[]},{"DockerBuilderGatewayKey":[]}],"summary":"Trusted native gateway admit; requires platform credential"}},"/api/v1/organizations/{organization_id}/docker_builder_gateway/authorize":{"post":{"operationId":"api_v1_organization_docker_builder_gateway_authorize","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"},"description":"Bearer organization builder session capability"}],"responses":{"200":{"description":"Trusted gateway state","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DockerBuilderGatewayConnection"}}}},"401":{"description":"Gateway or capability is not authorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"409":{"description":"Capacity or generation conflict"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]},{"DockerBuilderGatewayKey":[]}],"summary":"Trusted native gateway authorize; requires platform credential"}},"/api/v1/organizations/{organization_id}/docker_builder_gateway/finish":{"post":{"operationId":"api_v1_organization_docker_builder_gateway_finish","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Trusted gateway state","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DockerBuilderGatewayCompletion"}}}},"401":{"description":"Gateway or capability is not authorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"409":{"description":"Capacity or generation conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"docker_builder_run_id":{"type":"string"},"generation":{"type":"integer"},"outcome":{"type":"string","enum":["succeeded","failed","canceled"]}},"required":["docker_builder_run_id","generation","outcome"]}}}},"security":[{"bearerAuth":[]},{"DockerBuilderGatewayKey":[]}],"summary":"Trusted native gateway finish; requires platform credential"}},"/api/v1/organizations/{organization_id}/docker_builder_sessions/authorize":{"post":{"operationId":"api_v1_organization_docker_builder_sessions_authorize","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Builder session","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DockerBuilderSessionResponse"}}}},"401":{"description":"Capability is no longer authorized"},"403":{"description":"Forbidden"},"404":{"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":"Validate capability identity for the native gateway; does not admit a solve"}},"/api/v1/organizations/{organization_id}/docker_builder_sessions/{id}":{"get":{"operationId":"api_v1_organization_docker_builder_session","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":"Builder session","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DockerBuilderSessionResponse"}}}},"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_organizations_organization_id_docker_builder_sessions_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":"Session revoked; active native runs remain admitted until provider completion"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/docker_builder_sessions/{id}/refresh":{"post":{"operationId":"refresh_api_v1_organization_docker_builder_session","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Builder session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DockerBuilderSessionIssued"}}}},"409":{"description":"Session expired, revoked, unauthorized, or from another generation"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Rotate a usable capability and revoke the old secret"}},"/api/v1/organizations/{organization_id}/docker_builder_settings":{"get":{"operationId":"api_v1_organization_docker_builder_settings","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Builder state","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DockerBuilderSettingsResponse"}}}},"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_docker_builder_settings","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Builder state","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DockerBuilderSettingsResponse"}}}},"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/DockerBuilderSettingsUpdate"}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_docker_builder_settings","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}/docker_builders":{"get":{"operationId":"api_v1_organization_docker_builders","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"slug","in":"query","required":false,"description":"Exact builder slug, resolved within the authorized organization","schema":{"type":"string"}}],"responses":{"200":{"description":"Builder state","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DockerBuildersResponse"}}}},"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_docker_builders","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Builder state","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DockerBuilderResponse"}}}},"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/DockerBuilderCreate"}}}},"security":[{"bearerAuth":[]}],"summary":"Create or reuse an organization builder without starting compute"}},"/api/v1/organizations/{organization_id}/docker_builders/{docker_builder_id}/sessions":{"post":{"operationId":"api_v1_organization_docker_builder_sessions","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"docker_builder_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/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":"Builder session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DockerBuilderSessionIssued"}}}},"409":{"description":"Builder is not ready or actor is no longer authorized"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Issue a user-bound ten-minute builder capability"}},"/api/v1/organizations/{organization_id}/docker_builders/{id}":{"get":{"operationId":"api_v1_organization_docker_builder","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":"Builder state","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DockerBuilderResponse"}}}},"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_docker_builders_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":"Builder state","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DockerBuilderResponse"}}}},"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/DockerBuilderRename"}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_docker_builders_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}/docker_builders/{id}/recover":{"post":{"operationId":"recover_api_v1_organization_docker_builder","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":"Builder is already sleeping","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DockerBuilderResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Recovery scheduled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DockerBuilderResponse"}}}},"409":{"description":"Builder is starting or its generation changed"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Administrator requests provider-confirmed recovery of a stuck builder","description":"Fences new admission before checkpointing the live VM. Active runs are marked failed only after the provider confirms quiescence; then the VM sleeps."}},"/api/v1/organizations/{organization_id}/docker_builders/{id}/sleep":{"post":{"operationId":"sleep_api_v1_organization_docker_builder","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":"Builder state","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DockerBuilderResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Builder state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DockerBuilderResponse"}}}},"409":{"description":"Builder state or active solves prevent this transition"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Request sleep for an organization builder"}},"/api/v1/organizations/{organization_id}/docker_builders/{id}/wake":{"post":{"operationId":"wake_api_v1_organization_docker_builder","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":"Builder state","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DockerBuilderResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Builder state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DockerBuilderResponse"}}}},"409":{"description":"Builder state or active solves prevent this transition"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Request wake for an organization builder"}},"/api/v1/organizations/{organization_id}/domain_dns_integrations":{"get":{"operationId":"api_v1_organization_domain_dns_integrations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"DNS integrations in the organization","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["integrations"],"properties":{"integrations":{"type":"array","items":{"$ref":"#/components/schemas/DomainDnsIntegration"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_organization_id_domain_dns_integrations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connected Cloudflare DNS integration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DomainDnsIntegration"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Static site request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaticSiteError"}}}},"502":{"description":"Bad gateway"},"201":{"description":"Connected Cloudflare DNS integration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainDnsIntegration"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["api_token"],"properties":{"api_token":{"type":"string","writeOnly":true},"account_label":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/git_imports":{"post":{"operationId":"api_v1_organization_git_imports","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Scoped Git upload destination","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitImportTransfer"}}}},"202":{"description":"Writer preparation is pending. Repeat the same idempotent creation request after Retry-After; no transfer credential is issued yet.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/GitImportStatus"},{"type":"object","required":["storage_status"],"properties":{"storage_status":{"type":"string","enum":["preparing"]}}}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["idempotency_key","slug","destination_mode","root_path","source_branch"],"properties":{"idempotency_key":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"root_path":{"type":"string"},"source_branch":{"type":"string"},"target_branch":{"type":"string"},"destination_mode":{"type":"string","enum":["standalone","home"]},"git_default_branch":{"type":"string","description":"Original Git symbolic HEAD branch, independent of the branch selected for JJ conversion"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Reserve an isolated Git import destination without contacting JJ"}},"/api/v1/organizations/{organization_id}/github_app/installations":{"get":{"operationId":"api_v1_organization_github_app_installations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub App installations linked to the organization","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["github_app_installations"],"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}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/github_app/installations/{id}":{"delete":{"operationId":"api_v1_organization_github_app_installation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"force","in":"query","required":false,"description":"Turn off dependent GitHub sync, CI, and in-flight landings instead of refusing.","schema":{"type":"boolean"}},{"name":"uninstall_on_github","in":"query","required":false,"description":"Also uninstall the App from the GitHub account.","schema":{"type":"boolean"}}],"responses":{"204":{"description":"The installation link was removed"},"401":{"description":"Unauthorized"},"403":{"description":"The actor is not an organization administrator"},"404":{"description":"Not found"},"409":{"description":"The installation is still in use and `force` was not supplied","content":{"application/json":{"schema":{"type":"object","required":["error","blockers"],"properties":{"error":{"type":"string"},"blockers":{"description":"Server-authored sentences naming what a forced disconnect would turn off.","type":"array","items":{"type":"string"}}}}}}},"502":{"description":"GitHub rejected the uninstall request"},"503":{"description":"GitHub App credentials are not configured, or GitHub is unreachable"}},"security":[{"bearerAuth":[]}],"summary":"Disconnect a GitHub App installation from the organization","description":"Requires an organization administrator. Removes the Vex link so the GitHub account can be linked to a different organization, which is not possible while the link exists. Refuses with 409 when GitHub sync, GitHub Actions CI, or an in-flight landing still depends on the installation; `force` turns those off as part of disconnecting. `uninstall_on_github` additionally uninstalls the App from the GitHub account and succeeds when it is already uninstalled.\n"}},"/api/v1/organizations/{organization_id}/github_app/installations/{id}/check_connection":{"post":{"operationId":"check_connection_api_v1_organization_github_app_installation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"202":{"description":"Connection verification requested or already pending","content":{"application/json":{"schema":{"type":"object","required":["health"],"properties":{"health":{"$ref":"#/components/schemas/GithubConnectionHealth"}}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/github_ci_repositories":{"get":{"operationId":"api_v1_organization_github_ci_repositories","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["active","paused","archived"]}},{"name":"adoption_mode","in":"query","required":false,"schema":{"type":"string","enum":["shadow","reporting","required"]}}],"responses":{"200":{"description":"GitHub CI repositories","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["github_ci_repositories"],"properties":{"github_ci_repositories":{"type":"array","items":{"type":"object","required":["id","organization_id","github_app_installation_id","ci_runner_pool_id","github_repository_id","repository_owner","repository_name","repository_full_name","default_branch","status","adoption_mode","check_name_prefix","permission_status","last_webhook_delivery_id","last_webhook_event","last_webhook_action","last_webhook_at","last_webhook_at_label","last_head_sha","last_ref","last_pull_request_number","webhook_delivery_count","last_compatibility_status","last_error_message","metadata","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_app_installation_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"github_repository_id":{"type":"string"},"repository_owner":{"type":"string"},"repository_name":{"type":"string"},"repository_full_name":{"type":"string"},"default_branch":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"adoption_mode":{"type":"string","enum":["shadow","reporting","required"]},"check_name_prefix":{"type":"string"},"permission_status":{"type":"string","enum":["unchecked","ok","missing"]},"last_webhook_delivery_id":{"type":"string","nullable":true},"last_webhook_event":{"type":"string","nullable":true},"last_webhook_action":{"type":"string","nullable":true},"last_webhook_at":{"type":"string","format":"date-time","nullable":true},"last_webhook_at_label":{"type":"string","nullable":true},"last_head_sha":{"type":"string","nullable":true},"last_ref":{"type":"string","nullable":true},"last_pull_request_number":{"type":"integer","nullable":true},"webhook_delivery_count":{"type":"integer"},"last_compatibility_status":{"type":"string","enum":["executable","warning","blocked","error"],"nullable":true},"last_error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_organization_id_github_ci_repositories","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub CI repository","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","organization_id","github_app_installation_id","ci_runner_pool_id","github_repository_id","repository_owner","repository_name","repository_full_name","default_branch","status","adoption_mode","check_name_prefix","permission_status","last_webhook_delivery_id","last_webhook_event","last_webhook_action","last_webhook_at","last_webhook_at_label","last_head_sha","last_ref","last_pull_request_number","webhook_delivery_count","last_compatibility_status","last_error_message","metadata","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_app_installation_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"github_repository_id":{"type":"string"},"repository_owner":{"type":"string"},"repository_name":{"type":"string"},"repository_full_name":{"type":"string"},"default_branch":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"adoption_mode":{"type":"string","enum":["shadow","reporting","required"]},"check_name_prefix":{"type":"string"},"permission_status":{"type":"string","enum":["unchecked","ok","missing"]},"last_webhook_delivery_id":{"type":"string","nullable":true},"last_webhook_event":{"type":"string","nullable":true},"last_webhook_action":{"type":"string","nullable":true},"last_webhook_at":{"type":"string","format":"date-time","nullable":true},"last_webhook_at_label":{"type":"string","nullable":true},"last_head_sha":{"type":"string","nullable":true},"last_ref":{"type":"string","nullable":true},"last_pull_request_number":{"type":"integer","nullable":true},"webhook_delivery_count":{"type":"integer"},"last_compatibility_status":{"type":"string","enum":["executable","warning","blocked","error"],"nullable":true},"last_error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"GitHub CI repository","content":{"application/json":{"schema":{"type":"object","required":["id","organization_id","github_app_installation_id","ci_runner_pool_id","github_repository_id","repository_owner","repository_name","repository_full_name","default_branch","status","adoption_mode","check_name_prefix","permission_status","last_webhook_delivery_id","last_webhook_event","last_webhook_action","last_webhook_at","last_webhook_at_label","last_head_sha","last_ref","last_pull_request_number","webhook_delivery_count","last_compatibility_status","last_error_message","metadata","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_app_installation_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"github_repository_id":{"type":"string"},"repository_owner":{"type":"string"},"repository_name":{"type":"string"},"repository_full_name":{"type":"string"},"default_branch":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"adoption_mode":{"type":"string","enum":["shadow","reporting","required"]},"check_name_prefix":{"type":"string"},"permission_status":{"type":"string","enum":["unchecked","ok","missing"]},"last_webhook_delivery_id":{"type":"string","nullable":true},"last_webhook_event":{"type":"string","nullable":true},"last_webhook_action":{"type":"string","nullable":true},"last_webhook_at":{"type":"string","format":"date-time","nullable":true},"last_webhook_at_label":{"type":"string","nullable":true},"last_head_sha":{"type":"string","nullable":true},"last_ref":{"type":"string","nullable":true},"last_pull_request_number":{"type":"integer","nullable":true},"webhook_delivery_count":{"type":"integer"},"last_compatibility_status":{"type":"string","enum":["executable","warning","blocked","error"],"nullable":true},"last_error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["github_app_installation_id","github_repository_id","repository_owner","repository_name"],"properties":{"github_app_installation_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"github_repository_id":{"type":"string"},"repository_owner":{"type":"string"},"repository_name":{"type":"string"},"default_branch":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"adoption_mode":{"type":"string","enum":["shadow","reporting","required"]},"check_name_prefix":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/github_ci_repositories/{github_ci_repository_id}/compatibility_reports":{"get":{"operationId":"api_v1_organization_github_ci_repository_compatibility_reports","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"github_ci_repository_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["executable","warning","blocked","error"]}},{"name":"source_sha","in":"query","required":false,"schema":{"type":"string"}},{"name":"event_name","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI workflow compatibility reports","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["ci_workflow_compatibility_reports"],"properties":{"ci_workflow_compatibility_reports":{"type":"array","items":{"type":"object","required":["id","organization_id","github_ci_repository_id","ci_pipeline_id","ci_pipeline_run_id","workflow_path","source_sha","source_blob_sha","parser_version","workflow_name","event_name","event_action","ref_name","head_sha","pull_request_number","status","execution_allowed","required_secrets","runner_labels","referenced_actions","supported_features","diagnostics","warnings","errors","metadata","analyzed_at","analyzed_at_label","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_ci_repository_id":{"type":"string"},"ci_pipeline_id":{"type":"string","nullable":true},"ci_pipeline_run_id":{"type":"string","nullable":true},"workflow_path":{"type":"string"},"source_sha":{"type":"string"},"source_blob_sha":{"type":"string","nullable":true},"parser_version":{"type":"string"},"workflow_name":{"type":"string","nullable":true},"event_name":{"type":"string"},"event_action":{"type":"string","nullable":true},"ref_name":{"type":"string","nullable":true},"head_sha":{"type":"string","nullable":true},"pull_request_number":{"type":"integer","nullable":true},"status":{"type":"string","enum":["executable","warning","blocked","error"]},"execution_allowed":{"type":"boolean"},"required_secrets":{"type":"array","items":{"type":"string"}},"runner_labels":{"type":"array","items":{"type":"string"}},"referenced_actions":{"type":"array","items":{"type":"string"}},"supported_features":{"type":"object","additionalProperties":true},"diagnostics":{"type":"array","items":{"type":"object","required":["severity","code","path","message","metadata"],"properties":{"severity":{"type":"string","enum":["error","warning"]},"code":{"type":"string"},"path":{"type":"string"},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}}}},"warnings":{"type":"array","items":{"type":"object","required":["severity","code","path","message","metadata"],"properties":{"severity":{"type":"string","enum":["error","warning"]},"code":{"type":"string"},"path":{"type":"string"},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}}}},"errors":{"type":"array","items":{"type":"object","required":["severity","code","path","message","metadata"],"properties":{"severity":{"type":"string","enum":["error","warning"]},"code":{"type":"string"},"path":{"type":"string"},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}}}},"metadata":{"type":"object","additionalProperties":true},"analyzed_at":{"type":"string","format":"date-time"},"analyzed_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/github_ci_repositories/{github_ci_repository_id}/compatibility_reports/{id}":{"get":{"operationId":"api_v1_organization_github_ci_repository_compatibility_report","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"github_ci_repository_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CI workflow compatibility report","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","organization_id","github_ci_repository_id","ci_pipeline_id","ci_pipeline_run_id","workflow_path","source_sha","source_blob_sha","parser_version","workflow_name","event_name","event_action","ref_name","head_sha","pull_request_number","status","execution_allowed","required_secrets","runner_labels","referenced_actions","supported_features","diagnostics","warnings","errors","metadata","analyzed_at","analyzed_at_label","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_ci_repository_id":{"type":"string"},"ci_pipeline_id":{"type":"string","nullable":true},"ci_pipeline_run_id":{"type":"string","nullable":true},"workflow_path":{"type":"string"},"source_sha":{"type":"string"},"source_blob_sha":{"type":"string","nullable":true},"parser_version":{"type":"string"},"workflow_name":{"type":"string","nullable":true},"event_name":{"type":"string"},"event_action":{"type":"string","nullable":true},"ref_name":{"type":"string","nullable":true},"head_sha":{"type":"string","nullable":true},"pull_request_number":{"type":"integer","nullable":true},"status":{"type":"string","enum":["executable","warning","blocked","error"]},"execution_allowed":{"type":"boolean"},"required_secrets":{"type":"array","items":{"type":"string"}},"runner_labels":{"type":"array","items":{"type":"string"}},"referenced_actions":{"type":"array","items":{"type":"string"}},"supported_features":{"type":"object","additionalProperties":true},"diagnostics":{"type":"array","items":{"type":"object","required":["severity","code","path","message","metadata"],"properties":{"severity":{"type":"string","enum":["error","warning"]},"code":{"type":"string"},"path":{"type":"string"},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}}}},"warnings":{"type":"array","items":{"type":"object","required":["severity","code","path","message","metadata"],"properties":{"severity":{"type":"string","enum":["error","warning"]},"code":{"type":"string"},"path":{"type":"string"},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}}}},"errors":{"type":"array","items":{"type":"object","required":["severity","code","path","message","metadata"],"properties":{"severity":{"type":"string","enum":["error","warning"]},"code":{"type":"string"},"path":{"type":"string"},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}}}},"metadata":{"type":"object","additionalProperties":true},"analyzed_at":{"type":"string","format":"date-time"},"analyzed_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/github_ci_repositories/{id}":{"get":{"operationId":"api_v1_organization_github_ci_repository","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub CI repository","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","organization_id","github_app_installation_id","ci_runner_pool_id","github_repository_id","repository_owner","repository_name","repository_full_name","default_branch","status","adoption_mode","check_name_prefix","permission_status","last_webhook_delivery_id","last_webhook_event","last_webhook_action","last_webhook_at","last_webhook_at_label","last_head_sha","last_ref","last_pull_request_number","webhook_delivery_count","last_compatibility_status","last_error_message","metadata","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_app_installation_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"github_repository_id":{"type":"string"},"repository_owner":{"type":"string"},"repository_name":{"type":"string"},"repository_full_name":{"type":"string"},"default_branch":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"adoption_mode":{"type":"string","enum":["shadow","reporting","required"]},"check_name_prefix":{"type":"string"},"permission_status":{"type":"string","enum":["unchecked","ok","missing"]},"last_webhook_delivery_id":{"type":"string","nullable":true},"last_webhook_event":{"type":"string","nullable":true},"last_webhook_action":{"type":"string","nullable":true},"last_webhook_at":{"type":"string","format":"date-time","nullable":true},"last_webhook_at_label":{"type":"string","nullable":true},"last_head_sha":{"type":"string","nullable":true},"last_ref":{"type":"string","nullable":true},"last_pull_request_number":{"type":"integer","nullable":true},"webhook_delivery_count":{"type":"integer"},"last_compatibility_status":{"type":"string","enum":["executable","warning","blocked","error"],"nullable":true},"last_error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_organizations_organization_id_github_ci_repositories_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub CI repository","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","organization_id","github_app_installation_id","ci_runner_pool_id","github_repository_id","repository_owner","repository_name","repository_full_name","default_branch","status","adoption_mode","check_name_prefix","permission_status","last_webhook_delivery_id","last_webhook_event","last_webhook_action","last_webhook_at","last_webhook_at_label","last_head_sha","last_ref","last_pull_request_number","webhook_delivery_count","last_compatibility_status","last_error_message","metadata","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_app_installation_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"github_repository_id":{"type":"string"},"repository_owner":{"type":"string"},"repository_name":{"type":"string"},"repository_full_name":{"type":"string"},"default_branch":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"adoption_mode":{"type":"string","enum":["shadow","reporting","required"]},"check_name_prefix":{"type":"string"},"permission_status":{"type":"string","enum":["unchecked","ok","missing"]},"last_webhook_delivery_id":{"type":"string","nullable":true},"last_webhook_event":{"type":"string","nullable":true},"last_webhook_action":{"type":"string","nullable":true},"last_webhook_at":{"type":"string","format":"date-time","nullable":true},"last_webhook_at_label":{"type":"string","nullable":true},"last_head_sha":{"type":"string","nullable":true},"last_ref":{"type":"string","nullable":true},"last_pull_request_number":{"type":"integer","nullable":true},"webhook_delivery_count":{"type":"integer"},"last_compatibility_status":{"type":"string","enum":["executable","warning","blocked","error"],"nullable":true},"last_error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"ci_runner_pool_id":{"type":"string","nullable":true},"default_branch":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"adoption_mode":{"type":"string","enum":["shadow","reporting","required"]},"check_name_prefix":{"type":"string"},"permission_status":{"type":"string","enum":["unchecked","ok","missing"]}}}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_github_ci_repositories_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub CI repository","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["id","organization_id","github_app_installation_id","ci_runner_pool_id","github_repository_id","repository_owner","repository_name","repository_full_name","default_branch","status","adoption_mode","check_name_prefix","permission_status","last_webhook_delivery_id","last_webhook_event","last_webhook_action","last_webhook_at","last_webhook_at_label","last_head_sha","last_ref","last_pull_request_number","webhook_delivery_count","last_compatibility_status","last_error_message","metadata","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_app_installation_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"github_repository_id":{"type":"string"},"repository_owner":{"type":"string"},"repository_name":{"type":"string"},"repository_full_name":{"type":"string"},"default_branch":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"adoption_mode":{"type":"string","enum":["shadow","reporting","required"]},"check_name_prefix":{"type":"string"},"permission_status":{"type":"string","enum":["unchecked","ok","missing"]},"last_webhook_delivery_id":{"type":"string","nullable":true},"last_webhook_event":{"type":"string","nullable":true},"last_webhook_action":{"type":"string","nullable":true},"last_webhook_at":{"type":"string","format":"date-time","nullable":true},"last_webhook_at_label":{"type":"string","nullable":true},"last_head_sha":{"type":"string","nullable":true},"last_ref":{"type":"string","nullable":true},"last_pull_request_number":{"type":"integer","nullable":true},"webhook_delivery_count":{"type":"integer"},"last_compatibility_status":{"type":"string","enum":["executable","warning","blocked","error"],"nullable":true},"last_error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"ci_runner_pool_id":{"type":"string","nullable":true},"default_branch":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"adoption_mode":{"type":"string","enum":["shadow","reporting","required"]},"check_name_prefix":{"type":"string"},"permission_status":{"type":"string","enum":["unchecked","ok","missing"]}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/github_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"},"repositories":{"oneOf":[{"type":"string","enum":["all"]},{"type":"array","items":{"type":"object","required":["owner","name"],"properties":{"owner":{"type":"string"},"name":{"type":"string"},"source_branch":{"type":"string"}}}}]}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/github_runner_egress":{"get":{"operationId":"get_api_v1_organizations_organization_id_github_runner_egress","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current tenant-scoped routing status","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["github_runner_egress"],"properties":{"github_runner_egress":{"$ref":"#/components/schemas/GithubRunnerEgress"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read this organization's Gen2 static egress assignment and activation request"},"post":{"operationId":"post_api_v1_organizations_organization_id_github_runner_egress","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current tenant-scoped routing status","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["github_runner_egress"],"properties":{"github_runner_egress":{"$ref":"#/components/schemas/GithubRunnerEgress"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Organization owner or admin required"},"404":{"description":"Organization not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Request Composal admin activation of Gen2 static egress"}},"/api/v1/organizations/{organization_id}/github_runner_images":{"get":{"operationId":"get_api_v1_organizations_organization_id_github_runner_images","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Toolchains and preparation status","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["github_runner_images"],"properties":{"github_runner_images":{"type":"array","items":{"$ref":"#/components/schemas/GithubRunnerImage"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List organization GitHub runner images"},"post":{"operationId":"post_api_v1_organizations_organization_id_github_runner_images","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":"Organization administrator required"},"404":{"description":"Not found"},"422":{"description":"Invalid image or registry secret reference"},"502":{"description":"Bad gateway"},"202":{"description":"Runner image and preparation status","content":{"application/json":{"schema":{"type":"object","required":["github_runner_image"],"properties":{"github_runner_image":{"$ref":"#/components/schemas/GithubRunnerImage"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["name","image_reference"],"properties":{"name":{"type":"string"},"image_reference":{"type":"string"},"registry_secret_name":{"type":"string","nullable":true}}}}}},"security":[{"bearerAuth":[]}],"summary":"Import and prepare a customer Docker image for GitHub runners"}},"/api/v1/organizations/{organization_id}/github_runner_images/{id}":{"get":{"operationId":"get_api_v1_organizations_organization_id_github_runner_images_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":"Runner image and preparation status","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["github_runner_image"],"properties":{"github_runner_image":{"$ref":"#/components/schemas/GithubRunnerImage"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Image not found in this organization"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Inspect a runner image by organization name or public ID"}},"/api/v1/organizations/{organization_id}/github_runner_images/{id}/prepare":{"post":{"operationId":"post_api_v1_organizations_organization_id_github_runner_images_id_prepare","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":"Organization administrator required"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Runner image and preparation status","content":{"application/json":{"schema":{"type":"object","required":["github_runner_image"],"properties":{"github_runner_image":{"$ref":"#/components/schemas/GithubRunnerImage"}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Retry failed image preparation"}},"/api/v1/organizations/{organization_id}/github_runner_pools":{"get":{"operationId":"get_api_v1_organizations_organization_id_github_runner_pools","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repository runner pools","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["github_runner_pools"],"properties":{"github_runner_pools":{"type":"array","items":{"$ref":"#/components/schemas/GithubRunnerPool"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List organization GitHub runner pools"},"post":{"operationId":"post_api_v1_organizations_organization_id_github_runner_pools","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub Actions runner configuration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["github_runner_pool"],"properties":{"github_runner_pool":{"$ref":"#/components/schemas/GithubRunnerPool"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Organization administrator required"},"404":{"description":"Not found"},"422":{"description":"Invalid configuration or missing GitHub permissions"},"502":{"description":"Bad gateway"},"201":{"description":"GitHub Actions runner configuration","content":{"application/json":{"schema":{"type":"object","required":["github_runner_pool"],"properties":{"github_runner_pool":{"$ref":"#/components/schemas/GithubRunnerPool"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["github_app_installation_id","repository_full_name"],"properties":{"github_app_installation_id":{"type":"string"},"repository_full_name":{"type":"string"},"label":{"type":"string","enum":["composal","composal-x64-2x-8gb","composal-x64-2x","composal-x64-4x","composal-x64-8x","composal-x64-16x","composal-vm-x64-2x","composal-vm-x64-4x","composal-vm-x64-8x","composal-vm-x64-16x","composal-sandbox-x64-2x","composal-sandbox-x64-4x","composal-sandbox-x64-8x","composal-sandbox-x64-16x","composal-sandbox-x64","composal-sandbox-x64-0.5x","composal-boxmad-x64","composal-boxmad-x64-2x","composal-boxmad-x64-4x","composal-boxmad-x64-8x","composal-boxmad-x64-16x","composal-boxmad-x64-2x-8gb","composal-gen2","composal-gen2-x64","composal-gen2-x64-2x","composal-gen2-x64-2x-8gb","composal-gen2-x64-4x","composal-gen2-x64-8x","composal-gen2-x64-16x"],"default":"composal-x64-2x"},"image":{"type":"string","nullable":true,"description":"Organization image name or ID; null restores the standard image"},"provider":{"type":"string","enum":["modal","boxmad"]},"enabled":{"type":"boolean"},"max_concurrency":{"type":"integer"},"timeout_seconds":{"type":"integer"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/github_runner_pools/configure":{"put":{"operationId":"put_api_v1_organizations_organization_id_github_runner_pools_configure","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub Actions runner configuration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["github_runner_pool"],"properties":{"github_runner_pool":{"$ref":"#/components/schemas/GithubRunnerPool"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Organization administrator required"},"404":{"description":"Not found"},"422":{"description":"Invalid configuration"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["repository_full_name"],"properties":{"repository_full_name":{"type":"string"},"github_app_installation_id":{"type":"string"},"label":{"type":"string"},"image":{"type":"string","nullable":true},"provider":{"type":"string","enum":["modal","boxmad"]},"enabled":{"type":"boolean"},"max_concurrency":{"type":"integer"},"timeout_seconds":{"type":"integer"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Configure a repository runner pool by GitHub owner/name and label"}},"/api/v1/organizations/{organization_id}/github_runner_pools/{id}":{"patch":{"operationId":"patch_api_v1_organizations_organization_id_github_runner_pools_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 Actions runner configuration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["github_runner_pool"],"properties":{"github_runner_pool":{"$ref":"#/components/schemas/GithubRunnerPool"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Organization administrator required"},"404":{"description":"Not found"},"422":{"description":"Invalid configuration"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"image":{"type":"string","nullable":true,"description":"Organization image name or ID; null restores the standard image"},"provider":{"type":"string","enum":["modal","boxmad"]},"enabled":{"type":"boolean"},"max_concurrency":{"type":"integer"},"timeout_seconds":{"type":"integer"}}}}}},"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","sandbox_regions","can_manage_sandbox_region","dedicated_outbound_ip_addresses"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"},"dedicated_outbound_ip_addresses":{"$ref":"#/components/schemas/DedicatedOutboundIpAddresses"},"can_manage_sandbox_region":{"type":"boolean"},"sandbox_regions":{"type":"array","items":{"type":"object","required":["value","label"],"properties":{"value":{"type":"string","enum":["us-was-1","us-pdx-1","eu-lon-1","eu-fra-1","auto"]},"label":{"type":"string"}}}}}}]}}}},"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}/local_agent/decisions":{"post":{"operationId":"api_v1_organization_local_agent_decisions","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The provider's native Decisions answer","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Authentication required"},"403":{"description":"Forbidden"},"404":{"description":"Organization not accessible, or code decisions_disabled when the organization has no Decisions"},"422":{"description":"Request not admitted"},"502":{"description":"Bad gateway"},"429":{"description":"Per-user rate limit exceeded"},"503":{"description":"Decisions provider unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/LocalAgentDecisionsRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Relay a local agent's OpenAI Decisions request, recording its token usage against the organization"}},"/api/v1/organizations/{organization_id}/local_agent/parallel/v1/extract":{"post":{"operationId":"api_v1_organization_local_agent_parallel_v1_extract","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Parallel's extract response, unchanged","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Authentication required"},"403":{"description":"Forbidden"},"404":{"description":"Organization not accessible"},"422":{"description":"Request not admitted, or Parallel's own refusal with its body"},"502":{"description":"Bad gateway"},"429":{"description":"Per-user rate limit exceeded"},"503":{"description":"Web search unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Relay a local agent's Parallel Extract request, recording the URLs read and their cost against the organization","description":"Parallel's own Extract body with 1 to 20 http(s) URLs, authenticated as for search. At most 64 KiB."}},"/api/v1/organizations/{organization_id}/local_agent/parallel/v1/search":{"post":{"operationId":"api_v1_organization_local_agent_parallel_v1_search","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Parallel's search response, unchanged","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Authentication required"},"403":{"description":"Forbidden"},"404":{"description":"Organization not accessible"},"422":{"description":"Request not admitted, or Parallel's own refusal with its body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocalAgentInferenceError"}}}},"502":{"description":"Bad gateway"},"429":{"description":"Per-user rate limit, or Parallel's own refusal with its body"},"503":{"description":"Web search unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Relay a local agent's Parallel Search request, recording the search and its cost against the organization","description":"Parallel's own Search body, authenticated with the personal access token in `x-api-key` (as Parallel's client sends its key) or a bearer header. Mode must be turbo, basic or advanced, with at most 20 results, and an objective or search queries. At most 64 KiB."}},"/api/v1/organizations/{organization_id}/local_agent/responses":{"post":{"operationId":"api_v1_organization_local_agent_responses","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The provider's Responses event stream, unchanged. Usage from its terminal event is recorded for the organization.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Authentication required"},"403":{"description":"Forbidden"},"404":{"description":"Organization not accessible"},"422":{"description":"Request not admitted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocalAgentInferenceError"}}}},"502":{"description":"Bad gateway"},"429":{"description":"Per-user rate limit, or the provider's own refusal with its body"},"503":{"description":"Model access unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/LocalAgentResponsesRequest"}}}},"security":[{"bearerAuth":[]}],"summary":"Relay a local agent's OpenAI Responses request, recording its token usage against the organization"}},"/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 team page (members plus invitations for admins and owners)","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization","members","invitations"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"},"members":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationMember"}},"invitations":{"type":"array","description":"Invitation history for admins and owners; empty for other members.","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":[]}]}},"/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","github_runner_pools","github_installations","github_runner_egress"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"},"github_runner_egress":{"$ref":"#/components/schemas/GithubRunnerEgress"},"github_runner_private_links":{"type":"array","items":{"$ref":"#/components/schemas/GithubRunnerPrivateLink"}},"github_runner_pools":{"type":"array","items":{"$ref":"#/components/schemas/GithubRunnerPool"}},"github_installations":{"type":"array","items":{"$ref":"#/components/schemas/GithubAppInstallation"}},"pool_catalogs":{"type":"array","items":{"type":"object","required":["pool","enrollment_tokens"],"properties":{"pool":{"$ref":"#/components/schemas/CiRunnerPoolCatalog"},"enrollment_tokens":{"type":"array","items":{"$ref":"#/components/schemas/CiNodeEnrollmentToken"}}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/products":{"post":{"operationId":"api_v1_organization_products","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Only an organization admin can activate a product"},"404":{"description":"Not found"},"422":{"description":"Unknown product, or a request asking to deactivate one"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OrganizationProductActivationPayload"}}}},"security":[{"bearerAuth":[]}],"description":"Activate a product for the organization. Activation is idempotent, makes the product available without provisioning anything, and has no inverse: there is no deactivation route, and a request carrying `activated: false` is refused."}},"/api/v1/organizations/{organization_id}/repository_import_sessions":{"post":{"operationId":"api_v1_organization_repository_import_sessions","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Repository import session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryImportSession"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RepositoryImportSessionCreateRequest"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/signal_integrations":{"get":{"operationId":"api_v1_organization_signal_integrations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The organization's signal integrations","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["signal_integrations"],"properties":{"signal_integrations":{"type":"array","items":{"$ref":"#/components/schemas/SignalIntegration"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List the organization's third-party signal sources (roadmap 138)","description":"Every configured Sentry/PlanetScale connection with its ingest health. Secret VALUES are never returned — only whether one is stored. `{organization_id}` is the organization's public id (`org_…`) or its slug."},"post":{"operationId":"post_api_v1_organizations_organization_id_signal_integrations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The signal integration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["signal_integration"],"properties":{"signal_integration":{"$ref":"#/components/schemas/SignalIntegration"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The caller is not an administrator of the organization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"404":{"description":"Not found"},"422":{"description":"The request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"502":{"description":"Bad gateway"},"201":{"description":"The signal integration","content":{"application/json":{"schema":{"type":"object","required":["signal_integration"],"properties":{"signal_integration":{"$ref":"#/components/schemas/SignalIntegration"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/SignalIntegrationCreatePayload"}}}},"security":[{"bearerAuth":[]}],"summary":"Connect a third-party signal source (organization admin only)","description":"Creates the integration and stores the supplied credentials as organization-scoped secrets. The response carries the `inbound_url` to paste into the provider's webhook configuration."}},"/api/v1/organizations/{organization_id}/signal_integrations/{id}":{"get":{"operationId":"api_v1_organization_signal_integration","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The signal integration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["signal_integration"],"properties":{"signal_integration":{"$ref":"#/components/schemas/SignalIntegration"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read one signal integration"},"patch":{"operationId":"patch_api_v1_organizations_organization_id_signal_integrations_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The signal integration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["signal_integration"],"properties":{"signal_integration":{"$ref":"#/components/schemas/SignalIntegration"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The caller is not an administrator of the organization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"404":{"description":"Not found"},"422":{"description":"The request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/SignalIntegrationUpdatePayload"}}}},"security":[{"bearerAuth":[]}],"summary":"Update a signal integration (organization admin only)","description":"A blank `webhook_secret` or `api_token` leaves the stored value alone; it never erases one. `provider` is immutable."},"put":{"operationId":"put_api_v1_organizations_organization_id_signal_integrations_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The signal integration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["signal_integration"],"properties":{"signal_integration":{"$ref":"#/components/schemas/SignalIntegration"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The caller is not an administrator of the organization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"404":{"description":"Not found"},"422":{"description":"The request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/SignalIntegrationUpdatePayload"}}}},"security":[{"bearerAuth":[]}],"summary":"Update a signal integration (organization admin only)"},"delete":{"operationId":"delete_api_v1_organizations_organization_id_signal_integrations_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"The caller is not an administrator of the organization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"204":{"description":"The integration and its targets","receipts and cursors were deleted":null}},"security":[{"bearerAuth":[]}],"summary":"Disconnect a signal integration (organization admin only)"}},"/api/v1/organizations/{organization_id}/signal_integrations/{id}/regenerate_inbound_token":{"post":{"operationId":"regenerate_inbound_token_api_v1_organization_signal_integration","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The signal integration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["signal_integration"],"properties":{"signal_integration":{"$ref":"#/components/schemas/SignalIntegration"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The caller is not an administrator of the organization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Rotate the inbound webhook token (organization admin only)","description":"Revokes the current inbound URL. The provider's webhook configuration must be updated with the new URL from the response, or deliveries stop."}},"/api/v1/organizations/{organization_id}/signal_integrations/{id}/verify":{"post":{"operationId":"verify_api_v1_organization_signal_integration","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The signal integration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["signal_integration"],"properties":{"signal_integration":{"$ref":"#/components/schemas/SignalIntegration"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The caller is not an administrator of the organization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"404":{"description":"Not found"},"422":{"description":"The request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Verify the stored credential and discover targets (organization admin only)","description":"Calls the provider with the stored API token, upserts the resources it reports as targets, and marks the integration `active`. A provider whose adapter is not deployed yet answers 422 and records the reason on the integration."}},"/api/v1/organizations/{organization_id}/signal_integrations/{signal_integration_id}/deliveries":{"get":{"operationId":"api_v1_organization_signal_integration_deliveries","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"signal_integration_id","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"The integration's recent deliveries","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["signal_integration_deliveries"],"properties":{"signal_integration_deliveries":{"type":"array","items":{"$ref":"#/components/schemas/SignalIntegrationDelivery"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Recent inbound receipts for one integration","description":"Newest first, bounded (default 50, max 100). Carries no provider content — state, event kind, timings, error and the emitted signal's public id."}},"/api/v1/organizations/{organization_id}/signal_integrations/{signal_integration_id}/targets":{"get":{"operationId":"api_v1_organization_signal_integration_targets","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"signal_integration_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The integration's targets","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["signal_integration_targets"],"properties":{"signal_integration_targets":{"type":"array","items":{"$ref":"#/components/schemas/SignalIntegrationTarget"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List the provider resource to hosted app mapping"},"put":{"operationId":"put_api_v1_organizations_organization_id_signal_integrations_signal_integration_id_targets","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"signal_integration_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The integration's targets","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["signal_integration_targets"],"properties":{"signal_integration_targets":{"type":"array","items":{"$ref":"#/components/schemas/SignalIntegrationTarget"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"The caller is not an administrator of the organization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"404":{"description":"Not found"},"422":{"description":"The request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/SignalIntegrationTargetsPayload"}}}},"security":[{"bearerAuth":[]}],"summary":"Replace the target mapping (organization admin only)","description":"The submitted list is the whole mapping — a target it omits is deleted. Use `enabled: false` to keep a target while stopping attribution."}},"/api/v1/organizations/{organization_id}/signal_subscriptions":{"get":{"operationId":"api_v1_organization_signal_subscriptions","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_organizations_organization_id_signal_subscriptions","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/signal_subscriptions/{id}":{"get":{"operationId":"api_v1_organization_signal_subscription","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"patch_api_v1_organizations_organization_id_signal_subscriptions_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_signal_subscriptions_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_organizations_organization_id_signal_subscriptions_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/signals":{"get":{"operationId":"api_v1_organization_signals","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"after_id","required":false,"description":"Exclusive cursor (`sig_…`). Ascending: return signals newer than it. Descending: alias for `before_id`.","schema":{"type":"string"}},{"in":"query","name":"before_id","required":false,"description":"Exclusive cursor (`sig_…`) for `order=desc` — return signals older than it.","schema":{"type":"string"}},{"in":"query","name":"order","required":false,"description":"Scan direction over the id cursor. Defaults to `asc` (oldest-first).","schema":{"type":"string","enum":["asc","desc"]}},{"in":"query","name":"limit","required":false,"description":"Signals per page (default 50, capped at 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"in":"query","name":"kind","required":false,"description":"Exact kind filter from the frozen taxonomy (§1); a single kind or a comma-separated list.","schema":{"type":"string"}},{"in":"query","name":"severity","required":false,"description":"Exact severity filter; a single level or a comma-separated list.","schema":{"type":"string"}},{"in":"query","name":"min_severity","required":false,"description":"Severity floor — this level and everything more severe (§2).","schema":{"$ref":"#/components/schemas/OpsSignalSeverity"}},{"in":"query","name":"hosted_app_id","required":false,"description":"Hosted app filter; accepts an `app_…` public id, a raw id, or the app slug.","schema":{"type":"string"}},{"in":"query","name":"since","required":false,"description":"ISO8601 lower bound on `occurred_at`.","schema":{"type":"string"}},{"in":"query","name":"unacked","required":false,"description":"When true, return only signals with no `acked_at`.","schema":{"type":"boolean"}},{"in":"query","name":"source","required":false,"description":"Signal source provider filter (docs §6e) — a single provider or a comma-separated list. An unrecognized provider is a 422 rather than an empty page.","schema":{"type":"string"}},{"in":"query","name":"integration_id","required":false,"description":"Narrow to one signal integration. Accepts the integration's raw id, and its `sint_…` public id once the integration model ships.","schema":{"type":"string"}},{"in":"query","name":"subscription_id","required":false,"description":"Resume a subscription (`sub_…`): its stored filters supply the defaults for any filter left blank, and its `last_acked_signal_id` becomes the default ascending `after_id`.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of signals, ordered by the id cursor.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OpsSignalPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"A supplied cursor or filter is invalid.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Page the organization's ops signals (docs/ops-signals.md §6)","description":"Cursor-paged signal feed, delegating to `Signals::Query` — the same read service the MCP tools use, so REST and agents never diverge. The cursor is the signal's monotonic id carried as its public id (`sig_…`): `asc` (default) pages forward with `after_id` (exclusive), `desc` pages newest-first with `before_id` (`after_id` is accepted as an alias for the `desc` boundary so a caller can flip `order` alone). In both directions `next_cursor` is the last returned signal's public id, fed straight back as the same-named boundary param. `{organization_id}` is the organization's public id (`org_…`) or its slug."}},"/api/v1/organizations/{organization_id}/signals/ack":{"post":{"operationId":"ack_api_v1_organization_signals","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The number of signals newly acked.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OpsSignalBulkAckResult"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"The request was neither `ids` nor explicitly scoped, or a supplied cursor or filter is invalid.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Bulk-ack signals (docs §6b)","description":"Two mutually exclusive shapes. Explicit `ids` acks exactly those and ignores every other key. Otherwise the request must be explicitly scoped — `before_id`, at least one filter, `recovered_only`, or an opt-in `all: true` — so a request the server did not understand can never silently ack the whole organization.","requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpsSignalBulkAckRequest"}}}}}},"/api/v1/organizations/{organization_id}/signals/{id}":{"get":{"operationId":"api_v1_organization_signal","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The signal, with its additive resource envelopes.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OpsSignalEnvelope"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"One signal by public id"}},"/api/v1/organizations/{organization_id}/signals/{id}/ack":{"post":{"operationId":"ack_api_v1_organization_signal","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The acked signal.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/OpsSignalEnvelope"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Ack one signal","description":"Idempotent — re-acking an already-acked signal is a no-op."}},"/api/v1/organizations/{organization_id}/signals/{id}/agent_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":"Git workspace investigation instructions 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}/verification/integrations":{"get":{"operationId":"api_v1_verification_integrations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"VerificationIntegrations","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerificationIntegrations"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Integrations available to Verify and their state for the current user"}},"/api/v1/organizations/{organization_id}/verification/projects":{"get":{"operationId":"api_v1_verification_projects","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ProjectCollection","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectCollection"}}}},"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_verification_projects","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectCreate"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{id}":{"get":{"operationId":"api_v1_verification_project","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"overview","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"scenario_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"view","in":"query","required":false,"schema":{"type":"string","enum":["groups","runs"]}},{"name":"page","in":"query","required":false,"schema":{"type":"integer"}},{"name":"verify_environment_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"query","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"ProjectPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectPage"}}}},"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_verification_projects_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":"Project","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/Project"}}}},"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/ProjectUpdate"}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_verification_projects_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":"Project","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/Project"}}}},"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/ProjectUpdate"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{id}/archive":{"post":{"operationId":"archive_api_v1_verification_project","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":"Project","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/Project"}}}},"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/RecordVersion"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{id}/icon_image":{"put":{"operationId":"icon_image_api_v1_verification_project","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":"Project with the uploaded icon","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/Project"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Only organization administrators can upload icons"},"404":{"description":"Not found"},"422":{"description":"Invalid image or archived project"},"502":{"description":"Bad gateway"},"409":{"description":"Stale project version"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"multipart/form-data":{"schema":{"type":"object","required":["image","version"],"properties":{"image":{"type":"string","format":"binary"},"version":{"type":"integer","minimum":0}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/android_apks":{"post":{"operationId":"api_v1_verification_project_android_apks","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Pinned Android configuration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/DesktopConfiguration"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Pinned Android configuration for a new environment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesktopConfiguration"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"multipart/form-data":{"schema":{"type":"object","required":["apk"],"properties":{"apk":{"type":"string","format":"binary"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Upload an Android APK for a Computer use project"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/credentials":{"get":{"operationId":"api_v1_verification_project_credentials","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ProjectCredentialCollection","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectCredentialCollection"}}}},"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_verification_projects_project_id_credentials","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/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":"ProjectCredential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectCredential"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"allOf":[{"$ref":"#/components/schemas/ProjectCredentialInput"},{"required":["name","login_method"]}]}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/credentials/{id}":{"get":{"operationId":"api_v1_verification_project_credential","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ProjectCredential","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectCredential"}}}},"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_verification_projects_project_id_credentials_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ProjectCredential","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectCredential"}}}},"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/ProjectCredentialInput"}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_verification_projects_project_id_credentials_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ProjectCredential","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectCredential"}}}},"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/ProjectCredentialInput"}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"delete_api_v1_organizations_organization_id_verification_projects_project_id_credentials_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"permanent","in":"query","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Credential is in use or inbox cleanup is unavailable"},"502":{"description":"Bad gateway"},"204":{"description":"Credential disabled, or permanently deleted with its inbox when permanent=true"}},"security":[{"bearerAuth":[]}],"description":"Permanently delete with permanent=true. Without the flag, legacy clients disable the credential."}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/credentials/{id}/disable":{"post":{"operationId":"disable_api_v1_verification_project_credential","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/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":"Credential disabled; its inbox is retained"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/credentials/{id}/inbox":{"get":{"operationId":"inbox_api_v1_verification_project_credential","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ProjectCredentialInbox","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectCredentialInbox"}}}},"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}/verification/projects/{project_id}/discovery":{"post":{"operationId":"api_v1_verification_project_discovery","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"A replay of a discovery this key already started","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectDiscovery"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"No ready environment, or browser testing is unavailable"},"502":{"description":"Bad gateway"},"202":{"description":"The discovery started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectDiscovery"}}}},"409":{"description":"Idempotency conflict"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Start a project's first discovery with the settings setup chooses"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/environments":{"get":{"operationId":"api_v1_verification_project_environments","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"EnvironmentCollection","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/EnvironmentCollection"}}}},"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_verification_projects_project_id_environments","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Environment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentDetail"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/EnvironmentCreate"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/environments/directory":{"get":{"operationId":"directory_api_v1_verification_project_environments","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"query","in":"query","required":false,"schema":{"type":"string"}},{"name":"archived","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"environments_page","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"previews_page","in":"query","required":false,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"ProjectEnvironmentDirectory","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectEnvironmentDirectory"}}}},"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}/verification/projects/{project_id}/environments/{environment_id}/explorations":{"post":{"operationId":"api_v1_verification_project_environment_explorations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"environment_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Exploratory run with agent reports and protected recordings","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExploration"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Exploratory run with agent reports and protected recordings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyExploration"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"account_id":{"type":"string","nullable":true},"goal":{"type":"string","minLength":1,"maxLength":4000},"max_seconds":{"type":"integer","minimum":60,"maximum":43200,"default":7200},"max_testers":{"type":"integer","minimum":1,"maximum":100,"default":20},"concurrency":{"type":"integer","minimum":1,"maximum":48,"default":10},"idempotency_key":{"type":"string"}},"required":["goal"]}}}},"security":[{"bearerAuth":[]}],"summary":"Explore a project environment with a goal-driven browser team and map what it finds"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/environments/{id}":{"get":{"operationId":"api_v1_verification_project_environment","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Environment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/EnvironmentDetail"}}}},"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_verification_projects_project_id_environments_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Environment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/EnvironmentDetail"}}}},"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/EnvironmentUpdate"}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_verification_projects_project_id_environments_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Environment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/EnvironmentDetail"}}}},"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/EnvironmentUpdate"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/environments/{id}/archive":{"post":{"operationId":"archive_api_v1_verification_project_environment","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Environment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/EnvironmentDetail"}}}},"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/RecordVersion"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/fixtures":{"post":{"operationId":"api_v1_verification_project_fixtures","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The project already held these bytes","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyFixture"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Only organization administrators can upload fixtures"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Stored new bytes","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyFixture"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","format":"binary","description":"At most 25 MiB"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Upload fixture bytes for this project's Scenarios","description":"Bytes are stored once per project and named by their sha256. Uploading bytes the project already holds returns the stored fixture."}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/fixtures/{id}":{"get":{"operationId":"api_v1_verification_project_fixture","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The fixture and a signed URL that expires within minutes","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyFixtureDownload"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"This project holds no bytes with that sha256"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"A project's fixture bytes by sha256 (the id), with a short-lived download URL"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/messaging_conversations":{"post":{"operationId":"api_v1_verification_project_messaging_conversations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Conversation created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyMessagingSetup"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyMessagingNumbersCreate"}}}},"security":[{"bearerAuth":[]}],"summary":"Configure a tester and assistant number for an environment"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/messaging_conversations/{id}":{"get":{"operationId":"api_v1_verification_project_messaging_conversation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Manual messages and send eligibility","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyMessagingManual"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read the manual conversation"},"patch":{"operationId":"patch_api_v1_organizations_organization_id_verification_projects_project_id_messaging_conversations_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated conversation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyMessagingSetup"}}}},"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/VerifyMessagingNumbers"}}}},"security":[{"bearerAuth":[]}],"summary":"Update unused conversation numbers"},"put":{"operationId":"put_api_v1_organizations_organization_id_verification_projects_project_id_messaging_conversations_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated conversation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyMessagingSetup"}}}},"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/VerifyMessagingNumbers"}}}},"security":[{"bearerAuth":[]}],"summary":"Update unused conversation numbers"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/messaging_conversations/{id}/mark_read":{"post":{"operationId":"mark_read_api_v1_verification_project_messaging_conversation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/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":"Read request accepted"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Mark the viewed manual conversation read"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/messaging_conversations/{id}/messages":{"post":{"operationId":"messages_api_v1_verification_project_messaging_conversation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Manual conversation after sending","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyMessagingManual"}}}},"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":["client_operation_id","content"],"properties":{"client_operation_id":{"type":"string"},"content":{"type":"string"},"media":{"$ref":"#/components/schemas/VerifyMessagingMediaInput"},"media_upload_ids":{"type":"array","maxItems":6,"items":{"type":"string"},"description":"Ordered staged upload IDs; six on Photon, one on Sendblue. Mutually exclusive with media."},"retry_attachment":{"type":"boolean","description":"Retry an already recorded attachment when its file bytes are no longer on this page."},"reply_to":{"type":"string","description":"Public ID of a visible message"},"send_style":{"type":["string","null"],"enum":["celebration","shooting_star","fireworks","lasers","love","confetti","balloons","spotlight","echo","invisible","gentle","loud","slam",null]}}}}}},"security":[{"bearerAuth":[]}],"summary":"Send a manual message as the signed-in operator"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/messaging_conversations/{id}/messages/{message_id}/reaction":{"post":{"operationId":"post_api_v1_organizations_organization_id_verification_projects_project_id_messaging_conversations_id_messages_message_id_reaction","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"message_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Manual conversation after Sendblue accepts the Tapback","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyMessagingManual"}}}},"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":["reaction"],"properties":{"reaction":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"React to an incoming iMessage in the manual conversation"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/messaging_conversations/{id}/retire":{"post":{"operationId":"retire_api_v1_verification_project_messaging_conversation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Retired conversation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyMessagingSetup"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"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":"Retire a conversation"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/messaging_conversations/{id}/typing":{"post":{"operationId":"typing_api_v1_verification_project_messaging_conversation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/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":"Typing state accepted"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["typing"],"properties":{"typing":{"type":"boolean"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Send the operator's typing state"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/messaging_conversations/{id}/uploads":{"post":{"operationId":"uploads_api_v1_verification_project_messaging_conversation","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Attachment staged","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyMessagingUpload"}}}},"401":{"description":"Session required"},"403":{"description":"Origin, CSRF or permission refused"},"404":{"description":"Not found"},"422":{"description":"Invalid attachment or conversation unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyMessagingError"}}}},"502":{"description":"Bad gateway"},"201":{"description":"Attachment staged for this actor and conversation for one day","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyMessagingUpload"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","format":"binary"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Stage a private attachment without sending a message"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/pages/credentials":{"get":{"operationId":"api_v1_verification_project_pages_credentials","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ProjectCredentialsPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectCredentialsPage"}}}},"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}/verification/projects/{project_id}/pages/environment":{"get":{"operationId":"api_v1_verification_project_pages_environment","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"environment_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ProjectEnvironmentPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectEnvironmentPage"}}}},"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}/verification/projects/{project_id}/pages/findings":{"get":{"operationId":"api_v1_verification_project_pages_findings","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"state","in":"query","description":"Active by default; deferred lists postponed issues; closed lists resolved and ignored ones","schema":{"type":"string","enum":["active","closed","deferred"]}},{"name":"query","in":"query","description":"Search finding titles and summaries; counts reflect the search across all pages","schema":{"type":"string","maxLength":200}},{"name":"source","in":"query","description":"Workflow that reported the finding, including earlier sightings","schema":{"type":"string","enum":["all","scenario_run","exploration","deep_scan"]}},{"name":"run_id","in":"query","description":"Discovery, Deep Scan or scenario execution public ID","schema":{"type":"string"}},{"name":"priority","in":"query","schema":{"type":"string","enum":["all","P0","P1","P2","P3","P4"]}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"ProjectFindingsPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectFindingsPage"}}}},"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}/verification/projects/{project_id}/pages/header":{"get":{"operationId":"api_v1_verification_project_pages_header","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ProjectHeaderPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectHeaderPage"}}}},"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}/verification/projects/{project_id}/pages/overview":{"get":{"operationId":"api_v1_verification_project_pages_overview","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ProjectOverviewPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectOverviewPage"}}}},"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}/verification/projects/{project_id}/pages/overview_activity":{"get":{"operationId":"api_v1_verification_project_pages_overview_activity","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ProjectOverviewActivityPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectOverviewActivityPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Independently loaded project overview activity"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/pages/overview_discovery":{"get":{"operationId":"api_v1_verification_project_pages_overview_discovery","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ProjectOverviewDiscoveryPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectOverviewDiscoveryPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Independently loaded project overview discovery"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/pages/overview_history":{"get":{"operationId":"api_v1_verification_project_pages_overview_history","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ProjectOverviewHistoryPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectOverviewHistoryPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Independently loaded project overview history"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/pages/overview_metrics":{"get":{"operationId":"api_v1_verification_project_pages_overview_metrics","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ProjectOverviewMetricsPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectOverviewMetricsPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Independently loaded project overview metrics"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/pages/overview_pull_requests":{"get":{"operationId":"api_v1_verification_project_pages_overview_pull_requests","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ProjectOverviewPullRequestsPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectOverviewPullRequestsPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Independently loaded project overview pull requests"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/pages/persona":{"get":{"operationId":"api_v1_verification_project_pages_persona","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"persona_id","in":"query","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"ProjectPersonaPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectPersonaPage"}}}},"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}/verification/projects/{project_id}/pages/personas":{"get":{"operationId":"api_v1_verification_project_pages_personas","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ProjectPersonasPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectPersonasPage"}}}},"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}/verification/projects/{project_id}/pages/pr_testing":{"get":{"operationId":"api_v1_verification_project_pages_pr_testing","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"repository_id","in":"query","schema":{"type":"string"}},{"name":"source_repository","in":"query","description":"Source namespace and repository name, scoped to this project; repository_id disambiguates identical source paths","schema":{"type":"string"}},{"name":"repository_search","in":"query","schema":{"type":"string","maxLength":200}},{"name":"provider","in":"query","required":false,"schema":{"type":"string","enum":["github","gitlab"]}}],"responses":{"200":{"description":"ProjectPrTestingPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectPrTestingPage"}}}},"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}/verification/projects/{project_id}/pages/runs":{"get":{"operationId":"api_v1_verification_project_pages_runs","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"status","in":"query","schema":{"type":"string","enum":["all","active","passed","failed","blocked","cancelled","timed_out","skipped","cleanup_blocked"]}},{"name":"trigger","in":"query","schema":{"type":"string","enum":["all","pull_request","rerun","direct"]}},{"name":"environment_id","in":"query","schema":{"type":"string"}},{"name":"query","in":"query","schema":{"type":"string","maxLength":200}},{"name":"environment_query","in":"query","schema":{"type":"string","maxLength":200}}],"responses":{"200":{"description":"ProjectRunsPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectRunsPage"}}}},"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}/verification/projects/{project_id}/pages/scenario":{"get":{"operationId":"api_v1_verification_project_pages_scenario","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"scenario_id","in":"query","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"ProjectScenarioPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectScenarioPage"}}}},"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}/verification/projects/{project_id}/pages/scenario_editor":{"get":{"operationId":"api_v1_verification_project_pages_scenario_editor","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"scenario_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"ProjectScenarioEditorPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectScenarioEditorPage"}}}},"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}/verification/projects/{project_id}/pages/scenario_options":{"get":{"operationId":"api_v1_verification_project_pages_scenario_options","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ProjectScenarioOptions","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectScenarioOptions"}}}},"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}/verification/projects/{project_id}/pages/scenario_rows":{"get":{"operationId":"api_v1_verification_project_pages_scenario_rows","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"sort","in":"query","schema":{"type":"string","enum":["name","last_run","recently_added"]}},{"name":"state","in":"query","schema":{"type":"string","enum":["passing","failing","blocked","cancelled","running","not_run"]}}],"responses":{"200":{"description":"ProjectScenarioRowsPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectScenarioRowsPage"}}}},"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}/verification/projects/{project_id}/pages/scenarios":{"get":{"operationId":"api_v1_verification_project_pages_scenarios","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Name by default; last_run puts the most recently run first and never-run last","schema":{"type":"string","enum":["name","last_run","recently_added"]}},{"name":"limit","in":"query","description":"List at most this many scenarios; state counts then cover only those","schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"ProjectScenariosPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectScenariosPage"}}}},"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}/verification/projects/{project_id}/pages/settings":{"get":{"operationId":"api_v1_verification_project_pages_settings","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ProjectSettingsPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ProjectSettingsPage"}}}},"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}/verification/projects/{project_id}/personas":{"get":{"operationId":"api_v1_verification_project_personas","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"PersonaCollection","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersonaCollection"}}}},"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_verification_projects_project_id_personas","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/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":"Persona","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Persona"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/PersonaCreate"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/personas/{id}":{"get":{"operationId":"api_v1_verification_project_persona","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Persona","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/Persona"}}}},"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_verification_projects_project_id_personas_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Persona","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/Persona"}}}},"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/PersonaUpdate"}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_verification_projects_project_id_personas_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Persona","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/Persona"}}}},"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/PersonaUpdate"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/personas/{id}/archive":{"post":{"operationId":"archive_api_v1_verification_project_persona","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Persona","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/Persona"}}}},"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/RecordVersion"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/recordings":{"post":{"operationId":"api_v1_verification_project_recordings","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"The recording, with its browser starting","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioRecording"}}}},"401":{"description":"Not signed in"},"403":{"description":"Only organization admins record"},"404":{"description":"Recording is not enabled","or the project":null,"persona or environment is not found":null},"422":{"description":"Refused, with a code such as recording_target_unsupported or browser_session_busy, or an archived persona or environment"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ScenarioRecordingCreate"}}}},"security":[{"bearerAuth":[]}],"summary":"Open a recording browser where an admin acts out a journey to draft a Scenario","description":"Admins only, while recording is enabled for the organization. Recording browsers share the organization's limit of 3 live owner browsers and open only environments at a public HTTPS address (code recording_target_unsupported otherwise)."}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/recordings/{id}":{"get":{"operationId":"api_v1_verification_project_recording","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The recording; only its creator can read it","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ScenarioRecording"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read a recording you started, its browser and its draft"},"delete":{"operationId":"delete_api_v1_organizations_organization_id_verification_projects_project_id_recordings_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The discarded recording","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ScenarioRecording"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Discard a recording, close its browser and forget the journey"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/recordings/{id}/finish":{"post":{"operationId":"finish_api_v1_verification_project_recording","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"The recording, now drafting","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioRecording"}}}},"401":{"description":"Not signed in"},"403":{"description":"Only organization admins record"},"404":{"description":"Recording is not enabled","or this admin has no such recording in the project":null},"422":{"description":"Refused with code recording_unavailable (the recording browser ended) or invalid_recording"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ScenarioRecordingFinish"}}}},"security":[{"bearerAuth":[]}],"summary":"Save the recorded journey, close the browser and start drafting a Scenario"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/recordings/{id}/redraft":{"post":{"operationId":"redraft_api_v1_verification_project_recording","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"The recording, drafting again","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioRecording"}}}},"401":{"description":"Not signed in"},"403":{"description":"Only organization admins record"},"404":{"description":"Recording is not enabled","or this admin has no such recording in the project":null},"422":{"description":"Refused with code recording_not_redraftable or redraft_limit_reached"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Draft again from a saved recording whose draft failed or stopped (at most 3 times)"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/run_plans":{"get":{"operationId":"api_v1_verification_project_run_plans","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"page","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Run Plan authoring page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunPlansPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Run Plans and project-wide Scenario choices"},"post":{"operationId":"post_api_v1_organizations_organization_id_verification_projects_project_id_run_plans","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Saved Run Plan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlan"}}}},"400":{"description":"Missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}},"409":{"description":"Source or version changed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}},"422":{"description":"Invalid plan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunPlanInput"}}}},"security":[{"bearerAuth":[]}],"summary":"Compose reusable Scenarios with checkpoint handoffs"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/run_plans/{id}":{"get":{"operationId":"api_v1_verification_project_run_plan","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Run Plan","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunPlan"}}}},"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_verification_projects_project_id_run_plans_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated Run Plan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlan"}}}},"400":{"description":"Missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}},"409":{"description":"Source or version changed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}},"422":{"description":"Invalid plan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunPlanUpdate"}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_verification_projects_project_id_run_plans_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated Run Plan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlan"}}}},"400":{"description":"Missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}},"409":{"description":"Source or version changed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}},"422":{"description":"Invalid plan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunPlanUpdate"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/run_plans/{id}/archive":{"post":{"operationId":"archive_api_v1_verification_project_run_plan","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Archived Run Plan","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunPlan"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}},"422":{"description":"Invalid plan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}},"502":{"description":"Bad gateway"},"400":{"description":"Missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}},"409":{"description":"Source or version changed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPlanError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["version"],"properties":{"version":{"type":"integer"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/run_schedules":{"get":{"operationId":"api_v1_verification_project_run_schedules","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"array","additionalProperties":true,"items":{"$ref":"#/components/schemas/RunSchedule"}}}}},"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_verification_projects_project_id_run_schedules","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/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":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchedule"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunScheduleCreate"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/run_schedules/lookup":{"get":{"operationId":"lookup_api_v1_verification_project_run_schedules","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"name","in":"query","required":true,"schema":{"type":"string"},"description":"Exact schedule name; ambiguous names require a public ID."}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunSchedule"}}}},"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}/verification/projects/{project_id}/run_schedules/options":{"get":{"operationId":"options_api_v1_verification_project_run_schedules","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunScheduleSetupOptions"}}}},"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}/verification/projects/{project_id}/run_schedules/preview":{"post":{"operationId":"preview_api_v1_verification_project_run_schedules","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Current matching scenarios and credential requirements","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunSchedulePreview"}}}},"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/RunScheduleSelection"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/run_schedules/{id}":{"get":{"operationId":"api_v1_verification_project_run_schedule","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunSchedule"}}}},"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_verification_projects_project_id_run_schedules_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunSchedule"}}}},"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/RunScheduleUpdate"}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_verification_projects_project_id_run_schedules_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunSchedule"}}}},"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/RunScheduleUpdate"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/runs":{"get":{"operationId":"api_v1_verification_project_runs","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1},"description":"Page of saved history, newest first, with 100 runs per page."}],"responses":{"200":{"description":"RunCollection","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunCollection"}}}},"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}/verification/projects/{project_id}/runs/prepare":{"post":{"operationId":"prepare_api_v1_verification_project_runs","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Invalid selection, unavailable access, or denied policy"},"502":{"description":"Bad gateway"},"202":{"description":"RunPage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPage"}}}},"409":{"description":"Stale approval or idempotency conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunPrepare"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/runs/{id}":{"get":{"operationId":"api_v1_verification_project_run","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"diagnostics","in":"query","required":false,"description":"false leaves out each scenario's full console and network log (result_json.browser_events and recording.browser_events); browser_errors still lists the errors and failed requests.","schema":{"type":"boolean","default":true}}],"responses":{"200":{"description":"RunPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunPage"}}}},"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}/verification/projects/{project_id}/runs/{id}/cancel":{"post":{"operationId":"cancel_api_v1_verification_project_run","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"RunPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Cancel this Run and its unfinished ScenarioRuns"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/runs/{id}/launch":{"post":{"operationId":"launch_api_v1_verification_project_run","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"RunPage","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Invalid selection, unavailable access, or denied policy"},"502":{"description":"Bad gateway"},"409":{"description":"Stale approval or idempotency conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunLaunch"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/runs/{id}/page":{"get":{"operationId":"page_api_v1_verification_project_run","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"browser","in":"query","description":"ScenarioRun public ID to open, scoped to this run.","schema":{"type":"string"}},{"name":"details","in":"query","description":"false returns only summaries for the agent handoff page.","schema":{"type":"boolean","default":true}}],"responses":{"200":{"description":"Run browser page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunBrowserPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Paginated execution summaries and the selected browser's report"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/runs/{id}/rerun":{"post":{"operationId":"rerun_api_v1_verification_project_run","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Invalid selection, unavailable access, or denied policy"},"502":{"description":"Bad gateway"},"202":{"description":"RunPage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPage"}}}},"409":{"description":"Stale approval or idempotency conflict"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RunRerun"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/runs/{id}/scenario_runs/{scenario_run_id}/lessons":{"post":{"operationId":"post_api_v1_organizations_organization_id_verification_projects_project_id_runs_id_scenario_runs_scenario_run_id_lessons","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"scenario_run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Lesson saved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyMemory"}}}},"403":{"description":"Organization administrator required"},"404":{"description":"Run or ScenarioRun not found in this project"},"422":{"description":"The ScenarioRun did not fail or get blocked, or the lesson is invalid"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ScenarioRunLessonInput"}}}},"security":[{"bearerAuth":[]}],"summary":"Teach Verify how later runs of a failed or blocked Scenario should act","description":"Organization administrators save an advisory operator note in the run's environment, attributed to this ScenarioRun. Later runs of the same Scenario recall it before other notes. It does not change the Scenario's steps, outcomes or account grants."}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/runs/{id}/scenario_runs/{scenario_run_id}/live_frame":{"get":{"operationId":"get_api_v1_organizations_organization_id_verification_projects_project_id_runs_id_scenario_runs_scenario_run_id_live_frame","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"scenario_run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"JPEG frame","content":{"image/jpeg":{"schema":{"type":"string","format":"binary"}}}},"404":{"description":"No live frame; the scenario is not running or has not captured one"}},"security":[{"bearerAuth":[]}],"summary":"The newest masked browser frame of a running ScenarioRun"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/runs/{id}/scenario_runs/{scenario_run_id}/scenario_edit":{"get":{"operationId":"get_api_v1_organizations_organization_id_verification_projects_project_id_runs_id_scenario_runs_scenario_run_id_scenario_edit","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"scenario_run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The current scenario and the environment for a new run; admins only","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioRunEdit"}}}}},"security":[{"bearerAuth":[]}],"summary":"Read the latest saved scenario before proposing an edit from a run"},"patch":{"operationId":"patch_api_v1_organizations_organization_id_verification_projects_project_id_runs_id_scenario_runs_scenario_run_id_scenario_edit","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"scenario_run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Saved scenario; the original run remains unchanged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioRunEdit"}}}},"409":{"description":"The scenario changed since this draft was opened"},"422":{"description":"Invalid steps or outcomes, or the saved scenario is unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ScenarioRunEditSave"}}}},"security":[{"bearerAuth":[]}],"summary":"Save reviewed steps and outcomes as a new scenario revision"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/runs/{id}/scenario_runs/{scenario_run_id}/scenario_edit/run":{"post":{"operationId":"post_api_v1_organizations_organization_id_verification_projects_project_id_runs_id_scenario_runs_scenario_run_id_scenario_edit_run","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"scenario_run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"New run, with the normal preparation and admission checks","content":{"application/json":{"schema":{"type":"object","required":["web_path"],"properties":{"web_path":{"type":"string"}}}}}},"409":{"description":"The reviewed scenario version changed"},"422":{"description":"The target or scenario is unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["version","idempotency_key"],"properties":{"version":{"type":"integer"},"idempotency_key":{"type":"string"},"viewer_time_zone":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Start just the reviewed scenario at its saved version in the original environment"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/runs/{id}/scenario_runs/{scenario_run_id}/scenario_edit/validate":{"post":{"operationId":"post_api_v1_organizations_organization_id_verification_projects_project_id_runs_id_scenario_runs_scenario_run_id_scenario_edit_validate","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"scenario_run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Valid proposed steps and outcomes","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioEditContent"}}}},"409":{"description":"The saved scenario changed"},"422":{"description":"Invalid proposal"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ScenarioRunEditSave"}}}},"security":[{"bearerAuth":[]}],"summary":"Validate a proposed draft without saving or starting a run"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/scenarios":{"get":{"operationId":"api_v1_verification_project_scenarios","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ScenarioCollection","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ScenarioCollection"}}}},"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_verification_projects_project_id_scenarios","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/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":"Scenario","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Scenario"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ScenarioCreate"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/scenarios/export":{"get":{"operationId":"export_api_v1_verification_project_scenarios","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"file_schema_version","in":"query","required":false,"schema":{"type":"integer","enum":[1,2],"default":1},"description":"Version 2 clients retain named actors; older clients refuse actor journeys."}],"responses":{"200":{"description":"ScenarioFileExport","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ScenarioFileExport"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"The project's active Scenarios as Scenario files"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/scenarios/from_exploration":{"post":{"operationId":"from_exploration_api_v1_verification_project_scenarios","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Scenario saved earlier from the same check","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/Scenario"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Scenario","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Scenario"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["exploration_id","agent_id","check_index","persona_id"],"properties":{"exploration_id":{"type":"string"},"agent_id":{"type":"string","description":"Id of the exploration agent that reported the check"},"check_index":{"type":"integer","minimum":0,"description":"Position of the check in that agent's report"},"persona_id":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Save a check a finished exploration of this project reported as a scenario for one persona; saving the same check again returns its scenario"}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/scenarios/import":{"post":{"operationId":"import_api_v1_verification_project_scenarios","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Every file was accepted; nothing is saved on a dry run","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ScenarioFileImportResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Only organization administrators can import Scenarios"},"404":{"description":"Not found"},"422":{"description":"Nothing was saved. Either at least one file was refused and results lists every file, or scenarios was not a list and error says so.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ScenarioFileImportResponse"},{"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/ScenarioFileImport"}}}},"security":[{"bearerAuth":[]}],"summary":"Check every Scenario file, then create and update Scenarios in one transaction","description":"A file with an id updates that Scenario when its version is current. A file without an id creates a Scenario, or, when an earlier import stored its key, matches the Scenario it created. Nothing is saved on a dry run or when any file is refused."}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/scenarios/{id}":{"get":{"operationId":"api_v1_verification_project_scenario","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Scenario","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/Scenario"}}}},"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_verification_projects_project_id_scenarios_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Scenario","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/Scenario"}}}},"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/ScenarioUpdate"}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_verification_projects_project_id_scenarios_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Scenario","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/Scenario"}}}},"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/ScenarioUpdate"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/scenarios/{id}/archive":{"post":{"operationId":"archive_api_v1_verification_project_scenario","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Scenario","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/Scenario"}}}},"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/RecordVersion"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/scenarios/{id}/duplicate":{"post":{"operationId":"duplicate_api_v1_verification_project_scenario","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/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":"Scenario","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Scenario"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ScenarioDuplicate"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verification/projects/{project_id}/scenarios/{id}/revisions":{"get":{"operationId":"revisions_api_v1_verification_project_scenario","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"ScenarioRevisionCollection","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/ScenarioRevisionCollection"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List who saved each version of a scenario, newest first, with the definition each saved"}},"/api/v1/organizations/{organization_id}/verify/binaries":{"get":{"operationId":"api_v1_binaries","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"Safe project-scoped binary response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyBinaryDirectory"}}}},"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_verify_binaries","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Safe project-scoped binary response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyBinaryRegistration"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Safe project-scoped binary response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyBinaryRegistration"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyBinaryCreate"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verify/binaries/{binary_id}/versions":{"get":{"operationId":"api_v1_binary_versions","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"binary_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"Safe project-scoped binary response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyBinaryVersionsPage"}}}},"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_verify_binaries_binary_id_versions","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"binary_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Safe project-scoped binary response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyBinaryVersionRegistration"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Safe project-scoped binary response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyBinaryVersionRegistration"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyBinaryVersionCreate"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verify/binaries/{binary_id}/versions/{id}":{"get":{"operationId":"api_v1_binary_version","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"binary_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Safe project-scoped binary response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyBinaryVersionPage"}}}},"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_organizations_organization_id_verify_binaries_binary_id_versions_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"binary_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/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":"Unreferenced version and owned resources deleted"}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verify/binaries/{binary_id}/versions/{id}/cancel":{"post":{"operationId":"cancel_api_v1_binary_version","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"binary_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Safe project-scoped binary response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyBinaryVersionPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not 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}/verify/binaries/{binary_id}/versions/{id}/logs":{"get":{"operationId":"logs_api_v1_binary_version","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"binary_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Safe project-scoped binary response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyBinaryLogs"}}}},"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}/verify/binaries/{binary_id}/versions/{id}/retry":{"post":{"operationId":"retry_api_v1_binary_version","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"binary_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Safe project-scoped binary response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyBinaryVersionRegistration"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not 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}/verify/binaries/{id}":{"get":{"operationId":"api_v1_binary","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"Safe project-scoped binary response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyBinaryPage"}}}},"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}/verify/binaries/{id}/archive":{"post":{"operationId":"archive_api_v1_binary","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Safe project-scoped binary response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyBinarySummaryPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not 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}/verify/browser_sessions":{"post":{"operationId":"api_v1_browser_sessions","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Expiring owner browser session metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyBrowserSession"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Expiring owner browser session metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyBrowserSession"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["url","project_id"],"properties":{"account_id":{"type":"string","description":"The project's active credential to refresh; omit to create a credential."},"name":{"type":"string","description":"Required when opening a browser for a new credential."},"project_id":{"type":"string","description":"The project (slug or ID) whose credential receives the session."},"url":{"type":"string","format":"uri"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Open a temporary owner-controlled browser for app login and MFA"}},"/api/v1/organizations/{organization_id}/verify/browser_sessions/{id}":{"get":{"operationId":"api_v1_browser_session","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Owner-only metadata; no application cookies or storage values","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyBrowserSession"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read an owner browser status and expiring viewer link"},"delete":{"operationId":"delete_api_v1_organizations_organization_id_verify_browser_sessions_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":"Browser closure requested"}},"security":[{"bearerAuth":[]}],"summary":"Close the temporary login browser without saving"}},"/api/v1/organizations/{organization_id}/verify/browser_sessions/{id}/save":{"post":{"operationId":"save_api_v1_browser_session","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":"Account metadata; browser cookies and storage remain write-only","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyLoginAccount"}}}},"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":["confirm_account"],"properties":{"confirm_account":{"type":"boolean","enum":[true]}}}}}},"security":[{"bearerAuth":[]}],"summary":"Confirm the selected app account and save its scoped authenticated state"}},"/api/v1/organizations/{organization_id}/verify/bug_hunts":{"get":{"operationId":"api_v1_bug_hunts","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Deep scan history and active scans","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExplorationList"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Deprecated alias of verify/deep_scans: List focused deep scans in this organization","deprecated":true},"post":{"operationId":"post_api_v1_organizations_organization_id_verify_bug_hunts","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Previously accepted scan","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExploration"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Accepted scan with its report URL","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyExploration"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["environment_id","goal"],"properties":{"environment_id":{"type":"string"},"account_id":{"type":"string","nullable":true},"goal":{"type":"string","minLength":1,"maxLength":4000},"max_seconds":{"type":"integer","minimum":60,"maximum":43200,"default":7200},"max_testers":{"type":"integer","minimum":1,"maximum":100,"default":20},"concurrency":{"type":"integer","minimum":1,"maximum":48,"default":10},"idempotency_key":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Deprecated alias of verify/deep_scans: Start a parallel team of browser scanners","deprecated":true}},"/api/v1/organizations/{organization_id}/verify/bug_hunts/flows":{"post":{"operationId":"flows_api_v1_bug_hunts","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"The started scans","content":{"application/json":{"schema":{"type":"object","required":["explorations"],"properties":{"explorations":{"type":"array","items":{"$ref":"#/components/schemas/VerifyExplorationSummary"}}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["flow_names"],"description":"Supply exploration_id to scan that exploration's flows on its environment, or environment_id to scan the environment's newest discovery map.","properties":{"environment_id":{"type":"string"},"exploration_id":{"type":"string"},"account_id":{"type":"string","nullable":true},"flow_names":{"type":"array","minItems":1,"items":{"type":"string"}},"note":{"type":"string","nullable":true,"maxLength":1000},"max_seconds":{"type":"integer","minimum":60,"maximum":43200,"default":7200},"max_testers":{"type":"integer","minimum":1,"maximum":100,"default":20},"concurrency":{"type":"integer","minimum":1,"maximum":48,"default":10},"idempotency_key":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Deprecated alias of verify/deep_scans: Start one focused deep scan per chosen flow from a finished exploration or the environment's discovery map","deprecated":true}},"/api/v1/organizations/{organization_id}/verify/bug_hunts/options":{"get":{"operationId":"options_api_v1_bug_hunts","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Launch form choices and permissions","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyDeepScanOptions"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Deprecated alias of verify/deep_scans: Ready environments and their eligible saved credentials","deprecated":true}},"/api/v1/organizations/{organization_id}/verify/bug_hunts/{id}":{"get":{"operationId":"api_v1_bug_hunt","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Deep scan","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExploration"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Deprecated alias of verify/deep_scans: Read a deep scan report and protected evidence","deprecated":true}},"/api/v1/organizations/{organization_id}/verify/bug_hunts/{id}/reproduce":{"post":{"operationId":"reproduce_api_v1_bug_hunt","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"The rerun scan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyExploration"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["finding_index"],"properties":{"finding_index":{"type":"integer","minimum":0},"idempotency_key":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Deprecated alias of verify/deep_scans: Rerun one reported bug of a finished scan in a fresh browser","deprecated":true}},"/api/v1/organizations/{organization_id}/verify/bug_hunts/{id}/stop":{"post":{"operationId":"stop_api_v1_bug_hunt","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Stopped deep scan","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExploration"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"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":"Deprecated alias of verify/deep_scans: Stop a deep scan while retaining its saved report","deprecated":true}},"/api/v1/organizations/{organization_id}/verify/deep_scans":{"get":{"operationId":"api_v1_deep_scans","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"query","in":"query","schema":{"type":"string","maxLength":200}},{"name":"status","in":"query","schema":{"type":"string","enum":["all","active","completed","partial","canceled"]}},{"name":"findings","in":"query","schema":{"type":"string","enum":["all","with_findings"]}}],"responses":{"200":{"description":"Deep scan history and active scans","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExplorationList"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List focused deep scans in this organization"},"post":{"operationId":"post_api_v1_organizations_organization_id_verify_deep_scans","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Previously accepted scan","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExploration"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Accepted scan with its report URL","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyExploration"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["environment_id","goal"],"properties":{"environment_id":{"type":"string"},"account_id":{"type":"string","nullable":true},"goal":{"type":"string","minLength":1,"maxLength":4000},"max_seconds":{"type":"integer","minimum":60,"maximum":43200,"default":7200},"max_testers":{"type":"integer","minimum":1,"maximum":100,"default":20},"concurrency":{"type":"integer","minimum":1,"maximum":48,"default":10},"idempotency_key":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Start a parallel team of browser scanners"}},"/api/v1/organizations/{organization_id}/verify/deep_scans/flows":{"post":{"operationId":"flows_api_v1_deep_scans","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"The started scans","content":{"application/json":{"schema":{"type":"object","required":["explorations"],"properties":{"explorations":{"type":"array","items":{"$ref":"#/components/schemas/VerifyExplorationSummary"}}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["flow_names"],"description":"Supply exploration_id to scan that exploration's flows on its environment, or environment_id to scan the environment's newest discovery map.","properties":{"environment_id":{"type":"string"},"exploration_id":{"type":"string"},"account_id":{"type":"string","nullable":true},"flow_names":{"type":"array","minItems":1,"items":{"type":"string"}},"note":{"type":"string","nullable":true,"maxLength":1000},"max_seconds":{"type":"integer","minimum":60,"maximum":43200,"default":7200},"max_testers":{"type":"integer","minimum":1,"maximum":100,"default":20},"concurrency":{"type":"integer","minimum":1,"maximum":48,"default":10},"idempotency_key":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Start one focused deep scan per chosen flow from a finished exploration or the environment's discovery map"}},"/api/v1/organizations/{organization_id}/verify/deep_scans/options":{"get":{"operationId":"options_api_v1_deep_scans","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Launch form choices and permissions","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyDeepScanOptions"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Ready environments and their eligible saved credentials"}},"/api/v1/organizations/{organization_id}/verify/deep_scans/{id}":{"get":{"operationId":"api_v1_deep_scan","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"evidence","in":"query","description":"Use selected to include evidence file metadata only for the selected agent. Recordings remain available for every agent; report sources are omitted until the full report is requested.","schema":{"type":"string","enum":["selected"]}},{"name":"agent_id","in":"query","description":"Agent whose evidence files to include with evidence=selected. Defaults to the first agent in working, attention, queued, completed, stopped, setup order.","schema":{"type":"string"}},{"name":"finding_id","in":"query","description":"Finding report ID whose tester's evidence files to include with evidence=selected, taking precedence over agent_id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Deep scan","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExploration"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read a deep scan report and protected evidence"}},"/api/v1/organizations/{organization_id}/verify/deep_scans/{id}/agent":{"get":{"operationId":"agent_api_v1_deep_scan","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","schema":{"type":"string"}},{"name":"agent_id","in":"query","schema":{"type":"string"}},{"name":"finding_id","in":"query","description":"Select the tester that owns this finding, taking precedence over agent_id.","schema":{"type":"string"}}],"responses":{"200":{"description":"The selected tester","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExplorationAgent"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"One tester's recording, activity and evidence, loaded when opened"}},"/api/v1/organizations/{organization_id}/verify/deep_scans/{id}/context":{"get":{"operationId":"context_api_v1_deep_scan","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Deep Scan navigation context","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyDeepScanContext"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Compact run instructions, status and navigation without reports or recordings"}},"/api/v1/organizations/{organization_id}/verify/deep_scans/{id}/findings":{"get":{"operationId":"findings_api_v1_deep_scan","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Deep Scan findings","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyDeepScanFindings"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"All findings and the complete agent fix prompt for one Deep Scan"}},"/api/v1/organizations/{organization_id}/verify/deep_scans/{id}/reproduce":{"post":{"operationId":"reproduce_api_v1_deep_scan","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"The rerun scan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyExploration"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["finding_index"],"properties":{"finding_index":{"type":"integer","minimum":0},"idempotency_key":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Rerun one reported bug of a finished scan in a fresh browser"}},"/api/v1/organizations/{organization_id}/verify/deep_scans/{id}/stop":{"post":{"operationId":"stop_api_v1_deep_scan","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Stopped deep scan","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExploration"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"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":"Stop a deep scan while retaining its saved report"}},"/api/v1/organizations/{organization_id}/verify/dreams":{"get":{"operationId":"api_v1_dreams","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":true,"description":"Project slug or public id","schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"One page of 25 dreams for the project, newest first","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyDreamsPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Project not found in this organization"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List a project's nightly dreams, newest first, with the schedule and the runs waiting for the next one"}},"/api/v1/organizations/{organization_id}/verify/dreams/{id}":{"get":{"operationId":"api_v1_dream","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":true,"description":"Project slug or public id that owns the dream","schema":{"type":"string"}},{"name":"tab","in":"query","required":false,"description":"Which list to populate; defaults to changes","schema":{"type":"string","enum":["changes","runs"],"default":"changes"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"The dream, its counts, and one page of the selected tab's list","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyDreamPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Dream not found for this organization and project"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Inspect what one nightly dream reviewed and changed"}},"/api/v1/organizations/{organization_id}/verify/dreams/{id}/resume":{"post":{"operationId":"resume_api_v1_dream","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":true,"description":"Project slug or public id that owns the dream","schema":{"type":"string"}}],"responses":{"200":{"description":"The dream as it is after the review job was queued; its status is pending","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyDreamDetail"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Organization administrator required"},"404":{"description":"Dream not found for this organization and project"},"422":{"description":"The dream already finished, is already queued, or a worker still holds it","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string"},"code":{"type":"string","enum":["dream_not_resumable"]}}}}}},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Resume an interrupted or failed dream now instead of waiting for the next sweep","description":"Organization administrators only. Queues the dream's review job and marks the dream pending, so it is no longer resumable until a worker claims it; repeating the request meanwhile is refused."}},"/api/v1/organizations/{organization_id}/verify/environments":{"get":{"operationId":"api_v1_verify_environments","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"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_verify_environments","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Existing environment returned for an idempotent replay","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyEnvironment"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Verify environment created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyEnvironment"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyEnvironmentCreateInput"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verify/environments/{id}":{"get":{"operationId":"api_v1_verify_environment","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Combined Verify environment detail snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyEnvironmentDetail"}}}},"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_verify_environments_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 Verify environment","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyEnvironment"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"verify_network_connection_id":{"type":"string","nullable":true},"allowed_actions":{"type":"string","enum":["read_only","writes"],"description":"read_only only looks around; writes may create, change and delete data."},"target_url":{"type":["string","null"]},"imessage_number":{"type":["string","null"]},"messaging_tester_number":{"type":["string","null"]},"version":{"type":"integer","description":"Required for target or tester changes; use lock_version from the environment."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Update a Verify environment and its selected private network connection"},"put":{"operationId":"put_api_v1_organizations_organization_id_verify_environments_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_verify_environments_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}/verify/environments/{verify_environment_id}/discovery_runs":{"post":{"operationId":"api_v1_verify_environment_discovery_runs","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"verify_environment_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Existing discovery run","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyDiscoveryRun"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Discovery admitted; exploration can change application data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyDiscoveryRun"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"account_id":{"type":"string","nullable":true,"description":"Omit for anonymous exploration"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Run a short anonymous smoke pass over a saved environment, with no goal or run page. For goal-driven discovery with testers, start an exploration instead"}},"/api/v1/organizations/{organization_id}/verify/environments/{verify_environment_id}/discovery_runs/{id}":{"get":{"operationId":"api_v1_verify_environment_discovery_run","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"verify_environment_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Discovery status and saved report","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyDiscoveryRun"}}}},"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}/verify/environments/{verify_environment_id}/discovery_runs/{id}/stop":{"post":{"operationId":"stop_api_v1_verify_environment_discovery_run","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"verify_environment_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Discovery stopped; sandbox cleanup follows runner cancellation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyDiscoveryRun"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not 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}/verify/environments/{verify_environment_id}/revisions":{"post":{"operationId":"api_v1_verify_environment_revisions","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"verify_environment_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Blueprint dry-run or idempotent replay","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"oneOf":[{"$ref":"#/components/schemas/VerifyBlueprintValidation"},{"$ref":"#/components/schemas/VerifyEnvironmentRevision"}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Immutable environment revision imported","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyEnvironmentRevision"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyEnvironmentRevisionImportInput"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verify/environments/{verify_environment_id}/revisions/{id}":{"post":{"operationId":"api_v1_verify_environment_revision","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"verify_environment_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Existing destroy operation returned for an idempotent replay","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyEnvironmentRevision"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Teardown accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyEnvironmentRevision"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]},"get":{"operationId":"get_api_v1_organizations_organization_id_verify_environments_verify_environment_id_revisions_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"verify_environment_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"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}/verify/environments/{verify_environment_id}/revisions/{id}/provision":{"post":{"operationId":"provision_api_v1_verify_environment_revision","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"verify_environment_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Existing provision operation returned for an idempotent replay","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyEnvironmentRevision"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Provision operation accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyEnvironmentRevision"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verify/environments/{verify_environment_id}/revisions/{id}/revoke":{"post":{"operationId":"revoke_api_v1_verify_environment_revision","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"verify_environment_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Existing revoke operation returned for an idempotent replay","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyEnvironmentRevision"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Revocation accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyEnvironmentRevision"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organizations/{organization_id}/verify/environments/{verify_environment_id}/revisions/{id}/validate":{"post":{"operationId":"validate_api_v1_verify_environment_revision","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"verify_environment_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Environment revision validated","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyEnvironmentRevision"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not 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}/verify/environments/{verify_environment_id}/test_accounts":{"get":{"operationId":"api_v1_verify_environment_test_accounts","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"verify_environment_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Login personas and write-only credential configuration status","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyTestAccountCollection"}}}},"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}/verify/environments/{verify_environment_id}/test_accounts/{persona}":{"patch":{"operationId":"api_v1_verify_environment_test_account","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"verify_environment_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"persona","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Test account credentials configured without returning values","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyTestAccount"}}}},"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/VerifyTestAccountUpdateInput"}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_verify_environments_verify_environment_id_test_accounts_persona_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"verify_environment_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"persona","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not 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}/verify/evidence":{"get":{"operationId":"api_v1_evidence_index","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":[]}]}},"/api/v1/organizations/{organization_id}/verify/evidence/archive":{"get":{"operationId":"archive_api_v1_evidence_index","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"scenario_run_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"A zip of the scenario run's evidence in capture order","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"application/zip":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"The scenario run is not visible, or has no readable evidence"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Download every readable evidence item of one scenario run as a zip"}},"/api/v1/organizations/{organization_id}/verify/evidence/{id}":{"get":{"operationId":"api_v1_evidence","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}/verify/evidence/{id}/download":{"get":{"operationId":"download_api_v1_evidence","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}/verify/explorations":{"get":{"operationId":"api_v1_explorations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"launch","in":"query","required":false,"description":"Also return launch_options, for admins, so a new run can start from this page","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Running discovery teams and one page of all discovery runs","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExplorationList"}}}},"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 discovery runs, newest first, with running teams kept separately"},"post":{"operationId":"post_api_v1_organizations_organization_id_verify_explorations","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Exploratory run with agent reports and protected recordings","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExploration"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Exploratory run with agent reports and protected recordings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyExploration"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"environment_id":{"type":"string"},"account_id":{"type":"string","nullable":true},"goal":{"type":"string","minLength":1,"maxLength":4000},"max_seconds":{"type":"integer","minimum":60,"maximum":43200,"default":7200},"max_testers":{"type":"integer","minimum":1,"maximum":100,"default":20},"concurrency":{"type":"integer","minimum":1,"maximum":48,"default":10},"idempotency_key":{"type":"string"}},"required":["environment_id","goal"]}}}},"security":[{"bearerAuth":[]}],"summary":"Start goal-driven discovery with an exploratory browser team; the response's web_url is the run page to share"}},"/api/v1/organizations/{organization_id}/verify/explorations/{id}":{"get":{"operationId":"api_v1_exploration","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"evidence","in":"query","schema":{"type":"string","enum":["selected"]}},{"name":"agent_id","in":"query","schema":{"type":"string"}},{"name":"finding_id","in":"query","description":"Finding report ID whose tester's evidence files to include with evidence=selected, taking precedence over agent_id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Exploratory run with agent reports and protected recordings","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExploration"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read every explorer charter, checkpoint, finding and recording"}},"/api/v1/organizations/{organization_id}/verify/explorations/{id}/create_project":{"post":{"operationId":"create_project_api_v1_exploration","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Project Scenario saved without launching a run","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["project_id","scenario_id","web_url"],"properties":{"project_id":{"type":"string"},"scenario_id":{"type":"string"},"web_url":{"type":"string","description":"The project's Scenario page in the Composal web app"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["agent_id","check_index"],"properties":{"agent_id":{"type":"string"},"check_index":{"type":"integer","minimum":0}}}}}},"security":[{"bearerAuth":[]}],"summary":"Save a reported discovery check as a project Scenario"}},"/api/v1/organizations/{organization_id}/verify/explorations/{id}/messages":{"post":{"operationId":"messages_api_v1_exploration","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Previously saved message","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExploration"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Message saved and orchestration scheduled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyExploration"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":2000}}}}}},"security":[{"bearerAuth":[]}],"summary":"Steer an active Discovery or Deep Scan, or continue a finished Discovery"}},"/api/v1/organizations/{organization_id}/verify/explorations/{id}/progress":{"get":{"operationId":"progress_api_v1_exploration","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Exploration progress","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExplorationProgress"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read exploration progress without reports, browser activity or evidence"}},"/api/v1/organizations/{organization_id}/verify/explorations/{id}/report":{"post":{"operationId":"report_api_v1_exploration","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Existing report generation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExploration"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Report queued; poll the exploration for the completed document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyExploration"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"source_ids":{"type":"array","maxItems":10,"items":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Write a fresh report from all testers in selected completed explorations"},"get":{"operationId":"report_page_api_v1_exploration","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Compact report page; recording timelines load separately","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExplorationReportPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read the report document and cited file metadata without tester activity or replay archives"}},"/api/v1/organizations/{organization_id}/verify/explorations/{id}/report/refresh":{"post":{"operationId":"refresh_report_api_v1_exploration","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Compact report page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExplorationReportPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Report generation queued; previous published report remains readable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyExplorationReportPage"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"source_ids":{"type":"array","maxItems":10,"items":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Request report regeneration and return its compact page state"}},"/api/v1/organizations/{organization_id}/verify/explorations/{id}/report/replay/{agent_id}":{"get":{"operationId":"report_replay_api_v1_exploration","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"agent_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"generated_at","in":"query","required":true,"description":"Publication timestamp shown in the report; stale publications are rejected.","schema":{"type":"string"}}],"responses":{"200":{"description":"Recording groups and step timing for one cited tester","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExplorationReportReplay"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read one cited tester's recording timelines independently of the report document"}},"/api/v1/organizations/{organization_id}/verify/explorations/{id}/report/scenarios":{"post":{"operationId":"report_scenarios_api_v1_exploration","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Compact report page","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExplorationReportPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Scenario authoring queued; poll the compact report page","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyExplorationReportPage"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Request scenario authoring and return compact report page state"}},"/api/v1/organizations/{organization_id}/verify/explorations/{id}/scenarios":{"post":{"operationId":"scenarios_api_v1_exploration","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Scenarios already saved","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExploration"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Scenario authoring queued or already saved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyExploration"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Retry authoring repeatable scenarios from a finished project discovery"}},"/api/v1/organizations/{organization_id}/verify/explorations/{id}/stop":{"post":{"operationId":"stop_api_v1_exploration","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Exploratory run with agent reports and protected recordings","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyExploration"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"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":"Stop the whole exploratory team and retain saved observations"}},"/api/v1/organizations/{organization_id}/verify/findings":{"get":{"operationId":"api_v1_findings","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Findings observed in the organization, newest first","content":{"application/json":{"schema":{"type":"array","additionalProperties":true,"items":{"$ref":"#/components/schemas/VerifyFindingRecord"}}}}},"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}/verify/findings/{id}":{"get":{"operationId":"api_v1_finding","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"repository_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"repository_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Combined Verify finding detail snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyFindingDetail"}}}},"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_verify_findings_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"repository_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}},{"name":"repository_id","in":"query","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Finding status updated","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyFindingRecord"}}}},"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":["status","status"],"properties":{"status":{"type":"string","enum":["open","resolved","ignored"],"$ref":"#/components/schemas/SettableFindingStatus"},"reason":{"type":"string","maxLength":1000,"description":"Why the finding was resolved or ignored, such as \"Expected for trial accounts\". Dreaming learns from it."},"deferred_until":{"type":"string","format":"date-time","description":"Required future time when status is deferred"}}}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"put_api_v1_organizations_organization_id_verify_findings_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}/verify/github_connections":{"get":{"operationId":"api_v1_github_connections","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"in":"query","name":"github_app_installation_id","required":false,"schema":{"type":"string"},"description":"List this account's repositories."},{"in":"query","name":"project_id","required":false,"schema":{"type":"string"},"description":"Mark only this project's repositories as connected."}],"responses":{"200":{"description":"GitHub verification connection","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyGithubConnectionOptions"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"List GitHub accounts and repositories to connect for PR testing"},"post":{"operationId":"post_api_v1_organizations_organization_id_verify_github_connections","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"GitHub verification connection","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyGithubConnection"}}}},"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/VerifyGithubConnectionInput"}}}},"security":[{"bearerAuth":[]}],"summary":"Connect a GitHub repository for PR testing"}},"/api/v1/organizations/{organization_id}/verify/knowledge":{"get":{"operationId":"api_v1_knowledge_index","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"q","in":"query","schema":{"type":"string","maxLength":500}},{"name":"project_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Project selection and most recent 50 matching knowledge documents","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyKnowledgePage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Browse maintained project knowledge"},"post":{"operationId":"post_api_v1_organizations_organization_id_verify_knowledge","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Document saved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyKnowledgeDocument"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["project_id","title","markdown"],"properties":{"project_id":{"type":"string"},"title":{"type":"string","maxLength":160},"markdown":{"type":"string","maxLength":200000}}}}}},"security":[{"bearerAuth":[]}],"summary":"Add an attributed product knowledge document"}},"/api/v1/organizations/{organization_id}/verify/knowledge/{id}":{"get":{"operationId":"api_v1_knowledge","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":"Markdown document and viewer permissions","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyKnowledgeDocumentPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read a project knowledge document"},"patch":{"operationId":"patch_api_v1_organizations_organization_id_verify_knowledge_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":"Markdown document saved","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyKnowledgeDocument"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"409":{"description":"Document changed since editing began"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["title","markdown","expected_digest"],"properties":{"title":{"type":"string","maxLength":160},"markdown":{"type":"string","maxLength":200000},"expected_digest":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Edit a project knowledge Markdown document"},"put":{"operationId":"put_api_v1_organizations_organization_id_verify_knowledge_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_verify_knowledge_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":"Document archived"}},"security":[{"bearerAuth":[]}],"summary":"Archive knowledge so future runners no longer use it"}},"/api/v1/organizations/{organization_id}/verify/memories":{"get":{"operationId":"api_v1_memories","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"include_environments","in":"query","description":"Also browse memories from this project's environments","schema":{"type":"boolean"}},{"name":"q","in":"query","schema":{"type":"string","maxLength":500}},{"name":"tag","in":"query","schema":{"type":"string","maxLength":40}},{"name":"environment_id","in":"query","description":"Include exact environment and explicitly scoped project notes","schema":{"type":"string"}},{"name":"project_id","in":"query","description":"Include only notes explicitly scoped to this project","schema":{"type":"string"}}],"responses":{"200":{"description":"Most recent or 50 best matching memories, with indexing health","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyMemoryPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Browse or search verification memories in an environment or project scope"},"post":{"operationId":"post_api_v1_organizations_organization_id_verify_memories","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":"Organization administrator required"},"404":{"description":"Scope does not belong to this organization"},"422":{"description":"Invalid scope or note"},"502":{"description":"Bad gateway"},"201":{"description":"Scoped operator note saved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyMemory"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyMemoryNoteInput"}}}},"security":[{"bearerAuth":[]}],"summary":"Save an attributed operator note in exactly one environment or project scope","description":"Organization administrators can save secret-free facts. Notes are advisory and do not alter test authority or account grants."}},"/api/v1/organizations/{organization_id}/verify/memories/{id}":{"get":{"operationId":"api_v1_memory","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","schema":{"type":"string"}},{"name":"environment_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Current lesson and latest ten revisions","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["memory","history"],"properties":{"memory":{"$ref":"#/components/schemas/VerifyMemory"},"history":{"type":"array","items":{"$ref":"#/components/schemas/VerifyLearningHistory"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Memory is outside the selected active scope"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read a scoped memory and its learning history"},"delete":{"operationId":"delete_api_v1_organizations_organization_id_verify_memories_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/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":"Memory archived"}},"security":[{"bearerAuth":[]}],"summary":"Archive a memory so future verifier agents no longer retrieve it"}},"/api/v1/organizations/{organization_id}/verify/merge_requests":{"post":{"operationId":"api_v1_merge_requests","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"PR verification response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"allOf":[{"$ref":"#/components/schemas/VerifyPullRequest"},{"type":"object","required":["requested_run_id"],"properties":{"requested_run_id":{"type":"string","nullable":true}}}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"PR verification response","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/VerifyPullRequest"},{"type":"object","required":["requested_run_id"],"properties":{"requested_run_id":{"type":"string","nullable":true}}}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["number","idempotency_key"],"properties":{"repository_id":{"type":"string"},"number":{"type":"integer"},"idempotency_key":{"type":"string"},"head_sha":{"type":"string","description":"If supplied, refuse to create a run unless this is the current PR head."},"project_id":{"type":"string","description":"Composal project slug or public ID for PR preview environments. Defaults to the configured template project. Cannot reassign a tracked PR."},"branch":{"type":"string","description":"Exact deployed source branch; refused if it differs from the canonical request branch."}},"anyOf":[{"required":["project_id"]},{"required":["repository_id"]}]}}}},"security":[{"bearerAuth":[]}],"summary":"Configure or request MR verification"}},"/api/v1/organizations/{organization_id}/verify/merge_requests/preview":{"post":{"operationId":"preview_api_v1_merge_requests","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"PR verification response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyPullRequestRun"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"PR verification response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyPullRequestRun"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["number","head_sha"],"properties":{"repository_id":{"type":"string"},"number":{"type":"integer"},"head_sha":{"type":"string"},"environment":{"type":"string"},"preview_url":{"type":"string","format":"uri","description":"Deployed URL for this exact PR head. Requires an external Verify template. Mutually exclusive with environment."},"project_id":{"type":"string","description":"Composal project slug or public ID for PR preview environments. Defaults to the configured template project. Cannot reassign a tracked PR."},"branch":{"type":"string","description":"Exact deployed source branch; refused if it differs from the canonical request branch."},"no_preview":{"type":"boolean","enum":[true],"description":"CI built no preview because this commit changes nothing a preview serves. The commit's waiting run is skipped instead of timing out as blocked."},"imessage_number":{"type":"string","description":"International destination of this exact deployed commit. May accompany preview_url."}},"oneOf":[{"required":["environment"]},{"anyOf":[{"required":["preview_url"]},{"required":["imessage_number"]}]},{"required":["no_preview"]}],"anyOf":[{"required":["project_id"]},{"required":["repository_id"]}]}}}},"security":[{"bearerAuth":[]}],"summary":"Configure or request MR verification"}},"/api/v1/organizations/{organization_id}/verify/merge_requests/{id}":{"get":{"operationId":"api_v1_merge_request","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"PR verification response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyPullRequestPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Inspect MR verification"}},"/api/v1/organizations/{organization_id}/verify/merge_requests/{id}/rerun":{"post":{"operationId":"rerun_api_v1_merge_request","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":"PR verification response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"allOf":[{"$ref":"#/components/schemas/VerifyPullRequest"},{"type":"object","required":["requested_run_id"],"properties":{"requested_run_id":{"type":"string","nullable":true}}}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"PR verification response","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/VerifyPullRequest"},{"type":"object","required":["requested_run_id"],"properties":{"requested_run_id":{"type":"string","nullable":true}}}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["idempotency_key"],"properties":{"idempotency_key":{"type":"string"},"head_sha":{"type":"string","description":"If supplied, refuse to create a run unless this is the current PR head."},"scenario_ids":{"type":"array","minItems":1,"items":{"type":"string"},"description":"Manually run these available project scenarios instead of automatic relevance selection."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Configure or request MR verification"}},"/api/v1/organizations/{organization_id}/verify/network_connections":{"post":{"operationId":"api_v1_network_connections","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":"Private network connection saved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyNetworkConnection"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"allOf":[{"$ref":"#/components/schemas/VerifyNetworkConnectionInput"},{"required":["name"]}]}}}},"security":[{"bearerAuth":[]}],"summary":"Create a private network connection for Verify browser sandboxes"}},"/api/v1/organizations/{organization_id}/verify/network_connections/{id}":{"patch":{"operationId":"api_v1_network_connection","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Private network connection metadata without its secret","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyNetworkConnection"}}}},"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/VerifyNetworkConnectionInput"}}}},"security":[{"bearerAuth":[]}],"summary":"Update or disable a private network connection; omitted credentials are preserved"},"put":{"operationId":"put_api_v1_organizations_organization_id_verify_network_connections_id_","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not 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}/verify/page":{"get":{"operationId":"api_v1_page","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"section","in":"query","schema":{"type":"string","enum":["runs","environments"]}},{"name":"verify_environment_id","in":"query","schema":{"type":"string"}},{"name":"project_id","in":"query","description":"Limits the page to one project, by slug or public ID.","schema":{"type":"string"}},{"name":"query","in":"query","schema":{"type":"string","maxLength":200}},{"name":"status","in":"query","schema":{"type":"string","enum":["all","active","passed","failed","cancelled","timed_out","blocked","skipped","cleanup_blocked"]}}],"responses":{"200":{"description":"Combined Verify dashboard snapshot","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyPage"}}}},"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}/verify/pull_request_settings":{"get":{"operationId":"api_v1_pull_request_settings","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"provider","in":"query","required":false,"description":"Limit repositories to one source provider","schema":{"type":"string","enum":["github","gitlab"]}},{"in":"query","name":"project_id","schema":{"type":"string"},"description":"Scope configuration options to this Composal project."},{"in":"query","name":"repository_id","schema":{"type":"string"},"description":"Select the configured repository in a multi-repository project."}],"responses":{"200":{"description":"PR verification response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyPullRequestOptions"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Read PR testing setup and its choices"},"post":{"operationId":"post_api_v1_organizations_organization_id_verify_pull_request_settings","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"PR verification response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"allOf":[{"$ref":"#/components/schemas/VerifyPullRequestSetting"},{"$ref":"#/components/schemas/VerifyPullRequestSetup"}]}}}},"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,"anyOf":[{"$ref":"#/components/schemas/VerifyPullRequestSetupInput"},{"$ref":"#/components/schemas/VerifyPullRequestSettingInput"}]}}}},"security":[{"bearerAuth":[]}],"summary":"Save PR testing setup","description":"Saves the setup answers. Omitted answers keep their saved values; on first setup, previews is required and the repository and environment default to the only choice. Errors are keyed by answer name and list the choices. New setups stay off until enabled is true. The stored-setting fields (target_mode, verify_environment_id, max_seconds and so on) that released CLIs send are still accepted, and the response carries both shapes. Each project can configure multiple repositories independently while sharing scenarios, personas and credentials. Supply a repository when several are configured; saving another repository creates a new binding without changing existing history. Legacy preview mode with comment rules is treated as comments mode."}},"/api/v1/organizations/{organization_id}/verify/pull_request_settings/add_repositories":{"post":{"operationId":"add_repositories_api_v1_pull_request_settings","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repositories associated with this project","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["repositories"],"properties":{"repositories":{"type":"array","items":{"$ref":"#/components/schemas/VerifyProjectPrRepository"}}}}}}},"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":["project_id","repositories"],"properties":{"project_id":{"type":"string"},"repositories":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string"}}}}}}},"security":[{"bearerAuth":[]}],"summary":"Add repositories to a shared Verify project","description":"Adds one or more connected organization repositories without changing existing settings, scenarios, access or verification history. Configure a preview source separately for each added repository. Repeated additions are idempotent."}},"/api/v1/organizations/{organization_id}/verify/pull_request_settings/detect_comments":{"post":{"operationId":"detect_comments_api_v1_pull_request_settings","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"What was found on recent requests","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyPreviewDetection"}}}},"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":["project_id"],"properties":{"project_id":{"type":"string","description":"Project slug or ID."},"repository_id":{"type":"string","description":"Repository slug, ID or owner/name. Defaults to the project's configured or only repository."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Compatibility alias for preview detection"}},"/api/v1/organizations/{organization_id}/verify/pull_request_settings/detect_preview":{"post":{"operationId":"detect_preview_api_v1_pull_request_settings","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"What was found on recent requests","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyPreviewDetection"}}}},"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":["project_id"],"properties":{"project_id":{"type":"string","description":"Project slug or ID."},"repository_id":{"type":"string","description":"Repository slug, ID or owner/name. Defaults to the project's configured or only repository."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Find how a repository's recent PRs or MRs get previews"}},"/api/v1/organizations/{organization_id}/verify/pull_requests":{"post":{"operationId":"api_v1_pull_requests","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"PR verification response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"oneOf":[{"allOf":[{"$ref":"#/components/schemas/VerifyPullRequest"},{"type":"object","required":["requested_run_id"],"properties":{"requested_run_id":{"type":"string","nullable":true}}}]},{"$ref":"#/components/schemas/VerifyBranchPreview"}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"PR verification response","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"$ref":"#/components/schemas/VerifyPullRequest"},{"type":"object","required":["requested_run_id"],"properties":{"requested_run_id":{"type":"string","nullable":true}}}]},{"$ref":"#/components/schemas/VerifyBranchPreview"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["idempotency_key"],"properties":{"repository_id":{"type":"string"},"number":{"type":"integer"},"idempotency_key":{"type":"string"},"head_sha":{"type":"string","description":"If supplied, refuse to create a run unless this is the current PR head."},"project_id":{"type":"string","description":"Composal project slug or public ID for PR preview environments. Defaults to the configured template project. Cannot reassign a tracked PR."},"branch":{"type":"string","description":"Exact deployed source branch; refused if it differs from the canonical request branch."},"preview_url":{"type":"string","format":"uri","description":"Required for a branch preview when no open PR exists."},"cleanup_only":{"type":"boolean","description":"Refresh canonical PR state and cancel closed-preview work without preparing a new verification request, including when its PR record is missing."},"imessage_number":{"type":"string","description":"International destination of this exact deployed commit. May accompany preview_url."}},"anyOf":[{"required":["number"]},{"required":["branch"]}],"allOf":[{"anyOf":[{"required":["project_id"]},{"required":["repository_id"]}]}]}}}},"security":[{"bearerAuth":[]}],"summary":"Configure or request PR verification"}},"/api/v1/organizations/{organization_id}/verify/pull_requests/lookup":{"get":{"operationId":"lookup_api_v1_pull_requests","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer"}},{"in":"query","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"source_repository","required":true,"schema":{"type":"string"}},{"in":"query","name":"number","required":true,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"PR verification response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyPullRequestPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Inspect project PR verification by source repository and request number"}},"/api/v1/organizations/{organization_id}/verify/pull_requests/preview":{"post":{"operationId":"preview_api_v1_pull_requests","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"PR verification response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyPullRequestRun"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"PR verification response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyPullRequestRun"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["number","head_sha"],"properties":{"repository_id":{"type":"string"},"number":{"type":"integer"},"head_sha":{"type":"string"},"environment":{"type":"string"},"preview_url":{"type":"string","format":"uri","description":"Deployed URL for this exact PR head. Requires an external Verify template. Mutually exclusive with environment."},"project_id":{"type":"string","description":"Composal project slug or public ID for PR preview environments. Defaults to the configured template project. Cannot reassign a tracked PR."},"branch":{"type":"string","description":"Exact deployed source branch; refused if it differs from the canonical request branch."},"no_preview":{"type":"boolean","enum":[true],"description":"CI built no preview because this commit changes nothing a preview serves. The commit's waiting run is skipped instead of timing out as blocked."},"imessage_number":{"type":"string","description":"International destination of this exact deployed commit. May accompany preview_url."}},"oneOf":[{"required":["environment"]},{"anyOf":[{"required":["preview_url"]},{"required":["imessage_number"]}]},{"required":["no_preview"]}],"anyOf":[{"required":["project_id"]},{"required":["repository_id"]}]}}}},"security":[{"bearerAuth":[]}],"summary":"Configure or request PR verification"}},"/api/v1/organizations/{organization_id}/verify/pull_requests/{id}":{"get":{"operationId":"api_v1_pull_request","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"PR verification response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyPullRequestPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}],"summary":"Inspect PR verification"}},"/api/v1/organizations/{organization_id}/verify/pull_requests/{id}/demo_share":{"post":{"operationId":"demo_share_api_v1_pull_request","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":"The current attempt has no recorded demo"},"502":{"description":"Bad gateway"},"201":{"description":"Demo share link","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["share_url"],"properties":{"share_url":{"type":"string","description":"Anyone holding this URL can watch the demo."}}}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Issue a new share link for the PR's current demo","description":"Project admins only. Replaces any earlier link for this demo."},"delete":{"operationId":"delete_api_v1_organizations_organization_id_verify_pull_requests_id_demo_share","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":"Revoked"}},"security":[{"bearerAuth":[]}],"summary":"Revoke every demo share link the PR has published","description":"Project admins only. Links for earlier commits' demos end too; each then returns 404."}},"/api/v1/organizations/{organization_id}/verify/pull_requests/{id}/rerun":{"post":{"operationId":"rerun_api_v1_pull_request","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":"PR verification response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"allOf":[{"$ref":"#/components/schemas/VerifyPullRequest"},{"type":"object","required":["requested_run_id"],"properties":{"requested_run_id":{"type":"string","nullable":true}}}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"PR verification response","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/VerifyPullRequest"},{"type":"object","required":["requested_run_id"],"properties":{"requested_run_id":{"type":"string","nullable":true}}}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["idempotency_key"],"properties":{"idempotency_key":{"type":"string"},"head_sha":{"type":"string","description":"If supplied, refuse to create a run unless this is the current PR head."},"scenario_ids":{"type":"array","minItems":1,"items":{"type":"string"},"description":"Manually run these available project scenarios instead of automatic relevance selection."}}}}}},"security":[{"bearerAuth":[]}],"summary":"Configure or request PR verification"}},"/api/v1/organizations/{organization_id}/verify/run_search":{"get":{"operationId":"api_v1_run_search","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"query","in":"query","schema":{"type":"string","maxLength":200}}],"responses":{"200":{"description":"The newest runs whose scenario name or pull request matches the search","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyRunSearch"}}}},"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}/verify/run_updates":{"get":{"operationId":"api_v1_run_updates","tags":["organizations"],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"verify_environment_id","in":"query","schema":{"type":"string"}},{"name":"query","in":"query","schema":{"type":"string","maxLength":200}},{"name":"status","in":"query","schema":{"type":"string","enum":["all","active","passed","failed","cancelled","timed_out","blocked","skipped","cleanup_blocked"]}}],"responses":{"200":{"description":"Compact Verify run updates","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyRunUpdates"}}}},"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}/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","icon_name","status","import_status","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},"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"]},"import_status":{"type":"string","nullable":true,"enum":["queued","running","succeeded","failed","canceled"]},"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","icon_name","status","import_status","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},"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"]},"import_status":{"type":"string","nullable":true,"enum":["queued","running","succeeded","failed","canceled"]},"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","icon_name","status","import_status","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},"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"]},"import_status":{"type":"string","nullable":true,"enum":["queued","running","succeeded","failed","canceled"]},"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},"default_branch":{"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"]}}}}}},"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":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"410":{"description":"Retired workspace import; use GitHub onboarding batches."}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"deprecated":true}},"/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","icon_name","status","import_status","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},"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"]},"import_status":{"type":"string","nullable":true,"enum":["queued","running","succeeded","failed","canceled"]},"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","icon_name","status","import_status","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},"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"]},"import_status":{"type":"string","nullable":true,"enum":["queued","running","succeeded","failed","canceled"]},"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/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":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"410":{"description":"Native failed-import cleanup is retired."}},"security":[{"bearerAuth":[]}],"deprecated":true}},"/api/v1/otel_ingest/authorize":{"post":{"operationId":"api_v1_otel_ingest_authorize","tags":["otel_ingest"],"parameters":[{"in":"header","name":"X-Vex-Organization","required":true,"description":"Organization slug that will own every telemetry resource in this request.","schema":{"type":"string"}}],"responses":{"200":{"description":"Short-lived organization identity for the managed OTLP gateway","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["organization_id","organization_public_id","organization_slug","user_id"],"properties":{"organization_id":{"type":"integer"},"organization_public_id":{"type":"string"},"organization_slug":{"type":"string"},"user_id":{"type":"string"}}}}},"headers":{"X-Vex-Organization-Id":{"description":"Public id of the authorized organization.","schema":{"type":"string"}},"X-Vex-Authorization-Expires-At":{"description":"Absolute Unix timestamp after which the gateway must authorize again.","schema":{"type":"string","pattern":"^[1-9][0-9]*$"}}}},"401":{"description":"Personal access token invalid or missing"},"403":{"description":"Forbidden"},"404":{"description":"Organization is not accessible to the token user"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Organization header missing"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"summary":"Authorize managed OpenTelemetry ingestion for one organization","description":"Internal data-plane exchange. Requires a Composal personal access token and current membership in the organization named by X-Vex-Organization. Session authentication is not accepted."}},"/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/registry/v2/authorize":{"post":{"operationId":"api_v1_registry_v2_authorize","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"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/registry/v2/token":{"get|post":{"operationId":"api_v1_registry_v2_token","tags":["registry"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/relay/pairings":{"get":{"operationId":"api_v1_pairings","tags":["relay"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"post_api_v1_relay_pairings","tags":["relay"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/relay/pairings/claim":{"post":{"operationId":"claim_api_v1_pairings","tags":["relay"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/relay/pairings/{id}":{"get":{"operationId":"api_v1_pairing","tags":["relay"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/relay/pairings/{id}/events":{"get":{"operationId":"events_api_v1_pairing","tags":["relay"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/relay/signals":{"post":{"operationId":"api_v1_signals","tags":["relay"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/repositories/{repository}/sandbox_environments/validate":{"post":{"operationId":"post_api_v1_repositories_repository_sandbox_environments_validate","tags":["repositories"],"parameters":[{"name":"repository","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/repositories/{repository}/sandbox_environments/{profile}":{"get":{"operationId":"get_api_v1_repositories_repository_sandbox_environments_profile_","tags":["repositories"],"parameters":[{"name":"repository","in":"path","required":true,"schema":{"type":"string"}},{"name":"profile","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/repository_access/authorize":{"post":{"operationId":"api_v1_repository_access_authorize","tags":["repository_access"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/repository_access/authorize_git":{"post":{"operationId":"api_v1_repository_access_authorize_git","tags":["repository_access"],"parameters":[{"in":"header","name":"X-Vex-Git-Read-Grant-Protocol","required":false,"description":"Value 1 advertises absolute-deadline enforcement; other values do not enable reuse.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}},"headers":{"X-Vex-Git-Read-Grant-Expires-At":{"description":"Optional absolute Unix timestamp in seconds for a completed retained-import read grant. Absent means no reuse. Hits must not renew this deadline. Generic HTTP caches must continue honoring Cache-Control no-store.","schema":{"type":"string","pattern":"^[1-9][0-9]*$"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"402":{"description":"The organization's billing limit refuses this usage; see `error.upgrade_path`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingLimitExceededError"}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}],"description":"Authorize an authenticated Git request for a physical repository, isolated import, or swarm runner. Ordinary repository grants require current Git authority and gateway backend fencing version 1. Anonymous/public-source, COM mirror, Home-view and component credentials are not supported. With server rollout enabled, a retained immutable import read may negotiate read-grant protocol 1 and receive a bounded reusable decision whose deadline never exceeds token expiry. Ordinary repository grants and import transfer capabilities do not receive a reusable deadline."}},"/api/v1/repository_access/catalog":{"get":{"operationId":"api_v1_repository_access_catalog","tags":["repository_access"],"parameters":[{"name":"organization_slug","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Physical Git repositories accessible to the authenticated user","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","default_branch","git_https_clone_url","git_https_supported","git_auth_username"],"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"},"default_branch":{"type":"string"},"git_https_clone_url":{"type":"string","format":"uri","nullable":true},"git_https_supported":{"type":"boolean"},"git_auth_username":{"type":"string"},"github_access_warnings":{"type":"array","items":{"$ref":"#/components/schemas/GithubRepositoryAccessHealth"}}}}}}}}}},"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":"Exact physical repository address and access contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["repository"],"properties":{"repository":{"type":"object","required":["organization_id","organization_slug","organization_name","membership_role","repository_id","repository_slug","repository_name","default_branch","git_https_clone_url","git_https_supported","git_auth_username"],"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"},"default_branch":{"type":"string"},"git_https_clone_url":{"type":"string","format":"uri","nullable":true},"git_https_supported":{"type":"boolean"},"git_auth_username":{"type":"string"},"github_access_warnings":{"type":"array","items":{"$ref":"#/components/schemas/GithubRepositoryAccessHealth"}}}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"bearerAuth":[]}]}},"/api/v1/repository_events/walgit":{"post":{"operationId":"api_v1_repository_events_walgit","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}/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}/selections":{"post":{"operationId":"selections_api_v1_repository_import_session","tags":["repository_import_sessions"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"201":{"description":"Repository import session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryImportSession"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/RepositoryImportSelectionRequest"}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/roder/run/automation_tool":{"post":{"summary":"Execute a granted automation repository tool","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["call_id","name","arguments"],"properties":{"call_id":{"type":"string","maxLength":128},"name":{"enum":["repository_list_files","repository_read_file","repository_compare_file","repository_changed_files","repository_file_diff","emit_signal","publish_output","propose_change","integration_catalog","integration_execute","invite_customer_to_slack"]},"arguments":{"type":"object","additionalProperties":true}}}}}},"responses":{"200":{"description":"Cached or newly completed tool result","content":{"application/json":{"schema":{"type":"object","required":["is_error"],"properties":{"is_error":{"type":"boolean"},"value":{},"error":{"type":"string"}}}}}},"401":{"description":"Run or tool authority is unavailable"},"409":{"description":"The same tool call is still executing"},"422":{"description":"Invalid tool request or exhausted tool budget"}}}},"/api/v1/signals":{"post":{"operationId":"post_api_v1_signals","tags":["signals"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/signals/inbound/{provider}/{inbound_token}":{"post":{"operationId":"post_api_v1_signals_inbound_provider_inbound_token_","tags":["signals"],"parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string"}},{"name":"inbound_token","in":"path","required":true,"schema":{"type":"string"}},{"in":"path","name":"provider","required":true,"schema":{"type":"string","enum":["sentry","planetscale"]}},{"in":"path","name":"inbound_token","required":true,"description":"The integration's random inbound token. Not a public id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"The signature is missing or does not match the stored webhook secret","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"403":{"description":"Forbidden"},"404":{"description":"No usable integration for this token — unknown, provider mismatch, or disabled. The three are deliberately indistinguishable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Recorded. `state` is `pending` for an event that will become a signal and `ignored` for one the adapter recognizes and does not act on (a provider test ping, an installation notice).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationInboundAccepted"}}}},"409":{"description":"The same delivery id was replayed with different content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"413":{"description":"The request body exceeds 1 MB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"429":{"description":"Too many deliveries for this integration in the current minute","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}},"503":{"description":"Signal integrations are disabled (VEX_SIGNAL_INTEGRATIONS_DISABLED)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalIntegrationError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}},"description":"The provider's raw event body, capped at 1 MB."},"security":[{"bearerAuth":[]}],"summary":"Provider webhook ingest (no user authentication)","description":"The endpoint Sentry and PlanetScale post to. There is no user session and no CSRF: the random `inbound_token` addresses the integration and the provider's HMAC-SHA256 over the RAW request body authenticates it. The response is returned before any normalization work, inside PlanetScale's two-second budget."}},"/api/v1/source_connections/{id}/refresh":{"post":{"operationId":"post_api_v1_source_connections_id_refresh","tags":["source_connections"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"202":{"description":"Source refresh queued","content":{"application/json":{"schema":{"type":"object","required":["queued"],"properties":{"queued":{"type":"boolean","enum":[true]}}}}}}},"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/stripe/webhooks":{"post":{"operationId":"api_v1_stripe_webhooks","tags":["stripe"],"parameters":[],"responses":{"200":{"description":"Event stored; processing runs in a job."},"400":{"description":"Malformed body."},"401":{"description":"Signature invalid or the secret is not configured."}},"security":[],"summary":"Stripe event destination (Stripe-Signature verified)"}},"/api/v1/submit_telemetry":{"post":{"operationId":"api_v1_submit_telemetry","tags":["submit_telemetry"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/transcripts":{"get":{"operationId":"api_v1_transcripts","tags":["transcripts"],"parameters":[{"in":"query","name":"repo","required":true,"schema":{"type":"string"}},{"in":"query","name":"change","schema":{"type":"string"}},{"in":"query","name":"pr","schema":{"type":"string"},"description":"GitHub PR number or URL."},{"in":"query","name":"commit","schema":{"type":"string"},"description":"Complete 40-character Git commit SHA."},{"in":"query","name":"patchset","schema":{"type":"integer","minimum":1}},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"in":"query","name":"cursor","schema":{"type":"string"}},{"in":"query","name":"session","schema":{"type":"string"},"description":"Select a linked session when paging its matching checkpoints."},{"in":"query","name":"checkpoint_cursor","schema":{"type":"string"}}],"responses":{"200":{"description":"A bounded page of associated conversations, including an empty known target.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/TranscriptDiscoveryPage"}}}},"401":{"description":"Authentication required."},"403":{"description":"Forbidden"},"404":{"description":"Missing or inaccessible target."},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid or conflicting selectors","ambiguous PR number":null,"or invalid cursor.":null},"503":{"description":"Association lookup is temporarily unavailable."}},"security":[{"bearerAuth":[]}],"summary":"Discover saved conversations associated with one repository target","description":"Requires a Vex tenant/repository slug and exactly one of change, pr, or commit. Returns observed associations without synchronization. A selected checkpoint belongs to the target; a session-only link never substitutes unrelated context. Git commit IDs must be complete (40 hexadecimal characters). Resolve short IDs in the checkout before requesting this endpoint."}},"/api/v1/transcripts/read":{"get":{"operationId":"api_v1_transcripts_read","tags":["transcripts"],"parameters":[{"$ref":"#/components/parameters/TranscriptReadSource"},{"$ref":"#/components/parameters/TranscriptReadCursor"},{"$ref":"#/components/parameters/TranscriptReadLimit"},{"$ref":"#/components/parameters/TranscriptReadBytes"},{"$ref":"#/components/parameters/TranscriptReadTools"},{"$ref":"#/components/parameters/TranscriptReadAround"},{"$ref":"#/components/parameters/TranscriptReadDigest"}],"responses":{"200":{"description":"Indexed events or an explicit content availability state.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/TranscriptReadPage"}}}},"401":{"description":"Authentication required."},"403":{"description":"Forbidden"},"404":{"description":"Missing or inaccessible session or checkpoint."},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"400":{"description":"Invalid limits or source reference."},"409":{"description":"The cursor no longer identifies the same content or filters."},"413":{"description":"Increase max_bytes to fit the next complete indexed event."}},"security":[{"bearerAuth":[]}],"summary":"Read a saved conversation using its opaque source reference","description":"Uses the same authorized indexed reader as the session route."}},"/api/v1/verify/demo_shares/{token}":{"get":{"operationId":"get_api_v1_verify_demo_shares_token_","tags":["verify"],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Shared demo","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyDemoShare"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Invalid, revoked or expired link"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[],"summary":"Watch a shared PR demo"}},"/api/v1/verify/demo_shares/{token}/segments/{segment_id}":{"get":{"operationId":"get_api_v1_verify_demo_shares_token_segments_segment_id_","tags":["verify"],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}},{"name":"segment_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Video bytes","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"video/webm":{"schema":{"type":"string","format":"binary"}},"video/mp4":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Invalid, revoked or expired link"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"206":{"description":"Requested byte range"}},"security":[],"summary":"Stream one video segment of a shared PR demo"}},"/api/v1/verify/web_bot_auth":{"post":{"operationId":"api_v1_verify_web_bot_auth","tags":["verify"],"parameters":[],"responses":{"200":{"description":"Distinct signatures for the authorized HTTPS origin","content":{"application/json":{"schema":{"type":"object","required":["expires_at","signatures"],"properties":{"expires_at":{"type":"string","format":"date-time"},"signatures":{"type":"array","minItems":32,"maxItems":32,"items":{"type":"object","required":["signature","signature-input","signature-agent"],"properties":{"signature":{"type":"string"},"signature-input":{"type":"string"},"signature-agent":{"type":"string"}}}}}}}}},"400":{"description":"Origin is missing","content":{"application/json":{"schema":{"type":"object","required":["error","field_errors"],"properties":{"error":{"type":"string"},"field_errors":{"type":"object","properties":{"origin":{"type":"array","items":{"type":"string"}}}}}}}}},"401":{"description":"Signing capability is invalid, expired or outside its saved targets","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["origin"],"properties":{"origin":{"type":"string","format":"uri"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Refill short-lived signatures using a live Verify signing grant","description":"Accepts a lease-scoped signing capability as a Bearer token. Ordinary user API tokens cannot authorize this internal endpoint."}},"/api/v1/verify_messages/runs/{scenario_run_id}":{"get":{"operationId":"api_v1_verify_messages","tags":["verify_messages"],"parameters":[{"name":"scenario_run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The conversation as this run sees it","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyMessagingPage"}}}},"401":{"description":"The Messages session is missing, expired, or belongs to another run or lease","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyMessagingError"}}}},"403":{"description":"Cross-origin request refused"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"security":[{"verifyMessagingSession":[]}],"summary":"Read one Verify run's Messages page","description":"Authenticated only by the run's host-only Messages session cookie. A foreign Origin is refused."}},"/api/v1/verify_messages/runs/{scenario_run_id}/mark_read":{"post":{"operationId":"post_api_v1_verify_messages_runs_scenario_run_id_mark_read","tags":["verify_messages"],"parameters":[{"name":"scenario_run_id","in":"path","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-Messages-CSRF-Token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Origin or CSRF refused"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"},"204":{"description":"Read request accepted"},"503":{"description":"Provider unavailable"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"verifyMessagingSession":[]}],"summary":"Mark the viewed conversation read on the tester line"}},"/api/v1/verify_messages/runs/{scenario_run_id}/messages":{"post":{"operationId":"api_v1_verify_messages_sends","tags":["verify_messages"],"parameters":[{"name":"scenario_run_id","in":"path","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-Messages-CSRF-Token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The Messages page after the send was admitted","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyMessagingPage"}}}},"401":{"description":"The Messages session is missing, expired, or belongs to another run or lease","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyMessagingError"}}}},"403":{"description":"Cross-origin request or missing CSRF token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyMessagingError"}}}},"404":{"description":"Not found"},"422":{"description":"The conversation cannot send right now, or the message is invalid (field_errors)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyMessagingError"}}}},"502":{"description":"Bad gateway"},"409":{"description":"The client operation ID was used for a different message","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyMessagingError"}}}},"503":{"description":"Messaging is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyMessagingError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["client_operation_id","content"],"properties":{"client_operation_id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,120}$"},"content":{"type":"string"},"media":{"$ref":"#/components/schemas/VerifyMessagingMediaInput"},"media_upload_ids":{"type":"array","maxItems":6,"items":{"type":"string"},"description":"Ordered staged upload IDs; six on Photon, one on Sendblue. Mutually exclusive with media."},"retry_attachment":{"type":"boolean","description":"Retry an already recorded attachment when its file bytes are no longer on this page."},"reply_to":{"type":"string","description":"Public ID of a message visible in this run"},"send_style":{"type":["string","null"],"enum":["celebration","shooting_star","fireworks","lasers","love","confetti","balloons","spotlight","echo","invisible","gentle","loud","slam",null]}}}}}},"security":[{"verifyMessagingSession":[]}],"summary":"Send a message or attachment from the run's tester number","description":"Needs the exact Messages Origin and the session's CSRF token. Resubmitting a client operation ID returns the original send."}},"/api/v1/verify_messages/runs/{scenario_run_id}/messages/{message_id}/reaction":{"post":{"operationId":"api_v1","tags":["verify_messages"],"parameters":[{"name":"scenario_run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"message_id","in":"path","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-Messages-CSRF-Token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The Messages page after Sendblue accepts the Tapback","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyMessagingPage"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Invalid or unsupported Tapback"},"502":{"description":"Bad gateway"},"503":{"description":"Tapback delivery could not be confirmed"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["reaction"],"properties":{"reaction":{"type":"string"}}}}}},"security":[{"verifyMessagingSession":[]}],"summary":"React to an incoming iMessage in this run"}},"/api/v1/verify_messages/runs/{scenario_run_id}/typing":{"post":{"operationId":"post_api_v1_verify_messages_runs_scenario_run_id_typing","tags":["verify_messages"],"parameters":[{"name":"scenario_run_id","in":"path","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-Messages-CSRF-Token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Origin or CSRF refused"},"404":{"description":"Not found"},"422":{"description":"Run cannot send"},"502":{"description":"Bad gateway"},"204":{"description":"Typing state accepted"},"503":{"description":"Provider unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["typing"],"properties":{"typing":{"type":"boolean"}}}}}},"security":[{"verifyMessagingSession":[]}],"summary":"Send the run's typing state to the assistant"}},"/api/v1/verify_messages/runs/{scenario_run_id}/uploads":{"post":{"operationId":"api_v1_verify_messages_uploads","tags":["verify_messages"],"parameters":[{"name":"scenario_run_id","in":"path","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-Messages-CSRF-Token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Attachment staged","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/VerifyMessagingUpload"}}}},"401":{"description":"Session required"},"403":{"description":"Origin, CSRF or permission refused"},"404":{"description":"Not found"},"422":{"description":"Invalid attachment or conversation unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyMessagingError"}}}},"502":{"description":"Bad gateway"},"201":{"description":"Attachment staged for this actor and conversation for one day","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyMessagingUpload"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","format":"binary"}}}}}},"security":[{"verifyMessagingSession":[]}],"summary":"Stage a private attachment without sending a message"}},"/api/v1/waitlist_applications":{"post":{"operationId":"api_v1_waitlist_applications","tags":["waitlist_applications"],"parameters":[],"responses":{"201":{"description":"Waitlist application accepted, or invite code confirmed for signup.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string"},"invite_signup":{"type":"boolean"}}}}}},"400":{"description":"A required field was missing."},"422":{"description":"A field failed validation, including an invalid invite code."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["name","email"],"properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"},"invite_code":{"type":"string","description":"Optional waitlist bypass code. Shown once at generation."},"use_case":{"type":"string","enum":["personal","company"]},"company_name":{"type":"string"},"company_size":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"summary":"Join the beta waitlist, or validate an invite code","description":"Unauthenticated. A name and email join the waitlist. A redeemable `invite_code` does not create a waitlist row; it confirms the code so the browser can continue to account creation."}},"/api/v1/webhooks/gitlab/{connection_key}":{"post":{"operationId":"post_api_v1_webhooks_gitlab_connection_key_","tags":["webhooks"],"parameters":[{"name":"connection_key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"422":{"description":"Unprocessable entity"},"502":{"description":"Bad gateway"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"security":[{"bearerAuth":[]}]}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"DockerBuilderGatewayKey":{"type":"apiKey","in":"header","name":"X-Com-Builder-Gateway-Key"},"RunnerCheckoutToken":{"type":"http","scheme":"bearer","description":"Signed credential bound to one active runner invocation attempt"},"browserSession":{"type":"apiKey","in":"cookie","name":"_vex_api_session","description":"Browser session cookie issued by login; deployments may configure the cookie name."},"csrfToken":{"type":"apiKey","in":"header","name":"X-CSRF-Token"},"persistentAgentComputeSession":{"type":"http","scheme":"bearer","description":"Short-lived vexagentcompute credential bound to task worker, plan, provider workspace, machine, seed and expiry."},"persistentAgentConversation":{"type":"http","scheme":"bearer","bearerFormat":"vexagentconversation","description":"Short-lived signed conversation-scoped trusted scheduler credential."},"persistentAgentDispatch":{"type":"http","scheme":"bearer","bearerFormat":"vexagentdispatch JWT","description":"Short-lived, internal, input-scoped scheduler capability; not a user or model-worker credential."},"persistentAgentScheduler":{"type":"http","scheme":"bearer","bearerFormat":"vexagentscheduler","description":"Dedicated platform scheduler transport credential, not an end-user or org workload credential."},"persistentAgentTool":{"type":"http","scheme":"bearer","bearerFormat":"vexagenttool_<JWT>"},"persistentAgentWorker":{"type":"http","scheme":"bearer","bearerFormat":"vexagentworker_<JWT>"},"executorLease":{"type":"apiKey","in":"header","name":"X-Vex-Lease-Token"},"verifyMessagingSession":{"type":"apiKey","in":"cookie","name":"__Host-verify_messages"}},"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"}}},"GitSealedAgentCheckpoint":{"type":"object","required":["id","organization_id","repository_id","user_id","vcs_agent_session_id","external_checkpoint_id","sequence_number","capture_kind","status","content_type","compression","checksum_sha256","uncompressed_checksum_sha256","compressed_size_bytes","uncompressed_size_bytes","scrubber_version","redaction_count","metadata","git_commit_sha","captured_at","uploaded_at","tombstoned_at","purge_after","purge_started_at","purged_at","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"user_id":{"type":"string"},"vcs_agent_session_id":{"type":"string"},"external_checkpoint_id":{"type":"string"},"sequence_number":{"type":"integer","minimum":1},"capture_kind":{"type":"string","enum":["commit","lifecycle","manual"]},"status":{"type":"string","enum":["pending","uploaded"]},"content_type":{"type":"string"},"compression":{"type":"string"},"checksum_sha256":{"type":"string"},"uncompressed_checksum_sha256":{"type":"string"},"compressed_size_bytes":{"type":"integer"},"uncompressed_size_bytes":{"type":"integer"},"scrubber_version":{"type":"string"},"redaction_count":{"type":"integer"},"metadata":{"type":"object","additionalProperties":true},"git_commit_sha":{"type":"string","pattern":"^[0-9a-f]{40}$"},"captured_at":{"type":"string","format":"date-time"},"uploaded_at":{"type":"string","format":"date-time","nullable":true},"tombstoned_at":{"type":"string","format":"date-time","nullable":true},"purge_after":{"type":"string","format":"date-time","nullable":true},"purge_started_at":{"type":"string","format":"date-time","nullable":true},"purged_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"AgentConnectionRecord":{"type":"object","properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"user_id":{"type":"string"},"name":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"toolkit":{"type":"string","enum":["slack","gmail","notion","linear","github","granola_mcp","posthog","discordbot","googlecalendar","googledrive","googlesheets","outlook","jira"]},"status":{"type":"string","enum":["pending","active","expired","revoked","error"]},"generation":{"type":"integer"},"failure_code":{"type":"string","nullable":true},"authorized_at":{"type":"string","nullable":true},"checked_at":{"type":"string","nullable":true},"revoked_at":{"type":"string","nullable":true},"admin_disabled_at":{"type":"string","format":"date-time","nullable":true},"owner_name":{"type":"string"},"ownership_kind":{"type":"string","enum":["personal","organization"]},"custodian_id":{"type":"string","nullable":true},"provider_disabled_reason":{"type":["string","null"]},"provider_identity":{"$ref":"#/components/schemas/ProviderIdentity"}},"required":["id","organization_id","user_id","name","created_at","updated_at","toolkit","status","generation","failure_code","authorized_at","checked_at","revoked_at","ownership_kind","custodian_id","provider_identity"]},"AutomationConnectionGrantRecord":{"type":"object","properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"agent_connection_id":{"type":"string"},"user_id":{"type":"string"},"automation_id":{"type":"string"},"created_at":{"type":"string"},"revision":{"type":"integer"},"connection_generation":{"type":"integer"},"status":{"type":"string","enum":["active","revoked"]},"actions":{"type":"array","minItems":1,"maxItems":30,"items":{"type":"object","properties":{"tool":{"type":"string"},"mode":{"type":"string","enum":["approval_required","preauthorized"]},"arguments":{"type":"object","additionalProperties":true},"property_types":{"type":"object","additionalProperties":{"type":"string","enum":["title","rich_text","number","checkbox","date"]}},"resources":{"type":"array","items":{"type":"string"}}},"required":["tool","mode","arguments","resources"]}},"revoked_at":{"type":"string","nullable":true},"usable":{"type":"boolean"}},"required":["id","organization_id","agent_connection_id","user_id","automation_id","created_at","revision","connection_generation","status","actions","revoked_at","usable"]},"AgentConnectionAccessRecord":{"type":"object","properties":{"id":{"type":"string"},"automation_connection_grant_id":{"type":"string"},"user_id":{"type":"string"},"authorized_by_id":{"type":"string"},"member_name":{"type":"string"},"created_at":{"type":"string"},"roles":{"type":"array","items":{"type":"string","enum":["invoke","approve"]},"minItems":1,"maxItems":2,"uniqueItems":true},"usable":{"type":"boolean"},"revoked_at":{"type":["string","null"]}},"required":["id","automation_connection_grant_id","user_id","authorized_by_id","member_name","created_at","roles","usable","revoked_at"]},"AgentIntegrationManifest":{"type":"object","properties":{"toolkit":{"type":"string","enum":["slack","gmail","notion","linear","github","googlecalendar","googledrive","googlesheets","outlook","jira","granola_mcp","posthog","discordbot"]},"name":{"type":"string"},"schema_version":{"type":"integer","enum":[2]},"version":{"type":"string"},"policy_digest":{"type":"string"},"authentication":{"type":"string","enum":["composio_connect_link"]},"certification":{"type":"string","enum":["preview","unavailable"]},"actions":{"type":"array","items":{"type":"object","required":["slug","resource_argument","allowed_arguments","input_schema","name","write"],"properties":{"slug":{"type":"string"},"resource_argument":{"type":"string"},"allowed_arguments":{"type":"array","items":{"type":"string"}},"input_schema":{"type":"object","additionalProperties":true},"name":{"type":"string"},"write":{"type":"boolean"}}}},"triggers":{"type":"array","items":{"$ref":"#/components/schemas/AgentTriggerDefinition"}},"limits":{"type":"object","required":["resources_per_action","response_bytes"],"properties":{"resources_per_action":{"type":"integer"},"response_bytes":{"type":"integer"}}},"consent":{"type":"object","nullable":true,"required":["method","method_label","provider_app","permission_model","summary","limitations","configured_scopes","effective_grants","checked_at","provenance","provider_consent_branding","branding_summary","verification_summary","sources","upstream_only_methods"],"properties":{"method":{"type":"string","enum":["OAUTH2","DCR_OAUTH"]},"method_label":{"type":"string"},"provider_app":{"type":"string","enum":["composio_managed","dynamic_registration"]},"permission_model":{"type":"string","enum":["oauth_scopes","shared_pages_and_capabilities","workspace_and_plan"]},"summary":{"type":"string"},"limitations":{"type":"string"},"configured_scopes":{"type":"array","items":{"type":"string"}},"effective_grants":{"type":"string","enum":["unknown"]},"checked_at":{"type":"string"},"provenance":{"type":"string"},"provider_consent_branding":{"type":"string","enum":["unverified"]},"branding_summary":{"type":"string"},"verification_summary":{"type":"string"},"sources":{"type":"array","items":{"type":"string"}},"upstream_only_methods":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"disabled_reason":{"type":["string","null"]}},"required":["toolkit","name","schema_version","version","policy_digest","authentication","certification","actions","triggers","limits","consent"]},"ProviderIdentity":{"type":"object","additionalProperties":false,"required":["status","account_label","workspace_label","checked_at"],"properties":{"status":{"type":"string","enum":["verified","unavailable"]},"account_label":{"type":"string","nullable":true},"workspace_label":{"type":"string","nullable":true},"checked_at":{"type":"string","format":"date-time","nullable":true}}},"AgentRepositoryChoice":{"type":"object","required":["slug","name","github_repository"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"github_repository":{"type":"string","nullable":true,"description":"The connected GitHub `owner/name`, when exactly one is connected."}}},"AgentRoderSessionPayload":{"type":"object","required":["organization_id"],"properties":{"organization_id":{"type":"string"},"repository_slug":{"type":"string","nullable":true},"github_repository":{"type":"string","nullable":true,"description":"Internal operator access to an explicit owner/name connected to this organization. Uses GitHub authentication directly for the normal coding workspace."},"session_purpose":{"type":"string","enum":["coding","browser_setup"],"default":"coding"},"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","session_purpose","browser_collaboration_version","repository_slug"],"properties":{"repository_slug":{"type":"string","nullable":true},"session_purpose":{"type":"string","enum":["coding","browser_setup"]},"browser_collaboration_version":{"type":"integer","enum":[0,1]},"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","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"]},"repository_spec":{"type":"string","description":"The explicitly selected physical repository address."},"default_branch":{"type":"string"},"author_name":{"type":"string"},"author_email":{"type":"string","format":"email"},"token":{"type":"string","format":"password","description":"Short-lived read/write repository credential. The raw value is returned once and only its digest is stored."},"api_token":{"type":"string","format":"password","description":"Short-lived personal access token for the spawning user. Installed into the sandbox CLI config so `vex` and API clients act as that user. The raw value is returned once and only its digest is stored.\n"},"expires_at":{"type":"string","format":"date-time"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_slug":{"type":"string"}}},"AgentRoderWorkspaceCredentialRequest":{"type":"object","required":["required_lifetime_seconds"],"properties":{"required_lifetime_seconds":{"type":"integer","minimum":1,"maximum":3480,"description":"Lifetime the pending clone or command must be able to complete within."}}},"AgentSessionTranscriptEvent":{"type":"object","required":["index","kind","name","summary","skill_names","category","turn_index","role","timestamp","text","truncated"],"properties":{"index":{"type":"integer","description":"0-based position in the full flattened transcript."},"kind":{"type":"string","enum":["message","reasoning","tool_use","tool_result","lifecycle","other"]},"name":{"type":"string","nullable":true,"description":"Rails-owned hook, tool, harness row-type, or attachment-type name, or null when the source carried none."},"summary":{"type":"string","nullable":true,"description":"Rails-owned short description of a tool input, or null when no useful detail was present."},"skill_names":{"type":"array","items":{"type":"string"},"description":"Skill names Rails identified from this tool call."},"category":{"type":"string","enum":["context","prompt","response","reasoning","tool","lifecycle","system","attachment","other"],"description":"Rails-owned conversation meaning for this event. `system` is harness bookkeeping (mode, title, file-history rows), `attachment` is context the harness injected, and `other` is a row shape Vex does not recognize; the browser hides all three by default."},"turn_index":{"type":"integer","nullable":true,"description":"0-based conversation turn, or null for session context and events before the first prompt."},"role":{"type":"string","nullable":true,"enum":["user","assistant","system","developer","tool",null]},"timestamp":{"type":"string","nullable":true,"description":"ISO8601 capture time, or null when the source carried none."},"text":{"type":"string","description":"Sanitized, per-event byte-capped display text."},"truncated":{"type":"boolean","description":"True when `text` was truncated at the per-event cap."}}},"AgentSessionTranscriptPage":{"type":"object","required":["session_id","checkpoint_id","events","has_more_before","prev_cursor","total_events"],"properties":{"session_id":{"type":"string"},"checkpoint_id":{"type":"string"},"events":{"type":"array","items":{"$ref":"#/components/schemas/AgentSessionTranscriptEvent"}},"has_more_before":{"type":"boolean","description":"True when older events exist before this page."},"prev_cursor":{"type":"string","nullable":true,"description":"Cursor for the previous (older) page, or null at the start."},"total_events":{"type":"integer","description":"Total events in the resolved checkpoint's transcript."}}},"AgentSessionRoderHandoffConnection":{"$ref":"#/components/schemas/AgentRoderSession"},"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."}}},"AgentSwarmTaskConversation":{"type":"object","required":["task","activity","events","after_seq","next_after_seq","done","launched_at"],"properties":{"task":{"$ref":"#/components/schemas/AgentSwarmLiveTask"},"activity":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmLiveActivityEvent"}},"events":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmLiveEvent"}},"after_seq":{"type":"integer","minimum":0},"next_after_seq":{"type":"integer","minimum":0},"done":{"type":"boolean"},"launched_at":{"type":"string","format":"date-time"}}},"AgentSwarmActivityKind":{"type":"string","enum":["shell","shell_exit","read_file","write_file","commit","export","stack_post","acceptance","notice","harness","thought","message"]},"AgentSwarmActivityReport":{"type":"object","required":["kind","summary"],"properties":{"kind":{"$ref":"#/components/schemas/AgentSwarmActivityKind"},"ts":{"type":"string","format":"date-time"},"summary":{"type":"string","maxLength":512},"exit_code":{"type":"integer","nullable":true},"duration_ms":{"type":"integer","minimum":0,"nullable":true},"path":{"type":"string","maxLength":512,"nullable":true},"payload":{"type":"object","additionalProperties":true,"nullable":true}}},"AgentSwarmLiveActivityEvent":{"type":"object","required":["seq","kind","summary","exit_code","duration_ms","path","task_id","attempt_id","ts","at_ms","payload"],"properties":{"seq":{"type":"integer","minimum":1},"kind":{"$ref":"#/components/schemas/AgentSwarmActivityKind"},"summary":{"type":"string"},"exit_code":{"type":"integer","nullable":true},"duration_ms":{"type":"integer","nullable":true},"path":{"type":"string","nullable":true},"task_id":{"type":"string","nullable":true},"attempt_id":{"type":"string","nullable":true},"ts":{"type":"string","format":"date-time"},"at_ms":{"type":"integer","minimum":0},"payload":{"type":"object","additionalProperties":true}}},"AgentSwarmLiveEvent":{"type":"object","required":["id","kind","reason","task_id","attempt_id","ts","at_ms","payload","landing_entry"],"properties":{"id":{"type":"integer"},"kind":{"type":"string"},"reason":{"type":"string","nullable":true},"task_id":{"type":"string","nullable":true},"attempt_id":{"type":"string","nullable":true},"ts":{"type":"string","format":"date-time"},"at_ms":{"type":"integer","minimum":0},"payload":{"type":"object","additionalProperties":true},"landing_entry":{"oneOf":[{"$ref":"#/components/schemas/AgentSwarmLiveLandingEntry"},{"type":"null"}]}}},"AgentSwarmPullRequest":{"type":"object","required":["number","url","state"],"properties":{"number":{"type":"integer"},"url":{"type":"string","nullable":true},"state":{"type":"string","enum":["opened","open","closed","merged","failed"]}}},"AgentSwarmLiveTask":{"type":"object","required":["id","number","role","status","title","depth","position","iteration","failure_code","blocked_reason","parent_task_id","current_attempt_id","short_label","change_numbers","pull_requests","landing_state","plan_summary","plan_reason","started_at","finished_at","updated_at"],"properties":{"id":{"type":"string"},"number":{"type":"integer","minimum":1},"role":{"type":"string","enum":["planner","subplanner","worker","restack","release_watch"]},"status":{"type":"string","enum":["queued","blocked","running","succeeded","failed","canceled","skipped"]},"title":{"type":"string","nullable":true},"depth":{"type":"integer","minimum":0},"position":{"type":"integer","minimum":0},"iteration":{"type":"integer","minimum":0},"failure_code":{"type":"string","nullable":true},"blocked_reason":{"type":"string","nullable":true},"parent_task_id":{"type":"string","nullable":true},"current_attempt_id":{"type":"string","nullable":true},"short_label":{"type":"string"},"change_numbers":{"type":"array","items":{"type":"integer"}},"pull_requests":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmPullRequest"}},"landing_state":{"type":"string","nullable":true},"plan_summary":{"type":"string","nullable":true},"plan_reason":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time"}}},"AgentSwarmLiveMachine":{"type":"object","required":["cpu_millicores","memory_mb"],"properties":{"cpu_millicores":{"type":"integer"},"memory_mb":{"type":"integer"}}},"AgentSwarmLiveBudget":{"type":"object","required":["usd_spent_nanodollars","usd_cap_nanodollars","tokens_used","tokens_cap","vcpu_seconds_used","vcpu_seconds_cap","gb_seconds_used","wall_clock_cap_seconds"],"properties":{"usd_spent_nanodollars":{"type":"integer","nullable":true},"usd_cap_nanodollars":{"type":"integer","nullable":true},"tokens_used":{"type":"integer","nullable":true},"tokens_cap":{"type":"integer","nullable":true},"vcpu_seconds_used":{"type":"integer","nullable":true},"vcpu_seconds_cap":{"type":"integer","nullable":true},"gb_seconds_used":{"type":"integer","nullable":true},"wall_clock_cap_seconds":{"type":"integer","nullable":true}}},"AgentSwarmLiveHeader":{"type":"object","required":["id","number","slug","goal","phase","outcome","status","launched_at","started_at","finished_at","active_workers","tasks_done","tasks_total","stacks_landed","budget","machine","master_tip","platform","github","base_bookmark","repository_slug","organization_slug"],"properties":{"id":{"type":"string"},"number":{"type":"integer","minimum":1},"slug":{"type":"string"},"goal":{"type":"string","nullable":true},"phase":{"type":"string","enum":["planning","executing","landing","releasing","terminal"],"nullable":true},"outcome":{"type":"string","enum":["succeeded","partially_succeeded","failed","canceled","budget_exhausted"],"nullable":true},"status":{"type":"string","enum":["queued","running","succeeded","failed","canceled"]},"launched_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"active_workers":{"type":"integer","minimum":0},"tasks_done":{"type":"integer","minimum":0},"tasks_total":{"type":"integer","minimum":0},"stacks_landed":{"type":"integer","minimum":0},"budget":{"$ref":"#/components/schemas/AgentSwarmLiveBudget"},"machine":{"$ref":"#/components/schemas/AgentSwarmLiveMachine"},"master_tip":{"type":"string","nullable":true},"platform":{"type":"string","enum":["composal","github"]},"github":{"type":"object","nullable":true,"required":["commits","prs_opened","prs_merged"],"properties":{"commits":{"type":"integer","minimum":0},"prs_opened":{"type":"integer","minimum":0},"prs_merged":{"type":"integer","minimum":0}}},"base_bookmark":{"type":"string","nullable":true},"repository_slug":{"type":"string","nullable":true},"organization_slug":{"type":"string"}}},"AgentSwarmLiveLandingEntry":{"type":"object","required":["task_id","short_label","state","change_numbers","pull_requests","entry_id","queue_position","landed_commit","at"],"properties":{"task_id":{"type":"string"},"short_label":{"type":"string"},"state":{"type":"string","description":"held | released | requested | validating | ready | restack | landed | failed | revoked"},"change_numbers":{"type":"array","items":{"type":"integer"}},"pull_requests":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmPullRequest"}},"entry_id":{"type":"string","nullable":true},"queue_position":{"type":"integer","nullable":true,"description":"The entry's place in the merge queue while it is still in it."},"landed_commit":{"type":"string","nullable":true,"description":"The first twelve characters of the commit the closure landed as."},"at":{"type":"string","format":"date-time"}}},"AgentSwarmLiveLanding":{"type":"object","required":["entries","master_tip"],"properties":{"entries":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmLiveLandingEntry"}},"master_tip":{"type":"string","nullable":true}}},"AgentSwarmLivePage":{"type":"object","required":["swarm","tasks","landing","events","activity","activity_retained","server_time"],"properties":{"swarm":{"$ref":"#/components/schemas/AgentSwarmLiveHeader"},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmLiveTask"}},"landing":{"$ref":"#/components/schemas/AgentSwarmLiveLanding"},"events":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmLiveEvent"}},"activity":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmLiveActivityEvent"}},"activity_retained":{"type":"integer"},"server_time":{"type":"string","format":"date-time"}}},"AgentSwarmLiveActivityItem":{"type":"object","required":["source","event"],"properties":{"source":{"type":"string","enum":["activity"]},"event":{"$ref":"#/components/schemas/AgentSwarmLiveActivityEvent"}}},"AgentSwarmLiveEventItem":{"type":"object","required":["source","event"],"properties":{"source":{"type":"string","enum":["event"]},"event":{"$ref":"#/components/schemas/AgentSwarmLiveEvent"}}},"AgentSwarmLiveStreamItem":{"oneOf":[{"$ref":"#/components/schemas/AgentSwarmLiveActivityItem"},{"$ref":"#/components/schemas/AgentSwarmLiveEventItem"}]},"AgentSwarmLiveReplayPage":{"type":"object","required":["swarm","tasks","items","cursor","next_cursor","after_seq","after_event_id","done","limit","server_time"],"properties":{"swarm":{"$ref":"#/components/schemas/AgentSwarmLiveHeader"},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmLiveTask"}},"items":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmLiveStreamItem"}},"cursor":{"type":"string","nullable":true},"next_cursor":{"type":"string","nullable":true},"after_seq":{"type":"integer","minimum":0},"after_event_id":{"type":"integer","minimum":0},"done":{"type":"boolean"},"limit":{"type":"integer","minimum":1},"server_time":{"type":"string","format":"date-time"}}},"AgentSwarm":{"type":"object","required":["id","organization_id","organization_slug","creator_user_id","repository_id","repository_slug","number","display_id","slug","status","phase","outcome","goal","base_bookmark","base_revision","deadline_at","canceled_at","scheduler_generation","policy","budget","usage","reserved","summary","environment","model_provider","model","base_ref","concurrency_key","task_template_json","queued_at","started_at","finished_at","created_at","updated_at","task_count","done_count","failed_count","canceled_count","skipped_count","queued_at_label","started_at_label","finished_at_label","created_at_label","updated_at_label","github"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"organization_slug":{"type":"string","nullable":true},"repository_slug":{"type":"string","nullable":true},"creator_user_id":{"type":"string","nullable":true},"repository_id":{"type":"string","nullable":true},"phase":{"type":"string","enum":["planning","executing","landing","releasing","terminal"],"nullable":true},"outcome":{"type":"string","enum":["succeeded","partially_succeeded","failed","canceled","budget_exhausted"],"nullable":true},"goal":{"type":"string","nullable":true},"base_bookmark":{"type":"string","nullable":true},"base_revision":{"type":"string","nullable":true},"deadline_at":{"type":"string","format":"date-time","nullable":true},"canceled_at":{"type":"string","format":"date-time","nullable":true},"scheduler_generation":{"type":"integer","minimum":0},"policy":{"type":"object","additionalProperties":true},"budget":{"type":"object","additionalProperties":true},"usage":{"type":"object","additionalProperties":true},"reserved":{"type":"object","additionalProperties":true},"summary":{"type":"object","additionalProperties":true},"environment":{"type":"object","additionalProperties":true},"canceled_count":{"type":"integer","minimum":0},"skipped_count":{"type":"integer","minimum":0},"github":{"type":"object","required":["platform","commits","prs_opened","prs_merged"],"properties":{"platform":{"type":"string","enum":["composal","github"]},"commits":{"type":"integer","minimum":0},"prs_opened":{"type":"integer","minimum":0},"prs_merged":{"type":"integer","minimum":0}}},"number":{"type":"integer","minimum":1},"display_id":{"type":"integer","minimum":1},"slug":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","canceled"]},"model_provider":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"base_ref":{"type":"string","nullable":true},"concurrency_key":{"type":"string","nullable":true},"task_template_json":{"type":"string","nullable":true},"queued_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"task_count":{"type":"integer","minimum":0},"done_count":{"type":"integer","minimum":0},"failed_count":{"type":"integer","minimum":0},"queued_at_label":{"type":"string","nullable":true},"started_at_label":{"type":"string","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"AgentSwarmTask":{"type":"object","required":["id","organization_id","agent_swarm_id","assigned_runner_id","number","display_id","repo_url","prompt","status","role","depth","position","iteration","title","failure_code","blocked_reason","environment_profile","harness","input_revision","model_provider","model","reasoning_effort","deadline_at","parent_task_id","stack_after_task_id","depends_on_task_ids","current_attempt_id","owned_paths","acceptance_commands","result","landing_state","run_id","changes","recent_activity","commit_sha_result","diff_artifact_url","error_message","retry_number","queued_at","started_at","finished_at","created_at","updated_at","queued_at_label","started_at_label","finished_at_label","created_at_label","updated_at_label","commit_count"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"agent_swarm_id":{"type":"string"},"assigned_runner_id":{"type":"string","nullable":true},"number":{"type":"integer","minimum":1},"display_id":{"type":"integer","minimum":1},"repo_url":{"type":"string","format":"uri"},"prompt":{"type":"string"},"status":{"type":"string","enum":["queued","blocked","running","succeeded","failed","canceled","skipped"]},"role":{"type":"string","enum":["planner","subplanner","worker","restack","release_watch"]},"depth":{"type":"integer","minimum":0},"position":{"type":"integer","minimum":0},"iteration":{"type":"integer","minimum":0},"title":{"type":"string","nullable":true},"failure_code":{"type":"string","nullable":true},"blocked_reason":{"type":"string","enum":["dependency_pending","dependency_failed"],"nullable":true},"environment_profile":{"type":"string","nullable":true},"harness":{"type":"string","enum":["roder","codex"]},"input_revision":{"type":"string","nullable":true},"model_provider":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"reasoning_effort":{"type":"string","nullable":true},"deadline_at":{"type":"string","format":"date-time","nullable":true},"parent_task_id":{"type":"string","nullable":true},"stack_after_task_id":{"type":"string","nullable":true},"depends_on_task_ids":{"type":"array","items":{"type":"string"}},"current_attempt_id":{"type":"string","nullable":true},"owned_paths":{"type":"array","items":{"type":"string"}},"acceptance_commands":{"type":"array","items":{"type":"object","additionalProperties":true}},"result":{"type":"object","additionalProperties":true},"landing_state":{"type":"string","enum":["none","held","requested","queued","landed","failed"]},"run_id":{"type":"string","nullable":true},"commit_count":{"type":"integer","minimum":0},"changes":{"type":"array","items":{"type":"object","required":["number","title","status","pull_request"],"properties":{"number":{"type":"integer","nullable":true},"title":{"type":"string"},"status":{"type":"string"},"pull_request":{"type":"object","nullable":true,"required":["change_number","number","url","state","branch"],"properties":{"change_number":{"type":"integer","nullable":true},"number":{"type":"integer"},"url":{"type":"string","nullable":true},"state":{"type":"string"},"branch":{"type":"string","nullable":true}}}}}},"recent_activity":{"type":"array","maxItems":12,"items":{"type":"object","required":["seq","kind","summary","exit_code","ts"],"properties":{"seq":{"type":"integer","minimum":1},"kind":{"$ref":"#/components/schemas/AgentSwarmActivityKind"},"summary":{"type":"string"},"exit_code":{"type":"integer","nullable":true},"ts":{"type":"string","format":"date-time"}}}},"commit_sha_result":{"type":"string","nullable":true},"diff_artifact_url":{"type":"string","format":"uri","nullable":true},"error_message":{"type":"string","nullable":true},"retry_number":{"type":"integer","minimum":0},"queued_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"queued_at_label":{"type":"string","nullable":true},"started_at_label":{"type":"string","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"AgentSwarmDetail":{"allOf":[{"$ref":"#/components/schemas/AgentSwarm"},{"type":"object","required":["tasks"],"properties":{"tasks":{"type":"array","maxItems":25,"items":{"$ref":"#/components/schemas/AgentSwarmTask"}}}}]},"AgentSwarmTaskCreatePayload":{"type":"object","required":["prompt"],"properties":{"repo_url":{"type":"string","format":"uri"},"prompt":{"type":"string"},"title":{"type":"string"},"role":{"type":"string","enum":["worker","subplanner"]},"owned_paths":{"type":"array","items":{"type":"string"}},"acceptance_commands":{"type":"array","items":{"type":"object","required":["command"],"properties":{"command":{"type":"string"},"timeout_seconds":{"type":"integer","minimum":1,"maximum":600}}}},"depends_on":{"type":"array","items":{"type":"integer","minimum":0}},"stack_after":{"type":"integer","minimum":0,"nullable":true},"environment_profile":{"type":"string"},"harness":{"type":"string","enum":["roder","codex"]}}},"AgentSwarmCreatePayload":{"description":"PRD 146: the goal form (`goal` + `repository`) starts a planned swarm; the legacy `tasks[]` form materializes a one-level tree. One of `goal` or `tasks` is required.","type":"object","required":["organization_slug"],"properties":{"organization_slug":{"type":"string"},"slug":{"type":"string"},"goal":{"type":"string"},"repository":{"type":"string","description":"Repository slug inside the organization"},"base_bookmark":{"type":"string","description":"An existing bookmark to start from and land on; the plain form of `target.kind = bookmark`."},"target":{"type":"object","description":"Where the swarm lands. `trunk` is the repository's default branch; `bookmark` an existing bookmark named by `name`; `new_bookmark` a bookmark named by `name` that the launch creates at trunk's head. Every worker starts from the target's head and every Change is opened against it; its merge queue is found or created on the first landing.","required":["kind"],"properties":{"kind":{"type":"string","enum":["trunk","bookmark","new_bookmark"]},"name":{"type":"string","maxLength":128}}},"base_revision":{"type":"string","description":"64-hex commit id; skips the head lookup"},"policy":{"type":"object","additionalProperties":true,"description":"Every key is optional and defaults to AgentSwarm::POLICY_DEFAULTS.","properties":{"platform":{"type":"string","enum":["composal","github"]},"max_parallel_workers":{"type":"integer","minimum":1},"max_depth":{"type":"integer","minimum":1},"max_subplanner_iterations":{"type":"integer","minimum":1},"max_root_iterations":{"type":"integer","minimum":1},"max_tasks":{"type":"integer","minimum":1},"max_runs":{"type":"integer","minimum":1},"max_task_attempts":{"type":"integer","minimum":1},"task_deadline_seconds":{"type":"integer","minimum":60},"swarm_deadline_seconds":{"type":"integer","minimum":60},"landing":{"type":"string"},"deploy":{"type":"string"},"restack_attempts":{"type":"integer","minimum":0},"reserve_org_slot":{"type":"boolean"},"submit_on_failure":{"type":"boolean"},"plan_only":{"type":"boolean"},"environment_profile":{"type":"string"},"models":{"type":"object","description":"Per-role model overrides; roles left out keep the platform defaults.","additionalProperties":{"type":"object","required":["model"],"properties":{"model_provider":{"type":"string","default":"openai"},"model":{"type":"string"},"reasoning_effort":{"type":"string","enum":["low","medium","high","xhigh","max","ultra"]}}}}}},"budget":{"type":"object","additionalProperties":true,"properties":{"max_usd":{"type":"number","minimum":0},"max_wall_clock_seconds":{"type":"integer","minimum":60},"cleanup_reserve_usd":{"type":"number","minimum":0},"build_reserve_usd":{"type":"number","minimum":0},"max_build_seconds":{"type":"integer","minimum":0}}},"environment":{"type":"object","additionalProperties":true},"model_provider":{"type":"string","deprecated":true},"model":{"type":"string","deprecated":true},"base_ref":{"type":"string","deprecated":true},"concurrency_key":{"type":"string","deprecated":true},"task_template_json":{"type":"string","deprecated":true},"queued_at":{"type":"string","format":"date-time","deprecated":true},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/AgentSwarmTaskCreatePayload"}}}},"AgentSwarmPolicy":{"type":"object","required":["policy","budget","environment","scheduler_generation"],"properties":{"policy":{"type":"object","additionalProperties":true},"budget":{"type":"object","additionalProperties":true},"environment":{"type":"object","additionalProperties":true},"scheduler_generation":{"type":"integer","minimum":0}}},"AgentSwarmEvent":{"type":"object","required":["id","agent_swarm_id","task_id","attempt_id","kind","reason","scheduler_generation","payload","created_at","created_at_label"],"properties":{"id":{"type":"integer"},"agent_swarm_id":{"type":"string"},"task_id":{"type":"string","nullable":true},"attempt_id":{"type":"string","nullable":true},"kind":{"type":"string"},"reason":{"type":"string","nullable":true},"scheduler_generation":{"type":"integer","nullable":true},"payload":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true}}},"RoderRunResultPayload":{"type":"object","required":["result_contract","result"],"properties":{"result_contract":{"type":"string"},"result":{"type":"object","additionalProperties":true}}},"RoderRunResultReceipt":{"type":"object","required":["id","status","result_contract"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["completed"]},"result_contract":{"type":"string"}}},"AgentTriggerSubscriptionRecord":{"type":"object","properties":{"id":{"type":"string"},"agent_connection_id":{"type":"string"},"trigger_slug":{"type":"string"},"toolkit_version":{"type":"string"},"configuration":{"type":"object","additionalProperties":true},"enabled":{"type":"boolean"},"remote_enabled":{"type":["boolean","null"]},"failure_code":{"type":["string","null"]},"failure_request_id":{"type":["string","null"],"maxLength":200},"reconcile_at":{"type":"string","format":"date-time"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"waiting_for_retirement":{"type":"boolean"},"retired_at":{"type":["string","null"],"format":"date-time"},"retirement_completed_at":{"type":["string","null"],"format":"date-time"},"reconciliation_uncertain":{"type":"boolean"},"replacement_id":{"type":["string","null"]}},"required":["id","agent_connection_id","trigger_slug","toolkit_version","configuration","enabled","remote_enabled","failure_code","failure_request_id","reconcile_at","created_at","updated_at","retired_at","retirement_completed_at","waiting_for_retirement","reconciliation_uncertain","replacement_id"]},"AgentTriggerDefinition":{"type":"object","properties":{"slug":{"type":"string"},"toolkit":{"type":"string"},"version":{"type":"string"},"name":{"type":"string"},"delivery":{"type":"string"},"status":{"type":"string"},"latency":{"type":"string"},"defaults":{"type":"object","additionalProperties":true},"schema":{"type":"object","additionalProperties":true}},"required":["slug","toolkit","version","name","delivery","status","latency","defaults","schema"]},"AutomationProviderBindingRecord":{"type":"object","properties":{"id":{"type":"string"},"agent_trigger_subscription_id":{"type":"string"},"automation_id":{"type":"string"},"trigger_key":{"type":"string"},"revision":{"type":"integer"},"usable":{"type":"boolean"},"revoked_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"}},"required":["id","agent_trigger_subscription_id","automation_id","trigger_key","revision","usable","revoked_at","created_at"]},"AgentTriggerSubscriptionHealth":{"type":"object","properties":{"last_received_at":{"type":["string","null"],"format":"date-time"},"last_occurred_at":{"type":["string","null"],"format":"date-time"},"last_delivered_at":{"type":["string","null"],"format":"date-time"},"last_event_id":{"type":["string","null"]},"last_invocation_id":{"type":["string","null"]},"last_automation_slug":{"type":["string","null"]},"observed_delay_seconds":{"type":["number","null"],"minimum":0},"pending_deliveries":{"type":"integer","minimum":0}},"required":["last_received_at","last_occurred_at","last_delivered_at","last_event_id","last_invocation_id","last_automation_slug","observed_delay_seconds","pending_deliveries"]},"AgentUsagePage":{"type":"object","required":["source","window","started_at","ended_at","pricing_version","days","users","user_days"],"properties":{"source":{"type":"string","enum":["tinybird","outbox"],"description":"Which store served the rows."},"window":{"type":"string","enum":["7d","30d"]},"started_at":{"type":"string"},"ended_at":{"type":"string"},"pricing_version":{"type":"string","description":"The price table in effect now; rows carry the version they were priced at."},"days":{"type":"array","description":"One cell per (day, model), ascending by day then model. Days with no usage are absent.","items":{"$ref":"#/components/schemas/AgentUsageDayCell"}},"users":{"type":"array","description":"One row per (person, model), descending by tokens. `user` is null for hosted agents.","items":{"$ref":"#/components/schemas/AgentUsageUserCell"}},"user_days":{"type":"array","description":"One cell per (day, person), ascending by day. `user` is null for hosted agents.","items":{"$ref":"#/components/schemas/AgentUsageUserDayCell"}}}},"AgentUsageDayCell":{"type":"object","required":["date","model","input_tokens","cache_read_input_tokens","cache_creation_input_tokens","output_tokens","total_tokens","api_call_count","session_count","estimated_cost_usd","unpriced_tokens"],"properties":{"date":{"type":"string","description":"ISO date."},"model":{"type":"string","description":"Provider model id; '' when the checkpoint reported none."},"input_tokens":{"type":"integer"},"cache_read_input_tokens":{"type":"integer"},"cache_creation_input_tokens":{"type":"integer"},"output_tokens":{"type":"integer"},"total_tokens":{"type":"integer"},"api_call_count":{"type":"integer"},"session_count":{"type":"integer"},"estimated_cost_usd":{"type":"string","description":"Decimal USD summed from each row's capture-time price."},"unpriced_tokens":{"type":"integer","description":"Tokens in `total_tokens` whose model had no list price, so the cost is a floor when non-zero."}}},"AgentUsageUserCell":{"type":"object","required":["user","model","total_tokens","output_tokens","api_call_count","session_count","estimated_cost_usd","unpriced_tokens","last_active_at"],"properties":{"user":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSessionUser"},{"type":"null"}]},"model":{"type":"string"},"total_tokens":{"type":"integer"},"output_tokens":{"type":"integer"},"api_call_count":{"type":"integer"},"session_count":{"type":"integer"},"estimated_cost_usd":{"type":"string"},"unpriced_tokens":{"type":"integer"},"last_active_at":{"type":"string","nullable":true}}},"AgentUsageUserDayCell":{"type":"object","required":["date","user","total_tokens","output_tokens","api_call_count","session_count","estimated_cost_usd","unpriced_tokens"],"properties":{"date":{"type":"string","description":"ISO date."},"user":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSessionUser"},{"type":"null"}]},"total_tokens":{"type":"integer"},"output_tokens":{"type":"integer"},"api_call_count":{"type":"integer"},"session_count":{"type":"integer"},"estimated_cost_usd":{"type":"string"},"unpriced_tokens":{"type":"integer"}}},"OrganizationAgreementsPage":{"type":"object","required":["organization","access_request","can_request_access","agreements"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"},"access_request":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/AgreementAccessRequest"}]},"can_request_access":{"type":"boolean"},"agreements":{"type":"array","items":{"$ref":"#/components/schemas/Agreement"}}}},"AgreementAccessRequest":{"type":"object","required":["state","requested_by_name","requested_at_label","granted_at_label"],"properties":{"state":{"type":"string","enum":["requested","granted"]},"requested_by_name":{"type":"string"},"requested_at_label":{"type":"string"},"granted_at_label":{"type":"string","nullable":true}}},"Agreement":{"type":"object","required":["key","title","summary","version","effective_on_label","body"],"properties":{"key":{"type":"string","enum":["data_processing_agreement","subprocessors"]},"title":{"type":"string"},"summary":{"type":"string"},"version":{"type":"string"},"effective_on_label":{"type":"string"},"body":{"type":"string","nullable":true,"description":"Markdown text, or null until staff grant the organization access."}}},"ArtefactPagePagination":{"type":"object","properties":{"count":{"type":"integer"},"page":{"type":"integer"},"last":{"type":"integer"},"previous":{"type":"integer"},"next":{"type":"integer"}},"required":["count","page","last"]},"ArtefactPageItem":{"allOf":[{"$ref":"#/components/schemas/Artefact"},{"type":"object","properties":{"publisher":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"picture_url":{"type":"string","nullable":true}},"required":["id","name","picture_url"],"nullable":true},"repository":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}},"required":["id","slug","name"],"nullable":true},"published_at_label":{"type":["string","null"]}},"required":["publisher","repository","published_at_label"]}]},"ArtefactIndexPage":{"type":"object","properties":{"organization":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}},"required":["id","slug","name"]},"artefacts":{"type":"array","items":{"$ref":"#/components/schemas/ArtefactPageItem"}},"filters":{"type":"object","additionalProperties":{"type":"string"}},"kinds":{"type":"array","items":{"type":"string"}},"pagination":{"$ref":"#/components/schemas/ArtefactPagePagination"}},"required":["organization","artefacts","filters","kinds","pagination"]},"ArtefactDetailPage":{"type":"object","properties":{"organization":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}},"required":["id","slug","name"]},"artefact":{"$ref":"#/components/schemas/ArtefactPageItem"},"kinds":{"type":"array","items":{"type":"string"}},"permissions":{"type":"object","properties":{"edit":{"type":"boolean"},"delete":{"type":"boolean"}},"required":["edit","delete"]},"preview":{"type":"object","properties":{"kind":{"type":"string","enum":["html","pdf","image","markdown","download","unavailable"]},"content":{"type":"string"},"viewer_url":{"type":"string"}},"required":["kind"]},"versions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"version":{"type":"integer"},"published_at":{"type":["string","null"]}},"required":["id","version","published_at"]}},"pagination":{"$ref":"#/components/schemas/ArtefactPagePagination"},"automation":{"type":"object","nullable":true,"properties":{"name":{"type":"string"},"slug":{"type":"string"},"invocation_id":{"type":"string"}},"required":["name","slug","invocation_id"]},"selected_path":{"type":"string"}},"required":["organization","artefact","kinds","permissions","preview","versions","pagination","automation"]},"Artefact":{"type":"object","properties":{"document_key":{"type":"string","description":"Stable document identity shared by all revisions."},"entrypoint":{"type":"string"},"files":{"type":"array","items":{"type":"object","required":["path","content_type","byte_size","checksum_sha256"],"properties":{"path":{"type":"string"},"content_type":{"type":"string"},"byte_size":{"type":"integer"},"checksum_sha256":{"type":"string"},"version_id":{"type":"string"}}}},"id":{"type":"string"},"organization_id":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"},"kind":{"type":"string"},"source":{"type":"string"},"filename":{"type":"string"},"content_type":{"type":"string"},"checksum_sha256":{"type":"string"},"status":{"type":"string"},"version":{"type":"integer"},"byte_size":{"type":"integer"},"description":{"type":"string","nullable":true},"harness":{"type":"string","nullable":true},"harness_version":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"created_by_user_id":{"type":"string","nullable":true},"repository_id":{"type":"string","nullable":true},"vcs_agent_session_id":{"type":"string","nullable":true},"vcs_agent_checkpoint_id":{"type":"string","nullable":true},"automation_invocation_id":{"type":"string","nullable":true},"published_at":{"type":"string","nullable":true},"expires_at":{"type":"string","nullable":true},"created_at":{"type":"string","nullable":true},"view_url":{"type":"string","format":"uri"},"web_url":{"type":"string","format":"uri"}},"required":["id","organization_id","slug","version","title","kind","source","filename","content_type","byte_size","checksum_sha256","status","view_url","web_url"]},"AutomationArtifactManifest":{"type":"object","properties":{"id":{"type":"string"},"artefact_id":{"type":"string"},"filename":{"type":"string"},"content_type":{"type":"string"},"checksum_sha256":{"type":"string"},"expires_at":{"type":"string"},"byte_size":{"type":"integer"}},"required":["id","artefact_id","filename","content_type","checksum_sha256","expires_at","byte_size"]},"AutomationOriginVerificationInput":{"type":"object","additionalProperties":false,"required":["tool_call_id","provider_log_id"],"properties":{"tool_call_id":{"type":"string"},"provider_log_id":{"type":"string","pattern":"^log_[A-Za-z0-9_-]{1,196}$","maxLength":200}}},"AutomationOriginVerificationRecord":{"type":"object","required":["id","user_id","automation_tool_call_id","provider_log_id","origin_kind","created_at"],"properties":{"id":{"type":"string"},"user_id":{"type":"string"},"automation_tool_call_id":{"type":"string"},"provider_log_id":{"type":"string"},"origin_kind":{"type":"string"},"created_at":{"type":"string"}}},"AutomationPageOrganization":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}},"required":["id","slug","name"]},"AutomationPagePermissions":{"type":"object","properties":{"create":{"type":"boolean"},"edit":{"type":"boolean"},"preview":{"type":"boolean"},"activate":{"type":"boolean"},"invoke":{"type":"boolean"},"pause":{"type":"boolean"},"archive":{"type":"boolean"}},"required":["create","edit","preview","activate","invoke","pause","archive"]},"AutomationPageCatalog":{"type":"object","properties":{"model_providers":{"type":"array","items":{"type":"string"}},"models":{"type":"array","items":{"type":"string"}},"output_modes":{"type":"array","items":{"type":"string"}},"trigger_types":{"type":"array","items":{"type":"string"}},"tools":{"type":"array","items":{"type":"string"}},"condition_operators":{"type":"array","items":{"type":"string"}},"events":{"type":"array","items":{"type":"string"}},"max_triggers":{"type":"integer"},"max_tokens":{"type":"integer"},"max_deadline_seconds":{"type":"integer"},"max_tool_calls":{"type":"integer"}},"required":["model_providers","models","output_modes","trigger_types","tools","condition_operators","events","max_triggers","max_tokens","max_deadline_seconds","max_tool_calls"]},"AutomationPagePagination":{"type":"object","properties":{"count":{"type":"integer"},"page":{"type":"integer"},"limit":{"type":"integer"},"last":{"type":"integer"},"previous":{"type":"integer"},"next":{"type":"integer"}},"required":["count","page","limit","last"]},"AutomationIndexItem":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"revision":{"type":"integer"},"active_revision_number":{"type":"integer","nullable":true},"next_due_at":{"type":"string","nullable":true},"updated_at":{"type":"string"},"trigger_types":{"type":"array","items":{"type":"string"}},"last_invocation":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string"},"reason":{"type":"string","nullable":true},"created_at":{"type":"string"},"usage":{},"usage_summary":{"$ref":"#/components/schemas/AutomationUsageSummary"}},"required":["id","status","reason","created_at","usage","usage_summary"],"nullable":true}},"required":["id","slug","name","status","revision","active_revision_number","next_due_at","updated_at","trigger_types","last_invocation"]},"AutomationIndexPage":{"type":"object","properties":{"organization":{"$ref":"#/components/schemas/AutomationPageOrganization"},"permissions":{"$ref":"#/components/schemas/AutomationPagePermissions"},"execution_enabled":{"type":"boolean"},"automations":{"type":"array","items":{"$ref":"#/components/schemas/AutomationIndexItem"}},"pagination":{"$ref":"#/components/schemas/AutomationPagePagination"},"integrations_enabled":{"type":"boolean"},"integration_access":{"$ref":"#/components/schemas/AutomationIntegrationAccess"}},"required":["organization","permissions","execution_enabled","automations","pagination","integrations_enabled","integration_access"]},"AutomationNewPage":{"type":"object","properties":{"organization":{"$ref":"#/components/schemas/AutomationPageOrganization"},"permissions":{"$ref":"#/components/schemas/AutomationPagePermissions"},"execution_enabled":{"type":"boolean"},"catalog":{"$ref":"#/components/schemas/AutomationPageCatalog"},"defaults":{"$ref":"#/components/schemas/AutomationConfiguration"},"integrations_enabled":{"type":"boolean"},"integration_access":{"$ref":"#/components/schemas/AutomationIntegrationAccess"},"integration_templates":{"type":"array","items":{"$ref":"#/components/schemas/AutomationIntegrationTemplate"}}},"required":["organization","permissions","execution_enabled","catalog","defaults","integrations_enabled","integration_access","integration_templates"]},"AutomationDetailPage":{"type":"object","properties":{"organization":{"$ref":"#/components/schemas/AutomationPageOrganization"},"permissions":{"$ref":"#/components/schemas/AutomationPagePermissions"},"execution_enabled":{"type":"boolean"},"automation":{"$ref":"#/components/schemas/AutomationRecord"},"activation":{"type":"object","properties":{"from_revision":{"type":"integer","nullable":true},"to_revision":{"type":"integer"},"changes":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"before":{},"after":{}},"required":["field","before","after"]}},"added_tools":{"type":"array","items":{"type":"string"}},"removed_tools":{"type":"array","items":{"type":"string"}}},"required":["from_revision","to_revision","changes","added_tools","removed_tools"]},"schedules":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"type":{"type":"string"},"timezone":{"type":"string","nullable":true},"next_occurrences":{"type":"array","items":{"type":"string"}}},"required":["key","type","timezone","next_occurrences"]}},"catalog":{"$ref":"#/components/schemas/AutomationPageCatalog"},"invocations":{"type":"array","items":{"$ref":"#/components/schemas/AutomationInvocationRecord"}},"pagination":{"$ref":"#/components/schemas/AutomationPagePagination"},"integrations_enabled":{"type":"boolean"},"integration_access":{"$ref":"#/components/schemas/AutomationIntegrationAccess"}},"required":["organization","permissions","execution_enabled","automation","activation","schedules","catalog","invocations","pagination","integrations_enabled","integration_access"]},"AutomationInvocationPage":{"type":"object","properties":{"organization":{"$ref":"#/components/schemas/AutomationPageOrganization"},"automation":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}},"required":["id","slug","name"]},"invocation":{"$ref":"#/components/schemas/AutomationInvocationRecord"},"configuration":{"anyOf":[{"$ref":"#/components/schemas/AutomationConfiguration"},{"type":"null"}]},"input":{},"attempts":{"type":"array","items":{"$ref":"#/components/schemas/AutomationAttemptRecord"}},"tool_calls":{"type":"array","items":{"$ref":"#/components/schemas/AutomationToolCallRecord"}},"artifacts":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/AutomationArtifactManifest"},{"type":"object","properties":{"state":{"type":"string"}},"required":["state"]}]}},"permissions":{"type":"object","properties":{"cancel":{"type":"boolean"},"retry":{"type":"boolean"},"read_results":{"type":"boolean"}},"required":["cancel","retry","read_results"]},"retry_warning":{"type":"string"},"refresh_needed":{"type":"boolean"},"transcript":{"$ref":"#/components/schemas/AutomationTranscriptPage"},"action_approvals":{"type":"array","items":{"$ref":"#/components/schemas/AutomationActionApprovalRecord"}}},"required":["organization","automation","invocation","configuration","input","attempts","tool_calls","artifacts","permissions","retry_warning","refresh_needed","transcript","action_approvals"]},"AutomationToolCallRecord":{"type":"object","properties":{"id":{"type":"string"},"roder_run_id":{"type":"string"},"name":{"type":"string"},"arguments":{},"state":{"type":"string"},"result":{},"created_at":{"type":"string"},"updated_at":{"type":"string"},"resolution":{"anyOf":[{"$ref":"#/components/schemas/AutomationToolResolutionRecord"},{"type":"null"}]},"can_resolve":{"type":"boolean"},"origin_verification_required":{"type":"boolean"},"can_recover_origin":{"type":"boolean"},"origin_verification":{"anyOf":[{"$ref":"#/components/schemas/AutomationOriginVerificationRecord"},{"type":"null"}]}},"required":["id","roder_run_id","name","arguments","state","result","created_at","updated_at","resolution","can_resolve","origin_verification_required","can_recover_origin","origin_verification"]},"AutomationIntegrationAccess":{"type":"object","required":["accounts","actions","grants","subscriptions","provider_bindings","audience_members","delegations"],"properties":{"accounts":{"type":"array","items":{"$ref":"#/components/schemas/AgentConnectionRecord"}},"grants":{"type":"array","items":{"$ref":"#/components/schemas/AutomationConnectionGrantRecord"}},"actions":{"type":"array","items":{"type":"object","required":["tool","toolkit","name","resource_label","write"],"properties":{"tool":{"type":"string"},"toolkit":{"type":"string"},"name":{"type":"string"},"resource_label":{"type":"string"},"write":{"type":"boolean"}}}},"subscriptions":{"type":"array","items":{"$ref":"#/components/schemas/AgentTriggerSubscriptionRecord"}},"provider_bindings":{"type":"array","items":{"$ref":"#/components/schemas/AutomationProviderBindingRecord"}},"audience_members":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"delegations":{"type":"array","items":{"$ref":"#/components/schemas/AgentConnectionAccessRecord"}}}},"AutomationActionApprovalRecord":{"type":"object","required":["id","status","expires_at","decided_at","tool","arguments","connection_name"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["pending","approved","denied","expired"]},"expires_at":{"type":"string"},"decided_at":{"type":"string","nullable":true},"tool":{"type":"string"},"arguments":{"type":"object","additionalProperties":true},"connection_name":{"type":"string"}}},"AutomationIntegrationTemplate":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"toolkits":{"type":"array","items":{"type":"string"}},"setup":{"type":"array","items":{"type":"string"}},"configuration":{"$ref":"#/components/schemas/AutomationConfiguration"}},"required":["id","name","description","toolkits","setup","configuration"]},"AutomationToolResolutionInput":{"type":"object","additionalProperties":false,"required":["tool_call_id","outcome","evidence_note"],"properties":{"tool_call_id":{"type":"string"},"outcome":{"type":"string","enum":["confirmed_succeeded","confirmed_not_performed"]},"provider_log_id":{"type":["string","null"],"maxLength":200},"external_resource_id":{"type":["string","null"],"maxLength":200},"evidence_note":{"type":"string","minLength":20,"maxLength":1000}}},"AutomationToolResolutionRecord":{"type":"object","required":["id","user_id","agent_connection_id","automation_tool_call_id","outcome","provider_log_id","external_resource_id","evidence_note","created_at"],"properties":{"id":{"type":"string"},"user_id":{"type":"string"},"agent_connection_id":{"type":"string"},"automation_tool_call_id":{"type":"string"},"outcome":{"type":"string","enum":["confirmed_succeeded","confirmed_not_performed"]},"provider_log_id":{"type":["string","null"],"maxLength":200},"external_resource_id":{"type":["string","null"],"maxLength":200},"evidence_note":{"type":"string","minLength":20,"maxLength":1000},"created_at":{"type":"string"}}},"AutomationTranscriptEntry":{"type":"object","required":["id","sequence","kind","content","truncated","created_at"],"properties":{"id":{"type":"string"},"sequence":{"type":"integer"},"kind":{"type":"string","enum":["instructions","input","assistant","tool_call","tool_result","correction","error"]},"name":{"type":"string","nullable":true},"call_id":{"type":"string","nullable":true},"content":{"type":"string"},"truncated":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"}}},"AutomationTranscriptPage":{"type":"object","required":["attempt","entries","pagination"],"properties":{"attempt":{"type":"integer","nullable":true},"entries":{"type":"array","items":{"$ref":"#/components/schemas/AutomationTranscriptEntry"}},"pagination":{"$ref":"#/components/schemas/AutomationPagePagination"}}},"AutomationPagination":{"type":"object","required":["limit"],"properties":{"limit":{"type":"integer"},"next":{"type":"string"}}},"AutomationSkillFile":{"type":"object","additionalProperties":false,"required":["path","sha256"],"properties":{"path":{"type":"string"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}}},"AutomationSkillReference":{"type":"object","additionalProperties":false,"required":["repository_id","revision","path","sha256"],"properties":{"repository_id":{"type":"string"},"revision":{"type":"string","description":"Original immutable Git commit SHA.","pattern":"^[0-9a-f]{40}$"},"path":{"type":"string"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"files":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/AutomationSkillFile"}}}},"AutomationStoredSkillReference":{"type":"object","additionalProperties":false,"required":["repository_id","revision","path","sha256"],"properties":{"repository_id":{"type":"string"},"revision":{"type":"string","description":"Original Git SHA or retained historical native revision.","pattern":"^(?:[0-9a-f]{40}|[0-9a-f]{64})$"},"path":{"type":"string"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"files":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/AutomationSkillFile"}}}},"AutomationRepositoryContext":{"type":"object","additionalProperties":false,"required":["mode"],"properties":{"mode":{"enum":["none","repository","trigger_change"]},"repository_id":{"type":"string"},"ref":{"type":"string"},"base_ref":{"type":"string"},"path_prefix":{"type":"string"}}},"AutomationSignalOutput":{"type":"object","additionalProperties":false,"required":["kind","severity"],"properties":{"kind":{"type":"string","maxLength":100,"pattern":"^app\\.custom\\.[a-z0-9]+([._-][a-z0-9]+)*$"},"severity":{"enum":["info","warning","error","critical"]}}},"AutomationCooldown":{"type":"object","additionalProperties":false,"required":["key","seconds"],"properties":{"key":{"enum":["hosted_app","repository","subject","source"]},"seconds":{"type":"integer","minimum":1,"maximum":86400}}},"AutomationEvaluationDefinition":{"type":"object","additionalProperties":false,"required":["model","state","questions","rules"],"properties":{"model":{"type":"string","pattern":"^jev-[0-9]+\\.[0-9]+\\.[0-9]+$"},"state":{"type":"object","additionalProperties":false,"required":["source","include"],"properties":{"source":{"type":"string","enum":["triggering_change"]},"include":{"type":"array","description":"Must contain changed_paths followed by diff_hunks.","minItems":2,"maxItems":2,"items":{"type":"string","enum":["changed_paths","diff_hunks"]}}}},"questions":{"type":"object","minProperties":1,"maxProperties":20,"additionalProperties":{"type":"object","additionalProperties":false,"required":["type","instructions"],"properties":{"type":{"type":"string","enum":["noul"]},"instructions":{"type":"string","minLength":1,"maxLength":4000}}}},"rules":{"type":"array","minItems":1,"maxItems":20,"description":"One rule per question, with distinct criteria and at_most less than at_least.","items":{"type":"object","additionalProperties":false,"required":["question","criterion","description","at_least","at_most"],"properties":{"question":{"type":"string"},"criterion":{"type":"string"},"description":{"type":"string","minLength":1,"maxLength":1000},"at_least":{"type":"number","minimum":0,"maximum":1},"at_most":{"type":"number","minimum":0,"maximum":1}}}}}},"AutomationConfiguration":{"type":"object","description":"Agent execution requires a prompt or skills. Evaluation execution uses saved questions over a trusted Change event.","properties":{"execution":{"type":"string","enum":["agent","evaluation"],"default":"agent"},"evaluation":{"$ref":"#/components/schemas/AutomationEvaluationDefinition"},"result_audience":{"type":"array","maxItems":100,"uniqueItems":true,"items":{"type":"string","pattern":"^usr_[A-Za-z0-9]{1,100}$"},"description":"Explicit organization member IDs allowed to read integration results after every source owner grants this revision. Empty means the common source owner only."},"connections":{"type":"array","maxItems":10,"uniqueItems":true,"items":{"type":"string"},"description":"Explicit connection public IDs; every selected account requires an owner grant for this exact revision."},"change_output":{"type":"object","additionalProperties":false,"required":["target_branch"],"properties":{"target_branch":{"type":"string","description":"Fixed target branch for propose_change. Requires repository context and the proposal execution release gate."}}},"signal_output":{"$ref":"#/components/schemas/AutomationSignalOutput"},"cooldown":{"$ref":"#/components/schemas/AutomationCooldown"},"context":{"$ref":"#/components/schemas/AutomationRepositoryContext"},"tools":{"type":"array","uniqueItems":true,"items":{"enum":["repository_list_files","repository_read_file","repository_compare_file","repository_changed_files","repository_file_diff","emit_signal","publish_output","propose_change","integration_catalog","integration_execute","invite_customer_to_slack"]}},"max_tool_calls":{"type":"integer","minimum":1,"maximum":20},"skills":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/AutomationSkillReference"}},"prompt":{"type":"string","maxLength":16000},"model_provider":{"enum":["openai","azure-openai"]},"model":{"enum":["gpt-5.6-luna"]},"output_mode":{"enum":["text","json","none","artifacts"]},"input_schema":{"type":"object","additionalProperties":true},"output_schema":{"type":"object","additionalProperties":true},"condition":{"type":"object","additionalProperties":true},"trigger":{"type":"object","additionalProperties":true},"max_concurrent_runs":{"type":"integer","minimum":1,"maximum":10,"default":1,"description":"Active runs across this Automation, still subject to organization admission limits."},"max_automatic_attempts_per_hour":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Automatic attempts across this Automation in a rolling hour, including execution retries and uncertain starts."},"execution_retries":{"type":"integer","minimum":0,"maximum":2,"description":"Optional read-only execution retries (defaults to zero for agents; omitted for evaluations). Token budget is reserved across all possible attempts; every attempt retains the first execution deadline."},"max_tokens":{"type":"integer","minimum":1,"maximum":4096},"deadline_seconds":{"type":"integer","minimum":1,"maximum":300,"description":"Maximum 60 seconds for evaluation mode; 300 for agent mode."},"triggers":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"object","additionalProperties":true}}},"additionalProperties":false},"AutomationStoredConfiguration":{"type":"object","additionalProperties":false,"properties":{"execution":{"type":"string","enum":["agent","evaluation"],"default":"agent"},"evaluation":{"$ref":"#/components/schemas/AutomationEvaluationDefinition"},"result_audience":{"type":"array","maxItems":100,"uniqueItems":true,"items":{"type":"string","pattern":"^usr_[A-Za-z0-9]{1,100}$"},"description":"Explicit organization member IDs allowed to read integration results after every source owner grants this revision. Empty means the common source owner only."},"connections":{"type":"array","maxItems":10,"uniqueItems":true,"items":{"type":"string"},"description":"Explicit connection public IDs; every selected account requires an owner grant for this exact revision."},"change_output":{"type":"object","additionalProperties":false,"required":["target_branch"],"properties":{"target_branch":{"type":"string","description":"Fixed target branch for propose_change. Requires repository context and the proposal execution release gate."}}},"signal_output":{"$ref":"#/components/schemas/AutomationSignalOutput"},"cooldown":{"$ref":"#/components/schemas/AutomationCooldown"},"context":{"$ref":"#/components/schemas/AutomationRepositoryContext"},"tools":{"type":"array","uniqueItems":true,"items":{"enum":["repository_list_files","repository_read_file","repository_compare_file","repository_changed_files","repository_file_diff","emit_signal","publish_output","propose_change","integration_catalog","integration_execute","invite_customer_to_slack"]}},"max_tool_calls":{"type":"integer","minimum":1,"maximum":20},"skills":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/AutomationStoredSkillReference"}},"prompt":{"type":"string","maxLength":16000},"model_provider":{"enum":["openai","azure-openai"]},"model":{"enum":["gpt-5.6-luna"]},"output_mode":{"enum":["text","json","none","artifacts"]},"input_schema":{"type":"object","additionalProperties":true},"output_schema":{"type":"object","additionalProperties":true},"condition":{"type":"object","additionalProperties":true},"trigger":{"type":"object","additionalProperties":true},"max_concurrent_runs":{"type":"integer","minimum":1,"maximum":10,"default":1,"description":"Active runs across this Automation, still subject to organization admission limits."},"max_automatic_attempts_per_hour":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Automatic attempts across this Automation in a rolling hour, including execution retries and uncertain starts."},"execution_retries":{"type":"integer","minimum":0,"maximum":2,"description":"Optional read-only execution retries (defaults to zero for agents; omitted for evaluations). Token budget is reserved across all possible attempts; every attempt retains the first execution deadline."},"max_tokens":{"type":"integer","minimum":1,"maximum":4096},"deadline_seconds":{"type":"integer","minimum":1,"maximum":300,"description":"Maximum 60 seconds for evaluation mode; 300 for agent mode."},"triggers":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"object","additionalProperties":true}}}},"AutomationDefinition":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"configuration":{"$ref":"#/components/schemas/AutomationConfiguration"},"expected_revision":{"type":"integer"}},"required":["slug","name","configuration"]},"AutomationInvocationInput":{"type":"object","properties":{"input":{},"idempotency_key":{"type":"string","minLength":1,"maxLength":128},"revision":{"type":"integer","minimum":1}},"required":[]},"AutomationRecord":{"type":"object","properties":{"agent_action":{"type":"object","nullable":true,"properties":{"revision":{"type":"integer"},"prompt":{"type":"string"},"input_schema":{"type":"object","nullable":true,"additionalProperties":true},"output_mode":{"type":"string"},"output_schema":{"type":"object","nullable":true,"additionalProperties":true},"tools":{"type":"array","items":{"type":"string"}}}},"id":{"type":"string"},"organization_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"revision":{"type":"integer"},"status":{"enum":["draft","active","paused","archived"]},"configuration":{"$ref":"#/components/schemas/AutomationStoredConfiguration"},"next_due_at":{"type":"string","nullable":true,"format":"date-time"},"active_revision_number":{"type":["integer","null"]},"triggers":{"type":"array","items":{"type":"object","additionalProperties":true}}},"required":["id","slug","name","status","revision","configuration"]},"AutomationUsageSummary":{"type":"object","description":"Consumption across execution attempts in this invocation. Known totals are partial when the metric is incomplete; a missing report never implies zero. Explicit retries are separate invocations.","required":["attempt_count","reporting_attempts","known_totals","incomplete_fields"],"properties":{"attempt_count":{"type":"integer","minimum":0},"reporting_attempts":{"type":"integer","minimum":0},"known_totals":{"type":"object","additionalProperties":{"type":"integer","minimum":0}},"incomplete_fields":{"type":"array","items":{"type":"string"}}}},"AutomationInvocationRecord":{"type":"object","properties":{"terminal":{"type":"boolean"},"artefacts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"artefact_id":{"type":"string"},"filename":{"type":"string"},"content_type":{"type":"string"},"byte_size":{"type":"integer"},"checksum_sha256":{"type":"string"},"expires_at":{"type":"string","format":"date-time"}}}},"content_expired_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"deadline_at":{"type":"string","format":"date-time"},"finished_at":{"type":"string","format":"date-time","nullable":true},"cooldown_until":{"type":"string","format":"date-time","nullable":true},"repository_context":{"type":"object","nullable":true,"description":"Immutable resolved repository context including head/base commit IDs.","additionalProperties":true},"skills":{"type":"array","description":"Frozen source coordinates and file digests, excluding content.","items":{"type":"object","additionalProperties":true}},"id":{"type":"string"},"automation_id":{"type":"string"},"roder_run_id":{"type":"string","nullable":true},"revision":{"type":"integer"},"status":{"enum":["pending","queued","running","dispatched","waiting_for_approval","succeeded","completed","failed","skipped","canceled"]},"reason":{"type":"string","nullable":true},"result":{"nullable":true},"usage":{"type":"object","nullable":true,"description":"Totals across all attempts. A metric is null if any attempt has not reported it; use usage_summary for known partial consumption.","additionalProperties":true},"usage_summary":{"$ref":"#/components/schemas/AutomationUsageSummary"},"matched_trigger_ids":{"type":["array","null"],"items":{"type":"string"}},"automatic":{"type":"boolean"},"automation_event_id":{"type":["string","null"]},"correlation_id":{"type":["string","null"]},"causal_chain":{"type":["array","null"],"items":{"type":"string"}},"retry_of_id":{"type":["string","null"]}},"required":["id","status","revision","usage_summary"]},"AutomationEventRecord":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"},"envelope":{"type":"object","additionalProperties":true},"correlation_id":{"type":"string"},"causal_chain":{"type":"array","items":{"type":"string"}},"created_at":{"type":"string","format":"date-time"}},"required":["id","kind","envelope","correlation_id","causal_chain","created_at"]},"AutomationEventDeliveryRecord":{"type":"object","properties":{"id":{"type":"string"},"automation_event_id":{"type":"string"},"automation_id":{"type":"string"},"status":{"type":"string"},"created_at":{"type":"string"},"next_attempt_at":{"type":"string"},"automation_invocation_id":{"type":["string","null"]},"revision":{"type":"integer"},"reason":{"type":["string","null"]},"matched_trigger_ids":{"type":"array","items":{"type":"string"}}},"required":["id","automation_event_id","automation_id","status","revision","matched_trigger_ids"]},"AutomationAttemptRecord":{"type":"object","properties":{"id":{"type":"string"},"roder_run_id":{"type":"string"},"number":{"type":"integer"},"state":{"type":"string"},"dispatch_count":{"type":"integer"},"last_error":{"type":["string","null"]},"usage":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"next_attempt_at":{"type":"string","format":"date-time"},"run_status":{"type":"string"},"failure_code":{"type":["string","null"]}},"required":["id","roder_run_id","number","state","dispatch_count"]},"BillingOnboarding":{"type":"object","required":["organization_id","state","can_manage","seats","seat_total_cents","recurring_price_cents","trial_credit_cents","confirmed","checkout_required","checkout_available","checkout_blocker","package","subscription","cardless"],"properties":{"organization_id":{"type":"string"},"state":{"type":"string","enum":["none","trialing","active","past_due","suspended","exempt"]},"can_manage":{"type":"boolean"},"seats":{"type":"integer"},"seat_total_cents":{"type":"integer"},"recurring_price_cents":{"type":"integer"},"trial_credit_cents":{"type":"integer"},"confirmed":{"type":"boolean"},"checkout_required":{"type":"boolean"},"cardless":{"type":"boolean"},"checkout_available":{"type":"boolean"},"checkout_blocker":{"type":"string","nullable":true},"package":{"allOf":[{"$ref":"#/components/schemas/BillingPackage"}],"nullable":true},"subscription":{"allOf":[{"$ref":"#/components/schemas/BillingSubscription"}],"nullable":true}}},"BillingLimitExceededError":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","reason","meter_key","dimension_value","limit","requested","upgrade_path","message"],"properties":{"code":{"type":"string","enum":["billing_limit_exceeded"]},"reason":{"type":"string","enum":["hard_cap","allowance_exhausted","budget_exhausted","suspended","seat_limit"]},"meter_key":{"type":"string","description":"A billing meter key","or `seats` for the seat limit":null},"dimension_value":{"type":["string","null"]},"limit":{"oneOf":[{"type":"number"},{"type":"string"}],"description":"Decimal quantities are serialized as strings"},"requested":{"oneOf":[{"type":"number"},{"type":"string"}]},"upgrade_path":{"type":"string","description":"Frontend path of the organization's billing page"},"message":{"type":"string"}}}}},"BillingHostedSession":{"type":"object","required":["url"],"properties":{"url":{"type":"string"}}},"BillingPage":{"type":"object","required":["organization_id","can_manage_contact","can_manage_extra_spend","extra_spend_enabled","deployment_usage_visible","customer","subscription","package","entitlements","addons","budget","preview","breakdown","stripe","feature_enabled"],"properties":{"organization_id":{"type":"string"},"can_manage_contact":{"type":"boolean"},"can_manage_extra_spend":{"type":"boolean"},"extra_spend_enabled":{"type":"boolean","default":false,"description":"Organization consent to paid overages across all metered usage."},"deployment_usage_visible":{"type":"boolean"},"customer":{"oneOf":[{"$ref":"#/components/schemas/BillingCustomer"},{"type":"null"}]},"subscription":{"oneOf":[{"$ref":"#/components/schemas/BillingSubscription"},{"type":"null"}]},"package":{"oneOf":[{"$ref":"#/components/schemas/BillingPackage"},{"type":"null"}]},"entitlements":{"$ref":"#/components/schemas/BillingEntitlements"},"addons":{"type":"array","items":{"$ref":"#/components/schemas/BillingSubscriptionAddon"}},"budget":{"oneOf":[{"$ref":"#/components/schemas/BillingBudget"},{"type":"null"}]},"preview":{"description":"Metronome draft invoice and credits, or null.","oneOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"breakdown":{"description":"The 24-hour live series with its provenance; null only when the rollup fallback itself failed.","oneOf":[{"$ref":"#/components/schemas/BillingUsageBreakdownSummary"},{"type":"null"}]},"stripe":{"type":"object","required":["configured"],"properties":{"configured":{"type":"boolean"}}},"feature_enabled":{"description":"Whether the `billing` feature is on for this organization. False renders the page as not enabled, with no Subscribe action.","type":"boolean"}}},"BillingInvoicesPage":{"type":"object","required":["organization_id","upcoming","invoices"],"properties":{"organization_id":{"type":"string"},"upcoming":{"oneOf":[{"$ref":"#/components/schemas/BillingUpcomingInvoice"},{"type":"null"}]},"invoices":{"type":"array","items":{"$ref":"#/components/schemas/BillingInvoice"}}}},"BillingUpcomingInvoice":{"type":"object","required":["total_cents","currency","credit_balance_cents","metronome_invoice_ids"],"properties":{"total_cents":{"type":"integer","description":"The Metronome draft total","USD cents.":null},"currency":{"type":"string"},"period_started_at":{"type":["string","null"]},"period_ended_at":{"type":["string","null"]},"credit_balance_cents":{"type":"integer","description":"Remaining credit that offsets the draft."},"metronome_invoice_ids":{"type":"array","items":{"type":"string"}}}},"BillingInvoice":{"type":"object","required":["id","status","currency","total_cents","amount_due_cents","created_at"],"properties":{"id":{"type":"string"},"number":{"type":["string","null"]},"status":{"type":"string","enum":["draft","open","paid","uncollectible","void"]},"currency":{"type":"string"},"total_cents":{"type":"integer"},"amount_due_cents":{"type":"integer"},"period_started_at":{"type":["string","null"]},"period_ended_at":{"type":["string","null"]},"created_at":{"type":"string"},"hosted_invoice_url":{"type":["string","null"]},"invoice_pdf":{"type":["string","null"]},"metronome_invoice_id":{"type":["string","null"],"description":"Metronome's id for the invoice it pushed","from the invoice metadata.":null}}},"BillingCustomer":{"type":"object","required":["billing_email","tax_status","has_stripe_customer","has_metronome_customer","delinquent"],"properties":{"billing_email":{"type":["string","null"]},"tax_status":{"type":"string","enum":["manual","automatic"]},"has_stripe_customer":{"type":"boolean"},"has_metronome_customer":{"type":"boolean"},"delinquent":{"type":"boolean"},"delinquent_since":{"type":["string","null"]}}},"BillingSubscription":{"type":"object","required":["id","status","seat_quantity","package_key","cancel_at_period_end","has_metronome_contract"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["trialing","active","past_due","unpaid","canceled","incomplete"]},"seat_quantity":{"type":"integer"},"package_key":{"type":"string"},"cancel_at_period_end":{"type":"boolean"},"has_metronome_contract":{"type":"boolean"},"current_period_started_at":{"type":["string","null"]},"current_period_ended_at":{"type":["string","null"]},"trial_ends_at":{"type":["string","null"]},"free_coupon_ends_at":{"type":["string","null"]},"cancel_at":{"type":["string","null"]},"canceled_at":{"type":["string","null"]}}},"BillingPackage":{"type":"object","required":["key","name","visibility","revision","base_price_cents","seat_price_cents","currency","billing_interval","trial_days","pay_as_you_go_enabled","rates","addons"],"properties":{"key":{"type":"string"},"name":{"type":"string"},"visibility":{"type":"string","enum":["public","custom"]},"revision":{"type":"integer"},"base_price_cents":{"type":"integer"},"seat_price_cents":{"type":"integer"},"currency":{"type":"string"},"billing_interval":{"type":"string","enum":["month","year"]},"trial_days":{"type":"integer"},"max_seats":{"type":["integer","null"]},"pay_as_you_go_enabled":{"type":"boolean"},"roder_daily_run_limit":{"type":"integer"},"roder_run_concurrency_limit":{"type":"integer"},"rates":{"type":"array","items":{"$ref":"#/components/schemas/BillingPackageRate"}},"addons":{"type":"array","items":{"$ref":"#/components/schemas/BillingAddon"}}}},"BillingPackageRate":{"type":"object","required":["meter_key","unit","unit_price_nanodollars","unit_price_dollars","included_per_organization","included_per_seat"],"properties":{"meter_key":{"type":"string"},"dimension_value":{"type":["string","null"]},"unit":{"type":"string"},"unit_price_nanodollars":{"type":"integer"},"unit_price_dollars":{"type":"string","description":"Decimal string","lossless.":null},"included_per_organization":{"type":"number"},"included_per_seat":{"type":"number"},"hard_cap":{"type":["number","null"]}}},"BillingAddon":{"type":"object","required":["addon_key","name","monthly_price_cents","raises_meter_key","raises_quantity","raises_roder_concurrency"],"properties":{"addon_key":{"type":"string"},"name":{"type":"string"},"monthly_price_cents":{"type":"integer"},"raises_meter_key":{"type":["string","null"]},"raises_quantity":{"type":"number"},"raises_roder_concurrency":{"type":"integer"},"max_quantity":{"type":["integer","null"]}}},"BillingSubscriptionAddon":{"type":"object","required":["addon_key","quantity"],"properties":{"addon_key":{"type":"string"},"quantity":{"type":"integer"},"name":{"type":["string","null"]},"monthly_price_cents":{"type":["integer","null"]}}},"BillingBudget":{"type":"object","required":["monthly_cap_cents","notified_thresholds"],"properties":{"monthly_cap_cents":{"type":"integer"},"notified_thresholds":{"type":"array","items":{"type":"integer"}}}},"BillingEntitlementMeter":{"type":"object","required":["meter_key","unit","included","used","raw_used","remaining","pay_as_you_go","unit_price_nanodollars","spend_cents","projected_overage_cents"],"properties":{"meter_key":{"type":"string"},"dimension_value":{"type":["string","null"]},"unit":{"type":"string"},"included":{"type":"number"},"used":{"type":"number"},"projected_overage_cents":{"type":"integer","description":"Forecast overage for the current allowance window."},"raw_used":{"type":"number","description":"Full billing-period usage before allowance resets."},"remaining":{"type":"number"},"spend_cents":{"type":"integer","description":"What this period's overage costs so far at the unit price. The standard CI runner classes split their shared pool's overage by each class's own minutes."},"hard_cap":{"type":["number","null"]},"cap":{"type":["number","null"],"description":"The quantity past which new usage is refused; null means unlimited."},"pay_as_you_go":{"type":"boolean"},"unit_price_nanodollars":{"type":"integer"}}},"BillingEntitlements":{"type":"object","required":["state","seats","recurring_price_cents","enforcing","period_started_at","usage_reset_at","period_spend_cents","ci_raw_used","meters","roder_run_concurrency_limit","roder_daily_run_limit"],"properties":{"state":{"type":"string","enum":["none","trialing","active","past_due","suspended","exempt"]},"seats":{"type":"integer"},"recurring_price_cents":{"type":"integer"},"roder_run_concurrency_limit":{"type":"integer"},"roder_daily_run_limit":{"type":"integer"},"seat_limit":{"type":["integer","null"]},"seats_remaining":{"type":["integer","null"]},"period_spend_cents":{"type":"integer","description":"Overage spend so far this period across every meter","in cents; the seat charge is not included.":null},"enforcing":{"type":"boolean"},"period_started_at":{"type":"string"},"usage_reset_at":{"type":["string","null"],"format":"date-time"},"ci_raw_used":{"type":"number","description":"Full-period CI usage with the shared standard pool counted once."},"meters":{"type":"array","items":{"$ref":"#/components/schemas/BillingEntitlementMeter"}}}},"BillingUsage":{"type":"object","required":["period_started_at","state","seats","meters"],"properties":{"period_started_at":{"type":"string"},"state":{"type":"string"},"seats":{"type":"integer"},"meters":{"type":"array","items":{"$ref":"#/components/schemas/BillingEntitlementMeter"}}}},"BillingUsageSeriesPoint":{"type":"object","required":["meter_key","dimension_value","unit","quantity"],"properties":{"meter_key":{"type":"string"},"dimension_value":{"type":"string","description":"Empty for meters without a dimension."},"unit":{"type":"string"},"quantity":{"type":"number"}}},"BillingUsageLiveBucket":{"allOf":[{"$ref":"#/components/schemas/BillingUsageSeriesPoint"},{"type":"object","required":["bucket_started_at"],"properties":{"bucket_started_at":{"type":"string","description":"Start of the 5-minute bucket","UTC.":null}}}]},"BillingUsageHourBucket":{"allOf":[{"$ref":"#/components/schemas/BillingUsageSeriesPoint"},{"type":"object","required":["hour_started_at"],"properties":{"hour_started_at":{"type":"string"}}}]},"BillingUsageSubject":{"type":"object","required":["subject_type","subject_id","dimension_value","unit","quantity","reading_count"],"properties":{"subject_type":{"type":"string"},"subject_id":{"type":["integer","null"]},"dimension_value":{"type":"string"},"unit":{"type":"string"},"quantity":{"type":"number"},"reading_count":{"type":"integer"}}},"BillingUsageBreakdownSummary":{"type":"object","required":["source","as_of","live"],"properties":{"source":{"type":"string","enum":["tinybird","rollup"]},"as_of":{"type":"string"},"live":{"type":"array","items":{"$ref":"#/components/schemas/BillingUsageLiveBucket"}}}},"BillingUsageBreakdown":{"type":"object","required":["source","as_of","window","meter_key","window_started_at","window_ended_at","live","by_meter","totals","subjects"],"properties":{"source":{"type":"string","enum":["tinybird","rollup"]},"as_of":{"type":"string"},"window":{"type":"string","enum":["24h","7d","period"]},"meter_key":{"type":["string","null"]},"window_started_at":{"type":"string"},"window_ended_at":{"type":"string"},"live":{"type":"array","items":{"$ref":"#/components/schemas/BillingUsageLiveBucket"}},"by_meter":{"type":"array","items":{"$ref":"#/components/schemas/BillingUsageHourBucket"}},"totals":{"type":"array","items":{"$ref":"#/components/schemas/BillingUsageSeriesPoint"}},"subjects":{"type":"array","description":"Empty when no meter was given or the source is `rollup`.","items":{"$ref":"#/components/schemas/BillingUsageSubject"}}}},"BookmarkProtectionEvent":{"type":"object","required":["id","bookmark_protection_rule_id","organization_id","repository_id","actor_user_id","bookmark_name","action","old_target","new_target","actor_kind","actor_label","intent","decision","source_request_id","created_at","updated_at","created_at_label","updated_at_label","reason_codes","metadata"],"properties":{"id":{"type":"string"},"bookmark_protection_rule_id":{"type":"string","nullable":true},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"actor_user_id":{"type":"string","nullable":true},"bookmark_name":{"type":"string"},"action":{"type":"string"},"old_target":{"type":"string","nullable":true},"new_target":{"type":"string","nullable":true},"actor_kind":{"type":"string","enum":["user","vex_automation","system","github_app","service"]},"actor_label":{"type":"string","nullable":true},"intent":{"type":"string","nullable":true},"decision":{"type":"string","enum":["allowed","denied","bypassed","simulated"]},"source_request_id":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true},"reason_codes":{"type":"array","items":{"type":"string"}},"metadata":{"type":"object","additionalProperties":true}}},"BookmarkProtectionRule":{"type":"object","required":["id","organization_id","repository_id","created_by_user_id","updated_by_user_id","name","enabled","priority","target_kind","target_pattern","bypass_mode","created_at","updated_at","requirements","actor_policy"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"created_by_user_id":{"type":"string","nullable":true},"updated_by_user_id":{"type":"string","nullable":true},"name":{"type":"string"},"enabled":{"type":"boolean"},"priority":{"type":"integer"},"target_kind":{"type":"string","enum":["exact","pattern","default_branch"]},"target_pattern":{"type":"string","nullable":true},"bypass_mode":{"type":"string","enum":["admins","none"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"requirements":{"type":"object","additionalProperties":true,"properties":{"ci":{"$ref":"#/components/schemas/BookmarkProtectionCiRequirements"}}},"actor_policy":{"type":"object","additionalProperties":true}}},"BookmarkProtectionRequiredCheck":{"type":"object","required":["name","source"],"properties":{"name":{"type":"string"},"source":{"type":"string","enum":["vex","github","any"]},"app_id":{"type":"integer","nullable":true}}},"BookmarkProtectionCiRequirements":{"type":"object","required":["mode","require_all","required_checks"],"properties":{"mode":{"type":"string","enum":["none","explicit","follow_github"]},"require_all":{"type":"boolean"},"required_checks":{"type":"array","items":{"oneOf":[{"type":"string"},{"$ref":"#/components/schemas/BookmarkProtectionRequiredCheck"}]}}}},"RequiredCheckCandidate":{"type":"object","required":["name","source"],"properties":{"name":{"type":"string"},"source":{"type":"string","enum":["vex","github","any"]},"app_id":{"type":"integer","nullable":true},"last_observed_at":{"type":"string","format":"date-time","nullable":true}}},"GithubRequiredCheckSnapshot":{"type":"object","required":["github_branch","requirements","exclusions","proven","stale"],"properties":{"github_owner":{"type":"string","nullable":true},"github_repository_name":{"type":"string","nullable":true},"github_branch":{"type":"string"},"requirements":{"type":"array","items":{"$ref":"#/components/schemas/BookmarkProtectionRequiredCheck"}},"exclusions":{"type":"array","items":{"type":"object","additionalProperties":true}},"fetched_at":{"type":"string","format":"date-time","nullable":true},"fetched_at_label":{"type":"string","nullable":true},"proven":{"type":"boolean"},"stale":{"type":"boolean"},"last_error":{"type":"string","nullable":true}}},"CiPipeline":{"type":"object","required":["id","organization_id","repository_id","hosted_app_id","ci_runner_pool_id","required_capabilities_csv","slug","name","description","source_kind","status","default_branch","workflow_path","trigger_on_push","trigger_on_pull_request","trigger_on_schedule","concurrency_key","created_at","updated_at","status_label","status_state","status_tone"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string","nullable":true},"hosted_app_id":{"type":"string","nullable":true},"ci_runner_pool_id":{"type":"string","nullable":true},"required_capabilities_csv":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"source_kind":{"type":"string"},"status":{"type":"string"},"default_branch":{"type":"string","nullable":true},"workflow_path":{"type":"string","nullable":true},"trigger_on_push":{"type":"boolean"},"trigger_on_pull_request":{"type":"boolean"},"trigger_on_schedule":{"type":"boolean"},"concurrency_key":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]}}},"CiPipelineRun":{"type":"object","required":["id","organization_id","repository_id","hosted_app_id","ci_pipeline_id","ci_runner_pool_id","creator_user_id","required_capabilities_csv","number","display_id","slug","status","trigger_kind","ref_name","commit_sha","source_url","message","concurrency_key","retry_number","queued_at","started_at","finished_at","canceled_at","parameters_json","created_at","updated_at","status_label","status_state","status_tone","active","failed","retryable"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string","nullable":true},"hosted_app_id":{"type":"string","nullable":true},"ci_pipeline_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"creator_user_id":{"type":"string","nullable":true},"required_capabilities_csv":{"type":"string","nullable":true},"number":{"type":"integer"},"display_id":{"type":"integer"},"slug":{"type":"string"},"status":{"type":"string"},"trigger_kind":{"type":"string"},"ref_name":{"type":"string","nullable":true},"commit_sha":{"type":"string","nullable":true},"source_url":{"type":"string","nullable":true},"message":{"type":"string","nullable":true},"concurrency_key":{"type":"string","nullable":true},"retry_number":{"type":"integer"},"queued_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"canceled_at":{"type":"string","format":"date-time","nullable":true},"parameters_json":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"},"retryable":{"type":"boolean"}}},"CiJob":{"type":"object","required":["id","organization_id","ci_pipeline_run_id","ci_runner_id","number","display_id","slug","name","kind","status","execution_order","runner_label_selector","timeout_seconds","allow_failure","queued_at","started_at","finished_at","exit_code","retry_number","environment_csv","dependencies_csv","created_at","updated_at","status_label","status_state","status_tone","active","failed"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_pipeline_run_id":{"type":"string"},"ci_runner_id":{"type":"string","nullable":true},"number":{"type":"integer"},"display_id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"execution_order":{"type":"integer"},"runner_label_selector":{"type":"string","nullable":true},"timeout_seconds":{"type":"integer","nullable":true},"allow_failure":{"type":"boolean"},"queued_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"exit_code":{"type":"integer","nullable":true},"retry_number":{"type":"integer"},"environment_csv":{"type":"string","nullable":true},"dependencies_csv":{"type":"string","nullable":true},"cache_archive_observations":{"type":"object","nullable":true,"description":"Bounded server response history; it does not confirm runner extraction or test-result reuse.","required":["events","omitted_count"],"properties":{"omitted_count":{"type":"integer","minimum":0},"events":{"type":"array","maxItems":32,"items":{"type":"object","required":["outcome","label","observed_at","response_bytes","elapsed_ms","attempt"],"properties":{"outcome":{"type":"string","enum":["miss","archive_missing","exact_response","prefix_response","published_exact_response","published_prefix_response","error"]},"label":{"type":"string"},"observed_at":{"type":"string","format":"date-time"},"response_bytes":{"type":"integer","minimum":0},"elapsed_ms":{"type":"number","minimum":0},"attempt":{"type":"integer","minimum":1},"native_publication_id":{"type":"string"},"cache_entry_id":{"type":"string"},"source_run_id":{"type":"string"},"source_commit_id":{"type":"string","nullable":true},"source_url":{"type":"string"}}}}}},"reuse":{"type":"object","nullable":true,"required":["source_job_id","source_run_id","source_url"],"properties":{"source_job_id":{"type":"string"},"source_run_id":{"type":"string"},"source_url":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"}}},"CiJobCatalog":{"allOf":[{"type":"object","required":["id","organization_id","ci_pipeline_run_id","ci_runner_id","number","display_id","slug","name","kind","status","execution_order","runner_label_selector","timeout_seconds","allow_failure","queued_at","started_at","finished_at","exit_code","retry_number","environment_csv","dependencies_csv","created_at","updated_at","status_label","status_state","status_tone","active","failed"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_pipeline_run_id":{"type":"string"},"ci_runner_id":{"type":"string","nullable":true},"number":{"type":"integer"},"display_id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"execution_order":{"type":"integer"},"runner_label_selector":{"type":"string","nullable":true},"timeout_seconds":{"type":"integer","nullable":true},"allow_failure":{"type":"boolean"},"queued_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"exit_code":{"type":"integer","nullable":true},"retry_number":{"type":"integer"},"environment_csv":{"type":"string","nullable":true},"dependencies_csv":{"type":"string","nullable":true},"cache_archive_observations":{"type":"object","nullable":true,"description":"Bounded server response history; it does not confirm runner extraction or test-result reuse.","required":["events","omitted_count"],"properties":{"omitted_count":{"type":"integer","minimum":0},"events":{"type":"array","maxItems":32,"items":{"type":"object","required":["outcome","label","observed_at","response_bytes","elapsed_ms","attempt"],"properties":{"outcome":{"type":"string","enum":["miss","archive_missing","exact_response","prefix_response","published_exact_response","published_prefix_response","error"]},"label":{"type":"string"},"observed_at":{"type":"string","format":"date-time"},"response_bytes":{"type":"integer","minimum":0},"elapsed_ms":{"type":"number","minimum":0},"attempt":{"type":"integer","minimum":1},"native_publication_id":{"type":"string"},"cache_entry_id":{"type":"string"},"source_run_id":{"type":"string"},"source_commit_id":{"type":"string","nullable":true},"source_url":{"type":"string"}}}}}},"reuse":{"type":"object","nullable":true,"required":["source_job_id","source_run_id","source_url"],"properties":{"source_job_id":{"type":"string"},"source_run_id":{"type":"string"},"source_url":{"type":"string"}}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"}}},{"type":"object","required":["steps","log_chunks"],"properties":{"reconciliation_id":{"type":"string","nullable":true},"execution_profile":{"type":"string","enum":["automation-offline-v1","reconciliation-offline-v1"],"nullable":true},"steps":{"type":"array","items":{"type":"object","required":["id","organization_id","ci_job_id","slug","name","command","shell","working_directory","status","execution_order","retry_number","exit_code","started_at","finished_at","created_at","updated_at","status_label","status_state","status_tone","active","failed","secret_refs"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_job_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"command":{"type":"string"},"shell":{"type":"string","nullable":true},"working_directory":{"type":"string","nullable":true},"status":{"type":"string"},"execution_order":{"type":"integer"},"retry_number":{"type":"integer"},"exit_code":{"type":"integer","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"observed_started_at":{"type":"string","format":"date-time","nullable":true,"readOnly":true,"description":"When the API first accepted a running update. Independent of the runner clock; absent or null for older and unobserved steps."},"observed_finished_at":{"type":"string","format":"date-time","nullable":true,"readOnly":true,"description":"When the API first accepted a terminal update. Includes transport effects; not a runner-local command duration."},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status_label":{"type":"string"},"status_state":{"type":"string","enum":["active","successful","failed","canceled","blocked","skipped","enabled","inactive","unknown"]},"status_tone":{"type":"string","enum":["success","danger","warning","default"]},"active":{"type":"boolean"},"failed":{"type":"boolean"},"secret_refs":{"type":"object","additionalProperties":{"type":"string"}},"cache_request":{"type":"object","nullable":true,"required":["key","restore_keys","paths","output_id"],"properties":{"key":{"type":"string"},"restore_keys":{"type":"array","items":{"type":"string"}},"paths":{"type":"array","items":{"type":"string"}},"output_id":{"type":"string"}}}}}},"log_chunks":{"type":"array","maxItems":25,"items":{"type":"object","required":["id","organization_id","ci_pipeline_run_id","ci_job_id","ci_step_id","sequence_number","stream","content_format","content","byte_size","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_pipeline_run_id":{"type":"string","nullable":true},"ci_job_id":{"type":"string","nullable":true},"ci_step_id":{"type":"string","nullable":true},"sequence_number":{"type":"integer"},"stream":{"type":"string"},"content_format":{"type":"string"},"content":{"type":"string"},"byte_size":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}]},"CiRunnerPool":{"type":"object","required":["id","organization_id","network_space_id","slug","name","status","runner_kind","isolation_mode","description","max_concurrency","labels_csv","node_capabilities_csv","elastic_provider_kind","elastic_config_json","bazel_enabled","bazel_properties_json","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"network_space_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"runner_kind":{"type":"string"},"isolation_mode":{"type":"string"},"description":{"type":"string","nullable":true},"max_concurrency":{"type":"integer"},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"elastic_provider_kind":{"type":"string","nullable":true},"elastic_config_json":{"type":"string","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"CiRunnerPoolCatalog":{"allOf":[{"type":"object","required":["id","organization_id","network_space_id","slug","name","status","runner_kind","isolation_mode","description","max_concurrency","labels_csv","node_capabilities_csv","elastic_provider_kind","elastic_config_json","bazel_enabled","bazel_properties_json","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"network_space_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"runner_kind":{"type":"string"},"isolation_mode":{"type":"string"},"description":{"type":"string","nullable":true},"max_concurrency":{"type":"integer"},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"elastic_provider_kind":{"type":"string","nullable":true},"elastic_config_json":{"type":"string","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},{"type":"object","required":["runners","runner_count_label","modal_capacity","modal_runner_invocations"],"properties":{"runners":{"type":"array","items":{"type":"object","required":["id","organization_id","ci_runner_pool_id","network_peer_id","slug","name","status","kind","os","architecture","version","labels_csv","node_capabilities_csv","node_certificate_fingerprint_sha256","node_certificate_serial","node_certificate_expires_at","bazel_enabled","bazel_properties_json","last_seen_at","online_at","offline_at","cordoned_at","revoked_at","health_state","schedulable","heartbeat_age_seconds","created_at","updated_at","node_certificate_expires_at_label","last_seen_at_label","online_at_label","offline_at_label","cordoned_at_label","revoked_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"network_peer_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"kind":{"type":"string"},"os":{"type":"string","nullable":true},"architecture":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"node_certificate_fingerprint_sha256":{"type":"string","nullable":true},"node_certificate_serial":{"type":"string","nullable":true},"node_certificate_expires_at":{"type":"string","format":"date-time","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"last_seen_at":{"type":"string","format":"date-time","nullable":true},"online_at":{"type":"string","format":"date-time","nullable":true},"offline_at":{"type":"string","format":"date-time","nullable":true},"cordoned_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"health_state":{"type":"string"},"schedulable":{"type":"boolean"},"heartbeat_age_seconds":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"node_certificate_expires_at_label":{"type":"string","nullable":true},"last_seen_at_label":{"type":"string","nullable":true},"online_at_label":{"type":"string","nullable":true},"offline_at_label":{"type":"string","nullable":true},"cordoned_at_label":{"type":"string","nullable":true},"revoked_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}},"runner_count_label":{"type":"string"},"modal_capacity":{"type":"object","required":["queued_jobs","active_or_pending_leases","inflight_modal_invocations","failed_modal_invocations","deficit"],"properties":{"queued_jobs":{"type":"integer"},"active_or_pending_leases":{"type":"integer"},"inflight_modal_invocations":{"type":"integer"},"failed_modal_invocations":{"type":"integer"},"deficit":{"type":"integer"}}},"modal_runner_invocations":{"type":"array","maxItems":50,"items":{"type":"object","required":["id","organization_id","ci_runner_pool_id","ci_runner_id","ci_runner_lease_id","ci_pipeline_run_id","ci_job_id","status","modal_app_name","modal_function_name","modal_environment_name","modal_call_id","modal_sandbox_id","runtime_kind","image_version","failure_kind","runner_slug","resource_class","cpu_millicores","memory_mb","ephemeral_disk_mb","retry_count","last_error","spawned_at","claimed_at","finished_at","created_at","updated_at","spawned_at_label","claimed_at_label","finished_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"ci_runner_id":{"type":"string","nullable":true},"ci_runner_lease_id":{"type":"string","nullable":true},"ci_pipeline_run_id":{"type":"string","nullable":true},"ci_job_id":{"type":"string","nullable":true},"status":{"type":"string"},"modal_app_name":{"type":"string"},"modal_function_name":{"type":"string"},"modal_environment_name":{"type":"string","nullable":true},"modal_call_id":{"type":"string","nullable":true},"modal_sandbox_id":{"type":"string","nullable":true},"runtime_kind":{"type":"string","enum":["modal_function","modal_vm_sandbox"]},"image_version":{"type":"string"},"failure_kind":{"type":"string","enum":["provider","bootstrap","job","transport"],"nullable":true},"runner_slug":{"type":"string"},"resource_class":{"type":"string"},"cpu_millicores":{"type":"integer"},"memory_mb":{"type":"integer"},"ephemeral_disk_mb":{"type":"integer"},"retry_count":{"type":"integer"},"last_error":{"type":"string","nullable":true},"spawned_at":{"type":"string","format":"date-time","nullable":true},"claimed_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"spawned_at_label":{"type":"string","nullable":true},"claimed_at_label":{"type":"string","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}}}}}]},"CiRunner":{"type":"object","required":["id","organization_id","ci_runner_pool_id","network_peer_id","slug","name","status","kind","os","architecture","version","labels_csv","node_capabilities_csv","node_certificate_fingerprint_sha256","node_certificate_serial","node_certificate_expires_at","bazel_enabled","bazel_properties_json","last_seen_at","online_at","offline_at","cordoned_at","revoked_at","health_state","schedulable","heartbeat_age_seconds","created_at","updated_at","node_certificate_expires_at_label","last_seen_at_label","online_at_label","offline_at_label","cordoned_at_label","revoked_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"network_peer_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"kind":{"type":"string"},"os":{"type":"string","nullable":true},"architecture":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"labels_csv":{"type":"string","nullable":true},"node_capabilities_csv":{"type":"string","nullable":true},"node_certificate_fingerprint_sha256":{"type":"string","nullable":true},"node_certificate_serial":{"type":"string","nullable":true},"node_certificate_expires_at":{"type":"string","format":"date-time","nullable":true},"bazel_enabled":{"type":"boolean"},"bazel_properties_json":{"type":"string","nullable":true},"last_seen_at":{"type":"string","format":"date-time","nullable":true},"online_at":{"type":"string","format":"date-time","nullable":true},"offline_at":{"type":"string","format":"date-time","nullable":true},"cordoned_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"health_state":{"type":"string"},"schedulable":{"type":"boolean"},"heartbeat_age_seconds":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"node_certificate_expires_at_label":{"type":"string","nullable":true},"last_seen_at_label":{"type":"string","nullable":true},"online_at_label":{"type":"string","nullable":true},"offline_at_label":{"type":"string","nullable":true},"cordoned_at_label":{"type":"string","nullable":true},"revoked_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"CiNodeEnrollmentToken":{"type":"object","required":["id","organization_id","ci_runner_pool_id","creator_user_id","name","description","status","kind","capabilities_csv","token_hint","usage_count","expires_at","last_used_at","revoked_at","raw_token","created_at","updated_at","expires_at_label","last_used_at_label","created_at_label","updated_at_label","usage_count_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"ci_runner_pool_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"name":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string"},"kind":{"type":"string"},"capabilities_csv":{"type":"string","nullable":true},"token_hint":{"type":"string"},"usage_count":{"type":"integer"},"expires_at":{"type":"string","format":"date-time","nullable":true},"last_used_at":{"type":"string","format":"date-time","nullable":true},"revoked_at":{"type":"string","format":"date-time","nullable":true},"raw_token":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"expires_at_label":{"type":"string","nullable":true},"last_used_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true},"usage_count_label":{"type":"string"}}},"CodeRuleEvaluationOwner":{"type":"object","required":["id","type","slug","root_path"],"properties":{"id":{"type":"string"},"type":{"type":"string"},"slug":{"type":"string","description":"Repository slug for owner-targeted code-rules show; virtual owner in Home mode"},"root_path":{"type":"string"}}},"CodeRuleEvaluationInput":{"type":"object","required":["diff"],"additionalProperties":false,"properties":{"diff":{"type":"string","description":"UTF-8 complete unified patch using a/ old and b/ new prefixes; at most 1 MiB"}}},"CodeRuleEvaluationResult":{"type":"object","required":["schema_version","advisory","coverage","verdicts","unchecked","requests","duration_ms"],"properties":{"schema_version":{"type":"integer","enum":[1]},"advisory":{"type":"boolean","enum":[true]},"input_digest":{"type":"string","nullable":true},"snapshot_digest":{"type":"string","nullable":true},"evaluator_version":{"type":"string"},"model":{"type":"string"},"coverage":{"type":"object","required":["complete","evaluated","unchecked"],"properties":{"complete":{"type":"boolean"},"evaluated":{"type":"integer"},"unchecked":{"type":"integer"}}},"verdicts":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"Frozen owner/rule identity and revision, selected files, probabilities and disposition","properties":{"owner":{"$ref":"#/components/schemas/CodeRuleEvaluationOwner"}}}},"unchecked":{"type":"array","items":{"type":"object","additionalProperties":true,"required":["code"],"properties":{"code":{"type":"string"},"owner":{"$ref":"#/components/schemas/CodeRuleEvaluationOwner"}}}},"requests":{"type":"object","required":["attempted","completed","bytes"],"properties":{"attempted":{"type":"integer"},"completed":{"type":"integer"},"bytes":{"type":"integer"}}},"duration_ms":{"type":"integer"},"limits":{"type":"object","additionalProperties":true}}},"CodeRuleTarget":{"type":"object","required":["organization_slug","slug","owner_type","owner_id","backing_repository_id","root_path","web_url"],"properties":{"organization_slug":{"type":"string"},"slug":{"type":"string","description":"Canonical Repo slug"},"owner_type":{"type":"string","enum":["repository"]},"owner_id":{"type":"string"},"backing_repository_id":{"type":"string","nullable":true},"root_path":{"type":"string","description":"Owner root relative to the backing repository; \".\" for a whole repository"},"web_url":{"type":"string"}}},"CodeRuleCapabilities":{"type":"object","required":["can_manage"],"properties":{"can_manage":{"type":"boolean"}}},"CodeRuleLimits":{"type":"object","required":["rules_per_repository","slug_length","name_length","description_bytes","source_bytes","question_bytes","scope_globs","glob_bytes","request_bytes"],"properties":{"rules_per_repository":{"type":"integer"},"slug_length":{"type":"integer"},"name_length":{"type":"integer"},"description_bytes":{"type":"integer"},"source_bytes":{"type":"integer"},"question_bytes":{"type":"integer"},"scope_globs":{"type":"integer"},"glob_bytes":{"type":"integer"},"request_bytes":{"type":"integer"}}},"CodeRuleDefinition":{"type":"object","required":["schema_version","slug","name","description","scope","source","question"],"properties":{"schema_version":{"type":"integer","enum":[1]},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"scope":{"type":"array","items":{"type":"string"}},"source":{"type":"string","description":"Attribution text; never fetched or executed"},"question":{"type":"string"}}},"CodeRuleDefinitionInput":{"type":"object","required":["slug","name","scope","question"],"properties":{"schema_version":{"type":"integer","enum":[1]},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"scope":{"type":"array","items":{"type":"string"}},"source":{"type":"string"},"question":{"type":"string"}}},"CodeRuleAuthor":{"type":"object","nullable":true,"required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true}}},"CodeRuleRevision":{"type":"object","required":["number","definition","created_by","created_at","created_at_label"],"properties":{"number":{"type":"integer"},"definition":{"$ref":"#/components/schemas/CodeRuleDefinition"},"created_by":{"$ref":"#/components/schemas/CodeRuleAuthor"},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true,"description":"Rails-rendered UTC label for display"}}},"CodeRuleRevisionSummary":{"type":"object","required":["number","name","created_by","created_at","created_at_label"],"properties":{"number":{"type":"integer"},"name":{"type":"string"},"created_by":{"$ref":"#/components/schemas/CodeRuleAuthor"},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true}}},"CodeRuleSummary":{"type":"object","required":["id","slug","name","scope","enabled","state_version","latest_revision_number","active_revision_number","draft_pending","web_url","created_at","updated_at"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string","description":"Name of the latest revision"},"scope":{"type":"array","items":{"type":"string"}},"enabled":{"type":"boolean"},"state_version":{"type":"integer","description":"Send back as expected_version on every mutation"},"latest_revision_number":{"type":"integer"},"active_revision_number":{"type":"integer","nullable":true},"draft_pending":{"type":"boolean","description":"The latest revision is not the active one"},"web_url":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"CodeRuleDetail":{"allOf":[{"$ref":"#/components/schemas/CodeRuleSummary"},{"type":"object","required":["latest_revision","active_revision","revisions","history_truncated"],"properties":{"latest_revision":{"$ref":"#/components/schemas/CodeRuleRevision"},"active_revision":{"nullable":true,"description":"Present only when a revision is active and differs from the latest","allOf":[{"$ref":"#/components/schemas/CodeRuleRevision"}]},"revisions":{"type":"array","items":{"$ref":"#/components/schemas/CodeRuleRevisionSummary"}},"history_truncated":{"type":"boolean"}}}]},"CodeRuleCollectionResponse":{"type":"object","required":["repository","capabilities","limits","code_rules","selected_rule_reference","selected_rule"],"properties":{"repository":{"$ref":"#/components/schemas/CodeRuleTarget"},"capabilities":{"$ref":"#/components/schemas/CodeRuleCapabilities"},"limits":{"$ref":"#/components/schemas/CodeRuleLimits"},"code_rules":{"type":"array","items":{"$ref":"#/components/schemas/CodeRuleSummary"}},"selected_rule_reference":{"type":"string","nullable":true,"description":"The rule query parameter as received, when one was given"},"selected_rule":{"nullable":true,"description":"The requested rule expanded inline, or null when it does not exist in this Repo","allOf":[{"$ref":"#/components/schemas/CodeRuleDetail"}]}}},"CodeRuleDetailResponse":{"type":"object","required":["repository","capabilities","code_rule"],"properties":{"repository":{"$ref":"#/components/schemas/CodeRuleTarget"},"capabilities":{"$ref":"#/components/schemas/CodeRuleCapabilities"},"code_rule":{"$ref":"#/components/schemas/CodeRuleDetail"}}},"CodeRuleDeletedResponse":{"type":"object","required":["repository","capabilities","deleted"],"properties":{"repository":{"$ref":"#/components/schemas/CodeRuleTarget"},"capabilities":{"$ref":"#/components/schemas/CodeRuleCapabilities"},"deleted":{"type":"object","required":["id","slug"],"properties":{"id":{"type":"string"},"slug":{"type":"string"}}}}},"CodeRuleError":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string","enum":["forbidden","stale_version","duplicate_slug","limit_exceeded","revision_not_found","invalid_definition","payload_too_large"]},"current_version":{"type":"integer","description":"The rule's current state_version on a stale_version conflict"},"details":{"type":"array","items":{"type":"string"}}}},"ContactSubmissionRequest":{"type":"object","required":["name","email","message"],"additionalProperties":false,"properties":{"name":{"type":"string","maxLength":255},"email":{"type":"string","maxLength":255,"description":"Stored downcased and stripped."},"company":{"type":"string","maxLength":255,"nullable":true},"message":{"type":"string","maxLength":5000},"website":{"type":"string","nullable":true,"description":"Honeypot. Render it hidden and leave it empty; any value discards the submission."}}},"ContactSubmissionCreated":{"type":"object","required":["id","created_at"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Public id (`contact_submission_…`)."},"created_at":{"type":"string","description":"ISO8601 timestamp."}}},"AdminInvitationResult":{"type":"object","required":["invitation","email_delivery_status"],"properties":{"email_delivery_status":{"type":"string"},"invitation":{"type":"object","required":["id","email","role","status","invite_url"],"properties":{"id":{"type":"string"},"email":{"type":"string","format":"email"},"role":{"type":"string"},"status":{"type":"string"},"invite_url":{"type":"string","format":"uri"}}}}},"AdminOrganization":{"type":"object","required":["id","slug","name","monthly_price_override_cents","package_id","billing_email","deployment_usage_visibility","deployment_usage_visible"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"monthly_price_override_cents":{"type":["integer","null"]},"package_id":{"type":["string","null"]},"billing_email":{"type":["string","null"]},"deployment_usage_visibility":{"type":"string","enum":["automatic","hidden","shown"]},"deployment_usage_visible":{"type":"boolean"}}},"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","deployment_channel","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"]},"deployment_channel":{"type":"string","enum":["stable","blue_green"],"nullable":true,"description":"Preview-only override; null inherits the captured source channel."},"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"},"expected_generation":{"type":"integer","description":"Required for preview environments. Stale generations or unfinished cleanup return 409."},"mode":{"type":"string","enum":["single_region","multi_region"]},"rollout_strategy":{"type":"string","enum":["health_gated","burst"]},"deployment_channel":{"type":"string","enum":["stable","blue_green"],"nullable":true,"description":"Preview-only override; null inherits the captured source channel."},"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","rollout_predecessor_id","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","build_source","region_count","live_region_count","is_live","children","created_at","updated_at"],"properties":{"rollout_predecessor_id":{"type":"string","nullable":true},"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},"build_source":{"type":"object","nullable":true,"required":["phase","deployment_id","canonical_deployment_id","number"],"properties":{"phase":{"type":"string","enum":["waiting","reused"]},"deployment_id":{"type":"string"},"canonical_deployment_id":{"type":"string"},"number":{"type":"integer","minimum":1}}},"region_count":{"type":"integer","minimum":1},"live_region_count":{"type":"integer","minimum":0},"is_live":{"type":"boolean"},"children":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentOperationChild"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"DeploymentOperationChild":{"type":"object","required":["deployment_id","target_id","number","environment","location","build_role","build_status","rollout_status","history_kind","history_reason","recorded_status","desired_replicas","live_replicas","is_live","release_id","rollout_id","failure_message","superseded_by_deployment_id","ci_pipeline_id","ci_pipeline_run_id","started_at","finished_at","created_at","updated_at"],"properties":{"deployment_id":{"type":"string"},"target_id":{"type":"string","nullable":true},"number":{"type":"integer","minimum":1},"environment":{"type":"object","required":["id","slug","name","kind"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"}}},"location":{"type":"object","nullable":true,"required":["id","code","name"],"properties":{"id":{"type":"string"},"code":{"type":"string"},"name":{"type":"string"}}},"build_role":{"type":"string","enum":["leader","follower","standalone"]},"build_status":{"type":"string","enum":["queued","building","succeeded","failed","canceled","skipped"]},"rollout_status":{"type":"string","enum":["not_started","queued","running","succeeded","failed","canceled"]},"history_kind":{"type":"string","enum":["current","superseded","stale","historical"]},"history_reason":{"type":"string","nullable":true},"recorded_status":{"type":"string","enum":["queued","building","deploying","active","failed","rolled_back","canceled"]},"desired_replicas":{"type":"integer","minimum":0},"live_replicas":{"type":"integer","minimum":0},"is_live":{"type":"boolean"},"release_id":{"type":"string","nullable":true},"rollout_id":{"type":"string","nullable":true},"failure_message":{"type":"string","nullable":true},"superseded_by_deployment_id":{"type":"string","nullable":true},"ci_pipeline_id":{"type":"string","nullable":true},"ci_pipeline_run_id":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"AppDeploymentCreatePayload":{"type":"object","anyOf":[{"required":["app_service_placement_id"]},{"required":["app_service_id","app_environment_id"]}],"properties":{"app_service_placement_id":{"type":"string"},"app_service_id":{"type":"string"},"app_environment_id":{"type":"string"},"location_id":{"type":"string"},"status":{"type":"string","enum":["queued","building","deploying","active","failed","rolled_back","canceled"]},"source_ref":{"type":"string"},"commit_sha":{"type":"string"},"artifact_locator":{"type":"string"},"deployed_url":{"type":"string"},"trigger_kind":{"type":"string","enum":["manual","push","schedule","api","rollback"]},"failure_message":{"type":"string"},"started_at":{"type":"string","format":"date-time"},"finished_at":{"type":"string","format":"date-time"}}},"AppDesiredState":{"type":"object","required":["id","organization_id","hosted_app_id","app_environment_id","app_service_id","network_segment_id","slug","status","desired_instances","desired_version","image_locator","command","env_fingerprint","config_fingerprint","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"hosted_app_id":{"type":"string"},"app_environment_id":{"type":"string"},"app_service_id":{"type":"string"},"network_segment_id":{"type":"string","nullable":true},"slug":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"desired_instances":{"type":"integer","minimum":0},"desired_version":{"type":"string","nullable":true},"image_locator":{"type":"string","nullable":true},"command":{"type":"string","nullable":true},"env_fingerprint":{"type":"string","nullable":true},"config_fingerprint":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"AppRollout":{"type":"object","required":["id","organization_id","app_release_id","strategy","status","deployment_phase","auto_safe_rollout","nomad_deployment_id","nomad_eval_id","target_percentage","summary","started_at","finished_at","created_at","updated_at","started_at_label","finished_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"app_release_id":{"type":"string"},"strategy":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","canceled"]},"deployment_phase":{"type":"string","enum":["queued","deploying","active","failed","unknown"]},"auto_safe_rollout":{"type":"boolean"},"nomad_deployment_id":{"type":"string","nullable":true},"nomad_eval_id":{"type":"string","nullable":true},"target_percentage":{"type":"integer","minimum":0,"maximum":100},"summary":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"started_at_label":{"type":"string","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"DeploymentRollbackRelease":{"type":"object","required":["id","slug","version","release_kind","status","source_ref","commit_sha","app_deployment_id","rollback_target_release_id","created_at"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"version":{"type":"string"},"release_kind":{"type":"string","enum":["deployment","rollback","hotfix"]},"status":{"type":"string","enum":["draft","ready","deploying","active","failed","rolled_back"]},"source_ref":{"type":"string","nullable":true},"commit_sha":{"type":"string","nullable":true},"app_deployment_id":{"type":"string","nullable":true},"rollback_target_release_id":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"}}},"DeploymentRollbackPlan":{"type":"object","required":["app_id","service","environment","location","current_release","current_deployment","target_release","target_artifact_locator","candidate_releases","reason","force","blockers","warnings","execution_allowed","confirmation_text"],"properties":{"app_id":{"type":"string"},"service":{"oneOf":[{"$ref":"#/components/schemas/AppService"},{"type":"null"}]},"environment":{"oneOf":[{"$ref":"#/components/schemas/AppEnvironment"},{"type":"null"}]},"location":{"oneOf":[{"$ref":"#/components/schemas/HostingLocation"},{"type":"null"}]},"current_release":{"oneOf":[{"$ref":"#/components/schemas/DeploymentRollbackRelease"},{"type":"null"}]},"current_deployment":{"oneOf":[{"$ref":"#/components/schemas/AppDeployment"},{"type":"null"}]},"target_release":{"oneOf":[{"$ref":"#/components/schemas/DeploymentRollbackRelease"},{"type":"null"}]},"target_artifact_locator":{"type":"string","nullable":true},"candidate_releases":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentRollbackRelease"}},"reason":{"type":"string","nullable":true},"force":{"type":"boolean"},"blockers":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"}},"execution_allowed":{"type":"boolean"},"confirmation_text":{"type":"string"}}},"DeploymentRollbackResult":{"allOf":[{"$ref":"#/components/schemas/DeploymentRollbackPlan"},{"type":"object","required":["idempotent_reuse","operation","deployment","rollback_release","desired_state","rollout"],"properties":{"idempotent_reuse":{"type":"boolean"},"operation":{"oneOf":[{"$ref":"#/components/schemas/DeploymentOperation"},{"type":"null"}]},"deployment":{"oneOf":[{"$ref":"#/components/schemas/AppDeployment"},{"type":"null"}]},"rollback_release":{"oneOf":[{"$ref":"#/components/schemas/DeploymentRollbackRelease"},{"type":"null"}]},"desired_state":{"oneOf":[{"$ref":"#/components/schemas/AppDesiredState"},{"type":"null"}]},"rollout":{"oneOf":[{"$ref":"#/components/schemas/AppRollout"},{"type":"null"}]}}}]},"DeploymentRollbackPayload":{"type":"object","properties":{"app_service_id":{"type":"string"},"service":{"type":"string"},"app_environment_id":{"type":"string"},"environment":{"type":"string"},"to":{"type":"string"},"deployment":{"type":"string"},"reason":{"type":"string"},"force":{"type":"boolean"},"idempotency_key":{"type":"string"}}},"AppCdnHostname":{"type":"object","required":["id","app_cdn_distribution_id","hostname","tls_status","dns_status","provider_hostname_id","force_ssl","created_at","updated_at"],"properties":{"id":{"type":"string"},"app_cdn_distribution_id":{"type":"string"},"hostname":{"type":"string"},"tls_status":{"type":"string","enum":["pending","active","failed"]},"dns_status":{"type":"string","enum":["pending","configured","failed"]},"provider_hostname_id":{"type":"string","nullable":true},"force_ssl":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"AppCdnDistribution":{"type":"object","required":["id","hosted_app_id","app_environment_id","app_service_id","slug","name","distribution_kind","status","origin_url","edge_hostname","provisioned","cache_settings_json","security_settings_json","routing_settings_json","failure_message","last_synced_at","last_deployed_at","last_purged_at","hostnames","created_at","updated_at","last_synced_at_label","last_deployed_at_label","last_purged_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"app_environment_id":{"type":"string","nullable":true},"app_service_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"distribution_kind":{"type":"string","enum":["pull_zone"]},"status":{"type":"string","enum":["draft","provisioning","active","degraded","paused","archived","failed"]},"origin_url":{"type":"string","format":"uri"},"cache_path_prefix":{"type":"string","nullable":true},"edge_hostname":{"type":"string","nullable":true},"provisioned":{"type":"boolean"},"cache_settings_json":{"type":"string","nullable":true},"security_settings_json":{"type":"string","nullable":true},"routing_settings_json":{"type":"string","nullable":true},"failure_message":{"type":"string","nullable":true},"last_synced_at":{"type":"string","format":"date-time","nullable":true},"last_deployed_at":{"type":"string","format":"date-time","nullable":true},"last_purged_at":{"type":"string","format":"date-time","nullable":true},"hostnames":{"type":"array","items":{"$ref":"#/components/schemas/AppCdnHostname"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"last_synced_at_label":{"type":"string","nullable":true},"last_deployed_at_label":{"type":"string","nullable":true},"last_purged_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"AppCdnDeployment":{"type":"object","required":["id","app_cdn_distribution_id","creator_user_id","status","action_kind","trigger_kind","source_ref","commit_sha","purge_urls","failure_message","started_at","finished_at","created_at","updated_at","started_at_label","finished_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"app_cdn_distribution_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"status":{"type":"string","enum":["queued","deploying","active","failed","canceled"]},"action_kind":{"type":"string","enum":["provision","reconfigure","hostname_sync","purge_all","purge_urls"]},"trigger_kind":{"type":"string","enum":["manual","push","schedule","api","rollback"]},"source_ref":{"type":"string","nullable":true},"commit_sha":{"type":"string","nullable":true},"purge_urls":{"type":"array","items":{"type":"string"}},"failure_message":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"started_at_label":{"type":"string","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"AppCdnDistributionCreatePayload":{"type":"object","required":["slug","name","origin_url"],"properties":{"app_environment_id":{"type":"string"},"app_service_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"distribution_kind":{"type":"string","enum":["pull_zone"]},"status":{"type":"string","enum":["draft","provisioning","active","degraded","paused","archived","failed"]},"origin_url":{"type":"string","format":"uri"},"cache_path_prefix":{"type":"string","nullable":true},"cache_settings_json":{"type":"string"},"security_settings_json":{"type":"string"},"routing_settings_json":{"type":"string"}}},"AppCdnDistributionUpdatePayload":{"type":"object","properties":{"app_environment_id":{"type":"string"},"app_service_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"distribution_kind":{"type":"string","enum":["pull_zone"]},"status":{"type":"string","enum":["draft","provisioning","active","degraded","paused","archived","failed"]},"origin_url":{"type":"string","format":"uri"},"cache_path_prefix":{"type":"string","nullable":true},"cache_settings_json":{"type":"string"},"security_settings_json":{"type":"string"},"routing_settings_json":{"type":"string"}}},"AppCdnHostnameCreatePayload":{"type":"object","required":["hostname"],"properties":{"hostname":{"type":"string"},"force_ssl":{"type":"boolean"},"tls_status":{"type":"string","enum":["pending","active","failed"]},"dns_status":{"type":"string","enum":["pending","configured","failed"]}}},"AppCdnDeploymentPayload":{"type":"object","properties":{"source_ref":{"type":"string"},"commit_sha":{"type":"string"}}},"AppCdnPurgePayload":{"allOf":[{"$ref":"#/components/schemas/AppCdnDeploymentPayload"},{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string"}},"purge_urls":{"type":"array","items":{"type":"string"}}}}]},"HostedApp":{"type":"object","required":["id","organization_id","repository_id","repository_kind","slug","name","description","root_path","root_path_display","framework","status","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string"},"repository_kind":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"root_path":{"type":"string"},"root_path_display":{"type":"string"},"framework":{"type":"string","nullable":true},"status":{"type":"string","enum":["draft","active","archived"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"HostedAppCreatePayload":{"type":"object","required":["organization_id","repository_id","slug","name","root_path"],"properties":{"organization_id":{"type":"string"},"repository_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"root_path":{"type":"string"},"framework":{"type":"string"},"status":{"type":"string","enum":["draft","active","archived"]}}},"HostedAppUpdatePayload":{"type":"object","properties":{"organization_id":{"type":"string"},"repository_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"root_path":{"type":"string"},"framework":{"type":"string"},"status":{"type":"string","enum":["draft","active","archived"]}}},"ManagedDatabaseRegion":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"},"display_name":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"vex_location_code":{"type":"string","nullable":true},"provider":{"type":"string","nullable":true},"enabled":{"type":"boolean","nullable":true},"postgresql_supported":{"type":"boolean","nullable":true},"mysql_supported":{"type":"boolean","nullable":true},"current_default":{"type":"boolean","nullable":true},"source":{"type":"string","nullable":true}}},"ManagedDatabaseClusterSize":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"display_name":{"type":"string","nullable":true},"enabled":{"type":"boolean","nullable":true},"production":{"type":"boolean","nullable":true},"development":{"type":"boolean","nullable":true},"cpu":{"nullable":true,"oneOf":[{"type":"string"},{"type":"number"}]},"ram":{"nullable":true,"oneOf":[{"type":"string"},{"type":"number"}]},"storage":{"nullable":true,"oneOf":[{"type":"string"},{"type":"number"}]},"metal":{"nullable":true,"oneOf":[{"type":"string"},{"type":"boolean"}]},"architecture":{"type":"string","nullable":true}}},"ManagedDatabaseEngine":{"type":"object","required":["engine","kind","label","provider_kind"],"properties":{"engine":{"type":"string","enum":["postgres","mysql","valkey"]},"kind":{"type":"string","enum":["database","cache"]},"label":{"type":"string"},"provider_kind":{"type":"string"},"provider_database_kind":{"type":"string","nullable":true},"default_version":{"type":"string","nullable":true},"default_plan":{"type":"string","nullable":true},"default_cluster_size":{"type":"string","nullable":true},"default_connection_mode":{"type":"string","nullable":true},"sslmode":{"type":"string","nullable":true},"ssl_mode":{"type":"string","nullable":true},"supported_versions":{"type":"array","items":{"type":"string"}},"regions":{"type":"array","items":{"$ref":"#/components/schemas/ManagedDatabaseRegion"}},"cluster_sizes":{"type":"array","items":{"$ref":"#/components/schemas/ManagedDatabaseClusterSize"}}}},"ManagedDatabaseCatalog":{"type":"object","required":["default_provider_kind","fallback_provider_kind","provider_configured","live_catalog","engines"],"properties":{"default_provider_kind":{"type":"string"},"fallback_provider_kind":{"type":"string"},"provider_configured":{"type":"boolean"},"live_catalog":{"type":"boolean"},"engines":{"type":"array","items":{"$ref":"#/components/schemas/ManagedDatabaseEngine"}}}},"AppDomain":{"type":"object","required":["id","hosted_app_id","app_service_id","app_environment_id","static_site_id","hostname","kind","target_kind","dns_mode","record_type","record_name","record_value","tls_status","dns_status","verification_status","last_checked_at","failure_message","redirect_to","verification_record","certificate","path_rules","created_at","updated_at"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"app_service_id":{"type":"string","nullable":true},"app_environment_id":{"type":"string","nullable":true},"static_site_id":{"type":"string","nullable":true},"hostname":{"type":"string"},"kind":{"type":"string","enum":["primary","redirect","preview","internal"]},"target_kind":{"type":"string","enum":["app_service","static_site"]},"dns_mode":{"type":"string","enum":["manual_cname","cloudflare"]},"record_type":{"type":"string","nullable":true},"record_name":{"type":"string","nullable":true},"record_value":{"type":"string","nullable":true},"tls_status":{"type":"string","enum":["pending","active","failed"]},"dns_status":{"type":"string","enum":["pending","configured","failed"]},"verification_status":{"type":"string"},"last_checked_at":{"type":"string","format":"date-time","nullable":true},"failure_message":{"type":"string","nullable":true},"redirect_to":{"type":"string","nullable":true},"certificate":{"type":"object","nullable":true,"required":["status","last_error","expires_at"],"properties":{"status":{"type":"string"},"last_error":{"type":"string","nullable":true},"expires_at":{"type":"string","format":"date-time","nullable":true}}},"verification_record":{"type":"object","nullable":true,"required":["type","name","value"],"properties":{"type":{"type":"string","enum":["TXT"]},"name":{"type":"string"},"value":{"type":"string"}}},"path_rules":{"type":"array","items":{"$ref":"#/components/schemas/AppDomainPathRule"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"AppConfigVariable":{"type":"object","required":["id","hosted_app_id","app_environment_id","app_service_id","scope_kind","key","value","has_value","value_kind","description","exposed_to_build","created_at","updated_at"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"app_environment_id":{"type":"string","nullable":true},"app_service_id":{"type":"string","nullable":true},"scope_kind":{"type":"string","enum":["app","environment","service"]},"key":{"type":"string"},"value":{"type":"string","nullable":true},"has_value":{"type":"boolean"},"value_kind":{"type":"string","enum":["plain","secret","reference"]},"description":{"type":"string","nullable":true},"exposed_to_build":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"HostedAppCatalog":{"allOf":[{"$ref":"#/components/schemas/HostedApp"},{"type":"object","required":["locations","environments","services","deployments","cdns","cdn_deployments","data_resources","managed_database_catalog","storage_resources","domains","config_variables","service_bindings"],"properties":{"locations":{"type":"array","items":{"$ref":"#/components/schemas/HostingLocation"}},"environments":{"type":"array","items":{"$ref":"#/components/schemas/AppEnvironment"}},"services":{"type":"array","items":{"$ref":"#/components/schemas/AppService"}},"deployments":{"type":"array","items":{"$ref":"#/components/schemas/AppDeployment"}},"cdns":{"type":"array","items":{"$ref":"#/components/schemas/AppCdnDistribution"}},"cdn_deployments":{"type":"array","items":{"$ref":"#/components/schemas/AppCdnDeployment"}},"data_resources":{"type":"array","items":{"$ref":"#/components/schemas/AppDataResource"}},"managed_database_catalog":{"$ref":"#/components/schemas/ManagedDatabaseCatalog"},"storage_resources":{"type":"array","items":{"$ref":"#/components/schemas/AppStorageResource"}},"domains":{"type":"array","items":{"$ref":"#/components/schemas/AppDomain"}},"config_variables":{"type":"array","items":{"$ref":"#/components/schemas/AppConfigVariable"}},"service_bindings":{"type":"array","items":{"$ref":"#/components/schemas/AppServiceBinding"}}}}]},"AppRelease":{"type":"object","required":["id","organization_id","hosted_app_id","app_environment_id","app_service_id","location_id","created_by_user_id","app_deployment_id","ci_pipeline_run_id","slug","version","location","release_command_execution","nomad_job_id","nomad_namespace","nomad_job_version","nomad_deployment_id","nomad_eval_id","rendered_job_spec_digest","source_ref","commit_sha","release_kind","release_command","prestart_command","image_digest","image_reference","image_repository","source_commit","builder_image","builder_version","target_platform","ci_run_identity","is_rollback","rollback_target_release_id","status","deployment_phase","rollout_status","rollback_reason","self_hosted_managed","self_hosted_reconcile_enabled","self_hosted_apply_enabled","notes","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"hosted_app_id":{"type":"string"},"app_environment_id":{"type":"string"},"app_service_id":{"type":"string"},"location_id":{"type":"string"},"created_by_user_id":{"type":"string","nullable":true},"app_deployment_id":{"type":"string","nullable":true},"ci_pipeline_run_id":{"type":"string","nullable":true},"slug":{"type":"string"},"version":{"type":"string"},"location":{"oneOf":[{"$ref":"#/components/schemas/HostingLocation"},{"type":"null"}]},"release_command_execution":{"oneOf":[{"$ref":"#/components/schemas/AppReleaseCommandExecution"},{"type":"null"}]},"nomad_job_id":{"type":"string","nullable":true},"nomad_namespace":{"type":"string","nullable":true},"nomad_job_version":{"type":"integer","nullable":true},"nomad_deployment_id":{"type":"string","nullable":true},"nomad_eval_id":{"type":"string","nullable":true},"rendered_job_spec_digest":{"type":"string","nullable":true},"source_ref":{"type":"string","nullable":true},"commit_sha":{"type":"string","nullable":true},"release_kind":{"type":"string","enum":["deployment","rollback","hotfix"]},"release_command":{"type":"string","nullable":true},"prestart_command":{"type":"string","nullable":true},"image_digest":{"type":"string","nullable":true},"image_reference":{"type":"string","nullable":true},"image_repository":{"type":"string","nullable":true},"source_commit":{"type":"string","nullable":true},"builder_image":{"type":"string","nullable":true},"builder_version":{"type":"string","nullable":true},"target_platform":{"type":"string","nullable":true},"ci_run_identity":{"type":"string","nullable":true},"is_rollback":{"type":"boolean"},"rollback_target_release_id":{"type":"string","nullable":true},"status":{"type":"string","enum":["draft","ready","deploying","active","failed","rolled_back"]},"deployment_phase":{"type":"string","enum":["failed","active","deploying","ready","rolled_back","unknown"]},"rollout_status":{"type":"string","enum":["queued","running","succeeded","failed","canceled"],"nullable":true},"rollback_reason":{"type":"string","nullable":true},"self_hosted_managed":{"type":"boolean"},"self_hosted_reconcile_enabled":{"type":"boolean"},"self_hosted_apply_enabled":{"type":"boolean"},"notes":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"AppReleaseCommandExecution":{"type":"object","required":["id","app_release_id","app_deployment_id","ci_pipeline_run_id","status","provider_kind","attempt_count","max_attempts","timeout_seconds","logs","exit_code","failure_message","started_at","finished_at","created_at","updated_at","started_at_label","finished_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"app_release_id":{"type":"string"},"app_deployment_id":{"type":"string"},"ci_pipeline_run_id":{"type":"string","nullable":true},"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","nullable":true},"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"}}}},"DeploymentDetailsPage":{"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"}}}},"AppServiceBinding":{"type":"object","required":["id","hosted_app_id","app_service_id","bindable_type","bindable_id","binding_type","name","mount_path","read_only","required","created_at","updated_at"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"app_service_id":{"type":"string"},"bindable_type":{"type":"string"},"bindable_id":{"type":"string"},"binding_type":{"type":"string"},"name":{"type":"string"},"mount_path":{"type":"string","nullable":true},"read_only":{"type":"boolean"},"required":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"AppService":{"type":"object","required":["id","hosted_app_id","slug","name","kind","runtime","runtime_adapter_kind","runtime_adapter_settings_json","nomad_namespace","nomad_region","cpu_mhz","memory_mb","memory_max_mb","disk_mb","nomad_constraints_json","nomad_update_strategy_json","nomad_ulimits_json","nomad_kill_timeout_seconds","nomad_shutdown_delay_seconds","source_path","repo_source_path","build_command","release_command","prestart_command","start_command","healthcheck_path","schedule","internal_port","desired_instances","publicly_accessible","auto_deploy","deploy_paths","effective_deploy_paths","bindings","created_at","updated_at","created_at_label","updated_at_label","cpu_label","memory_label","memory_max_label","disk_label"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["web","worker","cron","static","private"]},"runtime":{"type":"string","enum":["docker","node","ruby","python","go","rust","static","generic"]},"runtime_adapter_kind":{"type":"string","enum":["nomad","database"]},"runtime_adapter_settings_json":{"type":"string","nullable":true},"nomad_namespace":{"type":"string","nullable":true},"nomad_region":{"type":"string","nullable":true},"cpu_mhz":{"type":"integer","minimum":0,"nullable":true},"memory_mb":{"type":"integer","minimum":0,"nullable":true},"memory_max_mb":{"type":"integer","minimum":1,"nullable":true,"description":"Hard memory limit in MB the task may burst to (Nomad MemoryMaxMB). memory_mb stays the reservation the scheduler places against, so raising this does not make a rollout harder to place. Must be >= memory_mb. Memory above the reservation is oversubscribed and best effort: under node pressure the kernel reclaims it and can OOM-kill the task. Null/absent renders no limit beyond the reservation."},"disk_mb":{"type":"integer","minimum":0,"nullable":true},"nomad_constraints_json":{"type":"string","nullable":true},"nomad_update_strategy_json":{"type":"string","nullable":true},"nomad_ulimits_json":{"type":"string","nullable":true,"description":"Docker task ulimits as a JSON object of rlimit name to \"soft:hard\" (e.g. {\"nofile\":\"65536:65536\"}). Null/absent leaves the container on the daemon default."},"nomad_kill_timeout_seconds":{"type":"integer","minimum":1,"maximum":30,"nullable":true,"description":"Seconds the task gets after SIGTERM before SIGKILL. Null/absent leaves Nomad's 5s default. Capped at 30 because a Nomad client silently clamps kill_timeout to its own max_kill_timeout (default 30s)."},"nomad_shutdown_delay_seconds":{"type":"integer","minimum":0,"maximum":120,"nullable":true,"description":"Seconds Nomad waits between deregistering the group's services and sending SIGTERM, so the edge stops routing new requests to the allocation before it is signalled. Null/absent leaves Nomad's 0s default."},"source_path":{"type":"string"},"repo_source_path":{"type":"string"},"build_command":{"type":"string","nullable":true},"release_command":{"type":"string","nullable":true},"prestart_command":{"type":"string","nullable":true},"start_command":{"type":"string","nullable":true},"healthcheck_path":{"type":"string","nullable":true},"schedule":{"type":"string","nullable":true},"internal_port":{"type":"integer","minimum":1,"maximum":65535,"nullable":true},"desired_instances":{"type":"integer","minimum":0},"publicly_accessible":{"type":"boolean"},"auto_deploy":{"type":"boolean"},"deploy_paths":{"type":"array","description":"Explicit repo-root-relative path prefixes/globs a push must touch to auto-deploy. Empty means default to the app root_path.","items":{"type":"string"}},"effective_deploy_paths":{"type":"array","description":"Tracked paths actually applied by the auto-deploy trigger (explicit deploy_paths, else [root_path]).","items":{"type":"string"}},"bindings":{"type":"array","items":{"$ref":"#/components/schemas/AppServiceBinding"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true},"cpu_label":{"type":"string","nullable":true},"memory_label":{"type":"string","nullable":true},"memory_max_label":{"type":"string","nullable":true},"disk_label":{"type":"string","nullable":true}}},"AppServiceCreatePayload":{"type":"object","required":["slug","name","kind","runtime","runtime_adapter_kind","source_path","start_command","desired_instances","publicly_accessible","auto_deploy"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["web","worker","cron","static","private"]},"runtime":{"type":"string","enum":["docker","node","ruby","python","go","rust","static","generic"]},"runtime_adapter_kind":{"type":"string","enum":["nomad","database"]},"runtime_adapter_settings_json":{"type":"string"},"nomad_namespace":{"type":"string"},"nomad_region":{"type":"string"},"cpu_mhz":{"type":"integer","minimum":0},"memory_mb":{"type":"integer","minimum":0},"memory_max_mb":{"type":"integer","minimum":1,"description":"Hard memory limit in MB the task may burst to (Nomad MemoryMaxMB). Must be >= memory_mb, which stays the scheduler reservation. Omit to render no limit beyond the reservation."},"disk_mb":{"type":"integer","minimum":0},"nomad_constraints_json":{"type":"string"},"nomad_update_strategy_json":{"type":"string"},"nomad_ulimits_json":{"type":"string","description":"Docker task ulimits as a JSON object of rlimit name to \"soft:hard\" (e.g. {\"nofile\":\"65536:65536\"})."},"nomad_kill_timeout_seconds":{"type":"integer","minimum":1,"maximum":30,"description":"Seconds the task gets after SIGTERM before SIGKILL. Omit to leave Nomad's 5s default."},"nomad_shutdown_delay_seconds":{"type":"integer","minimum":0,"maximum":120,"description":"Seconds Nomad waits between deregistering the group's services and sending SIGTERM. Omit to leave Nomad's 0s default."},"source_path":{"type":"string"},"build_command":{"type":"string"},"release_command":{"type":"string"},"prestart_command":{"type":"string"},"start_command":{"type":"string"},"healthcheck_path":{"type":"string"},"schedule":{"type":"string"},"internal_port":{"type":"integer","minimum":1,"maximum":65535},"desired_instances":{"type":"integer","minimum":0},"publicly_accessible":{"type":"boolean"},"auto_deploy":{"type":"boolean"},"deploy_paths":{"type":"array","items":{"type":"string"}}}},"AppDataResource":{"type":"object","required":["id","hosted_app_id","app_environment_id","slug","name","kind","engine","version","plan","region","status","storage_gb","storage_label","high_availability","provider_metadata","failure_message","created_at","updated_at"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"app_environment_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["database","cache","queue","search","vector"]},"engine":{"type":"string","enum":["postgres","mysql","valkey"]},"version":{"type":"string","nullable":true},"plan":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"status":{"type":"string","enum":["provisioning","available","updating","failed","archived"]},"storage_gb":{"type":"integer","minimum":0,"nullable":true},"storage_label":{"type":"string","nullable":true},"high_availability":{"type":"boolean"},"provider_metadata":{"type":"object","additionalProperties":true},"failure_message":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"AppDataResourceCreatePayload":{"type":"object","required":["slug","name","kind","engine"],"properties":{"app_environment_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["database","cache","queue","search","vector"]},"engine":{"type":"string","enum":["postgres","mysql","valkey"]},"version":{"type":"string"},"plan":{"type":"string"},"region":{"type":"string"},"storage_gb":{"type":"integer","minimum":0},"high_availability":{"type":"boolean"}}},"AppDataResourceRestorePayload":{"type":"object","properties":{"app_environment_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"branch_name":{"type":"string"},"backup_id":{"type":"string"},"restore_point":{"type":"string"},"plan":{"type":"string"},"region":{"type":"string"},"storage_gb":{"type":"integer","minimum":0},"high_availability":{"type":"boolean"}}},"AppStorageResource":{"type":"object","required":["id","hosted_app_id","app_environment_id","location_id","location_code","slug","name","kind","provider","region","access_mode","mount_path","capacity_gb","capacity_label","status","external_volume_id","attachment","ephemeral","provider_error","created_at","updated_at"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"app_environment_id":{"type":"string","nullable":true},"location_id":{"type":"string","nullable":true,"description":"Volume datacenter pin (volume kind only)"},"location_code":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["bucket","volume"]},"provider":{"type":"string","enum":["s3","tigris","nomad_csi","local_nvme","local_nvme_authority"],"description":"Storage backend. `local_nvme` is a directory on the node's own NVMe, created as a Nomad dynamic host volume — fast, node-local and EPHEMERAL: the platform may delete it at any time and it does not survive the loss of its node. Use it as a cache, never as a system of record. `local_nvme_authority` is a single-node, single-writer authority volume that refuses destructive repair. Node loss requires restoration from remote replication into a new volume."},"region":{"type":"string","nullable":true},"access_mode":{"type":"string","enum":["private","public","internal"],"description":"Object-store semantics only; ignored for volume resources"},"mount_path":{"type":"string","nullable":true},"capacity_gb":{"type":"integer","minimum":0,"nullable":true},"capacity_label":{"type":"string","nullable":true},"status":{"type":"string","enum":["provisioning","available","updating","failed","archived"]},"external_volume_id":{"type":"string","nullable":true,"description":"Nomad/CSI volume id assigned at provisioning"},"attachment":{"type":"object","nullable":true,"description":"Attachment readback: CSI publish state for nomad_csi, or the nodes carrying the directory for local_nvme. Nil until provisioned","properties":{"state":{"type":"string","enum":["attached","detached"]},"node_ids":{"type":"array","items":{"type":"string"}},"alloc_ids":{"type":"array","items":{"type":"string"}}}},"ephemeral":{"type":"boolean","description":"True when the contents may be deleted at any time and do not survive the loss of the underlying node. Ephemeral storage is a cache and must never hold a system of record."},"provider_error":{"type":"string","nullable":true,"description":"Last provisioning/teardown error from the storage provider"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"AppStorageResourceCreatePayload":{"type":"object","required":["slug","name","kind","provider","access_mode","status"],"properties":{"app_environment_id":{"type":"string"},"location_id":{"type":"string","description":"Required for volume kind. nomad_csi needs a CSI-plugin-enabled location; local_nvme works in any location and pins the volume to that datacenter"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["bucket","volume"]},"provider":{"type":"string","enum":["s3","tigris","nomad_csi","local_nvme","local_nvme_authority"],"description":"Storage backend. `local_nvme` volumes are node-local NVMe caches and are EPHEMERAL by contract — deletable at any time, gone with their node, and safe to lose. They ignore capacity_gb (it is advisory) and are not resizable. `local_nvme_authority` provisions one pinned single-writer directory and refuses destructive repair or empty replacement after node loss. Remote replication and fenced restoration are required for repository authority durability."},"region":{"type":"string"},"access_mode":{"type":"string","enum":["private","public","internal"]},"mount_path":{"type":"string"},"capacity_gb":{"type":"integer","minimum":0,"description":"Enforced for nomad_csi (minimum 10 GB). Advisory only for local_nvme, which claims no reservation"},"status":{"type":"string","enum":["provisioning","available","updating","failed","archived"]}}},"DeploymentServiceLogAllocation":{"type":"object","required":["allocation_id","app_service_id","service_name","app_environment_id","environment_name","app_release_id","release_version","task","status","details","unreachable_reason"],"properties":{"allocation_id":{"type":"string"},"app_service_id":{"type":"string","nullable":true},"service_name":{"type":"string"},"app_environment_id":{"type":"string","nullable":true},"environment_name":{"type":"string"},"app_release_id":{"type":"string","nullable":true},"release_version":{"type":"string","nullable":true},"task":{"type":"string","nullable":true},"status":{"type":"string"},"details":{"oneOf":[{"$ref":"#/components/schemas/NomadAllocationDetails"},{"type":"null"}]},"unreachable_reason":{"type":"string","nullable":true}}},"DeploymentServiceLogLine":{"type":"object","required":["id","index","allocation_id","allocation_label","service_name","task","stream","text"],"properties":{"id":{"type":"string"},"index":{"type":"integer","minimum":1},"allocation_id":{"type":"string"},"allocation_label":{"type":"string"},"service_name":{"type":"string"},"task":{"type":"string"},"stream":{"type":"string","enum":["stdout","stderr"]},"text":{"type":"string"}}},"NomadTaskEvent":{"type":"object","required":["type","display_message","message","time","fails_task","restart_reason","exit_code"],"properties":{"type":{"type":"string","nullable":true},"display_message":{"type":"string","nullable":true},"message":{"type":"string","nullable":true},"time":{"type":"string","nullable":true},"fails_task":{"type":"boolean","nullable":true},"restart_reason":{"type":"string","nullable":true},"exit_code":{"type":"integer","nullable":true}}},"NomadTaskState":{"type":"object","required":["name","state","failed","started_at","finished_at","last_restart","restarts","events"],"properties":{"name":{"type":"string"},"state":{"type":"string","nullable":true},"failed":{"type":"boolean","nullable":true},"started_at":{"type":"string","nullable":true},"finished_at":{"type":"string","nullable":true},"last_restart":{"type":"string","nullable":true},"restarts":{"type":"integer","minimum":0,"nullable":true},"events":{"type":"array","items":{"$ref":"#/components/schemas/NomadTaskEvent"}}}},"NomadAllocationDetails":{"type":"object","required":["allocation_id","name","namespace","job_id","task_group","node_id","node_name","datacenter","client_status","desired_status","desired_description","create_time","modify_time","task_states","resources","fetched_at"],"properties":{"allocation_id":{"type":"string"},"name":{"type":"string","nullable":true},"namespace":{"type":"string"},"job_id":{"type":"string","nullable":true},"task_group":{"type":"string","nullable":true},"node_id":{"type":"string","nullable":true},"node_name":{"type":"string","nullable":true},"datacenter":{"type":"string","nullable":true},"client_status":{"type":"string","nullable":true},"desired_status":{"type":"string","nullable":true},"desired_description":{"type":"string","nullable":true},"create_time":{"type":"string","nullable":true},"modify_time":{"type":"string","nullable":true},"task_states":{"type":"array","items":{"$ref":"#/components/schemas/NomadTaskState"}},"verify_runner_images":{"type":"array","description":"Public Verify image pins from tasks in this allocation's attached job group, not current app settings. Empty when attached job metadata is unavailable. Other environment values are never returned; malformed pins are named in invalid_keys without their values. References and fingerprints are reported independently so callers can detect mismatches.","items":{"type":"object","required":["name","values","invalid_keys"],"properties":{"name":{"type":"string"},"values":{"type":"object","additionalProperties":false,"required":["VEX_VERIFY_RUNNER_IMAGE","VEX_VERIFY_RUNNER_IMAGE_DIGEST","VEX_VERIFY_BROWSER_SESSION_IMAGE"],"properties":{"VEX_VERIFY_RUNNER_IMAGE":{"type":"string","nullable":true},"VEX_VERIFY_RUNNER_IMAGE_DIGEST":{"type":"string","nullable":true},"VEX_VERIFY_BROWSER_SESSION_IMAGE":{"type":"string","nullable":true}}},"invalid_keys":{"type":"array","items":{"type":"string","enum":["VEX_VERIFY_RUNNER_IMAGE","VEX_VERIFY_RUNNER_IMAGE_DIGEST","VEX_VERIFY_BROWSER_SESSION_IMAGE"]}}}}},"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"}}},"DockerBuilder":{"type":"object","additionalProperties":false,"properties":{"backend":{"type":"string","enum":["classic","gen2"]},"gateway_url":{"type":"string","nullable":true,"description":"Organization-addressed public WSS gateway; null until configured"},"id":{"type":"string"},"organization_id":{"type":"string"},"slug":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z][a-z0-9]*(-[a-z0-9]+)*$"},"status":{"type":"string","enum":["sleeping","starting","ready","stopping","failed"]},"generation":{"type":"integer","minimum":0},"startup_attempt":{"type":"integer","minimum":0},"startup_stage":{"type":"string","nullable":true},"startup_failure":{"type":"string","nullable":true,"description":"Safe failure reason for the most recent startup attempt"},"last_activity_at":{"type":"string","format":"date-time","nullable":true},"ready_at":{"type":"string","format":"date-time","nullable":true},"slept_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}},"required":["backend","id","organization_id","slug","status","generation","startup_attempt","startup_stage","startup_failure","last_activity_at","ready_at","slept_at","created_at","updated_at"]},"DockerBuilderResponse":{"type":"object","additionalProperties":false,"properties":{"docker_builder":{"$ref":"#/components/schemas/DockerBuilder"}},"required":["docker_builder"]},"DockerBuildersResponse":{"type":"object","additionalProperties":false,"properties":{"docker_builders":{"type":"array","items":{"$ref":"#/components/schemas/DockerBuilder"}}},"required":["docker_builders"]},"DockerBuilderSettings":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string"},"max_concurrency":{"type":"integer","minimum":1,"maximum":32,"default":1},"idle_timeout_seconds":{"type":"integer","minimum":60,"maximum":86400,"default":600},"runtime_timeout_seconds":{"type":"integer","minimum":300,"maximum":86400,"default":3600},"region":{"type":"string","enum":["us-east","us-west","eu-west","ap-southeast"],"default":"us-east"}},"required":["organization_id","max_concurrency","idle_timeout_seconds","runtime_timeout_seconds","region"]},"DockerBuilderSettingsResponse":{"type":"object","additionalProperties":false,"properties":{"docker_builder_settings":{"$ref":"#/components/schemas/DockerBuilderSettings"}},"required":["docker_builder_settings"]},"DockerBuilderSettingsUpdate":{"type":"object","additionalProperties":false,"properties":{"max_concurrency":{"type":"integer","minimum":1,"maximum":32,"default":1},"idle_timeout_seconds":{"type":"integer","minimum":60,"maximum":86400,"default":600},"runtime_timeout_seconds":{"type":"integer","minimum":300,"maximum":86400,"default":3600},"region":{"type":"string","enum":["us-east","us-west","eu-west","ap-southeast"],"default":"us-east"}}},"DockerBuilderCreate":{"type":"object","additionalProperties":false,"properties":{"backend":{"type":"string","enum":["classic","gen2"],"default":"classic"},"slug":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z][a-z0-9]*(-[a-z0-9]+)*$","default":"main"}}},"DockerBuilderRename":{"type":"object","additionalProperties":false,"properties":{"slug":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z][a-z0-9]*(-[a-z0-9]+)*$"}},"required":["slug"]},"DockerBuilderSession":{"type":"object","additionalProperties":false,"properties":{"gateway_url":{"type":"string","nullable":true,"description":"Organization-addressed public WSS gateway; null until configured"},"id":{"type":"string"},"organization_id":{"type":"string"},"docker_builder_id":{"type":"string"},"user_id":{"type":"string"},"generation":{"type":"integer","minimum":0},"expires_at":{"type":"string","format":"date-time"},"created_at":{"type":"string","format":"date-time"},"revoked_at":{"type":"string","format":"date-time","nullable":true}},"required":["id","organization_id","docker_builder_id","user_id","generation","expires_at","created_at","revoked_at"]},"DockerBuilderSessionResponse":{"type":"object","additionalProperties":false,"properties":{"docker_builder_session":{"$ref":"#/components/schemas/DockerBuilderSession"}},"required":["docker_builder_session"]},"DockerBuilderSessionIssued":{"type":"object","additionalProperties":false,"properties":{"docker_builder_session":{"$ref":"#/components/schemas/DockerBuilderSession"},"token":{"type":"string","description":"Opaque secret returned once; never persist on builder cache or print to logs"}},"required":["docker_builder_session","token"]},"DockerBuilderGatewayConnection":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string"},"backend":{"type":"string","enum":["classic","gen2"]},"actor_id":{"type":"string"},"active_actor_run":{"type":"boolean"},"session_id":{"type":"string"},"builder_id":{"type":"string"},"generation":{"type":"integer"},"sandbox_id":{"type":"string"},"expires_at":{"type":"string","format":"date-time"},"run_id":{"type":"string"},"status":{"type":"string","enum":["running","succeeded","failed","canceled"]}},"required":["backend","organization_id","session_id","builder_id","generation","sandbox_id","expires_at"]},"DockerBuilderGatewayCompletion":{"type":"object","additionalProperties":false,"properties":{"run_id":{"type":"string"},"generation":{"type":"integer"},"status":{"type":"string","enum":["succeeded","failed","canceled"]}},"required":["run_id","generation","status"]},"GitImportStatus":{"type":"object","required":["id","git_url","git_status","native_status","organization","slug","root_path","source_branch","target_branch"],"properties":{"id":{"type":"string"},"git_url":{"type":"string"},"organization":{"type":"string"},"slug":{"type":"string"},"root_path":{"type":"string"},"source_branch":{"type":"string"},"target_branch":{"type":"string"},"git_status":{"type":"string","enum":["receiving","durable"]},"native_status":{"type":"string","enum":["pending","running","ready","failed","canceled"]},"error":{"type":"string","nullable":true},"repository_id":{"type":"string","nullable":true}}},"GitImportTransfer":{"allOf":[{"$ref":"#/components/schemas/GitImportStatus"},{"type":"object","required":["transfer_token"],"properties":{"transfer_token":{"type":"string","readOnly":true,"description":"Short-lived credential scoped to this isolated Git source; never persist in logs."}}}]},"GithubAppInstallation":{"type":"object","required":["id","organization_id","installation_id","account_login","account_id","account_avatar_url","manage_access_url","status","permissions","permission_entries","installed_at","installed_at_label","suspended_at","suspended_at_label","created_at","created_at_label","updated_at","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"installation_id":{"type":"string"},"account_login":{"type":"string"},"account_id":{"type":"string","nullable":true},"account_avatar_url":{"type":"string","format":"uri","nullable":true},"manage_access_url":{"type":"string","format":"uri"},"status":{"type":"string","enum":["active","suspended"]},"permissions":{"type":"object","additionalProperties":true},"permission_entries":{"description":"GitHub's permission hash as a display-ready list, sorted by name.","type":"array","items":{"type":"object","required":["key","name","access"],"properties":{"key":{"type":"string"},"name":{"type":"string"},"access":{"type":"string"}}}},"installed_at":{"type":"string","format":"date-time","nullable":true},"installed_at_label":{"type":"string","nullable":true},"suspended_at":{"type":"string","format":"date-time","nullable":true},"suspended_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","nullable":true}}},"GithubCiRepository":{"type":"object","required":["id","organization_id","github_app_installation_id","ci_runner_pool_id","github_repository_id","repository_owner","repository_name","repository_full_name","default_branch","status","adoption_mode","check_name_prefix","permission_status","last_webhook_delivery_id","last_webhook_event","last_webhook_action","last_webhook_at","last_webhook_at_label","last_head_sha","last_ref","last_pull_request_number","webhook_delivery_count","last_compatibility_status","last_error_message","metadata","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_app_installation_id":{"type":"string"},"ci_runner_pool_id":{"type":"string","nullable":true},"github_repository_id":{"type":"string"},"repository_owner":{"type":"string"},"repository_name":{"type":"string"},"repository_full_name":{"type":"string"},"default_branch":{"type":"string"},"status":{"type":"string","enum":["active","paused","archived"]},"adoption_mode":{"type":"string","enum":["shadow","reporting","required"]},"check_name_prefix":{"type":"string"},"permission_status":{"type":"string","enum":["unchecked","ok","missing"]},"last_webhook_delivery_id":{"type":"string","nullable":true},"last_webhook_event":{"type":"string","nullable":true},"last_webhook_action":{"type":"string","nullable":true},"last_webhook_at":{"type":"string","format":"date-time","nullable":true},"last_webhook_at_label":{"type":"string","nullable":true},"last_head_sha":{"type":"string","nullable":true},"last_ref":{"type":"string","nullable":true},"last_pull_request_number":{"type":"integer","nullable":true},"webhook_delivery_count":{"type":"integer"},"last_compatibility_status":{"type":"string","enum":["executable","warning","blocked","error"],"nullable":true},"last_error_message":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"GithubCiCompatibilityReport":{"type":"object","required":["id","organization_id","github_ci_repository_id","ci_pipeline_id","ci_pipeline_run_id","workflow_path","source_sha","source_blob_sha","parser_version","workflow_name","event_name","event_action","ref_name","head_sha","pull_request_number","status","execution_allowed","required_secrets","runner_labels","referenced_actions","supported_features","diagnostics","warnings","errors","metadata","analyzed_at","analyzed_at_label","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_ci_repository_id":{"type":"string"},"ci_pipeline_id":{"type":"string","nullable":true},"ci_pipeline_run_id":{"type":"string","nullable":true},"workflow_path":{"type":"string"},"source_sha":{"type":"string"},"source_blob_sha":{"type":"string","nullable":true},"parser_version":{"type":"string"},"workflow_name":{"type":"string","nullable":true},"event_name":{"type":"string"},"event_action":{"type":"string","nullable":true},"ref_name":{"type":"string","nullable":true},"head_sha":{"type":"string","nullable":true},"pull_request_number":{"type":"integer","nullable":true},"status":{"type":"string","enum":["executable","warning","blocked","error"]},"execution_allowed":{"type":"boolean"},"required_secrets":{"type":"array","items":{"type":"string"}},"runner_labels":{"type":"array","items":{"type":"string"}},"referenced_actions":{"type":"array","items":{"type":"string"}},"supported_features":{"type":"object","additionalProperties":true},"diagnostics":{"type":"array","items":{"type":"object","required":["severity","code","path","message","metadata"],"properties":{"severity":{"type":"string","enum":["error","warning"]},"code":{"type":"string"},"path":{"type":"string"},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}}}},"warnings":{"type":"array","items":{"type":"object","required":["severity","code","path","message","metadata"],"properties":{"severity":{"type":"string","enum":["error","warning"]},"code":{"type":"string"},"path":{"type":"string"},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}}}},"errors":{"type":"array","items":{"type":"object","required":["severity","code","path","message","metadata"],"properties":{"severity":{"type":"string","enum":["error","warning"]},"code":{"type":"string"},"path":{"type":"string"},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}}}},"metadata":{"type":"object","additionalProperties":true},"analyzed_at":{"type":"string","format":"date-time"},"analyzed_at_label":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"GithubIntegrationSummary":{"type":"object","required":["id","account_login","account_avatar_url","connection_status","connection_status_label","imported_repositories_count","imported_repositories_count_label","health"],"properties":{"id":{"type":"string"},"account_login":{"type":"string"},"account_avatar_url":{"type":"string","format":"uri","nullable":true},"connection_status":{"type":"string","enum":["connected","unavailable","needs_attention","checking","could_not_verify","not_verified"]},"connection_status_label":{"type":"string"},"imported_repositories_count":{"type":"integer","minimum":0},"imported_repositories_count_label":{"type":"string"},"health":{"$ref":"#/components/schemas/GithubConnectionHealth"}}},"GithubIntegrationDetail":{"allOf":[{"$ref":"#/components/schemas/GithubIntegrationSummary"},{"type":"object","required":["manage_access_url","permission_entries"],"properties":{"manage_access_url":{"type":"string","format":"uri"},"permission_entries":{"type":"array","items":{"type":"object","required":["key","name","access"],"properties":{"key":{"type":"string"},"name":{"type":"string"},"access":{"type":"string"}}}}}}]},"GithubIntegrationRepository":{"type":"object","required":["id","slug","name","github_repository","health"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"github_repository":{"type":"string"},"health":{"$ref":"#/components/schemas/GithubRepositoryAccessHealth"}}},"GithubConnectionHealth":{"type":"object","required":["status","label","configured_count","accessible_count","affected_count","checked_at","checking","reason","generation","completed_generation","guidance"],"properties":{"status":{"type":"string","enum":["connected","needs_attention","checking","could_not_verify","not_verified"]},"label":{"type":"string"},"configured_count":{"type":"integer"},"accessible_count":{"type":"integer"},"affected_count":{"type":"integer"},"checked_at":{"type":"string","nullable":true},"checking":{"type":"boolean"},"reason":{"type":"string","nullable":true},"guidance":{"type":"string"},"generation":{"type":"integer"},"completed_generation":{"type":"integer"}}},"GithubRepositoryAccessHealth":{"type":"object","required":["state","reason","label","checked_at","repository","installation_id"],"properties":{"state":{"type":"string","enum":["unknown","available","unavailable"]},"reason":{"type":"string","nullable":true},"label":{"type":"string"},"checked_at":{"type":"string","nullable":true},"repository":{"type":"string","nullable":true},"installation_id":{"type":"string","nullable":true}}},"OrganizationImportBranchPolicy":{"type":"object","required":["default_trunk_bookmark"],"properties":{"default_trunk_bookmark":{"type":"string"}}},"GithubOnboardingState":{"type":"object","required":["installations","accounts","batches","active_batch_id","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."},"capabilities":{"type":"object","required":["can_manage_connections"],"properties":{"can_manage_connections":{"type":"boolean"}}}}},"GithubImportBatch":{"type":"object","required":["id","github_app_installation_id","account_login","status","complete","item_count","terminal_item_count","failed_item_count","imported_item_count","items","created_at","updated_at"],"properties":{"id":{"type":"string"},"github_app_installation_id":{"type":"string"},"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."},"item_count":{"type":"integer"},"terminal_item_count":{"type":"integer"},"failed_item_count":{"type":"integer"},"imported_item_count":{"type":"integer"},"items":{"type":"array","items":{"type":"object","required":["id","repository_id","repository_owner","repository_name","repository_full_name","root_path","include_in_home","status","terminal","error_message","repository_slug","phase","can_retry","created_at","updated_at"],"properties":{"id":{"type":"string"},"repository_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},"repository_slug":{"type":"string","nullable":true},"phase":{"type":"string"},"can_retry":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"GithubReviewSummary":{"type":"object","properties":{"kind":{"type":"string","enum":["github_pr"]},"id":{"type":"string"},"number":{"type":"integer"},"title":{"type":"string"},"state":{"type":"string","enum":["open","closed","merged"]},"draft":{"type":"boolean"},"github_repository_id":{"type":"string"},"repository_full_name":{"type":"string"},"head_sha":{"type":"string","nullable":true},"base_branch":{"type":"string","nullable":true},"github_url":{"type":"string"},"internal_path":{"type":"string"},"submitted_at":{"type":"string"},"updated_at":{"type":"string"},"updated_at_label":{"type":"string"},"author":{"type":"object","properties":{"id":{"type":"string","nullable":true},"login":{"type":"string","nullable":true},"avatar_url":{"type":"string","nullable":true}},"required":["login"]},"labels":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"color":{"type":"string","nullable":true}},"required":["name","color"]}},"conversation_count":{"type":"integer"},"stack":{"type":"object","nullable":true,"properties":{"code":{"type":"string"},"name":{"type":"string"},"member_count":{"type":"integer"},"position":{"type":"integer"}},"required":["code","name","member_count","position"]},"head_branch":{"type":"string","nullable":true}},"required":["kind","id","number","title","state","draft","github_repository_id","repository_full_name","head_sha","base_branch","github_url","internal_path","submitted_at","updated_at","updated_at_label","author","labels","conversation_count","stack","head_branch"]},"GithubReviewEntry":{"type":"object","properties":{"id":{"type":"string"},"node_id":{"type":"string","nullable":true},"kind":{"type":"string"},"body":{"type":"string"},"title":{"type":"string"},"author":{"type":"object","properties":{"id":{"type":"string","nullable":true},"login":{"type":"string","nullable":true},"avatar_url":{"type":"string","nullable":true}},"required":["login"]},"created_at":{"type":"string","nullable":true},"updated_at":{"type":"string","nullable":true},"state":{"type":"string"},"path":{"type":"string"},"patch":{"type":"string"},"previous_path":{"type":"string"},"sha":{"type":"string"},"additions":{"type":"integer"},"deletions":{"type":"integer"},"partial":{"type":"boolean"},"resolved":{"type":"boolean"},"outdated":{"type":"boolean"},"line":{"type":"integer","nullable":true},"side":{"type":"string","nullable":true},"next_cursor":{"type":"string","nullable":true},"reactions":{"type":"array","items":{"type":"string"}},"children":{"type":"array","items":{"$ref":"#/components/schemas/GithubReviewEntry"}},"can_edit":{"type":"boolean"},"can_delete":{"type":"boolean"},"check_id":{"type":"string","nullable":true},"parent_id":{"type":"string","nullable":true},"start_line":{"type":"integer","nullable":true},"run_id":{"type":"string"},"job_id":{"type":"string"},"log":{"type":"string"},"can_rerun":{"type":"boolean"},"can_cancel":{"type":"boolean"}},"required":["id","kind"]},"GithubReviewSync":{"type":"object","properties":{"error":{"type":"string","nullable":true},"complete":{"type":"boolean"},"updated_at":{"type":"string","nullable":true},"team_reviews_complete":{"type":"boolean"}},"required":["error","complete","updated_at","team_reviews_complete"]},"GithubReviewPage":{"type":"object","properties":{"pull_request":{"allOf":[{"$ref":"#/components/schemas/GithubReviewSummary"},{"type":"object","properties":{"body":{"type":"string"},"reviewers":{"type":"array","items":{"type":"string"}},"assignees":{"type":"array","items":{"type":"string"}},"linked_change_path":{"type":"string","nullable":true}},"required":["body","reviewers","assignees","linked_change_path"]}]},"content":{"type":"object","properties":{"section":{"type":"string"},"entries":{"type":"array","items":{"$ref":"#/components/schemas/GithubReviewEntry"}},"next_page":{"type":"integer","nullable":true},"next_cursor":{"type":"string","nullable":true},"partial":{"type":"boolean"},"thread_id":{"type":"string","nullable":true},"check_id":{"type":"string","nullable":true},"run_id":{"type":"string","nullable":true},"job_id":{"type":"string","nullable":true}},"required":["section","entries","next_page","next_cursor","partial"]},"capabilities":{"type":"object","properties":{"write":{"type":"boolean"},"identity":{"type":"string"}},"required":["write","identity"]},"fetched_at":{"type":"string"},"transcript_paths":{"type":"array","items":{"type":"object","required":["label","path"],"properties":{"label":{"type":"string"},"path":{"type":"string"}}}},"stack":{"$ref":"#/components/schemas/GithubReviewStack"},"magic_merge":{"$ref":"#/components/schemas/MagicMergeReviewSnapshot","nullable":true}},"required":["pull_request","content","capabilities","fetched_at","transcript_paths","stack","magic_merge"]},"GithubReviewMutation":{"type":"object","properties":{"operation_key":{"type":"string"},"action_name":{"type":"string","enum":["comment","inline","reply","review","edit_comment","delete_comment","edit_inline","delete_inline","resolve","unresolve","add_label","remove_label","rerun","cancel_run"]},"body":{"type":"string"},"expected_head_sha":{"type":"string"},"event":{"type":"string","enum":["COMMENT","APPROVE","REQUEST_CHANGES"]},"path":{"type":"string"},"line":{"type":"integer"},"side":{"type":"string","enum":["LEFT","RIGHT"]},"start_line":{"type":"integer"},"start_side":{"type":"string"},"comment_id":{"type":"string"},"thread_id":{"type":"string"},"label":{"type":"string"},"run_id":{"type":"string"},"comments":{"type":"array","maxItems":100,"items":{"type":"object","required":["path","line","side","body"],"properties":{"path":{"type":"string"},"line":{"type":"integer","minimum":1},"side":{"type":"string","enum":["LEFT","RIGHT"]},"body":{"type":"string","minLength":1,"maxLength":65000}}}}},"required":["operation_key","action_name"]},"GithubReviewOperation":{"type":"object","properties":{"status":{"type":"string","enum":["pending","sent","failed","unknown"]},"error":{"type":"string","nullable":true},"result":{"type":"object","nullable":true,"properties":{"id":{"type":"string","nullable":true},"node_id":{"type":"string","nullable":true}}}},"required":["status","error","result"]},"GithubReviewStack":{"type":"object","properties":{"status":{"type":"string","enum":["available","unavailable"]},"stacks":{"type":"array","items":{"type":"object","properties":{"number":{"type":"integer"},"base_branch":{"type":"string","nullable":true},"entries":{"type":"array","items":{"type":"object","properties":{"number":{"type":"integer"},"title":{"type":"string"},"state":{"type":"string"},"draft":{"type":"boolean"},"current":{"type":"boolean"},"source":{"type":"string"},"path":{"type":"string"}},"required":["number","title","state","draft","current","source","path"]}}},"required":["number","base_branch","entries"]}}},"required":["status","stacks"]},"MagicMergeAssessmentSummary":{"type":"object","properties":{"apply_status":{"type":"string","nullable":true},"apply_reason":{"type":"string","nullable":true},"applied_at":{"type":"string","nullable":true},"status":{"type":"string"},"reason":{"type":"string","nullable":true},"merge_base_sha":{"type":"string","nullable":true},"tip_sha":{"type":"string","nullable":true},"resolution_ref":{"type":"string","nullable":true},"conflict_paths":{"type":"array","items":{"type":"string"}},"classification":{"type":"array","items":{"type":"object","additionalProperties":true}},"resolution_decisions":{"type":"array","items":{"type":"object","additionalProperties":true}},"commits":{"type":"array","items":{"type":"object","properties":{"original_sha":{"type":"string"},"rewritten_sha":{"type":"string","nullable":true},"conflict_paths":{"type":"array","items":{"type":"string"}}},"required":["original_sha","rewritten_sha","conflict_paths"]}},"assessed_at":{"type":"string","nullable":true}},"required":["status"]},"MagicMergeReviewSnapshot":{"type":"object","properties":{"head_sha":{"type":"string","nullable":true},"base_sha":{"type":"string","nullable":true},"observed_at":{"type":"string","nullable":true},"open":{"type":"boolean"},"merge":{"$ref":"#/components/schemas/MagicMergeAssessmentSummary"},"rebase":{"$ref":"#/components/schemas/MagicMergeAssessmentSummary"},"prior_attempts":{"type":"array","items":{"type":"object","properties":{"mode":{"type":"string"},"status":{"type":"string"},"head_sha":{"type":"string"},"base_sha":{"type":"string"},"assessed_at":{"type":"string","nullable":true}},"required":["mode","status","head_sha","base_sha","assessed_at"]}},"can_apply_rebase":{"type":"boolean"},"can_apply_merge":{"type":"boolean"},"can_resolve_rebase":{"type":"boolean"},"can_resolve_merge":{"type":"boolean"},"rebase_application_status":{"type":"string","nullable":true}},"required":["head_sha","base_sha","observed_at","open","merge","rebase","prior_attempts","can_apply_rebase","can_apply_merge","can_resolve_rebase","can_resolve_merge","rebase_application_status"]},"MagicMergeApplyResult":{"type":"object","properties":{"status":{"type":"string"},"reason":{"type":"string","nullable":true},"expected_head_sha":{"type":"string"},"tip_sha":{"type":"string"},"applied_at":{"type":"string","nullable":true}},"required":["status","reason","expected_head_sha","tip_sha","applied_at"]},"GithubRunnerEgress":{"type":"object","required":["status","ipv4","cidr","requested_at_label","can_request"],"properties":{"status":{"type":"string","enum":["not_requested","pending","active","unavailable"]},"ipv4":{"type":"string","nullable":true},"cidr":{"type":"string","nullable":true},"requested_at_label":{"type":"string","nullable":true},"can_request":{"type":"boolean"}}},"GithubRunnerPrivateLink":{"type":"object","required":["name","region","endpoint_id","service_name","hostname","ports","setup_status"],"properties":{"name":{"type":"string"},"region":{"type":"string"},"endpoint_id":{"type":"string"},"service_name":{"type":"string"},"hostname":{"type":"string"},"ports":{"type":"array","items":{"type":"integer"}},"setup_status":{"type":"string","enum":["pending_allowlist","pending_validation","enabled"]}}},"GithubRunnerInvocation":{"type":"object","required":["id","github_job_id","github_run_id","status","conclusion","github_runner_id","assigned_job_id","assigned_run_id","provider","sandbox_id","modal_sandbox_id","image_version","job_url","attempts","last_error","spawned_at","finished_at","cleaned_up_at","created_at"],"properties":{"id":{"type":"string"},"github_job_id":{"type":"integer"},"github_run_id":{"type":"integer"},"assigned_job_id":{"type":"integer","nullable":true},"assigned_run_id":{"type":"integer","nullable":true},"status":{"type":"string"},"conclusion":{"type":"string","nullable":true},"github_runner_id":{"type":"integer","nullable":true},"provider":{"type":"string","enum":["modal","boxmad"]},"sandbox_id":{"type":"string","nullable":true},"modal_sandbox_id":{"type":"string","nullable":true},"image_version":{"type":"string","nullable":true},"job_url":{"type":"string","nullable":true},"attempts":{"type":"integer"},"last_error":{"type":"string","nullable":true},"spawned_at":{"type":"string","nullable":true},"finished_at":{"type":"string","nullable":true},"cleaned_up_at":{"type":"string","nullable":true},"created_at":{"type":"string"}}},"GithubRunnerImage":{"type":"object","required":["id","name","image_reference","registry_secret_name","status","modal_image_id","last_error","created_at","updated_at"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"image_reference":{"type":"string","description":"Immutable linux/amd64 Ubuntu 24.04 image, registry/repository@sha256:digest, with Node 22+"},"registry_secret_name":{"type":"string","nullable":true,"description":"Name of an organization CI secret containing REGISTRY_USERNAME and REGISTRY_PASSWORD JSON fields"},"status":{"type":"string","enum":["pending","building","ready","failed"]},"modal_image_id":{"type":"string","nullable":true},"last_error":{"type":"string","nullable":true},"created_at":{"type":"string"},"updated_at":{"type":"string"}}},"GithubRunnerPool":{"type":"object","required":["id","organization_id","github_app_installation_id","github_repository_id","repository_full_name","label","enabled","max_concurrency","timeout_seconds","cpu_millicores","memory_mb","provider","runtime_kind","github_runner_image","last_error","last_polled_at","invocations"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"github_app_installation_id":{"type":"string"},"github_repository_id":{"type":"string"},"repository_full_name":{"type":"string"},"label":{"type":"string"},"enabled":{"type":"boolean"},"max_concurrency":{"type":"integer"},"timeout_seconds":{"type":"integer"},"provider":{"type":"string","enum":["modal","boxmad"]},"runtime_kind":{"type":"string","enum":["vm","sandbox"]},"github_runner_image":{"anyOf":[{"$ref":"#/components/schemas/GithubRunnerImage"},{"type":"null"}]},"cpu_millicores":{"type":"integer"},"memory_mb":{"type":"integer"},"last_error":{"type":"string","nullable":true},"last_polled_at":{"type":"string","nullable":true},"invocations":{"type":"array","items":{"$ref":"#/components/schemas/GithubRunnerInvocation"}}}},"GitlabIntegration":{"type":"object","required":["id","username","status","name","avatar_url","host","webhook_authentication"],"properties":{"id":{"type":"string"},"username":{"type":"string"},"status":{"type":"string"},"name":{"type":"string","nullable":true},"avatar_url":{"type":"string","nullable":true},"host":{"type":"string"},"webhook_authentication":{"type":"string","enum":["signing_token","secret_token"]}}},"GitlabProject":{"type":"object","required":["project_id","name","path_with_namespace","default_branch","web_url","visibility","unavailable_reason","connection_id","import_status"],"properties":{"project_id":{"type":"integer"},"name":{"type":"string"},"path_with_namespace":{"type":"string"},"default_branch":{"type":"string","nullable":true},"web_url":{"type":"string"},"visibility":{"type":"string"},"unavailable_reason":{"type":"string","nullable":true},"connection_id":{"type":"string","nullable":true},"import_status":{"type":"string","nullable":true}}},"GitlabConnection":{"type":"object","required":["id","gitlab_project_id","path_with_namespace","source_branch","repo_slug","status","error_message","web_url","import_status","import_terminal","can_retry","import_detail"],"properties":{"id":{"type":"string"},"gitlab_project_id":{"type":"integer"},"path_with_namespace":{"type":"string"},"source_branch":{"type":"string"},"repo_slug":{"type":"string"},"status":{"type":"string"},"error_message":{"type":"string","nullable":true},"web_url":{"type":"string"},"integration_id":{"type":"string"},"import_status":{"type":"string","enum":["queued","running","succeeded","failed"]},"import_terminal":{"type":"boolean"},"can_retry":{"type":"boolean"},"import_detail":{"type":"string"}}},"GitlabPage":{"type":"object","required":["organization","configured","integrations","selected_integration_id","projects","next_page","connections"],"properties":{"organization":{"type":"object","required":["id","slug","name"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}},"configured":{"type":"boolean"},"integrations":{"type":"array","items":{"$ref":"#/components/schemas/GitlabIntegration"}},"selected_integration_id":{"type":"string","nullable":true},"projects":{"type":"array","items":{"$ref":"#/components/schemas/GitlabProject"}},"next_page":{"type":"integer","nullable":true},"connections":{"type":"array","items":{"$ref":"#/components/schemas/GitlabConnection"}},"inventory_error":{"type":"string","nullable":true}}},"GitlabAuthorizationUrl":{"type":"object","required":["authorization_url"],"properties":{"authorization_url":{"type":"string"}}},"RepositoryImportPage":{"type":"object","required":["github_installations","gitlab_integrations","can_manage_connections","gitlab_configured","gitlab_imports","github_imports","organization_id","repositories","inventory_errors","gitlab_self_managed_available","gitlab_redirect_uri"],"properties":{"github_installations":{"type":"array","items":{"$ref":"#/components/schemas/GithubAppInstallation"}},"gitlab_integrations":{"type":"array","items":{"$ref":"#/components/schemas/GitlabIntegration"}},"can_manage_connections":{"type":"boolean"},"gitlab_configured":{"type":"boolean"},"gitlab_imports":{"type":"array","items":{"$ref":"#/components/schemas/GitlabConnection"}},"github_imports":{"type":"array","items":{"$ref":"#/components/schemas/GithubImportBatchSummary"}},"organization_id":{"type":"string"},"repositories":{"type":"array","items":{"$ref":"#/components/schemas/RepositoryImportRepository"}},"inventory_errors":{"type":"array","items":{"type":"string"}},"gitlab_self_managed_available":{"type":"boolean"},"gitlab_redirect_uri":{"type":"string","nullable":true}}},"GithubImportBatchSummary":{"type":"object","required":["id","account_login","complete","import_outcome"],"properties":{"id":{"type":"string"},"account_login":{"type":"string"},"complete":{"type":"boolean"},"import_outcome":{"type":"string","enum":["success","attention"]}}},"RepositoryImportRepository":{"type":"object","required":["id","provider","account_id","account_name","name","full_name","visibility","owner","default_branch","unavailable_reason","project_id","connection_id"],"properties":{"id":{"type":"string"},"provider":{"type":"string","enum":["github","gitlab"]},"account_id":{"type":"string"},"account_name":{"type":"string"},"name":{"type":"string"},"full_name":{"type":"string"},"visibility":{"type":"string"},"owner":{"type":"string","nullable":true},"default_branch":{"type":"string","nullable":true},"unavailable_reason":{"type":"string","nullable":true},"project_id":{"type":"integer","nullable":true},"connection_id":{"type":"string","nullable":true}}},"AppDomainCreatePayload":{"type":"object","required":["app_service_id","hostname","kind"],"properties":{"app_service_id":{"type":"string"},"app_environment_id":{"type":"string"},"hostname":{"type":"string"},"kind":{"type":"string","enum":["primary","redirect","preview","internal"]},"tls_status":{"type":"string","enum":["pending","active","failed"]},"dns_status":{"type":"string","enum":["pending","configured","failed"]},"redirect_to":{"type":"string"}}},"AppConfigVariableCreatePayload":{"type":"object","required":["scope_kind","key","value_kind","exposed_to_build"],"properties":{"app_environment_id":{"type":"string"},"app_service_id":{"type":"string"},"scope_kind":{"type":"string","enum":["app","environment","service"]},"key":{"type":"string"},"value":{"type":"string"},"value_kind":{"type":"string","enum":["plain","secret","reference"]},"description":{"type":"string"},"exposed_to_build":{"type":"boolean"}}},"AppConfigVariableRotatePayload":{"type":"object","required":["value"],"properties":{"value":{"type":"string"},"value_kind":{"type":"string","enum":["plain","secret","reference"]}}},"AppDomainPathRule":{"type":"object","required":["id","path_prefix","status","action_kind","last_error","app_service_id","backend_ref","app_service_endpoint_id","created_at","updated_at"],"properties":{"id":{"type":"string"},"path_prefix":{"type":"string"},"status":{"type":"string","enum":["pending","active","failed","disabled"]},"action_kind":{"type":"string","enum":["proxy","redirect","fixed_response","external"]},"last_error":{"type":"string","nullable":true},"app_service_id":{"type":"string","nullable":true},"backend_ref":{"type":"string","nullable":true},"app_service_endpoint_id":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"AppDomainPathRuleUpsertPayload":{"type":"object","required":["path_prefix","app_service_id"],"properties":{"path_prefix":{"type":"string"},"app_service_id":{"type":"string"},"app_service_endpoint_id":{"type":"string"}}},"HostedAppLocationPayload":{"type":"object","required":["location_id"],"properties":{"location_id":{"type":"string"}}},"ImageRepository":{"type":"object","required":["id","organization_id","hosted_app_id","slug","name","provider_kind","repository_path","visibility","status","auth_configured","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"hosted_app_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"provider_kind":{"type":"string","enum":["oci","docker_registry"]},"repository_path":{"type":"string"},"visibility":{"type":"string","enum":["private","internal","public"]},"status":{"type":"string","enum":["active","paused","archived"]},"auth_configured":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"ImageRepositoryCreatePayload":{"type":"object","required":["slug","name"],"properties":{"hosted_app_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"provider_kind":{"type":"string","enum":["oci","docker_registry"]},"repository_path":{"type":"string"},"visibility":{"type":"string","enum":["private","internal","public"]},"status":{"type":"string","enum":["active","paused","archived"]},"registry_auth_token":{"type":"string"}}},"ImageRepositoryContractPayload":{"type":"object","required":["operation","reference"],"properties":{"operation":{"type":"string","enum":["push","pull"]},"reference":{"type":"string"},"ttl_seconds":{"type":"integer","minimum":1}}},"ImageRepositoryContractAuth":{"type":"object","required":["username","required"],"properties":{"username":{"type":"string"},"required":{"type":"boolean"},"token_hint":{"type":"string","nullable":true},"login_command":{"type":"string","nullable":true},"token_realm":{"type":"string","nullable":true},"service":{"type":"string","nullable":true},"scope":{"type":"string","nullable":true}}},"ImageRepositoryContract":{"type":"object","required":["provider","operation","repository_path","reference","expires_in_seconds"],"properties":{"provider":{"type":"string"},"operation":{"type":"string","enum":["push","pull"]},"repository_path":{"type":"string"},"reference":{"type":"string"},"push_registry_host":{"type":"string"},"pull_registry_host":{"type":"string"},"push_image_reference":{"type":"string"},"pull_image_reference":{"type":"string"},"image_reference":{"type":"string"},"auth":{"$ref":"#/components/schemas/ImageRepositoryContractAuth"},"expires_in_seconds":{"type":"integer","minimum":1}}},"ImageRepositoryContractResponse":{"type":"object","required":["image_repository","contract"],"properties":{"image_repository":{"$ref":"#/components/schemas/ImageRepository"},"contract":{"$ref":"#/components/schemas/ImageRepositoryContract"}}},"ImageRepositoryTagsResponse":{"type":"object","required":["image_repository","tags","name","registry_url"],"properties":{"image_repository":{"$ref":"#/components/schemas/ImageRepository"},"tags":{"type":"array","items":{"type":"string"}},"name":{"type":"string"},"registry_url":{"type":"string","format":"uri"}}},"LocalAgentResponsesRequest":{"type":"object","description":"An OpenAI Responses request from the agent built into `com`, relayed with the platform's credentials. The model must be gpt-6-luna or gpt-5.6-luna; the request must stream and set store to false; stored-state fields and tools the provider runs (web search, file search, code interpreter, MCP) are refused. At most 24 MiB.","required":["model","input","stream","store"],"additionalProperties":true,"properties":{"model":{"type":"string","enum":["gpt-6-luna","gpt-5.6-luna"]},"input":{"type":"array","items":{"type":"object","additionalProperties":true}},"stream":{"type":"boolean","enum":[true]},"store":{"type":"boolean","enum":[false]},"service_tier":{"type":"string","enum":["auto","default","flex","priority"],"nullable":true},"tools":{"type":"array","items":{"type":"object","additionalProperties":true}}}},"LocalAgentDecisionsRequest":{"type":"object","required":["request"],"additionalProperties":false,"properties":{"request":{"type":"object","additionalProperties":true,"description":"A native OpenAI Decisions request for gpt-6-luna, at most 1600 KiB, with inline images only"}}},"LocalAgentInferenceError":{"type":"object","required":["error"],"properties":{"error":{"type":"object","additionalProperties":true,"properties":{"message":{"type":"string"},"code":{"type":"string"}}}}},"MergeResolutionInput":{"type":"object","required":["base","ours","theirs"],"additionalProperties":false,"properties":{"path":{"type":"string","description":"Repository-relative path of the conflicted file"},"base":{"type":"string","description":"Common ancestor file contents"},"ours":{"type":"string","description":"Current / left file contents"},"theirs":{"type":"string","description":"Incoming / right file contents"},"context":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional surrounding files keyed by path"}}},"MergeResolutionResult":{"type":"object","required":["resolved","action","fallback","duration_ms"],"properties":{"resolved":{"type":"boolean"},"action":{"type":"string"},"fallback":{"type":"boolean"},"content":{"type":"string","nullable":true},"model":{"type":"string"},"duration_ms":{"type":"integer"}}},"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"]}}}}},"VerifyDiscoveryRun":{"type":"object","additionalProperties":false,"required":["id","status","result","environment_revision_id","account_id","failure_code","queued_at","deadline_at"],"properties":{"recording":{"$ref":"#/components/schemas/VerifyMediaRecording"},"evidence":{"type":"array","items":{"$ref":"#/components/schemas/VerifyEvidenceItem"}},"id":{"type":"string"},"status":{"type":"string","enum":["queued","running","completed","partial","failed","canceled"]},"result":{"type":"object","nullable":true,"required":["report","status"],"properties":{"status":{"type":"string","enum":["completed","partial"]},"error":{"type":"string"},"usage":{"type":"object","additionalProperties":true},"report":{"$ref":"#/components/schemas/VerifyDiscoveryReport"}}},"environment_revision_id":{"type":"string"},"account_id":{"type":"string","nullable":true},"failure_code":{"type":"string","nullable":true},"queued_at":{"type":"string","format":"date-time"},"deadline_at":{"type":"string","format":"date-time"}}},"VerifyDiscoveryReport":{"type":"object","additionalProperties":false,"required":["pages","stopping_reason","pages","stopping_reason"],"properties":{"code_evidence":{"type":"array","items":{"type":"object","required":["execution_id","tool","input","result","execution_id","tool","input","result"],"properties":{"execution_id":{"type":"string"},"tool":{"type":"string","enum":["exec_command","write_file","exec_command","write_file"]},"input":{"type":"object","additionalProperties":true},"result":{"type":"object","additionalProperties":true}}}},"stopping_reason":{"type":"string","minLength":1},"pages":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["url","title","description","controls","url","title","description","controls"],"properties":{"url":{"type":"string","format":"uri"},"title":{"type":"string"},"description":{"type":"string"},"controls":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["label","attempted","destination","label","attempted","destination"],"properties":{"label":{"type":"string"},"attempted":{"type":"boolean"},"destination":{"type":"string","format":"uri","nullable":true,"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}}}}}}},"checks":{"type":"array","maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["charter","expectation","expectation_source","actual","outcome","steps","url"],"properties":{"charter":{"type":"string","maxLength":4000},"expectation":{"type":"string","maxLength":4000},"expectation_source":{"enum":["explicit","inferred"]},"actual":{"type":"string","maxLength":4000},"outcome":{"enum":["observed","issue","blocked","inconclusive"]},"steps":{"type":"array","maxItems":40,"items":{"type":"string","maxLength":4000}},"url":{"type":"string","format":"uri"},"evidence_step_ids":{"type":"array","maxItems":8,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200}},"source_agent_id":{"type":"string","description":"For a review, the tester whose result this restates."}}}},"findings":{"type":"array","maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["title","severity","confidence","expected","actual","reproduction_steps","url","evidence_timestamp_ms"],"properties":{"title":{"type":"string","maxLength":4000},"severity":{"enum":["high","medium","low"]},"confidence":{"enum":["reproduced","suspected"]},"expected":{"type":"string","maxLength":4000},"actual":{"type":"string","maxLength":4000},"reproduction_steps":{"type":"array","maxItems":40,"items":{"type":"string","maxLength":4000}},"url":{"type":"string","format":"uri"},"evidence_step_ids":{"type":"array","maxItems":8,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200}},"evidence_timestamp_ms":{"type":"integer","nullable":true,"minimum":0},"check_indices":{"type":"array","description":"Optional zero-based references to checks in this same tester report. Missing means no explicit link was saved.","maxItems":100,"uniqueItems":true,"items":{"type":"integer","minimum":0}},"source_agent_id":{"type":"string","description":"For a review, the tester whose result this restates."}}}},"unvisited":{"type":"array","maxItems":100,"items":{"type":"string","maxLength":4000}},"cleanup":{"type":"array","maxItems":100,"items":{"type":"string","maxLength":4000}},"assignments":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["role","charter"],"properties":{"role":{"enum":["breakdown","qa","ui"]},"charter":{"type":"string","minLength":1,"maxLength":4000}}}}}},"VerifyPage":{"type":"object","required":["organization","permissions","checkout_required","repositories","environments","counts","runs_pagination","runs","active_runs","project"],"properties":{"checkout_required":{"type":"boolean"},"project":{"description":"The project the page is limited to, or null for the whole organization.","oneOf":[{"type":"object","required":["slug","name"],"properties":{"slug":{"type":"string"},"name":{"type":"string"}}},{"type":"null"}]},"organization":{"type":"object","required":["id","slug","name"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}},"permissions":{"type":"object","required":["manage"],"properties":{"manage":{"type":"boolean"},"knowledge_connections":{"type":"boolean"}}},"repositories":{"type":"array","items":{"type":"object","required":["id","slug","name"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}}},"environments":{"type":"array","items":{"$ref":"#/components/schemas/VerifyPageEnvironment"}},"runs_pagination":{"$ref":"#/components/schemas/VerifyRunsPagination"},"counts":{"type":"object","required":["environments","ready_environments","active_runs","open_findings","scenarios"],"properties":{"environments":{"type":"integer","minimum":0},"ready_environments":{"type":"integer","minimum":0},"open_findings":{"type":"integer","minimum":0},"scenarios":{"$ref":"#/components/schemas/VerifyScenarioStateCounts"},"active_runs":{"type":"integer","minimum":0}}},"runs":{"type":"array","items":{"$ref":"#/components/schemas/ProjectRunSummary"}},"active_runs":{"type":"array","items":{"$ref":"#/components/schemas/ProjectRunSummary"}},"pull_requests":{"type":"array","items":{"$ref":"#/components/schemas/VerifyPullRequestSummary"}},"pull_request_launch_options":{"type":"array","items":{"$ref":"#/components/schemas/VerifyPullRequestLaunchOption"}}}},"VerifyRunSearch":{"type":"object","required":["runs"],"properties":{"runs":{"type":"array","items":{"$ref":"#/components/schemas/ProjectRunSummary"}}}},"VerifyRunUpdates":{"allOf":[{"$ref":"#/components/schemas/VerifyPage"}],"properties":{"pull_requests":{"type":"array","items":{"$ref":"#/components/schemas/VerifyPullRequestSummary"}}}},"VerifyScenarioStateCounts":{"type":"object","description":"Scenarios by the state of their latest execution. Timeouts count as failing.","required":["total","passing","failing","blocked","cancelled","running","not_run"],"properties":{"total":{"type":"integer","minimum":0},"passing":{"type":"integer","minimum":0},"failing":{"type":"integer","minimum":0},"blocked":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0},"running":{"type":"integer","minimum":0},"not_run":{"type":"integer","minimum":0}}},"VerifyRunsPagination":{"type":"object","required":["count","page","limit","last","previous","next","series"],"properties":{"count":{"type":"integer"},"page":{"type":"integer"},"limit":{"type":"integer"},"last":{"type":"integer"},"previous":{"type":"integer","nullable":true},"next":{"type":"integer","nullable":true},"series":{"type":"array","items":{"oneOf":[{"type":"integer"},{"type":"string"}]}}}},"VerifyPageEnvironment":{"type":"object","required":["id","repository_id","name","slug","status","updated_at","run_count"],"properties":{"id":{"type":"string"},"repository_id":{"type":"string","nullable":true},"name":{"type":"string"},"slug":{"type":"string"},"status":{"type":"string"},"connection":{"type":"string","enum":["managed","external"]},"target_url":{"type":"string","format":"uri","nullable":true},"target_kind":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"run_count":{"type":"integer","minimum":0},"active_revision":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/VerifyPageActiveRevision"}]}}},"VerifyPageActiveRevision":{"type":"object","required":["id","status","cleanup_state","ready_at","expires_at","retention_hours","blockers"],"properties":{"id":{"type":"string"},"status":{"type":"string"},"cleanup_state":{"type":"string"},"ready_at":{"type":"string","format":"date-time","nullable":true},"expires_at":{"type":"string","format":"date-time","nullable":true},"retention_hours":{"type":"integer","minimum":1},"blockers":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":true}}}},"VerifyFindingDetail":{"type":"object","required":["permissions","finding"],"properties":{"permissions":{"type":"object","required":["manage"],"properties":{"manage":{"type":"boolean"}}},"finding":{"$ref":"#/components/schemas/VerifyFindingRecord"},"reported_occurrence":{"description":"The Discovery or Deep Scan report behind the finding; null for scenario run findings","type":"object","nullable":true,"required":["exploration_id","source","source_title","web_path","observed_at","expected","reproduction_steps","url"],"properties":{"exploration_id":{"type":"string"},"source":{"type":"string","enum":["exploration","deep_scan"]},"source_title":{"type":"string"},"web_path":{"type":"string"},"observed_at":{"type":"string","format":"date-time"},"expected":{"type":"string","nullable":true},"reproduction_steps":{"type":"array","items":{"type":"string"}},"url":{"type":"string","nullable":true}}},"scenario_occurrences":{"type":"array","items":{"type":"object","required":["run_id","scenario_run_id","project_id","scenario_name","evidence_ids","observed_at"],"properties":{"run_id":{"type":"string"},"scenario_run_id":{"type":"string"},"project_id":{"type":"string"},"scenario_name":{"type":"string"},"evidence_ids":{"type":"array","items":{"type":"string"}},"observed_at":{"type":"string","format":"date-time"}}}}}},"VerifyFindingRecord":{"type":"object","required":["id","organization_id","repository_id","fingerprint","status","severity","confidence","title","safe_summary","occurrence_count","first_seen_at","last_seen_at","created_at","updated_at","verification"],"properties":{"deferred_until":{"type":"string","format":"date-time","nullable":true},"verification":{"$ref":"#/components/schemas/VerifyFindingVerification"},"id":{"type":"string"},"organization_id":{"type":"string"},"repository_id":{"type":"string","nullable":true},"fingerprint":{"type":"string"},"status":{"$ref":"#/components/schemas/ProjectFindingStatus"},"severity":{"type":"string"},"confidence":{"type":"string"},"title":{"type":"string"},"safe_summary":{"type":"string"},"occurrence_count":{"type":"integer","minimum":0},"first_seen_at":{"type":"string","format":"date-time"},"last_seen_at":{"type":"string","format":"date-time"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"VerifyFindingVerification":{"description":"Whether a model that did not report the finding, and for a P0 or P1 Deep Scan finding an independent rerun, confirmed it. Null for findings recorded before findings were checked.","oneOf":[{"type":"object","required":["state","reason","verified_at"],"properties":{"state":{"type":"string","description":"pending while the model checks it, reproducing while its rerun runs, then confirmed, unverified or dismissed. Unverified means the check did not confirm it, could not decide or run, or a rerun did not see it again; dismissed means the screenshots show the expected result. Unverified and dismissed findings stay listed below confirmed ones.","enum":["pending","reproducing","confirmed","unverified","dismissed"]},"reason":{"type":["string","null"],"description":"What the check saw, in plain words."},"verified_at":{"type":["string","null"],"format":"date-time"}}},{"type":"null"}]},"VerifyFindingChangeLinks":{"type":"object","required":["items","truncated"],"properties":{"items":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/VerifyFindingChangeLink"}},"truncated":{"type":"boolean"}}},"VerifyFindingChangeLink":{"type":"object","required":["swarm_id","handoff_digest","local","changes","changes_truncated","reverification"],"properties":{"swarm_id":{"type":"string"},"handoff_digest":{"type":"string"},"local":{"type":"object","required":["phase","status","outcome"],"properties":{"phase":{"type":"string"},"status":{"type":"string"},"outcome":{"type":"string","nullable":true}}},"changes":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/VerifyFindingChange"}},"changes_truncated":{"type":"boolean"},"reverification":{"type":"object","required":["items","truncated"],"properties":{"items":{"type":"array","maxItems":100,"items":{"type":"object","required":["sweep_id","state","outcome","release_reference","finished_at"],"properties":{"sweep_id":{"type":"string"},"state":{"type":"string"},"outcome":{"type":"string","nullable":true},"release_reference":{"type":"string"},"finished_at":{"type":"string","format":"date-time","nullable":true}}}},"truncated":{"type":"boolean"}}}}},"VerifyFindingChange":{"type":"object","required":["number","title","submission","queue","landed","deployments"],"properties":{"number":{"type":"integer"},"title":{"type":"string"},"submission":{"type":"object","required":["state","submitted_at"],"properties":{"state":{"type":"string"},"submitted_at":{"type":"string","format":"date-time","nullable":true}}},"queue":{"type":"object","additionalProperties":true},"landed":{"type":"object","required":["status","landed_at","commit_id"],"properties":{"status":{"type":"string"},"landed_at":{"type":"string","format":"date-time","nullable":true},"commit_id":{"type":"string","nullable":true}}},"deployments":{"type":"object","additionalProperties":true}}},"VerifyFixHandoff":{"type":"object","required":["finding_id","swarm_id","handoff_digest","replayed"],"properties":{"finding_id":{"type":"string"},"swarm_id":{"type":"string","nullable":true},"handoff_digest":{"type":"string"},"replayed":{"type":"boolean"}}},"VerifyEnvironmentDetail":{"type":"object","required":["permissions","environment","revisions","test_accounts","cleanup","billing","network_connections","discovery_defaults"],"properties":{"permissions":{"type":"object","required":["manage"],"properties":{"manage":{"type":"boolean"},"knowledge_connections":{"type":"boolean"}}},"environment":{"$ref":"#/components/schemas/VerifyEnvironment"},"billing":{"$ref":"#/components/schemas/BillingOnboarding"},"revisions":{"type":"array","items":{"$ref":"#/components/schemas/VerifyEnvironmentRevision"}},"test_accounts":{"$ref":"#/components/schemas/VerifyTestAccountCollection"},"network_connections":{"type":"array","items":{"$ref":"#/components/schemas/VerifyNetworkConnection"}},"cleanup":{"type":"array","items":{"$ref":"#/components/schemas/VerifyCleanupItem"}},"discovery_defaults":{"$ref":"#/components/schemas/VerifyDiscoveryDefaults"},"explorations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"goal":{"type":"string"},"status":{"type":"string"},"created_at":{"type":"string"}},"required":["id","goal","status","created_at"]}},"pending_accounts":{"type":"array","description":"Credentials on a Composal address still waiting for the password the customer chose at signup.","items":{"$ref":"#/components/schemas/VerifyLoginAccount"}},"exploration_accounts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"login_method":{"type":"string"}},"required":["id","name","login_method"]}}}},"VerifyTestAccountCollection":{"type":"object","required":["revision_id","target_available","accounts"],"properties":{"revision_id":{"type":"string","nullable":true},"target_available":{"type":"boolean"},"unavailable_reason":{"type":"string"},"accounts":{"type":"array","items":{"$ref":"#/components/schemas/VerifyTestAccount"}}}},"VerifyTestAccount":{"type":"object","required":["persona","role","tenant","configured","credentials"],"properties":{"persona":{"type":"string"},"role":{"type":"string"},"tenant":{"type":"string"},"configured":{"type":"boolean"},"credentials":{"type":"array","items":{"type":"object","required":["key","kind","configured","secret_id","source","pinned"],"properties":{"key":{"type":"string"},"kind":{"type":"string","enum":["literal","totp_seed"]},"configured":{"type":"boolean"},"secret_id":{"type":"string","nullable":true},"source":{"type":"string","nullable":true},"pinned":{"type":"boolean"}}}}}},"VerifyTestAccountUpdateInput":{"type":"object","additionalProperties":false,"required":["revision_id","credentials"],"properties":{"revision_id":{"type":"string"},"credentials":{"type":"object","minProperties":1,"additionalProperties":{"oneOf":[{"type":"string","minLength":1,"writeOnly":true},{"type":"object","additionalProperties":false,"required":["secret_id"],"properties":{"secret_id":{"type":"string"},"secret_version_id":{"type":"string"}}}]}}}},"VerifyEnvironmentCreateInput":{"type":"object","additionalProperties":false,"required":["slug"],"anyOf":[{"required":["target_url"]},{"required":["name"]}],"properties":{"project_id":{"type":"string","description":"Project slug or public ID. When omitted, creates a separate project for this environment."},"repository_id":{"type":"string","nullable":true},"slug":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"description":"Optional for a website target; defaults to its hostname. Required for a draft environment without a target URL."},"target_url":{"type":"string","format":"uri"},"target_kind":{"type":"string","enum":["production","staging","preview","development","custom"],"default":"staging"},"default_policy":{"type":"object","additionalProperties":true},"allowed_actions":{"type":"string","enum":["read_only","writes"],"description":"read_only only looks around; writes may create, change and delete data. Defaults to read_only for production and writes otherwise."},"imessage_number":{"type":"string","nullable":true,"description":"International destination number; blank or null clears it on an added environment."},"messaging_tester_number":{"type":"string","nullable":true,"description":"One configured tester number. Copied to each preview; may be overridden locally before preparation."}}},"VerifyEnvironmentRevisionImportInput":{"type":"object","additionalProperties":false,"required":["blueprint"],"properties":{"blueprint":{"type":"object","additionalProperties":true},"source_metadata":{"type":"object","additionalProperties":true},"dry_run":{"type":"boolean"}}},"VerifyBlueprintValidation":{"type":"object","required":["valid","digest"],"properties":{"valid":{"type":"boolean"},"digest":{"type":"string"}}},"VerifyEnvironment":{"type":"object","required":["id","organization_id","project_id","repository_id","hosted_app_id","active_revision_id","verify_network_connection_id","slug","name","status","connection","target_url","target_kind","allowed_actions","default_policy_json","created_at","updated_at","imessage_number","lock_version"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"project_id":{"type":"string","nullable":true,"description":"Owning project. Null only for unassigned legacy environments."},"repository_id":{"type":"string","nullable":true},"hosted_app_id":{"type":"string","nullable":true},"active_revision_id":{"type":"string","nullable":true},"verify_network_connection_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"connection":{"type":"string","enum":["managed","external"]},"target_url":{"type":"string","format":"uri","nullable":true},"target_kind":{"type":"string","nullable":true},"allowed_actions":{"type":"string","enum":["read_only","writes"]},"default_policy_json":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"imessage_number":{"type":"string","nullable":true,"description":"International destination number; blank or null clears it on an added environment."},"lock_version":{"type":"integer"}}},"VerifyEnvironmentRevision":{"type":"object","required":["id","organization_id","verify_environment_id","app_environment_id","app_release_id","runner_environment_revision_id","revision","schema_version","digest","status","cleanup_state","blueprint_json","resolved_manifest_json","source_metadata_json","safety_policy_json","retention_policy_json","validation_json","allowed_origins","ready_at","expires_at","revoked_at","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"verify_environment_id":{"type":"string"},"app_environment_id":{"type":"string","nullable":true},"app_release_id":{"type":"string","nullable":true},"runner_environment_revision_id":{"type":"string","nullable":true},"revision":{"type":"integer"},"schema_version":{"type":"integer"},"digest":{"type":"string"},"status":{"type":"string"},"cleanup_state":{"type":"string"},"blueprint_json":{"type":"object","additionalProperties":true},"resolved_manifest_json":{"type":"object","additionalProperties":true},"source_metadata_json":{"type":"object","additionalProperties":true},"safety_policy_json":{"type":"object","additionalProperties":true},"retention_policy_json":{"type":"object","additionalProperties":true},"validation_json":{"type":"object","additionalProperties":true},"allowed_origins":{"type":"array","items":{"type":"string"},"description":"Origins browser testers may visit, subdomains included. Links elsewhere are blocked."},"ready_at":{"type":"string","format":"date-time","nullable":true},"expires_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"}}},"VerifyCleanupItem":{"type":"object","required":["resource_kind","resource_reference","state","attempts","next_retry_at","manual_action_reason"],"properties":{"revision_id":{"type":"string"},"resource_kind":{"type":"string"},"resource_reference":{"type":"string"},"state":{"type":"string"},"attempts":{"type":"integer","minimum":0},"next_retry_at":{"type":"string","format":"date-time","nullable":true},"manual_action_reason":{"type":"string","nullable":true}}},"VerifyScenarioAttempt":{"type":"object","required":["id","organization_id","verify_sweep_id","agent_roder_run_id","supersedes_attempt_id","scenario_id","persona_id","browser_id","attempt_number","state","supervisor_attestation_json","result_json","timing_summary_json","deadline_at","started_at","finished_at","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"verify_sweep_id":{"type":"string"},"agent_roder_run_id":{"type":"string","nullable":true},"supersedes_attempt_id":{"type":"string","nullable":true},"scenario_id":{"type":"string"},"persona_id":{"type":"string"},"browser_id":{"type":"string","nullable":true},"attempt_number":{"type":"integer","minimum":1},"state":{"type":"string"},"supervisor_attestation_json":{"type":"object","additionalProperties":true},"result_json":{"type":"object","additionalProperties":true},"timing_summary_json":{"type":"object","additionalProperties":true},"deadline_at":{"type":"string","format":"date-time"},"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"}}},"VerifyEvidenceItem":{"type":"object","required":["id","organization_id","verify_scenario_attempt_id","kind","content_type","byte_size","checksum","redaction_state","access_state","captured_at","retention_expires_at","deleted_at","download_url","preview_url","created_at","updated_at"],"properties":{"recording":{"type":["object","null"],"required":["start_ms","duration_ms"],"properties":{"recording_id":{"type":"string"},"start_ms":{"type":"number","minimum":0},"duration_ms":{"type":"number","exclusiveMinimum":0}}},"id":{"type":"string"},"organization_id":{"type":"string"},"verify_scenario_attempt_id":{"type":"string","nullable":true},"kind":{"type":"string"},"content_type":{"type":"string"},"byte_size":{"type":"integer","minimum":0},"checksum":{"type":"string"},"redaction_state":{"type":"string"},"access_state":{"type":"string"},"captured_at":{"type":"string","format":"date-time"},"retention_expires_at":{"type":"string","format":"date-time"},"deleted_at":{"type":"string","format":"date-time","nullable":true},"download_url":{"type":"string","nullable":true},"preview_url":{"type":"string","nullable":true},"readable":{"type":"boolean","description":"Retained, not deleted, and redacted where needed, so it can be downloaded."},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"verify_exploration_agent_id":{"type":"string","nullable":true}}},"VerifyMediaRecording":{"type":"object","required":["video_groups","webp_segments"],"properties":{"video_groups":{"$ref":"#/components/schemas/ScenarioRunRecording/properties/video_groups"},"webp_segments":{"$ref":"#/components/schemas/ScenarioRunRecording/properties/videos"}}},"VerifyEvidenceItemMetadata":{"type":"object","required":["id","organization_id","verify_scenario_attempt_id","kind","content_type","byte_size","checksum","redaction_state","access_state","captured_at","retention_expires_at","deleted_at","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"verify_scenario_attempt_id":{"type":"string","nullable":true},"kind":{"type":"string"},"content_type":{"type":"string"},"byte_size":{"type":"integer","minimum":0},"checksum":{"type":"string"},"redaction_state":{"type":"string"},"access_state":{"type":"string"},"captured_at":{"type":"string","format":"date-time"},"retention_expires_at":{"type":"string","format":"date-time"},"deleted_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"verify_exploration_agent_id":{"type":"string","nullable":true}}},"VerifyMetricSummary":{"type":"object","required":["query_id","kind","scope","window_started_at","window_finished_at","series_count","sample_count","rejected_series_count","comparison","truncated"],"properties":{"query_id":{"type":"string"},"kind":{"type":"string"},"scope":{"type":"object","additionalProperties":true},"window_started_at":{"type":"string","format":"date-time"},"window_finished_at":{"type":"string","format":"date-time"},"series_count":{"type":"integer","minimum":0},"sample_count":{"type":"integer","minimum":0},"rejected_series_count":{"type":"integer","minimum":0},"comparison":{"type":"object","additionalProperties":true},"truncated":{"type":"boolean"}}},"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":{"analytics_distinct_id":{"type":"string"},"commit_author_email":{"type":"string","format":"email"},"github_prs_authored_by_change_author":{"type":"boolean"},"github_pr_user_authorization_connected":{"type":"boolean"},"github_pr_user_authorization_login":{"type":"string","nullable":true},"organizations":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationSummary"}},"active_organization":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSummary"},{"type":"null"}]},"pending_organization_invitation_count":{"type":"integer","minimum":0},"pending_organization_invitation_count_label":{"type":"string"},"enabled_features":{"type":"array","items":{"type":"string","enum":["knowledge_ui","deployments_ui","sites_ui","artefacts_ui","automations_ui","signals_ui","registry_ui","secrets_ui","repository_git_backend_experiment","hosting_cdn_ui","billing","verify_ui","verify_computer_use_ui","source_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","logo_url"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":"string","nullable":true}}},"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"},"timezone":{"type":"string","description":"IANA timezone; defaults to UTC"}}},"OrganizationUpdatePayload":{"type":"object","properties":{"sandbox_region":{"type":"string","enum":["us-was-1","us-pdx-1","eu-lon-1","eu-fra-1","auto"]},"slug":{"type":"string"},"name":{"type":"string"},"timezone":{"type":"string","description":"IANA timezone such as America/New_York"},"github_prs_authored_by_change_author":{"type":"boolean"}}},"OrganizationProductActivationPayload":{"type":"object","required":["product"],"properties":{"product":{"type":"string","enum":["transcripts","vcs"]}}},"OrganizationMemberUpdatePayload":{"type":"object","required":["role"],"properties":{"role":{"type":"string","enum":["owner","admin","member"]}}},"OrganizationInvitationCreatePayload":{"type":"object","required":["email","role"],"properties":{"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["owner","admin","member"]}}},"ActiveOrganizationPayload":{"type":"object","required":["organization_id"],"properties":{"organization_id":{"type":"string"}}},"CliLoginOrganization":{"type":"object","required":["id","slug","name"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}},"CliLoginCompletePayload":{"type":"object","required":["login_id"],"properties":{"login_id":{"type":"string"},"organization_id":{"type":"string","description":"Public ID of the organization the CLI saves as its default."}}},"DedicatedOutboundIpAddresses":{"type":"array","description":"Public outbound IPs for the enabled operator-managed assignment; empty when no assignment is enabled.","items":{"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"}}},"PersistentAgentApprovalDecisionInput":{"type":"object","additionalProperties":false,"required":["task_id","wait_id","decision","expected_version"],"properties":{"task_id":{"type":"string","pattern":"^task_[a-zA-Z0-9_-]{1,70}$"},"wait_id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},"decision":{"type":"string","enum":["approve","reject"]},"expected_version":{"type":"string","pattern":"^(?!0{40}$)[0-9a-f]{40}$"}}},"PersistentAgentApprovalDecision":{"type":"object","additionalProperties":false,"required":["task_id","wait_id","decision"],"properties":{"task_id":{"type":"string"},"wait_id":{"type":"string"},"decision":{"type":"string","enum":["approve","reject"]}}},"PersistentAgentPendingApproval":{"type":"object","additionalProperties":false,"required":["task_id","wait_id","tool","arguments","resource","expires_at","version","can_decide"],"properties":{"task_id":{"type":"string"},"wait_id":{"type":"string"},"tool":{"type":"string"},"arguments":{"type":"object","additionalProperties":true},"resource":{"type":"object","additionalProperties":false,"required":["id","version"],"properties":{"id":{"type":"string","minLength":1,"maxLength":512},"version":{"type":"string","minLength":1,"maxLength":512}}},"expires_at":{"type":"string","format":"date-time"},"version":{"type":"string","pattern":"^(?!0{40}$)[0-9a-f]{40}$"},"can_decide":{"type":"boolean"}}},"PersistentAgentComputePrepareRequest":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string"},"agent_id":{"type":"string"},"task_id":{"type":"string"},"first_execution_run_id":{"type":"string"},"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"operation_key":{"type":"string"},"machine_class":{"type":"string","enum":["standard-2gb","standard-4gb","standard-8gb"]},"max_seconds":{"type":"integer","minimum":1,"maximum":3600}},"required":["organization_id","agent_id","task_id","first_execution_run_id","scope","operation_key","machine_class","max_seconds"]},"PersistentAgentComputePlan":{"type":"object","additionalProperties":false,"properties":{"schema":{"type":"integer","enum":[1]},"id":{"type":"string"},"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"spec":{"$ref":"#/components/schemas/PersistentAgentWorkspaceSpec"},"machine_class":{"type":"string"},"max_seconds":{"type":"integer","minimum":1,"maximum":3600},"expires_at":{"type":"string","format":"date-time"},"pricing":{"type":"object","additionalProperties":false,"properties":{"provider":{"type":"string","enum":["blaxel"]},"policy":{"type":"string","enum":["persistent-compute-v1"]},"version":{"type":"string"},"memory_mb":{"type":"integer","minimum":1,"maximum":1000000},"cpu_millicores":{"type":"integer","minimum":1,"maximum":1000000},"gb_second_rate_usd":{"type":"string"}},"required":["provider","policy","version","memory_mb","cpu_millicores","gb_second_rate_usd"]},"resources":{"type":"object","additionalProperties":false,"properties":{"tokens":{"type":"integer","minimum":0,"maximum":9007199254740991},"compute_seconds":{"type":"integer","minimum":0,"maximum":9007199254740991},"cost_microusd":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["tokens","compute_seconds","cost_microusd"]}},"required":["schema","id","scope","spec","machine_class","max_seconds","expires_at","pricing","resources"]},"PersistentAgentComputePreparation":{"type":"object","additionalProperties":false,"properties":{"state":{"type":"string","enum":["prepared","uncertain","expired","released"]},"commit":{"type":"string"},"plan":{"$ref":"#/components/schemas/PersistentAgentComputePlan"}},"required":["state","commit","plan"]},"PersistentAgentComputeAllocateRequest":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string"},"agent_id":{"type":"string"},"task_id":{"type":"string"},"first_execution_run_id":{"type":"string"},"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"plan_id":{"type":"string","pattern":"^compute_[0-9a-f]{64}$"}},"required":["organization_id","agent_id","task_id","first_execution_run_id","plan_id","scope"]},"PersistentAgentComputeReleaseRequest":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string"},"agent_id":{"type":"string"},"task_id":{"type":"string"},"first_execution_run_id":{"type":"string"},"plan_id":{"type":"string","pattern":"^compute_[0-9a-f]{64}$"}},"required":["organization_id","agent_id","task_id","first_execution_run_id","plan_id"]},"PersistentAgentComputeLifecycle":{"type":"object","additionalProperties":false,"properties":{"state":{"type":"string","enum":["allocated","pending","uncertain","expired","releasing","released","lost"]},"plan_id":{"type":"string","pattern":"^compute_[0-9a-f]{64}$"},"machine_name":{"type":"string","pattern":"^pa-[0-9a-f]{40}$"},"commit":{"type":"string","pattern":"^[0-9a-f]{40}$"}},"required":["state","plan_id","machine_name","commit"]},"PersistentAgentComputeResult":{"type":"object","additionalProperties":false,"properties":{"schema":{"type":"integer","enum":[1]},"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"plan_id":{"type":"string"},"seed_digest":{"type":"string"},"workspace_digest":{"type":"string"},"result":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"string"},"truncated":{"type":"boolean"}},"required":["text","truncated"]}},"required":["schema","scope","plan_id","seed_digest","workspace_digest","result"]},"PersistentAgentComputeSessionRestore":{"type":"object","additionalProperties":false,"properties":{"schema":{"type":"integer","enum":[1]},"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"commit":{"type":"string"},"plan_id":{"type":"string"},"machine_name":{"type":"string"},"region":{"type":"string"},"provider_workspace":{"type":"string"},"compute_expires_at":{"type":"string","format":"date-time"},"seed_digest":{"type":"string"},"memory_mb":{"type":"integer","enum":[2048,4096,8192]},"spec":{"$ref":"#/components/schemas/PersistentAgentWorkspaceSpec"},"snapshot":{"anyOf":[{"$ref":"#/components/schemas/PersistentAgentWorkspaceSnapshot"},{"type":"null"}]},"sequence":{"type":"integer","minimum":0,"maximum":2147483646}},"required":["schema","scope","commit","plan_id","machine_name","region","provider_workspace","compute_expires_at","seed_digest","memory_mb","spec","snapshot","sequence"]},"PersistentAgentComputeCredential":{"type":"object","additionalProperties":false,"properties":{"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"plan_id":{"type":"string"},"credential":{"type":"string"}},"required":["scope","plan_id","credential"]},"PersistentAgentComputeCheckpointRequest":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string"},"agent_id":{"type":"string"},"task_id":{"type":"string"},"first_execution_run_id":{"type":"string"},"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"plan_id":{"type":"string"},"expected_head":{"type":"string"},"operation_key":{"type":"string"},"snapshot":{"$ref":"#/components/schemas/PersistentAgentWorkspaceSnapshot"},"result":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"string"},"truncated":{"type":"boolean"}},"required":["text","truncated"]},"source":{"$ref":"#/components/schemas/PersistentAgentWorkspaceSource"}},"required":["organization_id","agent_id","task_id","first_execution_run_id","scope","plan_id","expected_head","operation_key","snapshot","result","source"]},"PersistentAgentComputeCheckpointReceipt":{"type":"object","additionalProperties":false,"properties":{"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"commit":{"type":"string"},"completion":{"$ref":"#/components/schemas/PersistentAgentComputeResult"}},"required":["scope","commit","completion"]},"PersistentAgentComputeSelection":{"type":"object","additionalProperties":false,"properties":{"plan_id":{"type":"string","pattern":"^compute_[0-9a-f]{64}$"},"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"state":{"type":"string","enum":["held","released"]}},"required":["plan_id","scope","state"]},"PersistentAgentWorkspaceSource":{"type":"object","additionalProperties":false,"properties":{"sequence":{"type":"integer","minimum":0,"maximum":2147483646},"sha256":{"type":["string","null"]}},"required":["sequence","sha256"]},"PersistentAgentConversationDiscovery":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string"},"agent_id":{"type":"string"},"conversation_id":{"type":"string"},"input_id":{"type":"string","nullable":true},"dispatch_token":{"type":"string","nullable":true,"description":"Trusted Activity transport only; not a workflow payload."}},"required":["organization_id","agent_id","conversation_id","input_id","dispatch_token"]},"PersistentAgentTaskDispatchPreparation":{"type":"object","additionalProperties":false,"properties":{"task_id":{"type":"string","pattern":"^task_[a-zA-Z0-9_-]{1,70}$"},"workflow_id":{"type":"string","pattern":"^persistent-task-v1/[0-9a-f]{64}$"},"start_allowed":{"type":"boolean"},"first_execution_run_id":{"type":["string","null"],"format":"uuid"},"wake_required":{"type":"boolean"}},"required":["task_id","workflow_id","start_allowed","first_execution_run_id","wake_required"]},"PersistentAgentTaskWorkflowAttachment":{"type":"object","additionalProperties":false,"properties":{"task_id":{"type":"string","pattern":"^task_[a-zA-Z0-9_-]{1,70}$"},"workflow_id":{"type":"string","pattern":"^persistent-task-v1/[0-9a-f]{64}$"},"start_allowed":{"type":"boolean","enum":[false]},"first_execution_run_id":{"type":"string","format":"uuid"},"wake_required":{"type":"boolean","enum":[false]}},"required":["task_id","workflow_id","start_allowed","first_execution_run_id","wake_required"]},"PersistentAgentFiles":{"type":"object","additionalProperties":false,"properties":{"agent_id":{"type":"string"},"version":{"type":["string","null"],"pattern":"^[0-9a-f]{40}$"},"entries":{"type":"array","maxItems":32,"items":{"$ref":"#/components/schemas/PersistentAgentFileEntry"}},"text_bytes":{"type":"integer","minimum":0},"limits":{"type":"object","additionalProperties":false,"properties":{"max_files":{"type":"integer","minimum":1},"max_file_bytes":{"type":"integer","minimum":1},"max_text_bytes":{"type":"integer","minimum":1}},"required":["max_files","max_file_bytes","max_text_bytes"]},"can_edit":{"type":"boolean"}},"required":["agent_id","version","entries","text_bytes","limits","can_edit"]},"PersistentAgentFileEntry":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string","maxLength":200},"content":{"type":"string","maxLength":32768,"description":"UTF-8 text without NUL, at most 32 KiB; empty text is valid."},"created_by_user_id":{"type":"string"},"updated_by_user_id":{"type":"string"}},"required":["path","content","created_by_user_id","updated_by_user_id"]},"PersistentAgentFileInput":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string","maxLength":200},"content":{"type":"string","maxLength":32768,"description":"UTF-8 text without NUL, at most 32 KiB; empty text is valid."}},"required":["path","content"]},"PersistentAgentMemory":{"type":"object","additionalProperties":false,"properties":{"agent_id":{"type":"string"},"version":{"type":["string","null"],"pattern":"^[0-9a-f]{40}$","description":"Opaque agent state version. Echo the returned version; null denotes an empty state stream."},"entries":{"type":"array","maxItems":64,"items":{"$ref":"#/components/schemas/PersistentAgentMemoryEntry"}},"text_bytes":{"type":"integer","minimum":0},"policy":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"max_bytes":{"type":"integer","minimum":0,"maximum":1048576}},"required":["enabled","max_bytes"]},"can_edit":{"type":"boolean"},"over_limit":{"type":"boolean"}},"required":["agent_id","version","entries","text_bytes","policy","can_edit","over_limit"]},"PersistentAgentMemoryEntry":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},"text":{"type":"string","maxLength":16384,"description":"Nonblank UTF-8 text, at most 16 KiB. Memory is data, never instructions or capability authority."},"created_by_user_id":{"type":"string"},"updated_by_user_id":{"type":"string"},"source_inputs":{"type":"array","maxItems":8,"items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"required":["id","sha256"]}}},"required":["id","text","created_by_user_id","updated_by_user_id","source_inputs"]},"PersistentAgentMemoryInput":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},"text":{"type":"string","maxLength":16384,"description":"Nonblank UTF-8 text, at most 16 KiB. Memory is data, never instructions or capability authority."},"source_input_ids":{"type":"array","maxItems":8,"uniqueItems":true,"items":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}}},"required":["id","text","source_input_ids"]},"PersistentAgentMemorySource":{"type":"object","additionalProperties":false,"required":["agent_id","entry_id","source"],"properties":{"agent_id":{"type":"string"},"entry_id":{"type":"string"},"source":{"type":"object","additionalProperties":false,"required":["id","conversation_id","text","accepted_at","actor_user_id","sha256"],"properties":{"id":{"type":"string"},"conversation_id":{"type":"string"},"text":{"type":"string","maxLength":32768},"accepted_at":{"type":"string","format":"date-time"},"actor_user_id":{"type":"string"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}}}}},"PersistentAgentPersona":{"type":"object","properties":{"status":{"type":"string","enum":["pending","generating","publishing","ready","failed","uncertain"]},"generation_id":{"type":"string","pattern":"^[0-9a-f]{64}$"},"colour":{"type":"string","pattern":"^#[0-9A-F]{6}$"},"personality":{"type":"string","maxLength":128},"can_retry":{"type":"boolean"},"image_digest":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{64}$"},{"type":"null"}]}},"required":["status","generation_id","colour","personality","image_digest","can_retry"],"additionalProperties":false},"PersistentAgentProviderGrant":{"type":"object","additionalProperties":false,"required":["id","configuration_commit","binding_id","binding_revision","subscription_id","connection_id","created_at","connection_generation","audience_matches","revoked_at"],"properties":{"id":{"type":"string"},"configuration_commit":{"type":"string"},"binding_id":{"type":"string"},"binding_revision":{"type":"string"},"subscription_id":{"type":"string"},"connection_id":{"type":"string"},"created_at":{"type":"string"},"connection_generation":{"type":"integer"},"audience_matches":{"type":"boolean"},"revoked_at":{"type":"string","nullable":true}}},"PersistentAgentProviderGrantResponse":{"type":"object","additionalProperties":false,"required":["grant","execution_available"],"properties":{"grant":{"$ref":"#/components/schemas/PersistentAgentProviderGrant"},"execution_available":{"type":"boolean"}}},"PersistentAgentProviderGrantPage":{"type":"object","additionalProperties":false,"required":["grants","next_cursor","execution_available","audience"],"properties":{"grants":{"type":"array","maxItems":30,"items":{"$ref":"#/components/schemas/PersistentAgentProviderGrant"}},"next_cursor":{"type":"string","nullable":true},"execution_available":{"type":"boolean"},"audience":{"type":"object","additionalProperties":false,"required":["digest","size"],"properties":{"digest":{"type":"string","pattern":"^[0-9a-f]{64}$"},"size":{"type":"integer","minimum":1}}}}},"PersistentAgentProviderSubscriptionChoice":{"type":"object","additionalProperties":false,"required":["id","connection_name","toolkit","event_name","resource"],"properties":{"id":{"type":"string"},"connection_name":{"type":"string"},"toolkit":{"type":"string"},"event_name":{"type":"string"},"resource":{"type":"string"}}},"PersistentAgentProviderSavedSource":{"type":"object","additionalProperties":false,"required":["binding_id","subscription","consent_state","can_authorize"],"properties":{"binding_id":{"type":"string"},"subscription":{"allOf":[{"$ref":"#/components/schemas/PersistentAgentProviderSubscriptionChoice"}],"nullable":true},"consent_state":{"type":"string","enum":["required","authorized","unavailable","revoked"]},"can_authorize":{"type":"boolean"}}},"PersistentAgentProviderSourceGrant":{"type":"object","additionalProperties":false,"required":["id","binding_id","revoked_at","revision_state","can_revoke"],"properties":{"id":{"type":"string"},"binding_id":{"type":"string"},"revoked_at":{"type":"string","format":"date-time","nullable":true},"revision_state":{"type":"string","enum":["applied","saved","older"]},"can_revoke":{"type":"boolean"}}},"PersistentAgentProviderSourceDetails":{"type":"object","additionalProperties":false,"required":["configuration_commit","audience","execution_available","subscriptions","subscriptions_next","grants","grants_next","sources"],"properties":{"configuration_commit":{"type":"string","nullable":true},"audience":{"type":"object","additionalProperties":false,"required":["digest","size"],"properties":{"digest":{"type":"string","pattern":"^[0-9a-f]{64}$"},"size":{"type":"integer","minimum":1}}},"execution_available":{"type":"boolean"},"subscriptions":{"type":"array","maxItems":30,"items":{"$ref":"#/components/schemas/PersistentAgentProviderSubscriptionChoice"}},"subscriptions_next":{"type":"string","nullable":true},"grants":{"type":"array","maxItems":30,"items":{"$ref":"#/components/schemas/PersistentAgentProviderSourceGrant"}},"grants_next":{"type":"string","nullable":true},"sources":{"type":"array","maxItems":32,"items":{"$ref":"#/components/schemas/PersistentAgentProviderSavedSource"}}}},"PersistentAgentProviderSourcesPage":{"type":"object","additionalProperties":false,"required":["agent_id","viewer_id","can_manage","details"],"properties":{"agent_id":{"type":"string"},"viewer_id":{"type":"string"},"can_manage":{"type":"boolean"},"details":{"allOf":[{"$ref":"#/components/schemas/PersistentAgentProviderSourceDetails"}],"nullable":true}}},"PersistentAgentSchedulerConversationCredential":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string"},"agent_id":{"type":"string"},"conversation_id":{"type":"string"},"conversation_token":{"type":"string"}},"required":["organization_id","agent_id","conversation_id","conversation_token"]},"PersistentAgentScheduleBinding":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"type":{"type":"string","enum":["schedule"]},"schedule":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["at"]},"at":{"type":"string","format":"date-time","description":"Explicit UTC offset; instant must be exactly representable at microsecond precision."}},"required":["type","at"]},{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["interval"]},"seconds":{"type":"integer","minimum":60,"maximum":31536000},"anchor":{"type":"string","format":"date-time","description":"Explicit UTC offset; instant must be exactly representable at microsecond precision."}},"required":["type","seconds","anchor"]},{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["cron"]},"expression":{"type":"string","description":"Five-field cron; repeated local hours use the first UTC instant."},"timezone":{"type":"string"}},"required":["type","expression","timezone"]}]},"timezone":{"type":"string","description":"Explicit IANA time zone, matching the cron zone when applicable."},"grace_seconds":{"type":"integer","minimum":0,"maximum":86400,"description":"Explicit late one-shot grace. Recurring downtime coalesces to one occurrence; resume skips the unclaimed backlog through its saved boundary."},"text":{"type":"string","maxLength":32768},"conversation_id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}},"required":["id","type","schedule","timezone","grace_seconds","text","conversation_id"]},"PersistentAgentSchedulePreview":{"type":"object","additionalProperties":false,"required":["evaluated_at","timezone","occurrences","one_shot_status"],"properties":{"evaluated_at":{"type":"string","format":"date-time"},"timezone":{"type":"string"},"one_shot_status":{"type":["string","null"],"enum":["upcoming","within_grace","expired",null]},"occurrences":{"type":"array","maxItems":5,"items":{"type":"object","additionalProperties":false,"required":["scheduled_at","local_at"],"properties":{"scheduled_at":{"type":"string","format":"date-time"},"local_at":{"type":"string","format":"date-time"}}}}}},"PersistentAgentSegmentSelection":{"type":"object","additionalProperties":false,"properties":{"provider":{"type":"string"},"model":{"type":"string"},"max_model_calls":{"type":"integer","minimum":1,"maximum":64},"max_tool_calls":{"type":"integer","minimum":1,"maximum":128},"max_output_tokens":{"type":"integer","minimum":1,"maximum":2000000},"timeout_seconds":{"type":"integer","minimum":1,"maximum":300},"service_tier":{"type":["string","null"]},"repositories":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"properties":{"repository_id":{"type":"string"},"commit":{"type":"string","pattern":"^[0-9a-f]{40}$"}},"required":["repository_id","commit"]}}},"required":["provider","model","max_model_calls","max_tool_calls","max_output_tokens","timeout_seconds","service_tier","repositories"]},"PersistentAgentSegmentSeed":{"type":"object","additionalProperties":false,"properties":{"schema":{"type":"integer","enum":[1,2,3]},"task_id":{"type":"string"},"segment_id":{"type":"string"},"configuration_commit":{"type":"string","pattern":"^[0-9a-f]{40}$"},"input_commit":{"type":"string","pattern":"^[0-9a-f]{40}$"},"state_commit":{"type":"string","pattern":"^[0-9a-f]{40}$"},"selection":{"$ref":"#/components/schemas/PersistentAgentSegmentSelection"},"input":{"type":"object","additionalProperties":false,"properties":{"message":{"type":"string"},"instructions":{"type":"object","additionalProperties":false,"properties":{"system":{"type":["string","null"]},"developer":{"type":["string","null"]},"developer_context":{"type":["string","null"]}},"required":["system","developer","developer_context"]},"model":{"type":"string"},"tools":{"type":"array","maxItems":64,"items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"description":{"type":"string"},"parameters":{"type":"object","additionalProperties":true}},"required":["name","description","parameters"]}},"workspace":{"type":"string","description":"/workspace for schemas 1/2; the exact task/configuration portable-home root for schema 3."},"max_model_calls":{"type":"integer","minimum":1,"maximum":64},"max_tool_calls":{"type":"integer","minimum":1,"maximum":128},"timeout_seconds":{"type":"integer","minimum":1,"maximum":300},"max_output_tokens":{"type":"integer","minimum":1,"maximum":2000000},"service_tier":{"type":["string","null"]},"history":{"$ref":"#/components/schemas/PersistentAgentSegmentHistory"}},"required":["message","instructions","model","tools","workspace","max_model_calls","max_tool_calls","timeout_seconds","max_output_tokens","service_tier"]},"workspace":{"$ref":"#/components/schemas/PersistentAgentWorkspaceSpec"}},"required":["schema","task_id","segment_id","configuration_commit","input_commit","state_commit","selection","input"]},"PersistentAgentSegmentSeedReceipt":{"type":"object","additionalProperties":false,"properties":{"scope":{"type":"object","additionalProperties":false,"properties":{"task_id":{"type":"string"},"segment_id":{"type":"string"},"generation":{"type":"integer","minimum":1,"maximum":2147483646},"claim_id":{"type":"string"}},"required":["task_id","segment_id","generation","claim_id"]},"seed":{"$ref":"#/components/schemas/PersistentAgentSegmentSeed"},"digest":{"type":"string","pattern":"^[0-9a-f]{64}$"},"commit":{"type":"string","pattern":"^[0-9a-f]{40}$"}},"required":["scope","seed","digest","commit"]},"PersistentAgentSegmentCaptureSelection":{"type":"object","additionalProperties":false,"properties":{"provider":{"type":"string"},"model":{"type":"string"},"max_model_calls":{"type":"integer","minimum":1,"maximum":64},"max_tool_calls":{"type":"integer","minimum":1,"maximum":128},"max_output_tokens":{"type":"integer","minimum":1,"maximum":2000000},"timeout_seconds":{"type":"integer","minimum":1,"maximum":300},"service_tier":{"type":["string","null"]},"repositories":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"properties":{"repository_id":{"type":"string"},"commit":{"type":"string","pattern":"^[0-9a-f]{40}$"}},"required":["repository_id","commit"]}}},"required":["provider","model","max_model_calls","max_tool_calls","max_output_tokens","timeout_seconds","service_tier"],"description":"Omit repositories to capture every configured work repository at its default branch. The first canonical seed fixes those immutable commits for all retries."},"PersistentAgentSegmentHistory":{"type":"object","additionalProperties":false,"description":"Schema 2 seeds retain bounded completed text exchanges from the pinned state commit, with the same conversation, principal, requester and configuration. History contains no instructions or tool authority.","properties":{"schema":{"type":"integer","enum":[1]},"source_commit":{"type":"string","pattern":"^[0-9a-f]{40}$"},"truncated":{"type":"boolean"},"turns":{"type":"array","maxItems":16,"items":{"type":"object","additionalProperties":false,"properties":{"task_id":{"type":"string"},"input_id":{"type":"string"},"user":{"type":"string"},"assistant":{"type":"string"}},"required":["task_id","input_id","user","assistant"]}}},"required":["schema","source_commit","truncated","turns"]},"PersistentAgentTaskCheckpointRequest":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string"},"agent_id":{"type":"string"},"task_id":{"type":"string"},"first_execution_run_id":{"type":"string"},"expected_head":{"type":"string"},"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"operation_key":{"type":"string"},"checkpoint":{"type":["object","null"],"additionalProperties":true,"description":"Null retains the exact canonical continuation at expected_head, or initializes an empty continuation before any model work. Use null when publishing only an outcome to avoid JavaScript numeric round-trip changes. Explicit documents remain subject to exact journal preservation."},"outcome":{"type":"string","enum":["running","yielded","waiting","blocked","completed","failed","cancelled"]},"wait_id":{"type":["string","null"]},"result":{"type":["object","null"],"additionalProperties":true},"reason":{"type":["string","null"]}},"required":["organization_id","agent_id","task_id","first_execution_run_id","expected_head","scope","operation_key","checkpoint","outcome","wait_id","result","reason"]},"PersistentAgentTaskCheckpointReceipt":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string"},"agent_id":{"type":"string"},"task_id":{"type":"string"},"first_execution_run_id":{"type":"string"},"operation_key":{"type":"string"},"commit":{"type":"string"},"conversation_id":{"type":"string"},"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"outcome":{"type":"string","enum":["running","yielded","waiting","blocked","completed","failed","cancelled"]},"checkpoint_sequence":{"type":"integer","minimum":1}},"required":["organization_id","agent_id","task_id","first_execution_run_id","operation_key","commit","conversation_id","scope","outcome","checkpoint_sequence"]},"PersistentAgentTaskWorkerSnapshot":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string"},"agent_id":{"type":"string"},"task_id":{"type":"string"},"first_execution_run_id":{"type":"string"},"head":{"type":"string"},"state":{"type":"object","additionalProperties":false,"properties":{"schema":{"type":"integer","enum":[1]},"task_id":{"type":"string"},"status":{"type":"string","enum":["queued","running","yielded","waiting","blocked","completed","failed","cancelled"]},"generation":{"type":"integer","minimum":0},"execution_sequence":{"type":"integer","minimum":0},"segment_sequence":{"type":"integer","minimum":0},"checkpoint_sequence":{"type":"integer","minimum":0},"claim_id":{"type":["string","null"]},"wait_id":{"type":["string","null"]},"result_id":{"type":["string","null"]},"reason":{"type":["string","null"]}},"required":["schema","task_id","status","generation","execution_sequence","segment_sequence","checkpoint_sequence","claim_id","wait_id","result_id","reason"]},"deadline_at":{"type":"string"},"conversation_id":{"type":"string"},"wake_at":{"type":"string","format":"date-time","maxLength":64,"description":"Future canonical timer wait; absent when no timer is pending or the due timer cannot resume."},"resume_segment":{"type":"boolean","enum":[true]}},"required":["organization_id","agent_id","task_id","first_execution_run_id","head","state","deadline_at","conversation_id"]},"PersistentAgentTaskWorkerClaim":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string"},"agent_id":{"type":"string"},"task_id":{"type":"string"},"first_execution_run_id":{"type":"string"},"head":{"type":"string"},"state":{"type":"object","additionalProperties":false,"properties":{"schema":{"type":"integer","enum":[1]},"task_id":{"type":"string"},"status":{"type":"string","enum":["queued","running","yielded","waiting","blocked","completed","failed","cancelled"]},"generation":{"type":"integer","minimum":0},"execution_sequence":{"type":"integer","minimum":0},"segment_sequence":{"type":"integer","minimum":0},"checkpoint_sequence":{"type":"integer","minimum":0},"claim_id":{"type":["string","null"]},"wait_id":{"type":["string","null"]},"result_id":{"type":["string","null"]},"reason":{"type":["string","null"]}},"required":["schema","task_id","status","generation","execution_sequence","segment_sequence","checkpoint_sequence","claim_id","wait_id","result_id","reason"]},"deadline_at":{"type":"string"},"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"worker_token":{"type":"string"},"task":{"type":"object","additionalProperties":true},"configuration":{"type":"object","additionalProperties":true},"input":{"type":"object","additionalProperties":true},"checkpoint":{"type":["object","null"],"additionalProperties":true},"conversation_id":{"type":"string"},"tool_token":{"type":"string","description":"Private scoped tool credential, distinct from inference authority."},"segment_seed":{"anyOf":[{"$ref":"#/components/schemas/PersistentAgentSegmentSeed"},{"type":"null"}]},"compute_result":{"$ref":"#/components/schemas/PersistentAgentComputeResult"},"compute":{"$ref":"#/components/schemas/PersistentAgentComputeSelection"},"wake_at":{"type":"string","format":"date-time","maxLength":64,"description":"Future canonical timer wait; absent when no timer is pending or the due timer cannot resume."},"timer_wait":{"type":"object","additionalProperties":false,"required":["schema","id","wake_at"],"properties":{"schema":{"type":"integer","enum":[1]},"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},"wake_at":{"type":"string","format":"date-time","maxLength":64}}},"input_wait":{"type":"object","additionalProperties":false,"required":["schema","id","question","instructions"],"properties":{"schema":{"type":"integer","enum":[1]},"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},"question":{"type":"string","minLength":1,"maxLength":8192},"instructions":{"type":"string","minLength":1,"maxLength":4096}}},"approval_wait":{"type":"object","additionalProperties":false,"required":["id","expires_at"],"properties":{"id":{"type":"string"},"expires_at":{"type":"string","format":"date-time"}}},"resume_segment":{"type":"boolean","enum":[true]}},"required":["organization_id","agent_id","task_id","first_execution_run_id","head","state","deadline_at","scope","worker_token","task","configuration","input","checkpoint","conversation_id","tool_token","segment_seed"]},"PersistentAgentToolAction":{"type":"object","additionalProperties":false,"properties":{"schema":{"type":"integer","enum":[1]},"id":{"type":"string"},"task_id":{"type":"string"},"tool":{"type":"string"},"arguments":{"type":"object","additionalProperties":true}},"required":["schema","id","task_id","tool","arguments"]},"PersistentAgentToolResult":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"},"text":{"type":"string"},"data":{},"is_error":{"type":"boolean"}},"required":["id","name","text","data","is_error"]},"PersistentAgentToolRequest":{"type":"object","additionalProperties":false,"properties":{"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"action":{"$ref":"#/components/schemas/PersistentAgentToolAction"}},"required":["scope","action"]},"PersistentAgentToolReceipt":{"type":"object","additionalProperties":false,"properties":{"state":{"type":"string","enum":["confirmed","failed","uncertain","approval_wait"]},"action":{"$ref":"#/components/schemas/PersistentAgentToolAction"},"result":{"oneOf":[{"$ref":"#/components/schemas/PersistentAgentToolResult"},{"type":"null"}]},"commit":{"type":"string","pattern":"^[0-9a-f]{40}$"}},"required":["state","action","result","commit"]},"PersistentAgentUpdate":{"type":"object","additionalProperties":false,"required":["sequence","task_id","conversation_id","status","reason","result","unread"],"properties":{"sequence":{"type":"integer","minimum":0,"maximum":2147483646},"task_id":{"type":"string"},"conversation_id":{"type":"string"},"status":{"type":"string","enum":["completed","failed","cancelled","blocked"]},"reason":{"type":["string","null"]},"result":{"type":["object","null"],"additionalProperties":true},"unread":{"type":"boolean"}}},"PersistentAgentUpdates":{"type":"object","additionalProperties":false,"required":["agent_id","viewer_id","entries","next_before","read_through","can_mark_read"],"properties":{"agent_id":{"type":"string"},"viewer_id":{"type":"string"},"entries":{"type":"array","maxItems":30,"items":{"$ref":"#/components/schemas/PersistentAgentUpdate"}},"next_before":{"type":["integer","null"]},"read_through":{"type":"integer","minimum":0,"maximum":2147483646},"can_mark_read":{"type":"boolean"}}},"PersistentAgentWebhookEndpoint":{"type":"object","additionalProperties":false,"properties":{"locator":{"type":"string"},"binding_id":{"type":"string"},"generation":{"type":"integer","minimum":1},"path":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"revoked_at":{"type":["string","null"],"format":"date-time"},"actions":{"type":"object","additionalProperties":false,"properties":{"can_rotate":{"type":"boolean"},"can_revoke":{"type":"boolean"},"can_bind":{"type":"boolean"}},"required":["can_rotate","can_revoke","can_bind"]}},"required":["locator","binding_id","generation","path","created_at","revoked_at","actions"]},"PersistentAgentWebhookPageEndpoint":{"type":"object","additionalProperties":false,"properties":{"locator":{"type":"string"},"binding_id":{"type":"string"},"generation":{"type":"integer","minimum":1},"path":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"revoked_at":{"type":["string","null"],"format":"date-time"},"actions":{"type":"object","additionalProperties":false,"properties":{"can_rotate":{"type":"boolean"},"can_revoke":{"type":"boolean"},"can_bind":{"type":"boolean"}},"required":["can_rotate","can_revoke","can_bind"]},"bound_to_active_revision":{"type":"boolean"}},"required":["locator","binding_id","generation","path","created_at","revoked_at","actions","bound_to_active_revision"]},"PersistentAgentWebhookTrace":{"type":["object","null"],"additionalProperties":false,"properties":{"input_id":{"type":"string"},"disposition":{"type":"string","enum":["published","skipped"]},"task_id":{"type":["string","null"]},"task_status":{"type":["string","null"],"enum":["queued","running","yielded","waiting","blocked","completed","failed","cancelled",null]},"reason":{"type":["string","null"]}},"required":["input_id","disposition","task_id","task_status","reason"]},"PersistentAgentWebhookEvent":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string"},"endpoint_id":{"type":"string"},"event_id":{"type":"string"},"transport_status":{"type":"string","enum":["received","filtered","published","discarded"]},"received_at":{"type":"string","format":"date-time"},"trace":{"$ref":"#/components/schemas/PersistentAgentWebhookTrace"}},"required":["id","endpoint_id","event_id","transport_status","received_at","trace"]},"PersistentAgentWebhookSources":{"type":"object","additionalProperties":false,"properties":{"agent_id":{"type":"string"},"version":{"type":"string","pattern":"^[0-9a-f]{40}$"},"enabled":{"type":"boolean"},"can_create":{"type":"boolean"},"endpoints":{"type":"array","maxItems":30,"items":{"$ref":"#/components/schemas/PersistentAgentWebhookPageEndpoint"}},"events":{"type":"array","maxItems":30,"items":{"$ref":"#/components/schemas/PersistentAgentWebhookEvent"}},"pagination":{"type":"object","additionalProperties":false,"properties":{"endpoints_next":{"type":["string","null"]},"events_next":{"type":["string","null"]}},"required":["endpoints_next","events_next"]}},"required":["agent_id","version","enabled","can_create","endpoints","events","pagination"]},"PersistentAgentWebhookSetup":{"type":"object","additionalProperties":false,"properties":{"endpoint":{"$ref":"#/components/schemas/PersistentAgentWebhookEndpoint"},"signing_key":{"type":["string","null"],"description":"Revealed once on successful new setup/rotation only. Exact retries return null. Never cached or included in page/history responses."}},"required":["endpoint","signing_key"]},"PersistentAgentWebhookPreview":{"type":"object","additionalProperties":false,"required":["matches","event_type","body_digest"],"properties":{"matches":{"type":"boolean"},"event_type":{"type":"string"},"body_digest":{"type":"string","pattern":"^[0-9a-f]{64}$"}}},"PersistentAgentWorkerScope":{"type":"object","additionalProperties":false,"properties":{"task_id":{"type":"string","pattern":"^task_[a-zA-Z0-9_-]{1,70}$"},"segment_id":{"type":"string","maxLength":128},"generation":{"type":"integer","minimum":1},"claim_id":{"type":"string","maxLength":128}},"required":["task_id","segment_id","generation","claim_id"]},"PersistentAgentWorkerModelCall":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","pattern":"^model_[0-9a-f]{64}$"},"provider":{"type":"string","maxLength":128},"model":{"type":"string","maxLength":128},"request":{"type":"object","description":"Exact bounded canonical inference request, including segment, ordinal, kind and passive provider parameters."}},"required":["id","provider","model","request"]},"PersistentAgentWorkerModelOutput":{"type":"object","additionalProperties":false,"properties":{"events":{"type":["array","null"],"maxItems":1024,"items":{"type":"object"},"description":"Exact serialized Roder events. Provider usage is verified by the trusted server policy."}},"required":["events"]},"PersistentAgentWorkerPrepareRequest":{"type":"object","additionalProperties":false,"properties":{"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"call":{"$ref":"#/components/schemas/PersistentAgentWorkerModelCall"}},"required":["scope","call"]},"PersistentAgentWorkerCompleteRequest":{"type":"object","additionalProperties":false,"properties":{"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"call":{"$ref":"#/components/schemas/PersistentAgentWorkerModelCall"},"output":{"$ref":"#/components/schemas/PersistentAgentWorkerModelOutput"}},"required":["scope","call","output"]},"PersistentAgentWorkspaceCommandDispatch":{"type":"object","additionalProperties":false,"properties":{"schema":{"type":"integer","enum":[1]},"action":{"$ref":"#/components/schemas/PersistentAgentToolAction"},"binding":{"type":"object","additionalProperties":false,"properties":{"plan_id":{"type":"string"},"machine_name":{"type":"string"},"region":{"type":"string"},"provider_workspace":{"type":"string"},"compute_expires_at":{"type":"string"},"seed_digest":{"type":"string"}},"required":["plan_id","machine_name","region","provider_workspace","compute_expires_at","seed_digest"]},"spec":{"$ref":"#/components/schemas/PersistentAgentWorkspaceSpec"},"deadline_unix_ms":{"type":"integer","minimum":1,"maximum":9007199254740991},"source":{"oneOf":[{"type":"null"},{"type":"object","additionalProperties":false,"properties":{"sequence":{"type":"integer","minimum":1,"maximum":2147483646},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["sequence","sha256"]}]}},"required":["schema","action","binding","spec","deadline_unix_ms","source"]},"PersistentAgentWorkspaceCommandFrame":{"type":"object","additionalProperties":false,"properties":{"schema":{"type":"integer","enum":[1]},"state":{"type":"string","enum":["completed"]},"drained":{"type":"boolean","enum":[true]},"action_id":{"type":"string"},"command_digest":{"type":"string"},"exit_code":{"type":"integer","minimum":0,"maximum":255},"stdout":{"type":"string","maxLength":2048,"description":"At most 2048 UTF-8 bytes."},"stderr":{"type":"string","maxLength":2048,"description":"At most 2048 UTF-8 bytes."},"truncated":{"type":"boolean"}},"required":["schema","state","drained","action_id","command_digest","exit_code","stdout","stderr","truncated"]},"PersistentAgentWorkspaceSpec":{"type":"object","additionalProperties":false,"properties":{"task_id":{"type":"string","pattern":"^task_[a-zA-Z0-9_-]{1,70}$"},"configuration_commit":{"type":"string","pattern":"^(?!0{40}$)[0-9a-f]{40}$"},"image":{"type":"string","maxLength":256,"description":"Explicit nonmoving provider image version; the trusted runtime independently verifies the applied image."},"setup_digest":{"type":"string","pattern":"^[0-9a-f]{64}$"},"durable_paths":{"type":"array","maxItems":64,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200},"description":"Sorted relative regular-file paths; no overlaps, credentials or reserved paths."}},"required":["task_id","configuration_commit","image","setup_digest","durable_paths"]},"PersistentAgentWorkspaceFile":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string","minLength":1,"maxLength":200},"mode":{"type":"integer","enum":[384,448]},"size":{"type":"integer","minimum":0,"maximum":65536},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"content":{"type":"string","maxLength":87384,"description":"Canonical strict base64; decoded bytes must match size and sha256."}},"required":["path","mode","size","sha256","content"]},"PersistentAgentWorkspaceSnapshot":{"type":"object","additionalProperties":false,"properties":{"schema":{"type":"integer","enum":[1]},"spec":{"$ref":"#/components/schemas/PersistentAgentWorkspaceSpec"},"files":{"type":"array","maxItems":64,"items":{"$ref":"#/components/schemas/PersistentAgentWorkspaceFile"}}},"required":["schema","spec","files"],"description":"Bounded portable snapshot: exact declared file order, at most 512 KiB decoded total and 1 MiB canonical JSON. No image/runtime authority or provider allocation is stored."},"PersistentAgentWorkspacePointer":{"type":"object","additionalProperties":false,"properties":{"sequence":{"type":"integer","minimum":1,"maximum":2147483646},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"required":["sequence","sha256"]},"PersistentAgentWorkspaceRestore":{"type":"object","additionalProperties":false,"properties":{"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"commit":{"type":"string","pattern":"^(?!0{40}$)[0-9a-f]{40}$"},"spec":{"$ref":"#/components/schemas/PersistentAgentWorkspaceSpec"},"snapshot":{"allOf":[{"$ref":"#/components/schemas/PersistentAgentWorkspaceSnapshot"}],"nullable":true},"sequence":{"type":"integer","minimum":0,"maximum":2147483646}},"required":["scope","commit","spec","snapshot","sequence"],"description":"Private no-store Activity response. Sequence zero has null snapshot; positive sequence restores its exact canonical capsule. Keep private data outside Temporal Workflow history."},"PersistentAgentWorkspaceCheckpointReceipt":{"type":"object","additionalProperties":false,"properties":{"scope":{"$ref":"#/components/schemas/PersistentAgentWorkerScope"},"commit":{"type":"string","pattern":"^(?!0{40}$)[0-9a-f]{40}$"},"workspace":{"$ref":"#/components/schemas/PersistentAgentWorkspacePointer"}},"required":["scope","commit","workspace"]},"PersistentAgentWorkRepository":{"type":"object","properties":{"repository_id":{"type":"string"},"permission":{"type":"string","enum":["read","write"]},"write_branches":{"type":"array","items":{"type":"string"},"maxItems":32}},"required":["repository_id","permission"],"additionalProperties":false},"PersistentAgentProviderEventBinding":{"type":"object","description":"Saved provider source draft. Owner consent is separate and the receiving adapter remains unavailable for activation.","additionalProperties":false,"required":["type","id","subscription_id","max_events_per_day","conversation_id","text"],"properties":{"type":{"type":"string","enum":["provider_event"]},"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"subscription_id":{"type":"string","pattern":"^agent_trigger_subscription_[a-zA-Z0-9]{1,100}$"},"max_events_per_day":{"type":"integer","minimum":1,"maximum":1000},"conversation_id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},"text":{"type":"string","minLength":1,"maxLength":32768}}},"PersistentAgentPlatformEventBinding":{"type":"object","additionalProperties":false,"required":["type","id","repository_id","event_types","max_events_per_day","conversation_id","text"],"properties":{"type":{"type":"string","enum":["platform_event"]},"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"repository_id":{"type":"string","pattern":"^repo_[a-zA-Z0-9]{1,100}$"},"event_types":{"type":"array","minItems":1,"maxItems":3,"uniqueItems":true,"items":{"type":"string","enum":["change.opened","change.code_updated","change.landed"]}},"max_events_per_day":{"type":"integer","minimum":1,"maximum":1000},"conversation_id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},"text":{"type":"string","minLength":1,"maxLength":32768}}},"PersistentAgentWebhookBinding":{"type":"object","description":"Saved webhook draft. Endpoint consent and ingress adapters are not yet qualified for activation.","properties":{"type":{"type":"string","enum":["webhook"]},"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"endpoint_id":{"type":"string","pattern":"^webhook_[a-zA-Z0-9_-]{16,96}$","description":"Non-secret server-owned endpoint reference; never grants authority."},"conversation_id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},"text":{"type":"string","minLength":1,"maxLength":32768},"event_types":{"type":"array","minItems":1,"maxItems":16,"uniqueItems":true,"items":{"type":"string","pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,79}$"}},"max_events_per_day":{"type":"integer","minimum":1,"maximum":1000}},"required":["type","id","endpoint_id","conversation_id","text","event_types","max_events_per_day"],"additionalProperties":false},"PersistentAgentConfiguration":{"type":"object","properties":{"avatar":{"$ref":"#/components/schemas/PersistentAgentAvatar"},"instructions":{"type":"string","maxLength":64000},"work_repositories":{"type":"array","items":{"$ref":"#/components/schemas/PersistentAgentWorkRepository"},"maxItems":20},"skills":{"type":"array","items":{"$ref":"#/components/schemas/AutomationSkillReference"},"maxItems":4},"tools":{"type":"array","items":{"type":"string","pattern":"^[a-zA-Z0-9_.:-]{1,128}$"},"maxItems":32},"connection_grants":{"type":"array","items":{"type":"string","pattern":"^[a-zA-Z0-9_.:-]{1,128}$"},"maxItems":32},"trigger_bindings":{"type":"array","items":{"oneOf":[{"type":"string","pattern":"^[a-zA-Z0-9_.:-]{1,128}$"},{"$ref":"#/components/schemas/PersistentAgentScheduleBinding"},{"$ref":"#/components/schemas/PersistentAgentWebhookBinding"},{"$ref":"#/components/schemas/PersistentAgentPlatformEventBinding"},{"$ref":"#/components/schemas/PersistentAgentProviderEventBinding"}]},"maxItems":32},"destinations":{"type":"array","items":{"type":"string","pattern":"^[a-zA-Z0-9_.:-]{1,128}$"},"maxItems":32},"timezone":{"type":"string","description":"IANA time zone identifier; default UTC."},"model_policy":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["platform_default"]}},"required":["mode"],"additionalProperties":false},{"type":"object","properties":{"provider":{"type":"string"},"model":{"type":"string"}},"required":["provider","model"],"additionalProperties":false}]},"budgets":{"type":"object","properties":{"daily_cents":{"type":"integer","minimum":1,"maximum":1000000},"task_tokens":{"type":"integer","minimum":1,"maximum":2000000},"task_compute_seconds":{"type":"integer","minimum":1,"maximum":86400},"task_deadline_seconds":{"type":"integer","minimum":1,"maximum":604800},"max_concurrent_tasks":{"type":"integer","minimum":1,"maximum":10}},"required":["daily_cents","task_tokens","task_compute_seconds","task_deadline_seconds","max_concurrent_tasks"],"additionalProperties":false},"memory":{"type":"object","properties":{"enabled":{"type":"boolean"},"max_bytes":{"type":"integer","minimum":0,"maximum":1048576}},"required":["enabled","max_bytes"],"additionalProperties":false}},"required":[],"additionalProperties":false},"PersistentAgentAvatar":{"type":["string","null"],"maxLength":64,"description":"Emoji or up to two visible grapheme clusters, at most 64 UTF-8 bytes, without control or bidi override characters. Null selects the default icon. Omission preserves legacy configuration bytes."},"PersistentAgentSummary":{"type":"object","properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"controlling_user_id":{"type":"string"},"name":{"type":"string"},"preview":{"anyOf":[{"type":"null"},{"type":"object","properties":{"text":{"type":"string","maxLength":160},"conversation_id":{"type":"string","maxLength":128}},"required":["text","conversation_id"],"additionalProperties":false}]},"persona":{"anyOf":[{"$ref":"#/components/schemas/PersistentAgentPersona"},{"type":"null"}]},"avatar":{"$ref":"#/components/schemas/PersistentAgentAvatar"},"slug":{"type":"string"},"status":{"type":"string","enum":["draft","active","paused","archived"]},"configuration_revision":{"type":"integer"},"can_manage":{"type":"boolean"},"has_unread_updates":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","organization_id","controlling_user_id","name","slug","status","configuration_revision","can_manage","has_unread_updates","created_at","updated_at"],"additionalProperties":true},"PersistentAgentDetail":{"allOf":[{"$ref":"#/components/schemas/PersistentAgentSummary"},{"type":"object","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/PersistentAgentSavedConfiguration"},{"type":"null"}]},"configuration_version":{"type":["string","null"],"pattern":"^[0-9a-f]{40}$","description":"Opaque version token. Echo the version returned by the server; null denotes an empty stream."},"lifecycle_version":{"type":["string","null"],"pattern":"^[0-9a-f]{40}$","description":"Opaque version token. Echo the version returned by the server; null denotes an empty stream."},"lifecycle_actions":{"type":"array","maxItems":4,"uniqueItems":true,"description":"Currently authorized lifecycle actions for the saved revision and observed state. Publication rechecks current authority and the expected version.","items":{"type":"string","enum":["activate","pause","resume","archive"]}},"setup_pending":{"type":"boolean"},"can_edit_configuration":{"type":"boolean"},"can_reconcile_save":{"type":"boolean","description":"May reconcile an identical previously accepted save; this does not authorize new configuration edits."}},"required":["configuration","configuration_version","lifecycle_version","lifecycle_actions","setup_pending","can_edit_configuration","can_reconcile_save"],"additionalProperties":true}]},"PersistentAgentPagination":{"type":"object","properties":{"limit":{"type":"integer"},"next":{"type":["string","null"]}},"required":["limit"],"additionalProperties":false},"PersistentAgentResponse":{"type":"object","properties":{"agent":{"$ref":"#/components/schemas/PersistentAgentDetail"}},"required":["agent"],"additionalProperties":false},"PersistentAgentCreate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255},"slug":{"type":"string","maxLength":100,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"configuration":{"$ref":"#/components/schemas/PersistentAgentConfiguration"}},"required":["name","slug"],"additionalProperties":false},"PersistentAgentSavedConfiguration":{"type":"object","properties":{"avatar":{"$ref":"#/components/schemas/PersistentAgentAvatar"},"instructions":{"type":"string","maxLength":64000},"work_repositories":{"type":"array","items":{"$ref":"#/components/schemas/PersistentAgentWorkRepository"},"maxItems":20},"skills":{"type":"array","items":{"$ref":"#/components/schemas/AutomationSkillReference"},"maxItems":4},"tools":{"type":"array","items":{"type":"string","pattern":"^[a-zA-Z0-9_.:-]{1,128}$"},"maxItems":32},"connection_grants":{"type":"array","items":{"type":"string","pattern":"^[a-zA-Z0-9_.:-]{1,128}$"},"maxItems":32},"trigger_bindings":{"type":"array","items":{"oneOf":[{"type":"string","pattern":"^[a-zA-Z0-9_.:-]{1,128}$"},{"$ref":"#/components/schemas/PersistentAgentScheduleBinding"},{"$ref":"#/components/schemas/PersistentAgentWebhookBinding"},{"$ref":"#/components/schemas/PersistentAgentPlatformEventBinding"},{"$ref":"#/components/schemas/PersistentAgentProviderEventBinding"}]},"maxItems":32},"destinations":{"type":"array","items":{"type":"string","pattern":"^[a-zA-Z0-9_.:-]{1,128}$"},"maxItems":32},"timezone":{"type":"string","description":"IANA time zone identifier; default UTC."},"model_policy":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["platform_default"]}},"required":["mode"],"additionalProperties":false},{"type":"object","properties":{"provider":{"type":"string"},"model":{"type":"string"}},"required":["provider","model"],"additionalProperties":false}]},"budgets":{"type":"object","properties":{"daily_cents":{"type":"integer","minimum":1,"maximum":1000000},"task_tokens":{"type":"integer","minimum":1,"maximum":2000000},"task_compute_seconds":{"type":"integer","minimum":1,"maximum":86400},"task_deadline_seconds":{"type":"integer","minimum":1,"maximum":604800},"max_concurrent_tasks":{"type":"integer","minimum":1,"maximum":10}},"required":["daily_cents","task_tokens","task_compute_seconds","task_deadline_seconds","max_concurrent_tasks"],"additionalProperties":false},"memory":{"type":"object","properties":{"enabled":{"type":"boolean"},"max_bytes":{"type":"integer","minimum":0,"maximum":1048576}},"required":["enabled","max_bytes"],"additionalProperties":false}},"required":["instructions","work_repositories","skills","tools","connection_grants","trigger_bindings","destinations","timezone","model_policy","budgets","memory"],"additionalProperties":false},"PersistentAgentRepositoryChoice":{"type":"object","required":["id","name","slug","available"],"properties":{"id":{"type":"string"},"name":{"type":["string","null"]},"slug":{"type":["string","null"]},"available":{"type":"boolean"}}},"PersistentAgentsWorkspacePage":{"type":"object","required":["platform_event_types","agents","pagination","creation_enabled","selected_agent","pinned_agent","new_configuration","repository_choices","repository_choices_truncated","organization_id","selected_reference","viewer_id"],"properties":{"updates":{"anyOf":[{"$ref":"#/components/schemas/PersistentAgentUpdates"},{"type":"null"}]},"platform_event_types":{"type":"array","items":{"type":"string","enum":["change.opened","change.code_updated","change.landed"]}},"conversation":{"anyOf":[{"$ref":"#/components/schemas/PersistentAgentConversation"},{"type":"null"}]},"agents":{"type":"array","items":{"$ref":"#/components/schemas/PersistentAgentSummary"}},"pagination":{"$ref":"#/components/schemas/PersistentAgentPagination"},"creation_enabled":{"type":"boolean"},"selected_agent":{"anyOf":[{"$ref":"#/components/schemas/PersistentAgentDetail"},{"type":"null"}]},"pinned_agent":{"anyOf":[{"$ref":"#/components/schemas/PersistentAgentSummary"},{"type":"null"}]},"new_configuration":{"anyOf":[{"$ref":"#/components/schemas/PersistentAgentSavedConfiguration"},{"type":"null"}]},"repository_choices":{"type":"array","items":{"$ref":"#/components/schemas/PersistentAgentRepositoryChoice"}},"repository_choices_truncated":{"type":"boolean"},"organization_id":{"type":"string"},"selected_reference":{"type":["string","null"]},"viewer_id":{"type":"string"}}},"PersistentAgentConversationDirectory":{"type":"object","additionalProperties":false,"required":["items","next_after"],"properties":{"next_after":{"type":["string","null"]},"items":{"type":"array","maxItems":32,"items":{"type":"object","additionalProperties":false,"required":["id","label"],"properties":{"id":{"type":"string","maxLength":128},"label":{"type":"string","maxLength":160}}}}}},"PersistentAgentConversation":{"type":"object","additionalProperties":false,"required":["conversation_id","version","inputs","next_before","can_send","conversations","pending_question","pending_approval"],"properties":{"pending_approval":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/PersistentAgentPendingApproval"}]},"pending_question":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/PersistentAgentPendingQuestion"}]},"conversations":{"$ref":"#/components/schemas/PersistentAgentConversationDirectory"},"conversation_id":{"type":"string"},"version":{"type":["string","null"]},"next_before":{"type":["string","null"]},"can_send":{"type":"boolean"},"inputs":{"type":"array","maxItems":30,"items":{"type":"object","additionalProperties":false,"required":["input","task"],"properties":{"input":{"$ref":"#/components/schemas/PersistentAgentInput"},"task":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["id","status","reason","result"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["queued","running","yielded","waiting","blocked","completed","failed","cancelled"]},"reason":{"type":["string","null"]},"result":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":true}]}}}]}}}}}},"PersistentAgentPendingQuestion":{"type":"object","additionalProperties":false,"required":["task_id","wait_id","question","expires_at","can_reply"],"properties":{"task_id":{"type":"string"},"wait_id":{"type":"string"},"question":{"type":"string","maxLength":8192},"expires_at":{"type":"string","format":"date-time"},"can_reply":{"type":"boolean"}}},"PersistentAgentInput":{"type":"object","additionalProperties":false,"required":["id","conversation_id","status","version","message"],"properties":{"id":{"type":"string"},"conversation_id":{"type":"string"},"status":{"type":"string","enum":["published"]},"version":{"type":"string"},"message":{"oneOf":[{"$ref":"#/components/schemas/PersistentAgentOrdinaryMessage"},{"$ref":"#/components/schemas/PersistentAgentQuestionReplyMessage"}]}}},"PersistentAgentInputReplyCoordinates":{"type":"object","additionalProperties":false,"required":["task_id","wait_id"],"properties":{"task_id":{"type":"string","pattern":"^task_[a-zA-Z0-9_-]{1,70}$"},"wait_id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}}},"PersistentAgentOrdinaryMessage":{"type":"object","additionalProperties":false,"required":["schema","id","kind","actor_user_id","agent_id","accepted_at","conversation_id","text","mode","operation_key"],"properties":{"schema":{"type":"integer","enum":[1,2]},"id":{"type":"string"},"kind":{"type":"string","enum":["message"]},"agent_id":{"type":"string"},"actor_user_id":{"type":"string"},"accepted_at":{"type":"string","format":"date-time"},"operation_key":{"type":"string"},"conversation_id":{"type":"string"},"text":{"type":"string"},"mode":{"type":"string","enum":["steer","follow_up"]}}},"PersistentAgentQuestionReplyMessage":{"type":"object","additionalProperties":false,"required":["schema","id","kind","actor_user_id","agent_id","accepted_at","conversation_id","text","mode","operation_key","reply_to"],"properties":{"schema":{"type":"integer","enum":[3]},"id":{"type":"string"},"kind":{"type":"string","enum":["message"]},"agent_id":{"type":"string"},"actor_user_id":{"type":"string"},"accepted_at":{"type":"string","format":"date-time"},"operation_key":{"type":"string"},"conversation_id":{"type":"string"},"text":{"type":"string"},"mode":{"type":"string","enum":["steer"]},"reply_to":{"type":"object","additionalProperties":false,"required":["schema","kind","task_id","wait_id"],"properties":{"task_id":{"type":"string","pattern":"^task_[a-zA-Z0-9_-]{1,70}$"},"wait_id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},"schema":{"type":"integer","enum":[1]},"kind":{"type":"string","enum":["input_reply"]}}}}},"OrganizationPreviewsPage":{"type":"object","required":["previews","filters","choices","pagination"],"properties":{"previews":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PreviewEnvironmentRecord"},{"type":"object","required":["app_name","app_slug","owner_name","change_number","health","latest_operation_status"],"properties":{"app_name":{"type":"string"},"app_slug":{"type":"string"},"owner_name":{"type":["string","null"]},"change_number":{"type":["integer","null"]},"health":{"type":"string","enum":["degraded","running","starting","stopped"]},"latest_operation_status":{"type":["string","null"]}}}]}},"filters":{"type":"object","properties":{"app":{"type":"string"},"owner":{"type":"string"},"change":{"type":"string"},"health":{"type":"string"},"expiry":{"type":"string"}}},"choices":{"type":"object","required":["apps","owners"],"properties":{"apps":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"owners":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}}}},"pagination":{"type":"object","required":["page","per_page","total_count","total_pages"],"properties":{"page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"}}}}},"PreviewAdministrationPage":{"type":"object","required":["app","preview","profile","deployment","bindings","profile_bindings","operations","can_manage","actions","comparison","sharing_approvals","configuration_errors","binding_sources","owned_secrets","storage_bindings"],"properties":{"app":{"$ref":"#/components/schemas/HostedApp"},"preview":{"$ref":"#/components/schemas/PreviewEnvironmentRecord"},"profile":{"$ref":"#/components/schemas/PreviewProfileRecord"},"deployment":{"oneOf":[{"$ref":"#/components/schemas/DeploymentDetailsPage"},{"type":"null"}]},"bindings":{"type":"array","items":{"$ref":"#/components/schemas/PreviewSecretBinding"}},"profile_bindings":{"type":"array","items":{"$ref":"#/components/schemas/PreviewSecretBinding"}},"operations":{"type":"array","items":{"$ref":"#/components/schemas/PreviewLifecycleOperation"}},"placement_locations":{"type":"array","items":{"$ref":"#/components/schemas/HostingLocation"}},"storage_bindings":{"type":"array","items":{"$ref":"#/components/schemas/PreviewStorageBindingChoice"}},"can_manage":{"type":"boolean"},"actions":{"type":"object","required":["deploy","pause","resume","configure","rotate_secrets","review_source","policy","delete"],"additionalProperties":false,"properties":{"deploy":{"type":"boolean"},"pause":{"type":"boolean"},"resume":{"type":"boolean"},"configure":{"type":"boolean"},"rotate_secrets":{"type":"boolean"},"review_source":{"type":"boolean"},"policy":{"type":"boolean"},"delete":{"type":"boolean"}}},"comparison":{"type":"object","nullable":true,"additionalProperties":true,"properties":{"runtime_consumers":{"type":"array","items":{"$ref":"#/components/schemas/PreviewRuntimeSecretConsumer"}},"configuration":{"type":"array","items":{"$ref":"#/components/schemas/PreviewServiceConfigurationComparison"}}}},"sharing_approvals":{"oneOf":[{"$ref":"#/components/schemas/PreviewSharingApprovals"},{"type":"null"}]},"binding_sources":{"type":"array","items":{"$ref":"#/components/schemas/PreviewBindingSource"}},"owned_secrets":{"type":"array","items":{"$ref":"#/components/schemas/PreviewOwnedSecret"}},"configuration_errors":{"type":"object","additionalProperties":{"type":"string"}}}},"PreviewEnvironmentRecord":{"type":"object","required":["id","hosted_app_id","app_environment_id","app_preview_profile_id","source_revision","snapshot_version","generation","access","retained","expires_at","status","name","slug","profile_name","urls"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"app_environment_id":{"type":"string"},"app_preview_profile_id":{"type":"string"},"vcs_change_id":{"type":"string","nullable":true},"created_by_user_id":{"oneOf":[{"type":"string"},{"type":"integer"},{"type":"null"}]},"source_revision":{"type":"string"},"snapshot_version":{"type":"integer"},"generation":{"type":"integer"},"access":{"type":"string","enum":["org_members","public"]},"retained":{"type":"boolean"},"expires_at":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"status":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"profile_name":{"type":"string"},"resource_overrides":{"$ref":"#/components/schemas/PreviewResourceOverrides"},"urls":{"type":"array","items":{"type":"object","required":["hostname","dns_status","tls_status"],"properties":{"hostname":{"type":"string"},"dns_status":{"type":"string"},"tls_status":{"type":"string"}}}}}},"PreviewProfileRecord":{"type":"object","required":["id","hosted_app_id","source_environment_id","name","slug","automatic","ttl_days","configuration"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"source_environment_id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"automatic":{"type":"boolean"},"ttl_days":{"type":"integer"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"configuration":{"$ref":"#/components/schemas/PreviewDefaultsConfiguration"}}},"PreviewDefaultsConfiguration":{"type":"object","properties":{"variables":{"type":"object","additionalProperties":{"type":"string"}},"build_variables":{"type":"object","additionalProperties":{"type":"string"}},"required_keys":{"type":"array","items":{"type":"string"}},"service_resources":{"$ref":"#/components/schemas/PreviewResourceOverrides"}}},"PreviewResourceOverrides":{"type":"object","description":"Service public IDs mapped to resource overrides. Omitted fields inherit; an empty map removes all local overrides. Null reservations select platform defaults.","additionalProperties":{"$ref":"#/components/schemas/PreviewResourceSettings"}},"PreviewResourceSettings":{"type":"object","additionalProperties":false,"properties":{"cpu_mhz":{"type":"integer","minimum":0,"nullable":true},"cpu_hard_limit":{"type":"boolean"},"memory_mb":{"type":"integer","minimum":0,"nullable":true},"memory_max_mb":{"type":"integer","minimum":1,"nullable":true},"disk_mb":{"type":"integer","minimum":0,"nullable":true}}},"PreviewSecretBinding":{"type":"object","required":["id","env_key","mode","pinned","available"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string"},"app_environment_id":{"type":"string","nullable":true},"app_preview_profile_id":{"type":"string","nullable":true},"secret_id":{"type":"string","nullable":true},"secret_version_id":{"type":"string","nullable":true},"env_key":{"type":"string"},"mode":{"type":"string","enum":["linked","masked"]},"source_slug":{"type":"string","nullable":true},"version_number":{"type":"integer","nullable":true},"pinned":{"type":"boolean"},"available":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}},"PreviewLifecycleOperation":{"type":"object","required":["id","action","status","generation"],"properties":{"id":{"type":"string"},"app_preview_id":{"type":"string"},"created_by_user_id":{"oneOf":[{"type":"string"},{"type":"integer"},{"type":"null"}]},"action":{"type":"string","enum":["pause","archive","delete","expire","close"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","canceled"]},"generation":{"type":"integer"},"failure_message":{"type":"string","nullable":true},"started_at":{"type":"string","nullable":true},"finished_at":{"type":"string","nullable":true},"created_at":{"type":"string"},"updated_at":{"type":"string"}}},"PreviewRuntimeSecretConsumer":{"type":"object","required":["runtime_instance_id","app_service_id","status","keys"],"properties":{"runtime_instance_id":{"type":"string"},"app_service_id":{"type":"string"},"app_release_id":{"type":"string","nullable":true},"status":{"type":"string","enum":["unknown","current","stale","unavailable"]},"keys":{"type":"array","items":{"type":"object","required":["env_key","available","stale"],"properties":{"env_key":{"type":"string"},"secret_id":{"type":"string","nullable":true},"loaded_version_id":{"type":"string","nullable":true},"selected_version_id":{"type":"string","nullable":true},"available":{"type":"boolean"},"stale":{"type":"boolean"}}}}}},"PreviewStorageBindingChoice":{"type":"object","required":["binding_id","name","mount_path","read_only","source_resource_name","selected_resource_id","resources"],"properties":{"binding_id":{"type":"string"},"name":{"type":"string"},"mount_path":{"type":"string","nullable":true},"read_only":{"type":"boolean"},"source_resource_name":{"type":"string"},"selected_resource_id":{"type":"string","nullable":true},"resources":{"type":"array","items":{"type":"object","required":["id","name","provider","capacity_gb","location_id","shared"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"provider":{"type":"string"},"capacity_gb":{"type":"integer","nullable":true},"location_id":{"type":"string","nullable":true},"shared":{"type":"boolean"}}}}}},"PreviewBackingResource":{"type":"object","required":["binding_id","name","binding_type","resource_type","resource_id","resource_name","resource_status","required","read_only","mount_path","environment_variable_name"],"properties":{"binding_id":{"type":"string"},"name":{"type":"string"},"binding_type":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"resource_environment_id":{"type":"string","nullable":true},"network_peer_id":{"type":"string","nullable":true},"network_space_id":{"type":"string","nullable":true},"network_dns_suffix":{"type":"string","nullable":true},"network_available":{"type":"boolean","nullable":true},"resource_name":{"type":"string"},"resource_status":{"type":"string"},"resource_provider":{"type":"string"},"resource_kind":{"type":"string"},"resource_location_id":{"type":"string","nullable":true},"resource_capacity_gb":{"type":"integer","nullable":true},"resource_external_volume_id":{"type":"string","nullable":true},"resource_authority_identity":{"type":"object","additionalProperties":true},"provider_private_endpoint":{"type":"boolean","description":"Captured managed data resource advertises a provider-private endpoint; no endpoint or credential material is included."},"required":{"type":"boolean"},"read_only":{"type":"boolean"},"mount_path":{"type":"string","nullable":true},"environment_variable_name":{"type":"string","nullable":true},"dependency_endpoint_id":{"type":"string","nullable":true},"dependency_url":{"type":"string"}}},"PreviewServiceConfigurationComparison":{"type":"object","required":["app_service_id","setting_differences","capacity","keys"],"properties":{"app_service_id":{"type":"string"},"setting_differences":{"type":"array","items":{"type":"string"}},"backing_resources":{"type":"object","required":["captured","source","preview","requires_refresh"],"properties":{"captured":{"type":"array","items":{"$ref":"#/components/schemas/PreviewBackingResource"}},"source":{"type":"array","items":{"$ref":"#/components/schemas/PreviewBackingResource"}},"preview":{"type":"array","items":{"$ref":"#/components/schemas/PreviewBackingResource"}},"requires_refresh":{"type":"boolean"}}},"resources":{"type":"object","additionalProperties":{"type":"object","required":["source","preview","layer"],"properties":{"source":{"oneOf":[{"type":"integer"},{"type":"boolean"},{"type":"null"}]},"preview":{"oneOf":[{"type":"integer"},{"type":"boolean"},{"type":"null"}]},"layer":{"type":"string","enum":["source","profile","environment"]}}}},"capacity":{"type":"object","required":["source","preview"],"properties":{"source":{"type":"array","items":{"$ref":"#/components/schemas/PreviewCapacityEntry"}},"preview":{"type":"array","items":{"$ref":"#/components/schemas/PreviewCapacityEntry"}}}},"keys":{"type":"array","items":{"type":"object","required":["key","source","preview","shadowed","approval_required","required","missing_reference","matches_source"],"properties":{"key":{"type":"string"},"source":{"allOf":[{"$ref":"#/components/schemas/PreviewConfigurationReference"}],"nullable":true},"preview":{"allOf":[{"$ref":"#/components/schemas/PreviewConfigurationReference"}],"nullable":true},"shadowed":{"type":"array","items":{"$ref":"#/components/schemas/PreviewConfigurationReference"}},"approval_required":{"type":"boolean"},"required":{"type":"boolean"},"missing_reference":{"type":"boolean"},"matches_source":{"type":"boolean"}}}}}},"PreviewCapacityEntry":{"type":"object","required":["location_id","location_name","replicas"],"properties":{"location_id":{"type":"string"},"location_name":{"type":"string"},"replicas":{"type":"integer"}}},"PreviewConfigurationReference":{"type":"object","required":["key","kind","layer"],"properties":{"key":{"type":"string"},"kind":{"type":"string"},"layer":{"type":"string"},"secret_id":{"type":"string"},"secret_version_id":{"type":"string"},"version_number":{"type":"integer"},"config_variable_id":{"type":"string"},"value_kind":{"type":"string"},"binding_id":{"type":"string"},"pinned":{"type":"boolean"}}},"PreviewSharingApprovals":{"type":"object","required":["snapshot_version","source_keys","services","default_configuration","default_secrets","build_secrets","approved_build_secrets","approved_build_keys","approved_source_keys","approved_default_secrets","approved_default_configuration"],"properties":{"snapshot_version":{"type":"integer"},"source_keys":{"type":"array","items":{"type":"string"}},"services":{"type":"array","items":{"type":"object","required":["service_id","source_keys","build_keys"],"properties":{"service_id":{"type":"string"},"source_keys":{"type":"array","items":{"type":"string"}},"build_keys":{"type":"array","items":{"type":"string"}}}}},"default_configuration":{"type":"array","items":{"type":"object","required":["id","key","value_kind"],"properties":{"id":{"type":"string"},"key":{"type":"string"},"value_kind":{"type":"string"}}}},"default_secrets":{"type":"array","items":{"type":"object","required":["id","key"],"properties":{"id":{"type":"string"},"key":{"type":"string","nullable":true}}}},"build_secrets":{"type":"array","items":{"type":"object","required":["id","key","version_id","binding_id"],"properties":{"id":{"type":"string"},"key":{"type":"string"},"version_id":{"type":"string"},"binding_id":{"type":"string","nullable":true}}}},"approved_build_secrets":{"type":"array","items":{"type":"string"}},"approved_build_keys":{"type":"array","items":{"type":"string"}},"approved_source_keys":{"type":"array","items":{"type":"string"}},"approved_default_secrets":{"type":"array","items":{"type":"string"}},"approved_default_configuration":{"type":"array","items":{"type":"string"}}}},"PreviewSharingSelection":{"type":"object","required":["snapshot_version"],"properties":{"snapshot_version":{"type":"integer"},"source_keys":{"type":"array","items":{"type":"string"}},"default_secrets":{"type":"array","items":{"type":"string"}},"default_configuration":{"type":"array","items":{"type":"string"}},"build_keys":{"type":"array","items":{"type":"string"}},"build_secrets":{"type":"array","items":{"type":"string"}}}},"PreviewBindingSource":{"type":"object","required":["id","name","slug","scope_kind","latest_version_number","available","source_app_name","source_environment_name","versions"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"scope_kind":{"type":"string"},"source_app_name":{"type":"string","nullable":true},"source_environment_name":{"type":"string","nullable":true},"available":{"type":"boolean"},"latest_version_number":{"type":"integer","nullable":true},"versions":{"type":"array","items":{"type":"object","required":["id","version_number"],"properties":{"id":{"type":"string"},"version_number":{"type":"integer"}}}}}},"PreviewBindingSelection":{"type":"object","required":["env_key"],"properties":{"env_key":{"type":"string"},"mode":{"type":"string","enum":["linked","masked"]},"secret_id":{"type":"string"},"secret_version_id":{"type":"string"}}},"PreviewOwnedSecret":{"type":"object","required":["id","env_key","name","status","latest_version_number","available"],"properties":{"id":{"type":"string"},"env_key":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"latest_version_number":{"type":"integer","nullable":true},"available":{"type":"boolean"}}},"PreviewOwnedSecretReply":{"type":"object","required":["secret"],"properties":{"secret":{"$ref":"#/components/schemas/PreviewOwnedSecret"}}},"PreviewDefaultsRecord":{"allOf":[{"$ref":"#/components/schemas/PreviewProfileRecord"},{"type":"object","required":["bindings"],"properties":{"bindings":{"type":"array","items":{"$ref":"#/components/schemas/PreviewSecretBinding"}}}}]},"PreviewSourceKeyChange":{"type":"object","required":["key","change"],"properties":{"key":{"type":"string"},"change":{"type":"string","enum":["added","removed","changed"]}}},"PreviewSourceServiceChange":{"type":"object","required":["service_id","service_name","change","settings","variables","build_arguments","endpoints_changed","source_placements_changed"],"properties":{"service_id":{"type":"string"},"service_name":{"type":"string","nullable":true},"change":{"type":"string","enum":["added","removed","retained"]},"settings":{"type":"array","items":{"$ref":"#/components/schemas/PreviewSourceKeyChange"}},"resource_defaults":{"type":"array","items":{"$ref":"#/components/schemas/PreviewSourceKeyChange"}},"variables":{"type":"array","items":{"$ref":"#/components/schemas/PreviewSourceKeyChange"}},"build_arguments":{"type":"array","items":{"$ref":"#/components/schemas/PreviewSourceKeyChange"}},"backing_resources_changed":{"type":"boolean"},"endpoints_changed":{"type":"boolean"},"source_placements_changed":{"type":"boolean"}}},"PreviewSourceReview":{"type":"object","required":["review_token","snapshot_version","expires_at","diff","preserved_overrides","preserved_profile_keys","preserved_secret_binding_keys","sharing_approvals_reset"],"properties":{"review_token":{"type":"string"},"snapshot_version":{"type":"integer"},"expires_at":{"type":"string","format":"date-time"},"sharing_approvals_reset":{"type":"boolean"},"preserved_profile_keys":{"type":"array","items":{"type":"string"}},"preserved_resource_overrides":{"$ref":"#/components/schemas/PreviewResourceOverrides"},"preserved_secret_binding_keys":{"type":"array","items":{"type":"string"}},"preserved_overrides":{"type":"array","items":{"type":"object","required":["key","service_id"],"properties":{"key":{"type":"string"},"service_id":{"type":"string","nullable":true}}}},"diff":{"type":"object","required":["root_path_changed","source_environment_changed","variables","services"],"properties":{"root_path_changed":{"type":"boolean"},"source_environment_changed":{"type":"boolean"},"variables":{"type":"array","items":{"$ref":"#/components/schemas/PreviewSourceKeyChange"}},"services":{"type":"array","items":{"$ref":"#/components/schemas/PreviewSourceServiceChange"}}}}}},"ProjectOverviewDiscoveryPage":{"type":"object","required":["setup","discovery","permissions"],"properties":{"setup":{"$ref":"#/components/schemas/ProjectOverviewPage/properties/setup"},"discovery":{"$ref":"#/components/schemas/ProjectOverviewPage/properties/discovery"},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"}}},"ProjectOverviewMetricsPage":{"type":"object","required":["counts"],"properties":{"counts":{"$ref":"#/components/schemas/ProjectOverview/properties/counts"}}},"ProjectOverviewActivityPage":{"type":"object","required":["active_scenario_runs","active_discoveries"],"properties":{"active_scenario_runs":{"$ref":"#/components/schemas/ProjectActiveScenarioRuns"},"active_discoveries":{"$ref":"#/components/schemas/ProjectActiveDiscoveries"}}},"ProjectOverviewPullRequestsPage":{"type":"object","required":["pull_requests"],"properties":{"pull_requests":{"$ref":"#/components/schemas/ProjectOverview/properties/pull_requests"}}},"ProjectOverviewHistoryPage":{"type":"object","required":["runs"],"properties":{"runs":{"$ref":"#/components/schemas/ProjectOverviewPage/properties/runs"}}},"ProjectHeader":{"type":"object","required":["id","name","slug","execution_mode","archived_at","icon_url"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"execution_mode":{"type":"string","enum":["website","computer_use"]},"archived_at":{"type":"string","nullable":true},"icon_url":{"type":"string","nullable":true}}},"ProjectHeaderPage":{"type":"object","required":["project","permissions"],"properties":{"project":{"$ref":"#/components/schemas/ProjectHeader"},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"}}},"ProjectSettingsPage":{"type":"object","required":["project","permissions","messaging_enabled","available_messaging_environments","tester_numbers","messaging_conversations"],"properties":{"project":{"$ref":"#/components/schemas/Project"},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"},"messaging_enabled":{"type":"boolean"},"available_messaging_environments":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"tester_numbers":{"type":"array","items":{"type":"string"}},"messaging_conversations":{"type":"array","items":{"$ref":"#/components/schemas/VerifyMessagingSetup"}}}},"ProjectCredentialsPage":{"type":"object","required":["project","permissions","credentials","identity_provider"],"properties":{"project":{"$ref":"#/components/schemas/ProjectHeader"},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"},"credentials":{"type":"array","items":{"$ref":"#/components/schemas/ProjectCredential"}},"identity_provider":{"description":"Where the organization's apps trust Composal sign-in, for new personas","type":"object","required":["issuer","discovery_url","email_suffix"],"properties":{"issuer":{"type":"string"},"discovery_url":{"type":"string"},"email_suffix":{"type":"string"}}}}},"ProjectPrTestingPage":{"type":"object","required":["project","pull_request_options"],"properties":{"project":{"$ref":"#/components/schemas/ProjectHeader"},"pull_request_options":{"$ref":"#/components/schemas/VerifyPullRequestOptions"}}},"ProjectFindingStateOption":{"type":"object","required":["value","label","count"],"properties":{"value":{"type":"string","enum":["active","deferred","closed"]},"label":{"type":"string"},"count":{"type":"integer"}}},"ProjectFindingPriorityOption":{"type":"object","required":["value","label","count"],"properties":{"value":{"type":"string","enum":["all","P0","P1","P2","P3","P4"]},"label":{"type":"string"},"count":{"type":"integer"}}},"ProjectFindingsPage":{"type":"object","required":["project","permissions","status_options","run_options","priority_options","state_options","findings","pagination"],"properties":{"project":{"$ref":"#/components/schemas/ProjectHeader"},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"},"state_options":{"description":"Lifecycle totals matching the search, across all priorities and pages","type":"array","items":{"$ref":"#/components/schemas/ProjectFindingStateOption"}},"priority_options":{"description":"Priority totals matching the search and selected lifecycle, across all pages","type":"array","items":{"$ref":"#/components/schemas/ProjectFindingPriorityOption"}},"run_options":{"description":"The 100 most recent runs with findings, plus the authorized selected run even if older or empty","type":"array","items":{"type":"object","required":["value","label","source"],"properties":{"value":{"type":"string"},"label":{"type":"string"},"source":{"type":"string","enum":["scenario_run","exploration","deep_scan"]}}}},"status_options":{"description":"Statuses a manager may set","type":"array","items":{"$ref":"#/components/schemas/SettableFindingStatus"}},"findings":{"description":"Findings from scenario runs, Discoveries and Deep Scans, highest priority first, then most recently seen","type":"array","items":{"$ref":"#/components/schemas/ProjectFinding"}},"pagination":{"$ref":"#/components/schemas/VerifyRunsPagination"}}},"SettableFindingStatus":{"type":"string","enum":["open","resolved","ignored","deferred"]},"ProjectFindingStatus":{"type":"string","enum":["open","resolved","ignored","deferred"]},"ProjectFinding":{"type":"object","required":["id","source","title","severity","status","source_title","environment_name","last_seen_at","web_path","verification"],"properties":{"deferred_until":{"type":"string","format":"date-time","nullable":true},"verification":{"$ref":"#/components/schemas/VerifyFindingVerification"},"id":{"type":"string"},"source":{"description":"The workflow that produced the finding","type":"string","enum":["scenario_run","exploration","deep_scan"]},"title":{"type":"string"},"severity":{"type":"string","enum":["critical","high","medium","low","info"]},"status":{"$ref":"#/components/schemas/ProjectFindingStatus"},"source_title":{"description":"The scenario, Discovery or Deep Scan that produced the finding","type":"string"},"environment_name":{"type":"string"},"last_seen_at":{"type":"string","format":"date-time"},"web_path":{"description":"Where the finding is reviewed within its source","type":"string"}}},"PersonaSummary":{"description":"A persona with its credential, scenario count, runs in flight and recent outcomes across every scenario it carries out","allOf":[{"$ref":"#/components/schemas/Persona"},{"type":"object","required":["credential","scenario_count","active_run_count","health","attention"],"properties":{"credential":{"oneOf":[{"type":"object","required":["id","name","login_method","status"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"login_method":{"type":"string"},"status":{"type":"string","enum":["active","disabled"]}}},{"type":"null"}]},"scenario_count":{"type":"integer"},"active_run_count":{"type":"integer"},"health":{"$ref":"#/components/schemas/ScenarioHealth"},"attention":{"description":"What needs an operator's eye, problems before notices","type":"array","items":{"type":"object","required":["key","severity","text"],"properties":{"key":{"type":"string"},"severity":{"type":"string","enum":["problem","notice"]},"text":{"type":"string"}}}}}}]},"PersonaRunEntry":{"type":"object","required":["id","run_id","scenario_id","scenario_name","state","outcome","created_at","started_at","finished_at","pull_request_label","pull_request_url"],"properties":{"id":{"type":"string"},"run_id":{"type":"string"},"scenario_id":{"description":"Null for a run of a scenario file, which is not saved as a scenario","type":["string","null"]},"scenario_name":{"type":["string","null"]},"state":{"type":"string"},"outcome":{"description":"The state once the run has finished","type":["string","null"]},"created_at":{"type":"string"},"started_at":{"type":["string","null"]},"finished_at":{"type":["string","null"]},"pull_request_label":{"type":["string","null"]},"pull_request_url":{"type":["string","null"]}}},"PersonaHistory":{"type":"object","required":["entries","pagination","trend"],"properties":{"entries":{"type":"array","items":{"$ref":"#/components/schemas/PersonaRunEntry"}},"pagination":{"$ref":"#/components/schemas/VerifyRunsPagination"},"trend":{"type":"array","items":{"$ref":"#/components/schemas/ScenarioHealthDay"}}}},"PersonaCredentialChoice":{"type":"object","required":["id","name","login_method","status"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"login_method":{"type":"string","enum":["email_password","email_link","google","github","custom","passkey","session","oidc_identity"]},"status":{"type":"string","enum":["active","disabled"]}}},"PersonaScenario":{"type":"object","required":["id","name","health"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"health":{"$ref":"#/components/schemas/ScenarioHealth"}}},"ProjectPersonasPage":{"type":"object","required":["project","permissions","credentials","active_count","needs_attention_count","persona_states","personas"],"properties":{"project":{"$ref":"#/components/schemas/ProjectHeader"},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"},"credentials":{"type":"array","items":{"$ref":"#/components/schemas/PersonaCredentialChoice"}},"active_count":{"type":"integer"},"needs_attention_count":{"type":"integer"},"persona_states":{"$ref":"#/components/schemas/VerifyScenarioStateCounts"},"personas":{"type":"array","items":{"$ref":"#/components/schemas/PersonaSummary"}}}},"ProjectPersonaPage":{"type":"object","required":["project","permissions","credentials","persona","scenarios","history"],"properties":{"project":{"$ref":"#/components/schemas/ProjectHeader"},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"},"credentials":{"type":"array","items":{"$ref":"#/components/schemas/PersonaCredentialChoice"}},"persona":{"$ref":"#/components/schemas/PersonaSummary"},"scenarios":{"type":"array","items":{"$ref":"#/components/schemas/PersonaScenario"}},"history":{"$ref":"#/components/schemas/PersonaHistory"}}},"ProjectScenarioRowsPage":{"type":"object","required":["scenarios","pagination"],"properties":{"scenarios":{"type":"array","items":{"$ref":"#/components/schemas/ProjectScenarioSummary"}},"pagination":{"$ref":"#/components/schemas/VerifyRunsPagination"}}},"ProjectScenarioSelection":{"type":"object","required":["id","labels","selectable_for_run","current_state"],"properties":{"id":{"type":"string"},"labels":{"type":"array","items":{"type":"string"}},"selectable_for_run":{"type":"boolean"},"current_state":{"type":"string","enum":["passing","failing","blocked","cancelled","running","not_run"]}}},"ProjectScenarioOptions":{"type":"object","required":["project","permissions","personas","scenarios","scenario_states","environments"],"properties":{"project":{"$ref":"#/components/schemas/ProjectHeader"},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"},"personas":{"type":"array","items":{"$ref":"#/components/schemas/Persona"}},"scenarios":{"type":"array","items":{"$ref":"#/components/schemas/ProjectScenarioSelection"}},"scenario_states":{"$ref":"#/components/schemas/VerifyScenarioStateCounts"},"environments":{"type":"array","items":{"$ref":"#/components/schemas/ProjectLaunchEnvironment"}},"schedules":{"type":"array","items":{"$ref":"#/components/schemas/RunSchedule"}},"schedule_options":{"$ref":"#/components/schemas/RunScheduleSetupOptions"}}},"ProjectScenariosPage":{"type":"object","required":["project","permissions","personas","scenarios","scenario_states","environments"],"properties":{"project":{"$ref":"#/components/schemas/ProjectHeader"},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"},"personas":{"type":"array","items":{"$ref":"#/components/schemas/Persona"}},"scenarios":{"type":"array","items":{"$ref":"#/components/schemas/ProjectScenarioSummary"}},"scenario_states":{"$ref":"#/components/schemas/VerifyScenarioStateCounts"},"environments":{"type":"array","items":{"$ref":"#/components/schemas/ProjectLaunchEnvironment"}}}},"ProjectScenarioEditorPage":{"type":"object","required":["project","permissions","personas","project_labels","scenario","environments","credentials","identity_provider"],"properties":{"project":{"$ref":"#/components/schemas/ProjectHeader"},"permissions":{"type":"object","required":["manage","record_scenarios"],"properties":{"manage":{"type":"boolean"},"record_scenarios":{"type":"boolean","description":"Whether this admin can record a journey to draft a Scenario."}}},"personas":{"type":"array","items":{"$ref":"#/components/schemas/Persona"}},"project_labels":{"type":"array","items":{"type":"string"}},"scenario":{"allOf":[{"$ref":"#/components/schemas/Scenario"}],"nullable":true},"environments":{"type":"array","items":{"$ref":"#/components/schemas/ProjectLaunchEnvironment"}},"credentials":{"type":"array","items":{"$ref":"#/components/schemas/ProjectCredential"}},"identity_provider":{"description":"Where the organization's apps trust Composal sign-in, for new personas","type":"object","required":["issuer","discovery_url","email_suffix"],"properties":{"issuer":{"type":"string"},"discovery_url":{"type":"string"},"email_suffix":{"type":"string"}}}}},"ProjectScenarioPage":{"type":"object","required":["project","permissions","personas","scenario","scenario_history","scenario_revisions","environments"],"properties":{"project":{"$ref":"#/components/schemas/ProjectHeader"},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"},"personas":{"type":"array","items":{"$ref":"#/components/schemas/Persona"}},"scenario":{"$ref":"#/components/schemas/ProjectScenario"},"scenario_history":{"$ref":"#/components/schemas/ScenarioHistory"},"scenario_revisions":{"type":"array","maxItems":10,"description":"The latest recorded saves, newest first.","items":{"$ref":"#/components/schemas/ScenarioRevision"}},"environments":{"type":"array","items":{"$ref":"#/components/schemas/ProjectLaunchEnvironment"}}}},"ProjectEnvironmentPage":{"type":"object","required":["project","permissions","environment","credentials","network_connections","binary_choices","messaging_enabled","tester_numbers"],"properties":{"project":{"$ref":"#/components/schemas/ProjectHeader"},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"},"environment":{"$ref":"#/components/schemas/EnvironmentDetail"},"credentials":{"type":"array","items":{"$ref":"#/components/schemas/ProjectCredential"}},"network_connections":{"type":"array","items":{"$ref":"#/components/schemas/VerifyNetworkConnection"}},"schedules":{"description":"Omitted by older API versions during a rolling deployment; hide scheduling until both scheduling fields are present.","type":"array","items":{"$ref":"#/components/schemas/RunSchedule"}},"schedule_options":{"description":"Omitted by older API versions during a rolling deployment.","$ref":"#/components/schemas/RunScheduleSetupOptions"},"binary_choices":{"type":"array","items":{"$ref":"#/components/schemas/VerifyBinaryChoice"}},"messaging_enabled":{"type":"boolean"},"tester_numbers":{"type":"array","items":{"type":"string"}}}},"ProjectRunsPage":{"type":"object","required":["runs","pagination","environments","environment_query","environments_has_more","selected_environment"],"properties":{"runs":{"type":"array","items":{"$ref":"#/components/schemas/ProjectRunHistory"}},"pagination":{"$ref":"#/components/schemas/VerifyRunsPagination"},"environments":{"type":"array","items":{"$ref":"#/components/schemas/ProjectRunEnvironmentOption"}},"environment_query":{"type":"string"},"environments_has_more":{"type":"boolean"},"selected_environment":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ProjectRunEnvironmentOption"}]}}},"ProjectRunEnvironmentOption":{"type":"object","required":["id","name","preview","target_kind"],"properties":{"preview":{"type":"boolean"},"target_kind":{"type":"string","nullable":true},"id":{"type":"string"},"name":{"type":"string"}}},"ProjectRunHistory":{"allOf":[{"$ref":"#/components/schemas/ProjectRunSummary"},{"type":"object","required":["scenario_count","trigger_kind","triggered_by","commit_sha","pull_request","source_run","started_at","finished_at","duration_seconds","browser_seconds"],"properties":{"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"duration_seconds":{"type":"number","nullable":true},"browser_seconds":{"type":"number","nullable":true},"pull_request":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ProjectRunHistoryPullRequest"}]},"source_run":{"type":"object","nullable":true,"required":["web_path","created_at"],"properties":{"web_path":{"type":"string"},"created_at":{"type":"string","format":"date-time"}}},"scenario_count":{"type":"integer"},"trigger_kind":{"type":"string","enum":["pull_request","rerun","direct"]},"triggered_by":{"type":"string","nullable":true},"commit_sha":{"type":"string","nullable":true}}}]},"ProjectRunHistoryPullRequest":{"type":"object","required":["label","title","repository","branch","url"],"properties":{"label":{"type":"string"},"title":{"type":"string"},"repository":{"type":"string","nullable":true},"branch":{"type":"string","nullable":true},"url":{"type":"string","nullable":true}}},"ProjectRunSummary":{"type":"object","required":["id","title","state","outcome","environment_name","pull_request_label","created_at","cleanup_state","web_path"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"state":{"type":"string"},"outcome":{"type":"string","nullable":true},"environment_name":{"type":"string","nullable":true},"pull_request_label":{"type":"string","nullable":true},"created_at":{"type":"string"},"cleanup_state":{"type":"string"},"web_path":{"type":"string"}}},"ProjectOverview":{"type":"object","required":["organization","permissions","counts","active_scenario_runs","active_discoveries","pull_requests"],"properties":{"organization":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"}}},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"},"counts":{"type":"object","required":["active_runs","open_findings","ready_environments","scenarios"],"properties":{"open_findings":{"type":"integer","minimum":0},"ready_environments":{"type":"integer","minimum":0},"scenarios":{"$ref":"#/components/schemas/VerifyScenarioStateCounts"},"active_runs":{"type":"integer","minimum":0}}},"active_scenario_runs":{"$ref":"#/components/schemas/ProjectActiveScenarioRuns"},"active_discoveries":{"$ref":"#/components/schemas/ProjectActiveDiscoveries"},"pull_requests":{"type":"array","items":{"$ref":"#/components/schemas/VerifyPullRequestSummary"}}}},"ProjectActiveScenarioRuns":{"type":"object","description":"The browsers inside the project's active runs, running ones first.","required":["entries","total_count","running_count","queued_count"],"properties":{"entries":{"type":"array","maxItems":12,"items":{"$ref":"#/components/schemas/ProjectActiveScenarioRun"}},"total_count":{"type":"integer","minimum":0,"description":"Every browser still to finish, including those beyond the listed entries."},"running_count":{"type":"integer","minimum":0},"queued_count":{"type":"integer","minimum":0,"description":"Browsers waiting to start, including those still being planned."}}},"ProjectActiveDiscoveries":{"type":"object","required":["entries","total_count"],"properties":{"entries":{"type":"array","maxItems":12,"items":{"$ref":"#/components/schemas/ProjectActiveDiscovery"}},"total_count":{"type":"integer","minimum":0,"description":"Every active discovery, including those beyond the listed entries."}}},"ProjectActiveDiscovery":{"type":"object","required":["id","title","status","environment_name","started_at","web_path"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"web_path":{"type":"string"},"status":{"type":"string","enum":["discovering","testing"]},"environment_name":{"type":"string"},"started_at":{"type":"string","format":"date-time"}}},"ProjectActiveScenarioRun":{"type":"object","required":["id","state","scenario_name","environment_name","pull_request_label","live_frame_url","live_stream","web_path","created_at","started_at"],"properties":{"id":{"type":"string"},"state":{"type":"string","enum":["pending","planning","prepared","queued","running"]},"scenario_name":{"type":"string"},"environment_name":{"type":"string"},"pull_request_label":{"type":"string","nullable":true},"live_stream":{"description":"The browser's live stream for its tile, without DevTools.","oneOf":[{"$ref":"#/components/schemas/LiveBrowserStream"},{"type":"null"}]},"live_frame_url":{"type":"string","nullable":true,"description":"The latest browser frame while the scenario runs; changes with each new frame."},"web_path":{"type":"string"},"created_at":{"type":"string"},"started_at":{"type":"string","nullable":true}}},"ProjectOverviewPage":{"type":"object","required":["project","setup","discovery","overview","runs"],"properties":{"project":{"$ref":"#/components/schemas/ProjectHeader"},"setup":{"description":"Null once the project has available scenarios and no discovery to show.","oneOf":[{"$ref":"#/components/schemas/ProjectSetup"},{"type":"null"}]},"discovery":{"oneOf":[{"$ref":"#/components/schemas/ProjectDiscovery"},{"type":"null"}]},"overview":{"$ref":"#/components/schemas/ProjectOverview"},"runs":{"type":"array","items":{"$ref":"#/components/schemas/ProjectRunSummary"}}}},"ProjectScenarioSummary":{"type":"object","required":["id","persona_id","name","labels","step_count","actor_count","selectable_for_run","health"],"properties":{"id":{"type":"string"},"persona_id":{"type":"string"},"name":{"type":"string"},"labels":{"type":"array","items":{"type":"string"}},"step_count":{"type":"integer"},"actor_count":{"type":"integer"},"selectable_for_run":{"type":"boolean"},"health":{"$ref":"#/components/schemas/ScenarioHealth"}}},"ProjectScenario":{"allOf":[{"$ref":"#/components/schemas/Scenario"},{"type":"object","required":["health"],"properties":{"health":{"$ref":"#/components/schemas/ScenarioHealth"}}}]},"ProjectLaunchEnvironment":{"type":"object","required":["id","name","base_url","kind"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"base_url":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true}}},"ProjectSetup":{"description":"Where a new project stands on its way to a first discovery, and what that discovery would run against.","type":"object","required":["stage","environment_id","app_url","test_account"],"properties":{"app_url":{"description":"The address discovery explores.","type":["string","null"]},"stage":{"type":"string","enum":["needs_environment","ready","discovering","discovered"]},"environment_id":{"type":["string","null"]},"test_account":{"description":"The configured test account discovery signs in as; null runs it signed out.","oneOf":[{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}},{"type":"null"}]}}},"ProjectDiscovery":{"description":"A project's latest discovery, small enough for its Overview to poll.","type":"object","required":["id","status","product_summary","page_count","flow_count","check_count","finding_count","created_at","deadline_at","finished_at","testers","recent_checks","live_browsers","scenarios"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["discovering","testing","completed","partial","canceled"]},"product_summary":{"description":"The newest description of the product any agent has reported.","type":["string","null"]},"page_count":{"type":"integer"},"flow_count":{"type":"integer"},"check_count":{"type":"integer"},"finding_count":{"type":"integer"},"created_at":{"type":"string"},"deadline_at":{"type":"string"},"finished_at":{"type":["string","null"]},"testers":{"type":"array","items":{"type":"object","required":["id","title","task_group"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"task_group":{"type":"string","enum":["setup","working","queued","completed","stopped","attention"]}}}},"recent_checks":{"type":"array","maxItems":8,"items":{"type":"object","required":["charter","actual","outcome","url"],"properties":{"charter":{"type":"string"},"actual":{"type":"string"},"outcome":{"type":"string","enum":["observed","issue","blocked","inconclusive"]},"url":{"type":"string"}}}},"live_browsers":{"type":"array","maxItems":4,"items":{"type":"object","required":["agent_id","title","url","action","image","captured_at","stream"],"properties":{"agent_id":{"type":"string"},"stream":{"description":"The tester's live stream for its tile, without DevTools.","oneOf":[{"$ref":"#/components/schemas/LiveBrowserStream"},{"type":"null"}]},"title":{"type":"string"},"url":{"type":"string"},"action":{"type":"string"},"image":{"description":"A JPEG data URL of the latest capture.","type":["string","null"]},"captured_at":{"type":"string"}}}},"scenarios":{"type":"object","required":["status","count"],"properties":{"status":{"type":"string","enum":["not_started","queued","writing","ready","failed"]},"count":{"type":"integer"}}}}},"RecordVersion":{"type":"object","required":["version"],"properties":{"version":{"type":"integer","minimum":0}}},"ProjectPermissions":{"type":"object","required":["manage"],"properties":{"manage":{"type":"boolean"}}},"VerifierPreferences":{"type":"object","additionalProperties":false,"description":"Project guidance for human-readable verifier reports; core execution and evidence rules take precedence.","properties":{"terminology":{"type":"string","maxLength":4000},"behavior_guidance":{"type":"string","maxLength":4000},"report_style":{"type":"string","maxLength":4000},"reporting_focus":{"type":"string","maxLength":4000},"prioritization":{"type":"string","maxLength":4000}}},"ProjectCreate":{"type":"object","required":["name"],"properties":{"execution_mode":{"type":"string","enum":["website","computer_use"]},"verifier_preferences":{"$ref":"#/components/schemas/VerifierPreferences"},"slug":{"type":"string","maxLength":100,"pattern":"^[a-z0-9]+(-[a-z0-9]+)*$"},"name":{"type":"string","maxLength":160},"website_url":{"type":["string","null"],"maxLength":1000,"format":"uri"},"purpose":{"type":"string","maxLength":4000},"context":{"type":"string","maxLength":4000},"documentation_urls":{"type":"array","maxItems":5,"items":{"type":"string","format":"uri"}}}},"ProjectUpdate":{"type":"object","required":["version"],"properties":{"execution_mode":{"type":"string","enum":["website","computer_use"]},"verifier_preferences":{"$ref":"#/components/schemas/VerifierPreferences"},"slug":{"type":"string","maxLength":100,"pattern":"^[a-z0-9]+(-[a-z0-9]+)*$"},"name":{"type":"string","maxLength":160},"website_url":{"type":["string","null"],"maxLength":1000,"format":"uri"},"purpose":{"type":"string","maxLength":4000},"context":{"type":"string","maxLength":4000},"documentation_urls":{"type":"array","maxItems":5,"items":{"type":"string","format":"uri"}},"version":{"type":"integer","minimum":0}}},"Project":{"type":"object","required":["execution_mode","slug","website_url","icon_url","verifier_preferences","name","purpose","context","documentation_urls","id","lock_version","created_at","updated_at","organization_id","archived_at"],"properties":{"execution_mode":{"type":"string","enum":["website","computer_use"]},"icon_url":{"type":["string","null"],"format":"uri"},"verifier_preferences":{"$ref":"#/components/schemas/VerifierPreferences"},"slug":{"type":"string","maxLength":100,"pattern":"^[a-z0-9]+(-[a-z0-9]+)*$"},"name":{"type":"string","maxLength":160},"website_url":{"type":["string","null"],"maxLength":1000,"format":"uri"},"purpose":{"type":["string","null"]},"context":{"type":["string","null"]},"documentation_urls":{"type":"array","maxItems":5,"items":{"type":"string","format":"uri"}},"id":{"type":"string"},"lock_version":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"organization_id":{"type":"string"},"archived_at":{"type":["string","null"],"format":"date-time"}}},"PersonaCreate":{"type":"object","required":["name","role"],"properties":{"name":{"type":"string","maxLength":160},"role":{"type":"string","maxLength":255},"goals":{"type":"string","maxLength":4000},"capabilities":{"type":"string","maxLength":4000},"credential_id":{"description":"The credential this persona signs in with. Without one, a run chooses from the project's credentials.","type":["string","null"]},"access_mode":{"type":"string","enum":["anonymous","account","signup"]}}},"PersonaUpdate":{"type":"object","required":["version"],"properties":{"name":{"type":"string","maxLength":160},"role":{"type":"string","maxLength":255},"goals":{"type":"string","maxLength":4000},"capabilities":{"type":"string","maxLength":4000},"credential_id":{"description":"The credential this persona signs in with. Without one, a run chooses from the project's credentials.","type":["string","null"]},"access_mode":{"type":"string","enum":["anonymous","account","signup"]},"version":{"type":"integer","minimum":0}}},"Persona":{"type":"object","required":["name","role","goals","capabilities","access_mode","id","lock_version","created_at","updated_at","project_id","archived_at","credential_id"],"properties":{"credential_id":{"description":"The credential this persona signs in with. Without one, a run chooses from the project's credentials.","type":["string","null"]},"name":{"type":"string","maxLength":160},"role":{"type":"string","maxLength":255},"goals":{"type":["string","null"]},"capabilities":{"type":["string","null"]},"access_mode":{"type":"string","enum":["anonymous","account","signup"]},"id":{"type":"string"},"lock_version":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"project_id":{"type":"string"},"archived_at":{"type":["string","null"],"format":"date-time"}}},"ScenarioActor":{"type":"object","additionalProperties":false,"required":["persona_id"],"properties":{"persona_id":{"type":"string"},"distinct_from":{"type":"array","maxItems":3,"uniqueItems":true,"items":{"type":"string"}}}},"ScenarioFixture":{"type":"object","additionalProperties":false,"required":["name","sha256","content_type"],"properties":{"name":{"type":"string","maxLength":255,"description":"The file name the page receives"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"content_type":{"type":"string"},"byte_size":{"type":["integer","null"],"description":"Present on the Scenario page; null when the project no longer holds the bytes"}}},"ScenarioFixtureInput":{"type":"object","additionalProperties":false,"required":["name","sha256"],"properties":{"name":{"type":"string","maxLength":255},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"content_type":{"type":"string"}}},"ScenarioFileFixture":{"type":"object","additionalProperties":false,"required":["path"],"properties":{"path":{"type":"string","maxLength":1024,"description":"Relative to the Scenario file"},"name":{"type":"string","maxLength":255,"description":"Defaults to the path's last part"},"content_type":{"type":"string"}}},"ScenarioActorStep":{"type":"object","additionalProperties":false,"required":["actor","instruction"],"properties":{"actor":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"instruction":{"type":"string","minLength":1,"maxLength":4000},"authentication":{"type":"boolean"}}},"ScenarioActorOutcome":{"type":"object","additionalProperties":false,"required":["actors","instruction"],"properties":{"actors":{"type":"array","minItems":1,"maxItems":4,"uniqueItems":true,"items":{"type":"string"}},"instruction":{"type":"string","minLength":1,"maxLength":4000}}},"ScenarioIdentityProbe":{"description":"Same-origin JSON identity endpoint. Required for two or more signed-in actors; optional for one signed-in actor or anonymous-only journeys. A supplied probe is always used. Omitting it for a signed-in actor requires a compatible, qualified runner image. Responses stay private.","type":"object","additionalProperties":false,"required":["path","subject_pointer","email_pointer"],"properties":{"path":{"type":"string","maxLength":500},"subject_pointer":{"type":"string","maxLength":500},"email_pointer":{"type":"string","maxLength":500}}},"ScenarioCreate":{"type":"object","required":["name"],"oneOf":[{"required":["persona_id"],"not":{"required":["actors"]}},{"required":["actors","primary_actor"],"not":{"required":["persona_id"]}}],"properties":{"name":{"type":"string","maxLength":160},"persona_id":{"type":"string"},"actors":{"type":"object","minProperties":1,"maxProperties":4,"additionalProperties":{"$ref":"#/components/schemas/ScenarioActor"}},"primary_actor":{"type":["string","null"],"pattern":"^[a-z][a-z0-9_]{0,39}$"},"identity_probe":{"oneOf":[{"$ref":"#/components/schemas/ScenarioIdentityProbe"},{"type":"null"}]},"labels":{"type":"array","maxItems":20,"description":"Short tags that group Scenarios, such as checkout or smoke","items":{"type":"string","maxLength":40}},"fixtures":{"type":"array","maxItems":10,"description":"Files upload steps choose. Each sha256 must already be uploaded to this project; a missing content_type is chosen from the name.","items":{"$ref":"#/components/schemas/ScenarioFixtureInput"}},"starting_conditions":{"type":"string","maxLength":4000},"allowed_actions":{"type":"string","enum":["read_only","writes"]},"steps":{"type":"array","items":{"oneOf":[{"type":"string","maxLength":4000},{"$ref":"#/components/schemas/ScenarioActorStep"}]}},"cleanup":{"type":"array","maxItems":100,"description":"Optional application cleanup instructions, attempted after checks pass or fail. Omit on updates to preserve saved instructions; [] clears them. Results are separate from Scenario checks.","items":{"oneOf":[{"type":"string","minLength":1,"maxLength":4000},{"$ref":"#/components/schemas/ScenarioActorStep"}]}},"outcomes":{"type":"array","items":{"oneOf":[{"type":"string","maxLength":4000},{"$ref":"#/components/schemas/ScenarioActorOutcome"}]}}}},"ScenarioUpdate":{"type":"object","required":["version"],"properties":{"name":{"type":"string","maxLength":160},"persona_id":{"type":"string"},"actors":{"type":"object","minProperties":1,"maxProperties":4,"additionalProperties":{"$ref":"#/components/schemas/ScenarioActor"}},"primary_actor":{"type":["string","null"],"pattern":"^[a-z][a-z0-9_]{0,39}$"},"identity_probe":{"oneOf":[{"$ref":"#/components/schemas/ScenarioIdentityProbe"},{"type":"null"}]},"labels":{"type":"array","maxItems":20,"description":"Short tags that group Scenarios, such as checkout or smoke","items":{"type":"string","maxLength":40}},"fixtures":{"type":"array","maxItems":10,"description":"Files upload steps choose. Each sha256 must already be uploaded to this project; a missing content_type is chosen from the name.","items":{"$ref":"#/components/schemas/ScenarioFixtureInput"}},"starting_conditions":{"type":"string","maxLength":4000},"allowed_actions":{"type":"string","enum":["read_only","writes"]},"steps":{"type":"array","items":{"oneOf":[{"type":"string","maxLength":4000},{"$ref":"#/components/schemas/ScenarioActorStep"}]}},"cleanup":{"type":"array","maxItems":100,"description":"Optional application cleanup instructions, attempted after checks pass or fail. Omit on updates to preserve saved instructions; [] clears them. Results are separate from Scenario checks.","items":{"oneOf":[{"type":"string","minLength":1,"maxLength":4000},{"$ref":"#/components/schemas/ScenarioActorStep"}]}},"outcomes":{"type":"array","items":{"oneOf":[{"type":"string","maxLength":4000},{"$ref":"#/components/schemas/ScenarioActorOutcome"}]}},"version":{"type":"integer","minimum":0}}},"ScenarioRunHistoryEntry":{"type":"object","required":["id","run_id","state","created_at","started_at","finished_at","pull_request_label","pull_request_url"],"properties":{"id":{"type":"string"},"run_id":{"type":"string"},"state":{"type":"string"},"created_at":{"type":"string"},"started_at":{"type":["string","null"]},"finished_at":{"type":["string","null"]},"pull_request_label":{"type":["string","null"]},"pull_request_url":{"type":["string","null"]}}},"ScenarioHealth":{"type":"object","required":["passed","failed","success_rate","latest","recent","current_state"],"properties":{"current_state":{"description":"Where the Scenario stands by its latest execution. Timeouts count as failing.","type":"string","enum":["passing","failing","blocked","cancelled","running","not_run"]},"passed":{"type":"integer"},"failed":{"type":"integer"},"success_rate":{"type":["number","null"]},"latest":{"oneOf":[{"$ref":"#/components/schemas/ScenarioRunHistoryEntry"},{"type":"null"}]},"recent":{"type":"array","maxItems":20,"items":{"$ref":"#/components/schemas/ScenarioRunHistoryEntry"}}}},"ScenarioHealthDay":{"type":"object","required":["date","passed","failed","success_rate"],"properties":{"date":{"type":"string"},"passed":{"type":"integer"},"failed":{"type":"integer"},"success_rate":{"type":["number","null"]}}},"ScenarioHistory":{"type":"object","required":["entries","pagination","trend"],"properties":{"entries":{"type":"array","items":{"$ref":"#/components/schemas/ScenarioRunHistoryEntry"}},"pagination":{"$ref":"#/components/schemas/VerifyRunsPagination"},"trend":{"type":"array","items":{"$ref":"#/components/schemas/ScenarioHealthDay"}}}},"Scenario":{"type":"object","required":["selectable_for_run","name","labels","persona_id","starting_conditions","allowed_actions","steps","outcomes","id","lock_version","created_at","updated_at","project_id","archived_at","last_revision"],"properties":{"selectable_for_run":{"type":"boolean"},"last_revision":{"description":"The latest recorded save; null when the Scenario was last saved before revisions were recorded.","oneOf":[{"$ref":"#/components/schemas/ScenarioRevision"},{"type":"null"}]},"health":{"$ref":"#/components/schemas/ScenarioHealth"},"name":{"type":"string","maxLength":160},"persona_id":{"type":"string"},"actors":{"type":"object","minProperties":1,"maxProperties":4,"additionalProperties":{"$ref":"#/components/schemas/ScenarioActor"}},"primary_actor":{"type":["string","null"],"pattern":"^[a-z][a-z0-9_]{0,39}$"},"identity_probe":{"oneOf":[{"$ref":"#/components/schemas/ScenarioIdentityProbe"},{"type":"null"}]},"labels":{"type":"array","maxItems":20,"description":"Short tags that group Scenarios, such as checkout or smoke","items":{"type":"string","maxLength":40}},"fixtures":{"type":"array","maxItems":10,"description":"Files upload steps choose, ordered by name. Omitted when the Scenario has none.","items":{"$ref":"#/components/schemas/ScenarioFixture"}},"starting_conditions":{"type":["string","null"]},"allowed_actions":{"type":"string","enum":["read_only","writes"]},"steps":{"type":"array","items":{"oneOf":[{"type":"string","maxLength":4000},{"$ref":"#/components/schemas/ScenarioActorStep"}]}},"cleanup":{"type":"array","maxItems":100,"description":"Optional application cleanup instructions, attempted after checks pass or fail. Omit on updates to preserve saved instructions; [] clears them. Results are separate from Scenario checks.","items":{"oneOf":[{"type":"string","minLength":1,"maxLength":4000},{"$ref":"#/components/schemas/ScenarioActorStep"}]}},"outcomes":{"type":"array","items":{"oneOf":[{"type":"string","maxLength":4000},{"$ref":"#/components/schemas/ScenarioActorOutcome"}]}},"id":{"type":"string"},"lock_version":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"project_id":{"type":"string"},"archived_at":{"type":["string","null"],"format":"date-time"}}},"EnvironmentCreate":{"type":"object","required":["name"],"properties":{"desktop":{"oneOf":[{"$ref":"#/components/schemas/DesktopConfiguration"},{"$ref":"#/components/schemas/ManagedDesktopOptions"},{"$ref":"#/components/schemas/DesktopConfiguration"},{"$ref":"#/components/schemas/ManagedDesktopOptions"}]},"name":{"type":"string","maxLength":160},"kind":{"type":"string","enum":["production","staging","preview","development","custom"]},"base_url":{"type":"string","format":"uri"},"allowed_origins":{"type":"array","items":{"type":"string","format":"uri"}},"allowed_actions":{"type":"string","enum":["read_only","writes"]},"binary":{"type":"string"},"imessage_number":{"type":"string","nullable":true,"description":"International destination number; blank or null clears it on an added environment."},"messaging_tester_number":{"type":"string","nullable":true,"description":"One configured tester number. Copied to each preview; may be overridden locally before preparation."}}},"EnvironmentUpdate":{"type":"object","required":["version"],"properties":{"name":{"type":"string","maxLength":160},"kind":{"type":"string","enum":["production","staging","preview","development","custom"]},"base_url":{"type":["string","null"],"format":"uri"},"allowed_origins":{"type":"array","items":{"type":"string","format":"uri"}},"allowed_actions":{"type":"string","enum":["read_only","writes"]},"verify_network_connection_id":{"type":"string","nullable":true},"version":{"type":"integer","minimum":0},"binary":{"type":"string"},"imessage_number":{"type":"string","nullable":true,"description":"International destination number; blank or null clears it on an added environment."},"messaging_tester_number":{"type":"string","nullable":true,"description":"One configured tester number. Copied to each preview; may be overridden locally before preparation."}}},"Environment":{"type":"object","required":["execution_mode","desktop","name","kind","base_url","base_url_changeable","allowed_origins","allowed_actions","id","lock_version","created_at","updated_at","project_id","verify_network_connection_id","archived_at","pull_request","source_branch","imessage_number"],"properties":{"execution_mode":{"type":"string","enum":["website","computer_use"]},"desktop":{"$ref":"#/components/schemas/DesktopConfiguration","nullable":true},"source_branch":{"type":"string","nullable":true},"base_url_changeable":{"type":"boolean","description":"Whether an update may send a new base_url. Pull request and branch previews keep theirs."},"pull_request":{"type":"object","nullable":true,"required":["id","number","source_url","web_path","branch"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"source_url":{"type":"string","nullable":true},"web_path":{"type":"string"},"branch":{"type":"string","nullable":true}}},"name":{"type":"string","maxLength":160},"kind":{"type":"string","enum":["production","staging","preview","development","custom"]},"base_url":{"type":["string","null"],"format":"uri"},"allowed_origins":{"type":"array","items":{"type":"string","format":"uri"}},"allowed_actions":{"type":"string","enum":["read_only","writes"]},"id":{"type":"string"},"lock_version":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"project_id":{"type":"string"},"verify_network_connection_id":{"type":"string","nullable":true},"archived_at":{"type":["string","null"],"format":"date-time"},"imessage_number":{"type":"string","nullable":true,"description":"International destination number; blank or null clears it on an added environment."}}},"ProjectCredentialInput":{"description":"A project credential signs in on every environment in its project.","allOf":[{"$ref":"#/components/schemas/VerifyLoginAccountInput"}]},"ProjectCredential":{"allOf":[{"$ref":"#/components/schemas/VerifyLoginAccount"},{"type":"object","required":["project_id"],"properties":{"project_id":{"type":"string"}}}]},"RunPullRequest":{"type":"object","required":["id","number","title","request_label","provider","state","draft","source_repository","source_branch","source_url","comment_url","runnable","manual_runnable","head_sha","reason","selections","reused","not_selected_count"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"title":{"type":"string"},"request_label":{"type":"string"},"provider":{"type":"string"},"state":{"type":"string"},"draft":{"type":"boolean"},"source_repository":{"type":["string","null"]},"source_branch":{"type":["string","null"]},"source_url":{"type":["string","null"]},"comment_url":{"type":["string","null"]},"runnable":{"type":"boolean"},"head_sha":{"type":"string"},"reason":{"type":["string","null"]},"manual_runnable":{"type":"boolean"},"selections":{"type":"array","items":{"type":"object","required":["scenario_id","reason"],"properties":{"scenario_id":{"type":"string"},"reason":{"type":"string"}}}},"reused":{"type":"array","items":{"type":"object","required":["scenario_id","name","run_path"],"properties":{"scenario_id":{"type":"string"},"name":{"type":"string"},"run_path":{"type":["string","null"]}}}},"not_selected_count":{"type":"integer"}}},"Run":{"type":"object","required":["title","pull_request","creator_name","verifier_preferences_snapshot","progress","id","project_id","environment_id","source_run_id","state","outcome","cleanup_state","target_snapshot","plan_digest","concurrency","max_seconds","lock_version","created_at","updated_at","source_versions","definition_mode","approved_digest","preparation_error_code","start_when_prepared","approved_at","queued_at"],"properties":{"progress":{"type":"object","required":["total","planned","planning","running","finished"],"properties":{"total":{"type":"integer"},"planned":{"type":"integer","description":"Scenarios ready to run or past that point."},"planning":{"type":"integer"},"running":{"type":"integer"},"finished":{"type":"integer"}}},"title":{"type":"string"},"pull_request":{"anyOf":[{"$ref":"#/components/schemas/RunPullRequest"},{"type":"null"}]},"creator_name":{"type":["string","null"]},"verifier_preferences_snapshot":{"$ref":"#/components/schemas/VerifierPreferences"},"id":{"type":"string"},"lock_version":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"project_id":{"type":"string"},"environment_id":{"type":["string","null"]},"source_run_id":{"type":["string","null"]},"state":{"type":"string","enum":["waiting_for_target","preparing","prepared","queued","running","cancelling","terminal"]},"outcome":{"type":["string","null"],"enum":["skipped","passed","failed","blocked","cancelled","timed_out","cleanup_blocked",null]},"cleanup_state":{"type":"string","enum":["not_started","pending","complete","blocked"]},"target_snapshot":{"type":"object","additionalProperties":true},"plan_digest":{"type":["string","null"]},"concurrency":{"type":"integer"},"max_seconds":{"type":"integer"},"source_versions":{"type":["array","null"],"items":{"type":"object","required":["type","id","version"],"properties":{"type":{"type":"string"},"id":{"type":"string"},"version":{"type":["integer","string"]}}}},"definition_mode":{"type":"string","enum":["saved","latest"]},"approved_digest":{"type":["string","null"]},"preparation_error_code":{"type":["string","null"]},"start_when_prepared":{"type":"boolean","description":"The run starts as soon as its browser plans are ready, without a review step."},"approved_at":{"type":["string","null"],"format":"date-time"},"queued_at":{"type":["string","null"],"format":"date-time"},"run_plan_id":{"type":"string","nullable":true}}},"ScenarioRun":{"type":"object","properties":{"id":{"type":"string"},"lock_version":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"project_id":{"type":"string"},"run_id":{"type":"string"},"scenario_id":{"type":["string","null"],"description":"Null when the run came from a Scenario file that was not saved."},"persona_id":{"type":"string"},"account_assignment_id":{"type":["string","null"]},"credential_id":{"type":["string","null"]},"state":{"type":"string","enum":["pending","planning","prepared","queued","running","passed","failed","cancelled","timed_out","blocked","skipped"]},"scenario_snapshot":{"type":"object","additionalProperties":true},"persona_snapshot":{"type":"object","additionalProperties":true},"account_snapshot":{"type":"object","additionalProperties":true},"result_json":{"type":"object","additionalProperties":true,"description":"Raw report returned by the run API. The browser page omits it and publishes recording, outcomes and summaries directly."},"plan_snapshot":{"type":["object","null"],"deprecated":true,"description":"The prepared start of runs prepared before the runner derived it from the scenario. Newer runs leave it empty; read scenario_snapshot.outcomes instead.","properties":{"actions":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ScenarioRunAction"},{"$ref":"#/components/schemas/ScenarioRunLogin"}]}},"assertions":{"type":"array","items":{"$ref":"#/components/schemas/ScenarioRunAssertion"}},"requires_adaptive_execution":{"type":"boolean","description":"The browser agent works from the original steps; actions hold only the start of the run."}}},"run_plan":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/RunPlanSnapshot"}]},"scenario_editable":{"type":"boolean","description":"Whether this execution has an active saved scenario that can be edited."},"failure_code":{"type":["string","null"]},"failure_message":{"type":["string","null"]},"application_cleanup_state":{"type":"string","enum":["not_requested","not_started","pending","complete","incomplete"],"description":"Authored application cleanup, separate from Scenario checks and runner disposal."},"cleanup_state":{"type":"string","enum":["not_started","pending","complete","blocked"]},"cleanup_unconfirmed":{"type":"array","description":"When cleanup is blocked, the names the runner could not confirm were removed, either still shown or not fully readable. Empty when it checked no names.","items":{"type":"string"}},"runner_image_digest":{"type":["string","null"]},"shared_sign_in":{"description":"For the run dispatched to sign in for its account and share the session, whether it did, or the runner, Roder or exchange code saying why not.","oneOf":[{"type":"object","required":["status","recorded_at"],"properties":{"status":{"type":"string","enum":["shared","failed"]},"code":{"type":"string"},"recorded_at":{"type":"string","format":"date-time"}}},{"type":"null"}]},"waiting_reason":{"type":["string","null"],"description":"Why a queued execution has not started, such as waiting for its account's sign-in turn (credential_concurrency_limit)."},"started_at":{"type":["string","null"],"format":"date-time"},"finished_at":{"type":["string","null"],"format":"date-time"},"evidence":{"type":"array","items":{"$ref":"#/components/schemas/VerifyEvidenceItem"}},"finding_ids":{"type":"array","items":{"type":"string"}},"summary":{"$ref":"#/components/schemas/ScenarioRunSummary"},"recording":{"$ref":"#/components/schemas/ScenarioRunRecording"},"browser_errors":{"type":"array","description":"Console errors and failed requests the browser saw, each listed once with its count, in the order they first happened. At most ten.","items":{"$ref":"#/components/schemas/ScenarioRunBrowserError"}},"activity":{"type":["string","null"],"description":"What the scenario is doing now, in plain words, while it runs; null otherwise. The same line as its RunScenarioSummary activity."},"live":{"oneOf":[{"$ref":"#/components/schemas/ScenarioRunLive"},{"type":"null"}]},"completed_journey_steps":{"type":["integer","null"],"minimum":0,"description":"Authored steps passed so far, kept after the run ends so a run stopped early still shows how far it got; null for runs without an authored journey."},"learning":{"description":"How many of the steps learned from earlier passing runs this run replayed without model turns, and how each completed step and checked outcome was done; null when the runner reported no learning. While the run is live, steps and outcomes follow the runner's progress so far.","oneOf":[{"$ref":"#/components/schemas/ScenarioRunLearning"},{"type":"null"}]},"outcomes":{"type":"array","description":"Each expected outcome with the result of the browser checks that verify it.","items":{"$ref":"#/components/schemas/ScenarioRunOutcome"}},"other_findings":{"type":"array","description":"Findings that no failed outcome explains.","items":{"$ref":"#/components/schemas/ScenarioRunFinding"}},"evidence_archive_url":{"type":["string","null"],"description":"A zip of the scenario run's readable evidence; null when it has none."},"fixable":{"type":"boolean","description":"The browser failed, was blocked, or timed out, so its result can be handed to a coding agent to fix."},"lessons":{"type":"array","description":"What operators taught Verify on this run, oldest first. Later runs of the Scenario recall them as advisory notes.","items":{"$ref":"#/components/schemas/ScenarioRunLesson"}}},"required":["id","lock_version","created_at","updated_at","project_id","run_id","scenario_id","persona_id","account_assignment_id","credential_id","state","scenario_snapshot","persona_snapshot","account_snapshot","plan_snapshot","lessons"]},"ProjectCollection":{"type":"object","required":["projects","permissions"],"properties":{"projects":{"type":"array","items":{"$ref":"#/components/schemas/Project"}},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"}}},"PersonaCollection":{"type":"object","required":["personas","permissions"],"properties":{"personas":{"type":"array","items":{"$ref":"#/components/schemas/Persona"}},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"}}},"ScenarioCollection":{"type":"object","required":["scenarios","permissions"],"properties":{"scenarios":{"type":"array","items":{"$ref":"#/components/schemas/Scenario"}},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"}}},"ProjectEnvironmentDirectory":{"type":"object","description":"The Environments page. Added addresses and pull request previews are searched and paged separately.","required":["project","environments","previews","active_count","archived_count","permissions","binary_choices","messaging_enabled","tester_numbers"],"properties":{"project":{"$ref":"#/components/schemas/ProjectHeader"},"environments":{"$ref":"#/components/schemas/ProjectEnvironmentDirectoryGroup"},"previews":{"$ref":"#/components/schemas/ProjectEnvironmentDirectoryGroup"},"active_count":{"type":"integer"},"archived_count":{"type":"integer"},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"},"binary_choices":{"type":"array","items":{"$ref":"#/components/schemas/VerifyBinaryChoice"}},"messaging_enabled":{"type":"boolean"},"tester_numbers":{"type":"array","items":{"type":"string"}}}},"ProjectEnvironmentDirectoryGroup":{"type":"object","required":["environments","pagination"],"properties":{"environments":{"type":"array","items":{"$ref":"#/components/schemas/Environment"}},"pagination":{"$ref":"#/components/schemas/VerifyRunsPagination"}}},"EnvironmentCollection":{"type":"object","required":["environments","permissions"],"properties":{"environments":{"type":"array","items":{"$ref":"#/components/schemas/Environment"}},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"}}},"ProjectCredentialCollection":{"type":"object","required":["credentials","permissions"],"properties":{"credentials":{"type":"array","items":{"$ref":"#/components/schemas/ProjectCredential"}},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"}}},"ProjectCredentialInbox":{"type":"object","description":"Recent mail received by a Composal-provisioned credential address, newest first.","required":["messages"],"properties":{"messages":{"type":"array","maxItems":10,"items":{"type":"object","required":["id","from","subject","received_at","text"],"properties":{"id":{"type":"string"},"from":{"type":"string"},"subject":{"type":["string","null"]},"received_at":{"type":"string","format":"date-time"},"text":{"type":"string"}}}}}},"RunCollection":{"type":"object","required":["runs","permissions"],"properties":{"runs":{"type":"array","items":{"$ref":"#/components/schemas/Run"}},"pagination":{"type":"object","properties":{"count":{"type":"integer"},"page":{"type":"integer"},"limit":{"type":"integer"},"last":{"type":"integer"},"previous":{"type":["integer","null"]},"next":{"type":["integer","null"]}}},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"}}},"ProjectPage":{"type":"object","required":["project","permissions","personas","scenarios","scenario_states","environments","network_connections","credentials","identity_provider","runs","pull_requests","pull_request_options"],"properties":{"scenario_states":{"$ref":"#/components/schemas/VerifyScenarioStateCounts"},"identity_provider":{"description":"Where the organization's apps trust Composal sign-in, for new personas","type":"object","required":["issuer","discovery_url","email_suffix"],"properties":{"issuer":{"type":"string"},"discovery_url":{"type":"string"},"email_suffix":{"type":"string"}}},"scenario_history":{"$ref":"#/components/schemas/ScenarioHistory"},"pull_requests":{"type":"array","items":{"$ref":"#/components/schemas/VerifyPullRequestSummary"}},"overview":{"$ref":"#/components/schemas/VerifyPage"},"setup_required":{"type":"boolean"},"pull_request_options":{"$ref":"#/components/schemas/VerifyPullRequestOptions"},"project":{"$ref":"#/components/schemas/Project"},"permissions":{"type":"object","required":["manage","record_scenarios"],"properties":{"manage":{"type":"boolean"},"record_scenarios":{"type":"boolean","description":"Whether this admin can record a journey to draft a Scenario."}}},"personas":{"type":"array","items":{"$ref":"#/components/schemas/Persona"}},"scenarios":{"type":"array","items":{"$ref":"#/components/schemas/Scenario"}},"environments":{"type":"array","items":{"$ref":"#/components/schemas/Environment"}},"network_connections":{"type":"array","items":{"$ref":"#/components/schemas/VerifyNetworkConnection"}},"credentials":{"type":"array","items":{"$ref":"#/components/schemas/ProjectCredential"}},"runs":{"type":"array","items":{"$ref":"#/components/schemas/Run"}}}},"RunPage":{"type":"object","required":["project","run","web_path","scenario_runs","permissions","available_tests"],"properties":{"project":{"$ref":"#/components/schemas/Project"},"run":{"$ref":"#/components/schemas/Run"},"web_path":{"type":"string","description":"Path of the run's page in the web app, where it can be watched live."},"scenario_runs":{"type":"array","items":{"$ref":"#/components/schemas/ScenarioRun"}},"available_tests":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"}}},"ScenarioRevision":{"type":"object","required":["id","action","source","batch","version","user","created_at"],"properties":{"id":{"type":"string"},"action":{"type":"string","enum":["create","update","import","archive","duplicate","from_exploration","discovery"]},"source":{"type":"string","description":"The client the save came through.","enum":["web","cli","api","mobile","mcp","system"]},"batch":{"type":"string","description":"Shared by every revision one request or job saved."},"version":{"type":"integer","description":"The Scenario's lock_version after this save."},"user":{"description":"Null when a system job saved the Scenario.","oneOf":[{"$ref":"#/components/schemas/User"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time"}}},"ScenarioRevisionDetail":{"allOf":[{"$ref":"#/components/schemas/ScenarioRevision"},{"type":"object","required":["definition"],"properties":{"definition":{"$ref":"#/components/schemas/ScenarioFile"}}}]},"ScenarioRevisionCollection":{"type":"object","required":["revisions","pagination"],"properties":{"revisions":{"type":"array","items":{"$ref":"#/components/schemas/ScenarioRevisionDetail"}},"pagination":{"$ref":"#/components/schemas/VerifyRunsPagination"}}},"ScenarioFile":{"type":"object","description":"One narrative v1 or named-actor v2 Scenario file; its $schema identifies the full contract.","required":["$schema","name","steps","outcomes"],"properties":{"$schema":{"type":"string","enum":["https://composal.ai/schema/verify/v1/scenario.json","https://composal.ai/schema/verify/v2/scenario.json"]},"id":{"type":"string","description":"Absent on a new file"},"key":{"type":"string","pattern":"^[a-z0-9_-]{1,100}$","description":"Set on a new file so a retried import matches the Scenario it created"},"version":{"type":"integer","minimum":0,"description":"The Scenario's lock_version; present exactly when id is"},"name":{"type":"string","maxLength":160},"persona":{"type":"string","description":"Active Persona name; omitted means the Signed-out visitor"},"labels":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":40},"description":"Omitted when the Scenario has none. On import, a missing key keeps the current labels and [] removes them."},"fixtures":{"type":"array","maxItems":10,"description":"Omitted when the Scenario has none. On import, a missing key keeps the current fixtures and [] removes them.","items":{"$ref":"#/components/schemas/ScenarioFileFixture"}},"fixture_hashes":{"type":"object","description":"Each fixture path's sha256. Sent beside the file's fields and removed before the file is checked against its schema.","additionalProperties":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"allowed_actions":{"type":"string","enum":["read_only","writes"]},"starting_conditions":{"type":["string","null"],"maxLength":4000},"actors":{"type":"object","minProperties":1,"maxProperties":4,"additionalProperties":{"type":"object","required":["persona"],"properties":{"persona":{"type":"string"},"distinct_from":{"type":"array","maxItems":3,"items":{"type":"string"}}}}},"primary_actor":{"type":"string"},"identity_probe":{"$ref":"#/components/schemas/ScenarioIdentityProbe"},"steps":{"type":"array","maxItems":100,"items":{"oneOf":[{"type":"string","maxLength":4000},{"$ref":"#/components/schemas/ScenarioActorStep"}]}},"outcomes":{"type":"array","maxItems":100,"items":{"oneOf":[{"type":"string","maxLength":4000},{"$ref":"#/components/schemas/ScenarioActorOutcome"}]}}}},"ScenarioFileExport":{"type":"object","required":["organization","project","scenarios"],"properties":{"organization":{"type":"object","required":["id","slug"],"properties":{"id":{"type":"string"},"slug":{"type":"string"}}},"project":{"type":"object","required":["id","slug","name"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}},"scenarios":{"type":"array","items":{"$ref":"#/components/schemas/ScenarioFile"}}}},"ScenarioFileImport":{"type":"object","required":["scenarios"],"properties":{"dry_run":{"type":"boolean","default":false},"scenarios":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/ScenarioFile"},{"type":"object","required":["path"],"properties":{"path":{"type":"string","description":"The file's local path, echoed in its result"}}}]}}}},"ScenarioFileImportResponse":{"type":"object","required":["results"],"properties":{"results":{"type":"array","items":{"type":"object","required":["path","outcome","id","version","errors","warnings"],"properties":{"path":{"type":"string"},"outcome":{"type":"string","enum":["created","updated","unchanged","refused"]},"id":{"type":["string","null"],"description":"Null for a refused file or a Scenario that was not saved"},"version":{"type":["integer","null"]},"errors":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","description":"Wording a run cannot check reliably, each with how to rewrite it. The file still saves.","items":{"type":"string"}}}}}}},"ScenarioDuplicate":{"type":"object","required":["name","version"],"properties":{"name":{"type":"string"},"version":{"type":"integer","minimum":0},"persona_id":{"type":"string"}}},"RunPrepare":{"type":"object","description":"Give exactly one of scenario_ids, scenario_files or run_plan_id. A Run Plan also requires run_plan_version.","required":["environment_id","idempotency_key"],"properties":{"viewer_time_zone":{"type":"string","maxLength":64,"description":"The launching viewer's IANA time zone. With an Automatic sandbox region, browsers run in the region nearest it."},"environment_id":{"type":"string"},"scenario_ids":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string"}},"scenario_files":{"type":"array","minItems":1,"description":"Scenario files to run as written without saving them. A file whose id, version, Persona, and run definition match an active Scenario in this project adds its execution to that Scenario's history. Other files keep separate run history. A refusal lists each refused file in details.","items":{"allOf":[{"$ref":"#/components/schemas/ScenarioFile"},{"type":"object","properties":{"path":{"type":"string","description":"The file's local path, echoed in refusals."}}}]}},"idempotency_key":{"type":"string","minLength":1,"maxLength":160},"concurrency":{"type":"integer","minimum":1,"maximum":50,"description":"Defaults to the organization's concurrent agent limit."},"max_seconds":{"type":"integer","minimum":30,"maximum":7200,"description":"Seconds the whole run may take from when it is queued, including time scenarios wait to start. Defaults to 7200."},"start_when_prepared":{"type":"boolean","description":"Start the run as soon as its browser plans are ready instead of waiting for a launch request. Defaults to false."},"run_plan_id":{"type":"string"},"run_plan_version":{"type":"integer"}}},"RunLaunch":{"type":"object","required":["digest","idempotency_key"],"properties":{"viewer_time_zone":{"type":"string","maxLength":64,"description":"The launching viewer's IANA time zone. With an Automatic sandbox region, browsers run in the region nearest it."},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$"},"idempotency_key":{"type":"string","minLength":1,"maxLength":160}}},"RunRerun":{"type":"object","required":["mode","idempotency_key"],"properties":{"viewer_time_zone":{"type":"string","maxLength":64,"description":"The launching viewer's IANA time zone. With an Automatic sandbox region, browsers run in the region nearest it."},"mode":{"type":"string","enum":["saved","latest"]},"idempotency_key":{"type":"string","minLength":1,"maxLength":160},"start_when_prepared":{"type":"boolean","description":"Start the new run as soon as its browser plans are ready. Defaults to false."}}},"ScenarioRunAction":{"type":"object","required":["kind","target"],"additionalProperties":false,"properties":{"kind":{"type":"string","enum":["navigate","click","fill","select","wait","capture"]},"target":{"type":"string","minLength":1,"maxLength":500},"value":{"type":"string","minLength":1,"maxLength":4000},"value_ref":{"type":"string","minLength":1,"maxLength":128},"wait_ms":{"type":"integer","minimum":100,"maximum":10000}},"allOf":[{"if":{"required":["value"]},"then":{"properties":{"kind":{"enum":["fill","select"]}}}},{"if":{"required":["value_ref"]},"then":{"properties":{"kind":{"enum":["fill"]}},"not":{"required":["value"]}}},{"if":{"required":["wait_ms"]},"then":{"properties":{"kind":{"enum":["wait"]}}}}]},"ScenarioRunAssertion":{"type":"object","required":["outcome_index","kind","target","expected"],"additionalProperties":false,"properties":{"outcome_index":{"type":"integer","minimum":0},"kind":{"type":"string","enum":["visible","hidden","text","url","status"]},"target":{"type":"string","minLength":1,"maxLength":4000},"expected":{"type":["string","number","boolean"],"maxLength":4000}},"allOf":[{"if":{"properties":{"kind":{"const":"status"}}},"then":{"properties":{"target":{"type":"string","enum":["page"]},"expected":{"anyOf":[{"type":"integer","minimum":100,"maximum":599},{"type":"string","pattern":"^[1-5][0-9]{2}$"}]}}}}]},"ScenarioRunLogin":{"type":"object","additionalProperties":false,"required":["kind","target","test_account_id","credential_refs"],"properties":{"kind":{"type":"string","enum":["login"]},"target":{"type":"string"},"test_account_id":{"type":"string"},"credential_refs":{"type":"array","items":{"type":"string"}}}},"DesktopConfiguration":{"type":"object","additionalProperties":false,"not":{"required":["managed_binary","android"]},"required":["image","description"],"oneOf":[{"properties":{"platform":{"enum":["linux"]},"provider":{"enum":["blaxel"]},"image":{"pattern":"^sandbox/[a-zA-Z0-9_.-]+:(?!latest$)[a-zA-Z0-9_.-]+$"},"artifact_paths":{"items":{"pattern":"^/home/cua/"}}}},{"required":["platform","provider"],"properties":{"platform":{"enum":["macos"]},"provider":{"enum":["namespace"]},"image":{"pattern":"^namespace/macos:26\\.3\\.1-25D2128-cua-0\\.34\\.0$","minLength":41,"maxLength":41},"artifact_paths":{"items":{"pattern":"^/Users/runner/"}}},"not":{"anyOf":[{"required":["android"]},{"required":["managed_binary"]}]}}],"properties":{"platform":{"type":"string","enum":["linux","macos"]},"provider":{"type":"string","enum":["blaxel","namespace"]},"image":{"type":"string","maxLength":256},"description":{"type":"string","minLength":1,"maxLength":4000},"setup_command":{"type":"string","maxLength":4000},"launch_command":{"type":"string","maxLength":4000},"artifact_paths":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":1000}},"android":{"$ref":"#/components/schemas/AndroidApk"},"managed_binary":{"$ref":"#/components/schemas/ManagedBinaryManifest"}}},"AndroidApk":{"type":"object","additionalProperties":false,"required":["apk_id","sha256"],"properties":{"apk_id":{"type":"string","minLength":20,"maxLength":100},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"RepositoryAccessEntry":{"type":"object","required":["organization_id","organization_slug","organization_name","membership_role","repository_id","repository_slug","repository_name","default_branch","git_https_clone_url","git_https_supported","git_auth_username"],"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"},"default_branch":{"type":"string"},"git_https_clone_url":{"type":"string","format":"uri","nullable":true},"git_https_supported":{"type":"boolean"},"git_auth_username":{"type":"string"},"github_access_warnings":{"type":"array","items":{"$ref":"#/components/schemas/GithubRepositoryAccessHealth"}}}},"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"}}}}]}}},"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","github_app_installation_id","status","client_name","client_version","error_message","can_authorize_github","github_connected","expires_at","git_imports","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"organization_slug":{"type":"string"},"github_app_installation_id":{"type":"string","nullable":true},"status":{"type":"string","enum":["pending","running","completed","failed","canceled","expired"]},"git_imports":{"type":"array","items":{"$ref":"#/components/schemas/GitImportStatus"}},"client_name":{"type":"string","nullable":true},"client_version":{"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"},"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"}}},"Repository":{"type":"object","required":["id","organization_id","slug","name","description","icon_name","status","merge_authority","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"icon_name":{"type":"string"},"status":{"type":"string","enum":["active","archived"]},"merge_authority":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"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"}}},"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}}},"RepositoryGitObjectTally":{"type":"object","required":["kind","objects","object_bytes","largest_object_bytes"],"properties":{"kind":{"type":"string","enum":["blob","tree","commit","tag"]},"objects":{"type":"integer","minimum":0},"object_bytes":{"type":"integer","minimum":0},"largest_object_bytes":{"type":"integer","minimum":0}}},"RepositoryGitPhysicalStats":{"type":"object","required":["backend_generation","revision","objects","object_bytes","pack_count","pack_entries","kinds"],"properties":{"backend_generation":{"type":"integer","minimum":1},"revision":{"type":"integer","minimum":0},"objects":{"type":"integer","minimum":0},"object_bytes":{"type":"integer","minimum":0},"pack_count":{"type":"integer","minimum":0},"pack_entries":{"type":"integer","minimum":0},"kinds":{"type":"array","items":{"$ref":"#/components/schemas/RepositoryGitObjectTally"}}}},"RepositoryGitStatsSeriesPoint":{"type":"object","required":["captured_at","physical"],"properties":{"captured_at":{"type":"string","format":"date-time"},"physical":{"$ref":"#/components/schemas/RepositoryGitPhysicalStats"}}},"RepositoryGitStats":{"type":"object","required":["backend","freshness","physical","note","series","can_refresh"],"properties":{"backend":{"type":"string","enum":["git"]},"freshness":{"$ref":"#/components/schemas/RepositoryStatsFreshness"},"physical":{"$ref":"#/components/schemas/RepositoryGitPhysicalStats"},"note":{"type":"string"},"series":{"type":"array","items":{"$ref":"#/components/schemas/RepositoryGitStatsSeriesPoint"}},"can_refresh":{"type":"boolean"}}},"RunScenarioSummary":{"type":"object","required":["id","state","scenario_name","failure_code","summary","activity","fixable"],"properties":{"id":{"type":"string"},"state":{"$ref":"#/components/schemas/ScenarioRun/properties/state"},"scenario_name":{"type":"string","nullable":true},"failure_code":{"type":"string","nullable":true},"summary":{"type":"string","nullable":true,"maxLength":2000},"activity":{"type":"string","nullable":true,"maxLength":2000,"description":"What a running scenario is doing now, the same line as its ScenarioRun activity; null unless running."},"fixable":{"type":"boolean"}}},"RunBrowserPage":{"type":"object","required":["project","run","web_path","permissions","scenario_runs","selected_scenario_run","pagination","fixable_count","fix_scenarios","fix_scenario_count","preparation_reason","available_tests"],"properties":{"project":{"$ref":"#/components/schemas/ProjectHeader"},"run":{"$ref":"#/components/schemas/Run"},"web_path":{"type":"string"},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"},"scenario_runs":{"type":"array","items":{"$ref":"#/components/schemas/RunScenarioSummary"}},"selected_scenario_run":{"allOf":[{"$ref":"#/components/schemas/ScenarioRun"}],"nullable":true},"pagination":{"$ref":"#/components/schemas/VerifyRunsPagination"},"fixable_count":{"type":"integer"},"fix_scenarios":{"type":"array","description":"The fixable scenarios an agent handoff covers. With an open browser, only that scenario; otherwise the fixable scenarios on this page.","items":{"$ref":"#/components/schemas/RunScenarioSummary"}},"fix_scenario_count":{"type":"integer","description":"How many scenarios the agent handoff covers, including those on other pages."},"preparation_reason":{"type":"string","nullable":true},"available_tests":{"$ref":"#/components/schemas/RunPage/properties/available_tests"}}},"RunPlanNode":{"type":"object","additionalProperties":false,"required":["key","scenario_id"],"properties":{"key":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"scenario_id":{"type":"string"}}},"RunPlanDependency":{"type":"object","additionalProperties":false,"required":["from","after_step","to","before_step"],"properties":{"from":{"type":"string"},"after_step":{"type":"integer","minimum":1},"to":{"type":"string"},"before_step":{"type":"integer","minimum":1},"name":{"type":"string","maxLength":80}}},"RunPlanInput":{"type":"object","required":["name","nodes","dependencies"],"properties":{"name":{"type":"string","minLength":1,"maxLength":160},"nodes":{"type":"array","minItems":1,"maxItems":20,"items":{"$ref":"#/components/schemas/RunPlanNode"}},"dependencies":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/RunPlanDependency"}},"identity_probe":{"type":"object","nullable":true,"required":["path","subject_pointer","email_pointer"],"properties":{"path":{"type":"string"},"subject_pointer":{"type":"string"},"email_pointer":{"type":"string"}}}}},"RunPlanStep":{"type":"object","required":["step","position","instruction"],"properties":{"step":{"type":"integer"},"position":{"type":"integer"},"instruction":{"type":"string"},"setup":{"type":"boolean"}}},"RunPlanLane":{"type":"object","required":["key","scenario_id","name","persona_name","version","steps","outcome_indexes"],"properties":{"key":{"type":"string"},"scenario_id":{"type":"string"},"name":{"type":"string"},"persona_name":{"type":"string"},"version":{"type":"integer"},"steps":{"type":"array","items":{"$ref":"#/components/schemas/RunPlanStep"}},"outcome_indexes":{"type":"array","items":{"type":"integer"}},"state":{"type":"string"},"completed_steps":{"type":"integer"}}},"RunPlanSnapshot":{"type":"object","required":["id","version","name","nodes","dependencies","connectors","step_count","participants"],"properties":{"participants":{"type":"array","items":{"type":"object","required":["id","version"],"properties":{"id":{"type":"string"},"version":{"type":"integer"}}}},"step_count":{"type":"integer"},"connectors":{"type":"array","items":{"type":"object","required":["from_row","to_row","from_position","to_position"],"properties":{"from_row":{"type":"integer"},"to_row":{"type":"integer"},"from_position":{"type":"integer"},"to_position":{"type":"integer"}}}},"id":{"type":"string"},"version":{"type":"integer"},"name":{"type":"string"},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/RunPlanLane"}},"dependencies":{"type":"array","items":{"$ref":"#/components/schemas/RunPlanDependency"}},"completed_steps":{"type":"integer"}}},"RunPlan":{"type":"object","required":["id","project_id","name","nodes","dependencies","identity_probe","lock_version","preview","archived_at","created_at","updated_at"],"properties":{"id":{"type":"string"},"project_id":{"type":"string"},"name":{"type":"string"},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/RunPlanNode"}},"dependencies":{"type":"array","items":{"$ref":"#/components/schemas/RunPlanDependency"}},"identity_probe":{"type":"object","nullable":true,"required":["path","subject_pointer","email_pointer"],"properties":{"path":{"type":"string"},"subject_pointer":{"type":"string"},"email_pointer":{"type":"string"}}},"lock_version":{"type":"integer"},"preview":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/RunPlanSnapshot"}]},"archived_at":{"type":"string","nullable":true},"created_at":{"type":"string"},"updated_at":{"type":"string"}}},"RunPlanScenario":{"type":"object","required":["id","name","persona_name","step_count","available"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"persona_name":{"type":"string"},"step_count":{"type":"integer"},"available":{"type":"boolean"}}},"RunPlansPage":{"type":"object","required":["plans","scenarios","environments","permissions","pagination"],"properties":{"plans":{"type":"array","items":{"$ref":"#/components/schemas/RunPlan"}},"scenarios":{"type":"array","items":{"$ref":"#/components/schemas/RunPlanScenario"}},"environments":{"type":"array","items":{"$ref":"#/components/schemas/ProjectLaunchEnvironment"}},"permissions":{"type":"object","required":["manage"],"properties":{"manage":{"type":"boolean"}}},"pagination":{"$ref":"#/components/schemas/VerifyRunsPagination"}}},"RunPlanUpdate":{"allOf":[{"$ref":"#/components/schemas/RunPlanInput"},{"type":"object","required":["version"],"properties":{"version":{"type":"integer"}}}]},"RunPlanError":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}},"field_errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}},"RunSchedule":{"type":"object","required":["id","name","state","time_of_day","time_zone","credential_ids","lock_version","environment_id","next_run_at","history","selection_mode","labels","scenario_count"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"state":{"type":"string","enum":["active","paused"]},"time_of_day":{"type":"string"},"time_zone":{"type":"string"},"credential_ids":{"type":"object","additionalProperties":{"type":"string"}},"lock_version":{"type":"integer"},"environment_id":{"type":"string"},"environment_name":{"type":"string"},"notification_channel":{"type":"string","enum":["email","slack"],"description":"Email the schedule owner by default; legacy requests with a Slack subscription keep Slack."},"slack_subscription_id":{"type":"string","nullable":true},"next_run_at":{"type":"string","format":"date-time"},"history":{"type":"array","items":{"type":"object","required":["id","due_at","state","error_code","run_path","outcome"],"properties":{"id":{"type":"string"},"due_at":{"type":"string","format":"date-time"},"state":{"type":"string"},"error_code":{"type":"string","nullable":true},"run_path":{"type":"string","nullable":true},"outcome":{"type":"string","nullable":true}}}},"selection_mode":{"type":"string","enum":["all","labels"]},"labels":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":20},"scenario_count":{"type":"integer"}}},"RunScheduleCreate":{"type":"object","required":["name","state","time_of_day","time_zone","credential_ids","environment_id","selection_mode","labels"],"properties":{"name":{"type":"string"},"state":{"type":"string","enum":["active","paused"]},"time_of_day":{"type":"string"},"time_zone":{"type":"string"},"credential_ids":{"type":"object","additionalProperties":{"type":"string"}},"environment_id":{"type":"string","description":"Project environment slug or public ID."},"notification_channel":{"type":"string","enum":["email","slack"],"description":"Email the schedule owner by default; legacy requests with a Slack subscription keep Slack."},"slack_subscription_id":{"type":"string","nullable":true},"selection_mode":{"type":"string","enum":["all","labels"]},"labels":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":20}}},"RunScheduleUpdate":{"type":"object","required":["version"],"properties":{"name":{"type":"string"},"state":{"type":"string","enum":["active","paused"]},"time_of_day":{"type":"string"},"time_zone":{"type":"string"},"credential_ids":{"type":"object","additionalProperties":{"type":"string"}},"environment_id":{"type":"string","description":"Project environment slug or public ID."},"notification_channel":{"type":"string","enum":["email","slack"],"description":"Email the schedule owner by default; legacy requests with a Slack subscription keep Slack."},"slack_subscription_id":{"type":"string","nullable":true},"version":{"type":"integer"},"selection_mode":{"type":"string","enum":["all","labels"]},"labels":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":20}}},"RunScheduleOptions":{"type":"object","required":["labels","slack_channels"],"properties":{"labels":{"type":"array","items":{"type":"string"}},"slack_channels":{"type":"array","items":{"type":"object","required":["id","workspace_name","name"],"properties":{"id":{"type":"string"},"workspace_name":{"type":"string"},"name":{"type":"string"}}}}}},"RunScheduleSelection":{"type":"object","required":["selection_mode","labels"],"properties":{"selection_mode":{"type":"string","enum":["all","labels"]},"labels":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":20}}},"RunSchedulePreview":{"type":"object","required":["count","scenarios","personas"],"properties":{"count":{"type":"integer"},"scenarios":{"type":"array","items":{"type":"object","required":["id","name","available"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"available":{"type":"boolean"}}}},"personas":{"type":"array","items":{"type":"object","required":["id","name","credential_id"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"credential_id":{"type":"string","nullable":true}}}}}},"RunScheduleSetupOptions":{"allOf":[{"$ref":"#/components/schemas/RunScheduleOptions"},{"type":"object","required":["environments","credentials"],"properties":{"environments":{"type":"array","items":{"type":"object","required":["id","slug","name"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}}},"credentials":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}}}}]},"ScenarioEditContent":{"type":"object","required":["steps","outcomes"],"properties":{"steps":{"type":"array","minItems":1,"maxItems":100,"items":{"oneOf":[{"type":"string","minLength":1,"maxLength":4000},{"$ref":"#/components/schemas/ScenarioActorStep"}]}},"outcomes":{"type":"array","minItems":1,"maxItems":100,"items":{"oneOf":[{"type":"string","minLength":1,"maxLength":4000},{"$ref":"#/components/schemas/ScenarioActorOutcome"}]}}}},"ScenarioRunEdit":{"type":"object","required":["organization_id","scenario_id","version","current","actor_keys","can_run","run_unavailable_reason"],"properties":{"organization_id":{"type":"string"},"scenario_id":{"type":"string"},"version":{"type":"integer"},"current":{"$ref":"#/components/schemas/ScenarioEditContent"},"actor_keys":{"type":"array","items":{"type":"string"}},"can_run":{"type":"boolean"},"run_unavailable_reason":{"type":["string","null"]}}},"ScenarioRunEditSave":{"allOf":[{"$ref":"#/components/schemas/ScenarioEditContent"},{"type":"object","required":["version"],"properties":{"version":{"type":"integer"}}}]},"ScenarioRecordingCreate":{"type":"object","required":["persona_id","environment_id"],"properties":{"persona_id":{"type":"string","description":"The project persona the journey acts as."},"environment_id":{"type":"string","description":"The project environment the browser opens."},"start_path":{"type":"string","maxLength":500,"description":"A path on the environment to start at, such as /settings. Defaults to its address."}}},"ScenarioRecordingFinish":{"type":"object","properties":{"outcome_hint":{"type":"string","maxLength":1000,"description":"What shows the journey worked."}}},"ScenarioRecording":{"type":"object","required":["id","status","phase","persona_id","environment_id","browser","event_count","signed_in_during_recording","error","draft","created_at","updated_at"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["recording","drafting","drafted","failed","discarded","expired"]},"phase":{"type":"string","enum":["preparing","recording","saving","drafting","drafted","redraftable","ended"],"description":"What the owner can do now. preparing: the browser is starting. recording: the browser takes input and the recording can be finished. saving: the lease ended and the journey is being saved. drafting: the draft is being written. drafted: the draft is ready. redraftable: the journey is saved and can be drafted again. ended: nothing more happens; start a new recording. drafted, redraftable and ended change only when the owner acts."},"persona_id":{"type":"string"},"environment_id":{"type":"string"},"browser":{"$ref":"#/components/schemas/ScenarioRecordingBrowser"},"event_count":{"type":"integer"},"signed_in_during_recording":{"type":"boolean"},"error":{"type":["string","null"]},"draft":{"description":"Present once drafted.","oneOf":[{"$ref":"#/components/schemas/ScenarioDraft"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"ScenarioRecordingBrowser":{"type":"object","required":["status","expires_at","viewer_url","origin"],"properties":{"status":{"type":"string","enum":["pending","starting","ready","saved","closed","failed"]},"expires_at":{"type":"string","format":"date-time"},"viewer_url":{"type":["string","null"],"description":"Creator-only bearer link while the browser is ready. Do not share."},"origin":{"type":"string"}}},"ScenarioDraft":{"type":"object","description":"A Scenario drafted from a recording, shaped like ScenarioCreate. It is never saved automatically.","required":["name","labels","persona_id","allowed_actions","starting_conditions","steps","outcomes","gaps","persona_hint"],"properties":{"name":{"type":"string"},"labels":{"type":"array","items":{"type":"string"}},"persona_id":{"type":"string"},"allowed_actions":{"type":"string","enum":["read_only","writes"]},"starting_conditions":{"type":"string"},"steps":{"type":"array","items":{"type":"string"}},"outcomes":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"},"description":"What the recording could not show."},"persona_hint":{"type":["string","null"],"enum":["signs_in",null],"description":"signs_in when the journey signed in but its persona does not."}}},"SessionShowMarker":{"type":"object","description":"A commit landmark. Rails resolves `event_index` against the transcript being shown. Emitted only for checkpoints whose index is built. The commit the checkpoint was sealed at rides along: `git_commit_sha` (with `github_commit_url` when the repository is still addressable on GitHub) and `linked_commit_ids` open Git commits associated with this checkpoint. A checkpoint with no commit association carries neither.","required":["checkpoint_id","sequence_number","label","event_index","event_count","linked_commit_ids","git_commit_sha","github_commit_url"],"properties":{"checkpoint_id":{"type":"string"},"sequence_number":{"type":"integer"},"label":{"type":"string"},"event_index":{"type":"integer"},"event_count":{"type":"integer"},"linked_commit_ids":{"type":"array","items":{"type":"string"}},"git_commit_sha":{"type":"string","nullable":true,"description":"40-hex Git commit this checkpoint was sealed at; null when unsealed."},"github_commit_url":{"type":"string","nullable":true,"description":"Where that commit lives on GitHub, built from the repository's GitHub address. Null when the checkpoint is unsealed or the repository has no GitHub address."}}},"SessionShowTokenStats":{"type":"object","description":"Session-level token usage for the header cost estimate. `total_tokens` and `token_usage_scope` are the non-additive session aggregate; `token_usage` carries the itemized counters and `model_usage` the per-model split behind it, resolved with the same scope rule. `subagent_token_usage` is the child-agent share already inside them. `model` is from the latest uploaded checkpoint. The flat per-type fields remain for readers of the older shape.","required":["input_tokens","cached_input_tokens","output_tokens","reasoning_output_tokens","total_tokens","model","token_usage_scope","token_usage","model_usage","subagent_token_usage","estimated_cost"],"properties":{"input_tokens":{"type":"integer","nullable":true},"cached_input_tokens":{"type":"integer","nullable":true},"output_tokens":{"type":"integer","nullable":true},"reasoning_output_tokens":{"type":"integer","nullable":true},"total_tokens":{"type":"integer","nullable":true},"model":{"type":"string","nullable":true},"token_usage_scope":{"type":"string","nullable":true},"token_usage":{"oneOf":[{"$ref":"#/components/schemas/AgentTokenUsage"},{"type":"null"}]},"model_usage":{"type":"array","items":{"$ref":"#/components/schemas/AgentModelTokenUsage"}},"subagent_token_usage":{"oneOf":[{"$ref":"#/components/schemas/AgentTokenUsage"},{"type":"null"}]},"estimated_cost":{"oneOf":[{"$ref":"#/components/schemas/AgentCostEstimate"},{"type":"null"}]}}},"SessionTranscriptStats":{"type":"object","description":"Derived header stats for the resolved checkpoint's transcript. File/line/ duration fields are null when derivation could not read them (the UI omits those); transcript facet counts are always present.","required":["duration_ms","files_touched","files_touched_count","lines_added","lines_removed","prompt_count","response_count","step_count","reasoning_count","tool_event_count","tool_call_count","other_count"],"properties":{"duration_ms":{"type":"integer","nullable":true},"files_touched":{"type":"array","nullable":true,"description":"Distinct edited paths, capped at 50.","items":{"type":"string"}},"files_touched_count":{"type":"integer","nullable":true},"lines_added":{"type":"integer","nullable":true},"lines_removed":{"type":"integer","nullable":true},"prompt_count":{"type":"integer"},"response_count":{"type":"integer"},"step_count":{"type":"integer"},"reasoning_count":{"type":"integer"},"tool_event_count":{"type":"integer"},"tool_call_count":{"type":"integer"},"other_count":{"type":"integer"}}},"SessionShowTranscriptIndexState":{"type":"object","description":"The resolved checkpoint's transcript-index build state (page contract).","required":["state","checkpoint_id"],"properties":{"state":{"type":"string","enum":["ready","preparing","failed","unavailable"]},"checkpoint_id":{"type":"string"}}},"SessionShowPage":{"type":"object","required":["session","markers","token_stats","transcript_stats","transcript_index"],"properties":{"github_access_warnings":{"type":"array","items":{"$ref":"#/components/schemas/GithubRepositoryAccessHealth"}},"session":{"description":"Identical serialization to the org sessions page's expanded session, so the web reuses one session-detail builder. Jump-to data lives in `markers`, not on these checkpoints.","allOf":[{"$ref":"#/components/schemas/OrganizationSessionDetail"}]},"markers":{"type":"array","items":{"$ref":"#/components/schemas/SessionShowMarker"}},"token_stats":{"oneOf":[{"$ref":"#/components/schemas/SessionShowTokenStats"},{"type":"null"}]},"transcript_stats":{"oneOf":[{"$ref":"#/components/schemas/SessionTranscriptStats"},{"type":"null"}]},"transcript_index":{"oneOf":[{"$ref":"#/components/schemas/SessionShowTranscriptIndexState"},{"type":"null"}]}}},"TranscriptIndexBucketCounts":{"type":"object","description":"Event counts by UI filter bucket. Prompts include user, system, and developer messages. Responses, reasoning, tool traffic, and other lifecycle data remain distinct. Drives both whole-transcript totals and precise per-chunk skip planning during backward loading.","required":["prompts","responses","reasoning","tools","other"],"properties":{"prompts":{"type":"integer"},"responses":{"type":"integer"},"reasoning":{"type":"integer"},"tools":{"type":"integer"},"other":{"type":"integer"}}},"TranscriptIndexManifestChunk":{"type":"object","required":["seq","event_start","event_end","bucket_counts","bytes","sha256"],"properties":{"seq":{"type":"integer"},"event_start":{"type":"integer","description":"0-based inclusive index of the first event in the chunk."},"event_end":{"type":"integer","description":"0-based inclusive index of the last event in the chunk."},"bucket_counts":{"$ref":"#/components/schemas/TranscriptIndexBucketCounts"},"bytes":{"type":"integer","description":"Uncompressed JSON byte size of the chunk."},"sha256":{"type":"string","description":"SHA-256 of the uncompressed chunk JSON."}}},"TranscriptIndexManifest":{"type":"object","required":["version","session_id","checkpoint_id","event_count","chunk_size","chunk_count","bucket_counts","chunks","stats"],"properties":{"version":{"type":"integer"},"session_id":{"type":"string"},"checkpoint_id":{"type":"string"},"event_count":{"type":"integer"},"chunk_size":{"type":"integer"},"chunk_count":{"type":"integer"},"bucket_counts":{"$ref":"#/components/schemas/TranscriptIndexBucketCounts"},"chunks":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptIndexManifestChunk"}},"stats":{"$ref":"#/components/schemas/SessionTranscriptStats"}}},"TranscriptIndexChunkUrl":{"type":"object","required":["seq","url"],"properties":{"seq":{"type":"integer"},"url":{"type":"string","description":"Same-origin API path for the chunk's bytes — this operation with the resolved checkpoint pinned. The version and digest identify the exact immutable chunk bytes. Relative, so the browser sends it to the API with its session credentials."}}},"TranscriptIndexChunk":{"type":"object","description":"One chunk object's body, returned when `chunk` is set. Served zstd-encoded to clients that accept it, decompressed to everyone else.","required":["version","seq","events"],"properties":{"version":{"type":"integer"},"seq":{"type":"integer"},"events":{"type":"array","items":{"$ref":"#/components/schemas/AgentSessionTranscriptEvent"}}}},"SessionTranscriptIndexResponse":{"type":"object","required":["state","session_id","checkpoint_id"],"properties":{"state":{"type":"string","enum":["ready","preparing","failed"]},"session_id":{"type":"string"},"checkpoint_id":{"type":"string"},"manifest":{"description":"Present only when `state` is `ready`.","oneOf":[{"$ref":"#/components/schemas/TranscriptIndexManifest"},{"type":"null"}]},"chunks":{"type":"array","description":"Per-chunk same-origin URLs, present only when `state` is `ready`.","items":{"$ref":"#/components/schemas/TranscriptIndexChunkUrl"}}}},"OrganizationSessionRepository":{"type":"object","required":["id","slug","name"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}},"OrganizationSessionUser":{"type":"object","required":["id","name","handle","avatar_url"],"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"handle":{"type":"string","nullable":true},"avatar_url":{"type":"string","nullable":true,"description":"Avatar URL for the session owner: their OAuth/profile picture when set, otherwise a deterministic Gravatar derived from their email (mirrors History's commit author avatars)."}}},"AgentTokenUsage":{"type":"object","description":"Itemized token counters a cost estimate prices. `input_tokens` is the uncached prompt share; `cache_read_input_tokens` and `cache_creation_input_tokens` are the two cache classes (priced very differently), with the creation count split by TTL when the provider reports it; `cached_input_tokens` is their sum. `output_tokens` already includes `reasoning_output_tokens`. `api_call_count` is the number of distinct model responses behind the counters. Each field is null when the harness did not report it.","required":["input_tokens","cached_input_tokens","cache_read_input_tokens","cache_creation_input_tokens","cache_creation_5m_input_tokens","cache_creation_1h_input_tokens","output_tokens","reasoning_output_tokens","total_tokens","api_call_count"],"properties":{"input_tokens":{"type":"integer","nullable":true},"cached_input_tokens":{"type":"integer","nullable":true},"cache_read_input_tokens":{"type":"integer","nullable":true},"cache_creation_input_tokens":{"type":"integer","nullable":true},"cache_creation_5m_input_tokens":{"type":"integer","nullable":true},"cache_creation_1h_input_tokens":{"type":"integer","nullable":true},"output_tokens":{"type":"integer","nullable":true},"reasoning_output_tokens":{"type":"integer","nullable":true},"total_tokens":{"type":"integer","nullable":true},"api_call_count":{"type":"integer","nullable":true}}},"AgentCostEstimate":{"type":"object","description":"Estimated token cost at today's public list prices, priced by Rails so no client carries a price table. `usd` is a decimal string. `floor` is true when a model in the session has no list price, so the figure is a lower bound; those models are listed in `unpriced_models`. `models` gives each priced model's share. Rows shipped to analytics carry the price at capture time instead, so history never moves when the table does.","required":["usd","floor","models","unpriced_models","pricing_version"],"properties":{"usd":{"type":"string"},"floor":{"type":"boolean"},"models":{"type":"array","items":{"type":"object","required":["model","usd"],"properties":{"model":{"type":"string"},"usd":{"type":"string"}}}},"unpriced_models":{"type":"array","items":{"type":"string"}},"pricing_version":{"type":"string"}}},"AgentModelTokenUsage":{"allOf":[{"$ref":"#/components/schemas/AgentTokenUsage"},{"type":"object","required":["model"],"properties":{"model":{"type":"string","description":"Provider model id this share of the usage was billed to."}}}]},"OrganizationSessionStats":{"type":"object","required":["checkpoint_count","uploaded_count","failed_count","pending_count","redaction_count","last_captured_at","total_tokens","token_usage_scope","token_usage","model_usage","estimated_cost","message_count","agent_count","model","commit_count","pull_request_count","pull_requests"],"properties":{"checkpoint_count":{"type":"integer"},"uploaded_count":{"type":"integer"},"failed_count":{"type":"integer"},"pending_count":{"type":"integer"},"redaction_count":{"type":"integer"},"last_captured_at":{"type":"string","nullable":true},"total_tokens":{"type":"integer","nullable":true},"token_usage_scope":{"type":"string","nullable":true},"token_usage":{"oneOf":[{"$ref":"#/components/schemas/AgentTokenUsage"},{"type":"null"}],"description":"Itemized counters behind `total_tokens`, resolved across uploaded checkpoints with the same scope rule. Null when no checkpoint reported usage."},"model_usage":{"type":"array","description":"Per-model split of `token_usage`, sorted by model. Empty when the checkpoints predate per-model accounting.","items":{"$ref":"#/components/schemas/AgentModelTokenUsage"}},"estimated_cost":{"oneOf":[{"$ref":"#/components/schemas/AgentCostEstimate"},{"type":"null"}]},"message_count":{"type":"integer","nullable":true,"description":"Conversation prompt and response count derived from the session's latest uploaded checkpoint transcript. Falls back to the captured harness count when the transcript has not been indexed, or null."},"agent_count":{"type":"integer","nullable":true,"description":"Total agents the session ran (the primary agent plus its observed child agents), or null for a solo session with no observed subagents."},"model":{"type":"string","nullable":true,"description":"Model id from the latest uploaded checkpoint, for cost estimation."},"commit_count":{"type":"integer","description":"Server-derived Git commits linked to this session. The commits themselves ride the expanded session, not the row."},"pull_request_count":{"type":"integer","description":"Distinct GitHub pull requests those commits belong to. Zero while a trailer link is waiting for its pull request."},"pull_requests":{"type":"array","description":"The first few of those pull requests, in first-seen order, so a row can link them — at most three, whatever `pull_request_count` says. A reader renders the remainder as a `+N` from the count.","items":{"$ref":"#/components/schemas/OrganizationSessionPullRequest"}}}},"OrganizationSessionCommit":{"type":"object","required":["sha","evidence","pull_request_number"],"properties":{"sha":{"type":"string","description":"The 40-character git commit SHA."},"evidence":{"type":"string","enum":["trailer","merge","checkpoint"],"description":"How the server found this commit for the session: `trailer` — the commit message carried the session's `Vex-Session` line; `merge` — GitHub reported it as the pull request's merge commit. `checkpoint` — a session's checkpoint was sealed at this commit and no trailer named it."},"pull_request_number":{"type":"integer","nullable":true,"description":"The pull request this commit was found in, or null for a trailer link discovered before any pull request named it."}}},"OrganizationSessionPullRequest":{"type":"object","required":["number","state","github_url","merge_commit_sha","merged_at","head_branch"],"properties":{"number":{"type":"integer"},"state":{"type":"string","enum":["open","closed","merged"]},"github_url":{"type":"string","nullable":true,"description":"The pull request on GitHub, built from the virtual repository's owner and name. Null when that addressing is missing."},"merge_commit_sha":{"type":"string","nullable":true,"description":"The commit that landed on merge, whatever strategy produced it."},"merged_at":{"type":"string","nullable":true},"head_branch":{"type":"string","nullable":true}}},"OrganizationSessionBase":{"type":"object","required":["id","adapter","harness","status","title","external_session_id","repository","user","started_at","ended_at","last_checkpoint_at","last_activity_at","created_at","updated_at"],"properties":{"id":{"type":"string"},"adapter":{"type":"string"},"harness":{"type":"string","description":"Harness id the session presents as (codex, claude-code, cursor, roder, grok): the captured envelope's harness when recorded, else the adapter's canonical harness."},"status":{"type":"string"},"title":{"type":"string","nullable":true},"external_session_id":{"type":"string"},"repository":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSessionRepository"},{"type":"null"}]},"user":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSessionUser"},{"type":"null"}]},"started_at":{"type":"string","nullable":true},"ended_at":{"type":"string","nullable":true},"last_checkpoint_at":{"type":"string","nullable":true},"last_activity_at":{"type":"string","nullable":true,"description":"When the session last did anything: the newest checkpoint capture, else the session end, else its start."},"created_at":{"type":"string","nullable":true},"updated_at":{"type":"string","nullable":true}}},"OrganizationSessionSummary":{"allOf":[{"$ref":"#/components/schemas/OrganizationSessionBase"},{"type":"object","required":["stats"],"properties":{"stats":{"$ref":"#/components/schemas/OrganizationSessionStats"}}}]},"OrganizationSessionCheckpoint":{"type":"object","required":["id","external_checkpoint_id","sequence_number","capture_kind","status","scrubber_version","redaction_count","model","reasoning_effort","total_tokens","token_usage_scope","captured_at","uploaded_at","tombstoned_at","linked_commits","linked_commits_available"],"properties":{"id":{"type":"string"},"external_checkpoint_id":{"type":"string"},"sequence_number":{"type":"integer"},"capture_kind":{"type":"string"},"status":{"type":"string"},"scrubber_version":{"type":"string"},"redaction_count":{"type":"integer"},"model":{"type":"string","nullable":true,"description":"Model id from this checkpoint's sanitized envelope, or null."},"reasoning_effort":{"type":"string","nullable":true,"description":"Reasoning effort from this checkpoint's sanitized envelope (none, minimal, low, medium, high, xhigh, max, ultra), or null."},"total_tokens":{"type":"integer","nullable":true,"description":"This checkpoint's own reported token total, or null."},"token_usage_scope":{"type":"string","nullable":true,"description":"What the reported total covers (turn, session, or cumulative), or null when no usage was reported."},"captured_at":{"type":"string","nullable":true},"uploaded_at":{"type":"string","nullable":true},"tombstoned_at":{"type":"string","nullable":true},"linked_commits":{"type":"array","description":"Native commit ids this checkpoint is attached to (reverse checkpoint→commit lookup). Empty when unavailable or unattached.","items":{"type":"string"}},"linked_commits_available":{"type":"boolean","description":"True when the reverse checkpoint→commit lookup succeeded for this session; false (with empty `linked_commits`) when it was unavailable."}}},"OrganizationSessionDetail":{"allOf":[{"$ref":"#/components/schemas/OrganizationSessionBase"},{"type":"object","required":["original_resume","linked_commits_available","total_tokens","token_usage_scope","token_usage","model_usage","estimated_cost","models","redaction_count","linked_commits","commits","pull_requests","resume_checkpoint_id","checkpoints"],"properties":{"original_resume":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["codex_deep_link","claude_command","cursor_command","grok_command"]},"value":{"type":"string"}}},{"type":"null"}],"description":"An author-only local resume target for the original provider session. Null for other viewers and unsupported providers."},"linked_commits_available":{"type":"boolean","description":"True when the reverse checkpoint→commit lookup succeeded for the expanded session; false when it was unavailable."},"total_tokens":{"type":"integer","nullable":true,"description":"Session token headline: the latest checkpoint's own reported total (never a sum — turn and cumulative scopes are not additive), or null when no checkpoint reported usage."},"token_usage_scope":{"type":"string","nullable":true,"description":"The scope of the headline total (turn, session, or cumulative)."},"token_usage":{"oneOf":[{"$ref":"#/components/schemas/AgentTokenUsage"},{"type":"null"}],"description":"Itemized counters for the cost estimate, resolved across uploaded checkpoints with the session aggregation rule. Null when no uploaded checkpoint reported usage."},"model_usage":{"type":"array","description":"Per-model split of `token_usage`, sorted by model.","items":{"$ref":"#/components/schemas/AgentModelTokenUsage"}},"estimated_cost":{"oneOf":[{"$ref":"#/components/schemas/AgentCostEstimate"},{"type":"null"}]},"models":{"type":"array","description":"Distinct model ids seen across the session's checkpoints, first-seen order.","items":{"type":"string"}},"redaction_count":{"type":"integer","description":"Total redactions across the session's checkpoints."},"linked_commits":{"type":"array","description":"Distinct Git commit IDs the session's checkpoints are attached to, in first-seen order. Empty when the reverse lookup was unavailable.","items":{"type":"string"}},"commits":{"type":"array","description":"Server-derived git commits for this session, oldest first, each labelled by how it was found.","items":{"$ref":"#/components/schemas/OrganizationSessionCommit"}},"pull_requests":{"type":"array","description":"Distinct GitHub pull requests those commits belong to, in first-seen order.","items":{"$ref":"#/components/schemas/OrganizationSessionPullRequest"}},"resume_checkpoint_id":{"type":"string","nullable":true,"description":"Public id of the checkpoint a local resume/continue command should target — the latest UPLOADED checkpoint (only uploaded checkpoints have a verified archive). Null when none uploaded."},"checkpoints":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationSessionCheckpoint"}}}}]},"SignalIntegrationProvider":{"type":"string","enum":["sentry","planetscale"]},"SignalIntegrationMode":{"type":"string","description":"`connected` is a customer-owned credential pasted into Vex; `managed` is a Vex-provisioned resource where Vex already holds the credential.","enum":["connected","managed"]},"SignalIntegrationStatus":{"type":"string","enum":["pending","active","failed","disabled"]},"SignalIntegrationExternalKind":{"type":"string","enum":["sentry_project","planetscale_database"]},"SignalIntegrationDeliveryState":{"type":"string","enum":["pending","processing","processed","failed","ignored"]},"SignalIntegration":{"type":"object","description":"One organization's connection to a signal source. Secret values are never rendered; `webhook_secret_stored` / `api_token_stored` say only whether one exists.","required":["id","organization_id","provider","mode","name","status","inbound_url","inbound_path","webhook_secret_stored","api_token_stored","config","unmapped_delivery_count","rejected_signature_count","failure_message","target_count"],"properties":{"id":{"type":"string","description":"Public id (`sint_…`)."},"organization_id":{"type":"string"},"provider":{"$ref":"#/components/schemas/SignalIntegrationProvider"},"mode":{"$ref":"#/components/schemas/SignalIntegrationMode"},"name":{"type":"string"},"status":{"$ref":"#/components/schemas/SignalIntegrationStatus"},"inbound_url":{"type":"string","description":"The absolute URL to paste into the provider's webhook configuration."},"inbound_path":{"type":"string"},"webhook_secret_stored":{"type":"boolean"},"api_token_stored":{"type":"boolean"},"config":{"type":"object","additionalProperties":true},"unmapped_delivery_count":{"type":"integer","description":"Deliveries accepted whose provider resource matched no enabled target."},"rejected_signature_count":{"type":"integer","description":"Deliveries rejected for a bad or missing signature."},"failure_message":{"type":"string","nullable":true},"target_count":{"type":"integer"},"last_received_at":{"type":"string","nullable":true},"last_verified_at":{"type":"string","nullable":true},"created_at":{"type":"string","nullable":true},"updated_at":{"type":"string","nullable":true}},"additionalProperties":false},"SignalIntegrationTarget":{"type":"object","description":"One provider resource mapped to a hosted app. A delivery naming an unmapped resource still becomes a signal, with null attribution.","required":["id","organization_id","signal_integration_id","external_kind","external_id","enabled"],"properties":{"id":{"type":"string","description":"Public id (`stgt_…`)."},"organization_id":{"type":"string"},"signal_integration_id":{"type":"string"},"external_kind":{"$ref":"#/components/schemas/SignalIntegrationExternalKind"},"external_id":{"type":"string"},"external_slug":{"type":"string","nullable":true},"display_name":{"type":"string","nullable":true},"hosted_app_id":{"type":"string","nullable":true},"app_service_id":{"type":"string","nullable":true},"enabled":{"type":"boolean"},"created_at":{"type":"string","nullable":true},"updated_at":{"type":"string","nullable":true}},"additionalProperties":false},"SignalIntegrationDelivery":{"type":"object","description":"One inbound receipt. Provider content is deliberately absent — the debugging question this answers is arrival, processing and failure.","required":["id","organization_id","signal_integration_id","provider","delivery_id","state","attempt_count"],"properties":{"id":{"type":"string","description":"Public id (`sdel_…`)."},"organization_id":{"type":"string"},"signal_integration_id":{"type":"string"},"provider":{"$ref":"#/components/schemas/SignalIntegrationProvider"},"delivery_id":{"type":"string","description":"The provider's delivery id, or a `content-…` id derived from the event kind, its timestamp header and the body checksum when it sends none."},"event_kind":{"type":"string","nullable":true},"state":{"$ref":"#/components/schemas/SignalIntegrationDeliveryState"},"attempt_count":{"type":"integer"},"last_error":{"type":"string","nullable":true},"ops_signal_id":{"type":"string","nullable":true,"description":"Public id (`sig_…`) of the signal this delivery emitted."},"received_at":{"type":"string","nullable":true},"processed_at":{"type":"string","nullable":true},"created_at":{"type":"string","nullable":true}},"additionalProperties":false},"SignalIntegrationCreatePayload":{"type":"object","required":["provider","name"],"properties":{"provider":{"$ref":"#/components/schemas/SignalIntegrationProvider"},"mode":{"$ref":"#/components/schemas/SignalIntegrationMode"},"name":{"type":"string"},"webhook_secret":{"type":"string","description":"The provider's signing secret. Stored as an organization secret; never read back."},"api_token":{"type":"string","description":"Optional provider API token for target discovery and backfill."},"config":{"type":"object","additionalProperties":true}},"additionalProperties":false},"SignalIntegrationUpdatePayload":{"type":"object","properties":{"name":{"type":"string"},"mode":{"$ref":"#/components/schemas/SignalIntegrationMode"},"status":{"$ref":"#/components/schemas/SignalIntegrationStatus"},"webhook_secret":{"type":"string"},"api_token":{"type":"string"},"config":{"type":"object","additionalProperties":true}},"additionalProperties":false},"SignalIntegrationTargetsPayload":{"type":"object","required":["targets"],"properties":{"targets":{"type":"array","items":{"type":"object","required":["external_id"],"properties":{"external_kind":{"$ref":"#/components/schemas/SignalIntegrationExternalKind"},"external_id":{"type":"string"},"external_slug":{"type":"string"},"display_name":{"type":"string"},"hosted_app_id":{"type":"string","description":"Hosted app public id (`app_…`), raw id, or slug."},"app_service_id":{"type":"string"},"enabled":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"SignalIntegrationInboundAccepted":{"type":"object","required":["delivery_id","state"],"properties":{"delivery_id":{"type":"string"},"state":{"$ref":"#/components/schemas/SignalIntegrationDeliveryState"}},"additionalProperties":false},"SignalIntegrationError":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"OpsSignalSeverity":{"type":"string","description":"Severity levels (docs §2, reusing `AlertRule::SEVERITIES`).","enum":["info","warning","error","critical"]},"OpsSignalLinks":{"type":"object","description":"Canonical, relative API paths built from real routes (docs §6a). Sits alongside — never inside — the frozen `payload`. A key is present only when it resolves from the columns the signal carries; `self` always is. These are REST resource paths, not UI routes.","required":["self"],"properties":{"self":{"type":"string"},"app":{"type":"string"},"service":{"type":"string"},"subject":{"type":"string"},"external":{"type":"string","description":"The provider deep link for an integration-sourced signal — the one absolute URL in this envelope, present only when the payload carries an http(s) `external_url` (docs §6e)."}}},"OpsSignalResolution":{"type":"object","description":"Recovery pairing (docs §6b). Present only on signals with a pairing shape — `runtime.health` degraded/failed and `alert.fired`. An applicable-but-unrecovered signal renders just `{ \"resolved\": false }`; every other kind omits the key entirely.","required":["resolved"],"properties":{"resolved":{"type":"boolean"},"resolved_by_signal":{"type":"string","nullable":true,"description":"Public id (`sig_…`) of the signal that cleared the condition."},"resolved_at":{"type":"string","nullable":true}}},"OpsSignalAttributionRef":{"type":"object","description":"One attribution target (hosted app or app service) — public id + display name.","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false},"OpsSignalAttribution":{"type":"object","description":"The producer-stamped attribution (docs §3) lifted out of `payload` into a typed sibling (docs §6d), so consumers get the ids and names they need — e.g. vex-web building its own UI routes — without reading the per-kind JSON. Always present; each key is null when the producer did not know it.","required":["app","service","region"],"properties":{"app":{"oneOf":[{"$ref":"#/components/schemas/OpsSignalAttributionRef"},{"type":"null"}]},"service":{"oneOf":[{"$ref":"#/components/schemas/OpsSignalAttributionRef"},{"type":"null"}]},"region":{"type":"string","nullable":true}},"additionalProperties":false},"OpsSignalRecovery":{"type":"object","description":"Recovered/resolved state folded from the `resolution` pairing (docs §6b/§6d). Present only when the pairing is satisfied — `recovered` for a runtime.health signal whose instance came back to running, `resolved` for an alert.fired whose event cleared. Absent otherwise.","required":["state","resolved_at"],"properties":{"state":{"type":"string","enum":["recovered","resolved"]},"resolved_at":{"type":"string","nullable":true}},"additionalProperties":false},"OpsSignalSourceProvider":{"type":"string","description":"Who produced the signal (docs §6e). `vex` is every signal the platform emits itself; the others are signal-integration adapters.","enum":["vex","sentry","planetscale"]},"OpsSignalSource":{"type":"object","description":"Provenance envelope (docs §6e), a sibling of the frozen `payload`. ALWAYS present, so a reader never branches on key presence: a Vex-produced signal renders `provider: \"vex\"` with null siblings.","required":["provider","integration_id","external_id","external_url"],"properties":{"provider":{"$ref":"#/components/schemas/OpsSignalSourceProvider"},"integration_id":{"type":"string","nullable":true,"description":"The `sint_…` public id of the signal integration that ingested this signal. Null for Vex-produced signals, and null until the signal integration model ships."},"external_id":{"type":"string","nullable":true,"description":"The provider's own id for the thing the signal is about (a Sentry issue id)."},"external_url":{"type":"string","nullable":true,"description":"Deep link to read the full event at the provider — Vex stores only a bounded reduction of it. Mirrored as `links.external`."}},"additionalProperties":false},"SignalSubscriptionFilters":{"type":"object","description":"The frozen filter slice a `SignalSubscription` stores. `sources` is the roadmap-138 addition, normalized and validated exactly like `kinds`.","required":["kinds","min_severity","hosted_app_ids","sources"],"properties":{"kinds":{"type":"array","items":{"type":"string"}},"min_severity":{"oneOf":[{"$ref":"#/components/schemas/OpsSignalSeverity"},{"type":"null"}]},"hosted_app_ids":{"type":"array","items":{"type":"string"},"description":"Rendered as `app_…` public ids; accepted as public ids, raw ids, or slugs."},"sources":{"type":"array","items":{"$ref":"#/components/schemas/OpsSignalSourceProvider"},"description":"Empty means every source."}},"additionalProperties":false},"OpsSignalSolutionChange":{"type":"object","description":"The Change a linked agent run submitted as the fix (`link_signal_to_change`).","required":["id","number","reference"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"reference":{"type":"string","description":"Pre-formatted human id (`#42`)."}},"additionalProperties":false},"OpsSignalAgentRuns":{"type":"object","description":"Dispatched-run summary (docs §6c). Present only once a signal has at least one `SignalAgentRun`, of either origin.","required":["count","latest_status"],"properties":{"count":{"type":"integer"},"latest_status":{"$ref":"#/components/schemas/OpsSignalAgentRunStatus"},"solution_change":{"oneOf":[{"$ref":"#/components/schemas/OpsSignalSolutionChange"},{"type":"null"}]}}},"OpsSignal":{"type":"object","description":"One ops signal, as serialized by `OpsSignalResource` (frozen envelope, docs §3). Every id is a prefixed public id, never a raw bigint.","required":["id","organization_id","kind","severity","subject_type","subject_id","hosted_app_id","app_service_id","dedupe_key","payload","summary","attribution","source","occurred_at","acked_at","created_at","links"],"properties":{"id":{"type":"string","description":"The signal's own `sig_…` public id — also the paging cursor value."},"organization_id":{"type":"string"},"kind":{"type":"string","description":"A frozen taxonomy kind (§1) or an `app.custom.*` kind."},"severity":{"$ref":"#/components/schemas/OpsSignalSeverity"},"subject_type":{"type":"string","nullable":true,"description":"Polymorphic pointer: `AppDeployment`, `RuntimeInstance`, `AlertEvent`, `HostedApp`, or `SignalSubscription`."},"subject_id":{"type":"string","nullable":true},"hosted_app_id":{"type":"string","nullable":true},"app_service_id":{"type":"string","nullable":true},"dedupe_key":{"type":"string","nullable":true},"payload":{"type":"object","additionalProperties":true,"description":"Per-kind shape (docs §4), with the producer's `region`/`app`/ `service` attribution keys baked in when known. Frozen contract — deliberately not narrowed per kind here."},"summary":{"type":"string","description":"One-line, kind-composed human sentence for the feed row (docs §6d, e.g. `deploying → failed`, `47× fp_9c1e77a4b2d0f331`) — server-authored so consumers never re-derive it from `payload`."},"attribution":{"$ref":"#/components/schemas/OpsSignalAttribution"},"source":{"$ref":"#/components/schemas/OpsSignalSource"},"recovery":{"$ref":"#/components/schemas/OpsSignalRecovery"},"occurred_at":{"type":"string","description":"ISO8601 domain event time — what the UI displays and `since` filters on."},"acked_at":{"type":"string","nullable":true},"acked_by":{"description":"Who acked the signal, read from `acked_by_user_id`. Always present so it reads as a pair with `acked_at`: null while unacked, and null for an ack recorded without a user (a bulk ack from a token-authed caller).","type":"object","nullable":true,"required":["id","name","email","picture_url"],"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"created_at":{"type":"string","description":"ISO8601 row insert time — retention math and debugging only."},"links":{"$ref":"#/components/schemas/OpsSignalLinks"},"resolution":{"$ref":"#/components/schemas/OpsSignalResolution"},"agent_runs":{"$ref":"#/components/schemas/OpsSignalAgentRuns"}}},"OpsSignalPage":{"type":"object","required":["signals","next_cursor","has_more"],"properties":{"signals":{"type":"array","items":{"$ref":"#/components/schemas/OpsSignal"}},"next_cursor":{"type":"string","nullable":true,"description":"The last returned signal's public id when more pages exist, else null. Feed it back as the same boundary param the request used."},"has_more":{"type":"boolean"}}},"OpsSignalEnvelope":{"type":"object","required":["signal"],"properties":{"signal":{"$ref":"#/components/schemas/OpsSignal"}}},"OpsSignalBulkAckRequest":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"Explicit `sig_…` ids. When present every other key is ignored."},"before_id":{"type":"string","description":"Inclusive upper bound (`sig_…`) — ack matching signals at or before it."},"kind":{"type":"string","description":"Single kind or comma-separated list."},"severity":{"type":"string","description":"Single severity or comma-separated list."},"min_severity":{"$ref":"#/components/schemas/OpsSignalSeverity"},"hosted_app_id":{"type":"string"},"source":{"type":"string","description":"Single source provider or comma-separated list (docs §6e). Alone it satisfies the \"explicitly scoped\" guard."},"integration_id":{"type":"string","description":"One signal integration — raw id, or `sint_…` once that model ships."},"since":{"type":"string"},"all":{"type":"boolean","description":"Opt in to an otherwise-unconstrained ack of every unacked signal."},"recovered_only":{"type":"boolean","description":"Narrow to signals whose `resolution.resolved` is true. Composes with every other filter and alone satisfies the \"explicitly scoped\" guard."}},"additionalProperties":false},"OpsSignalBulkAckResult":{"type":"object","required":["acked_count"],"properties":{"acked_count":{"type":"integer"}},"additionalProperties":false},"OpsSignalAgentPrompt":{"type":"object","required":["prompt"],"properties":{"prompt":{"type":"string"}},"additionalProperties":false},"OpsSignalAgentRunStatus":{"type":"string","enum":["dispatched","running","succeeded","failed","canceled"]},"StaticSite":{"type":"object","required":["id","organization_id","hosted_app_id","repository_id","slug","name","description","status","region","replication_regions","index_document","error_document","default_url","cdn_url","cdn_hostname","cname_target","provisioned","failure_message","active_deployment_id","provisioned_at","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"hosted_app_id":{"type":"string","nullable":true},"repository_id":{"type":"string","nullable":true},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string","enum":["draft","provisioning","active","degraded","archived","failed"]},"region":{"type":"string","nullable":true},"replication_regions":{"type":"array","items":{"type":"string"}},"index_document":{"type":"string"},"error_document":{"type":"string","nullable":true},"default_url":{"type":"string","format":"uri"},"cdn_url":{"type":"string","format":"uri"},"cdn_hostname":{"type":"string"},"cname_target":{"type":"string"},"provisioned":{"type":"boolean"},"failure_message":{"type":"string","nullable":true},"active_deployment_id":{"type":"string","nullable":true},"provisioned_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"StaticSiteCreatePayload":{"type":"object","required":["slug","name"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"region":{"type":"string"},"replication_regions":{"type":"array","items":{"type":"string"}},"index_document":{"type":"string"},"error_document":{"type":"string"},"hosted_app_id":{"type":"string"},"repository_id":{"type":"string"}}},"StaticSiteDeployment":{"type":"object","required":["id","static_site_id","creator_user_id","deploy_slug","status","trigger_kind","commit_sha","source_ref","file_count","total_bytes","file_count_label","total_bytes_label","failure_message","is_active","uploaded_at","activated_at","started_at","finished_at","created_at","updated_at","uploaded_at_label","activated_at_label","started_at_label","finished_at_label","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"static_site_id":{"type":"string"},"creator_user_id":{"type":"string","nullable":true},"deploy_slug":{"type":"string"},"status":{"type":"string","enum":["pending","uploading","uploaded","activating","active","failed","canceled","superseded"]},"trigger_kind":{"type":"string","enum":["cli","api","dashboard","ci"]},"commit_sha":{"type":"string","nullable":true},"source_ref":{"type":"string","nullable":true},"file_count":{"type":"integer","minimum":0},"total_bytes":{"type":"integer","minimum":0},"file_count_label":{"type":"string"},"total_bytes_label":{"type":"string"},"failure_message":{"type":"string","nullable":true},"is_active":{"type":"boolean"},"uploaded_at":{"type":"string","format":"date-time","nullable":true},"activated_at":{"type":"string","format":"date-time","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"finished_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"uploaded_at_label":{"type":"string","nullable":true},"activated_at_label":{"type":"string","nullable":true},"started_at_label":{"type":"string","nullable":true},"finished_at_label":{"type":"string","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"StaticSiteDomain":{"type":"object","required":["id","hosted_app_id","app_service_id","app_environment_id","static_site_id","hostname","kind","target_kind","dns_mode","record_type","record_name","record_value","tls_status","dns_status","verification_status","last_checked_at","failure_message","redirect_to","created_at","updated_at"],"properties":{"id":{"type":"string"},"hosted_app_id":{"type":"string","nullable":true},"app_service_id":{"type":"string","nullable":true},"app_environment_id":{"type":"string","nullable":true},"static_site_id":{"type":"string","nullable":true},"hostname":{"type":"string"},"kind":{"type":"string","enum":["primary","redirect","preview","internal"]},"target_kind":{"type":"string","enum":["app_service","static_site"]},"dns_mode":{"type":"string","enum":["manual_cname","cloudflare"]},"record_type":{"type":"string","nullable":true},"record_name":{"type":"string","nullable":true},"record_value":{"type":"string","nullable":true},"tls_status":{"type":"string","enum":["pending","active","failed"]},"dns_status":{"type":"string","enum":["pending","configured","failed"]},"verification_status":{"type":"string","enum":["pending","configured","failed"]},"last_checked_at":{"type":"string","format":"date-time","nullable":true},"failure_message":{"type":"string","nullable":true},"redirect_to":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"StaticSiteDomainCreatePayload":{"type":"object","required":["hostname"],"properties":{"hostname":{"type":"string"},"kind":{"type":"string","enum":["primary","redirect","preview","internal"]},"dns_mode":{"type":"string","enum":["manual_cname","cloudflare"]},"redirect_to":{"type":"string"}}},"DomainDnsIntegration":{"type":"object","required":["id","organization_id","provider","account_label","status","has_token","last_verified_at","failure_message","created_at","updated_at"],"properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"provider":{"type":"string","enum":["cloudflare"]},"account_label":{"type":"string","nullable":true},"status":{"type":"string","enum":["active","failed","disabled"]},"has_token":{"type":"boolean"},"last_verified_at":{"type":"string","format":"date-time","nullable":true},"failure_message":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"StaticSiteError":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}},"status":{"type":"string"},"failure_message":{"type":"string","nullable":true}}},"TranscriptPagination":{"type":"object","required":["next_cursor","has_more","limit"],"properties":{"next_cursor":{"type":"string","nullable":true},"has_more":{"type":"boolean"},"limit":{"type":"integer"}}},"TranscriptCheckpoint":{"type":"object","required":["id","captured_at","status","source_ref","matches"],"properties":{"id":{"type":"string"},"captured_at":{"type":"string","nullable":true},"status":{"type":"string","enum":["available","preparing","pending","unavailable","expired"]},"source_ref":{"type":"string","description":"Opaque saved-content reference. It grants no access."},"matches":{"type":"object","required":["entries","truncated"],"properties":{"truncated":{"type":"boolean"},"entries":{"type":"array","items":{"type":"object","required":["kind","commit"],"properties":{"kind":{"type":"string"},"commit":{"type":"string"},"patchset":{"type":"integer","nullable":true},"current_patchset":{"type":"boolean","nullable":true}}}}}}}},"TranscriptDiscoverySession":{"type":"object","required":["id","title","agent","author","started_at","last_checkpoint_at","source_url","status","selected_checkpoint","checkpoints","checkpoint_pagination"],"properties":{"id":{"type":"string"},"title":{"type":"string","nullable":true},"agent":{"type":"string"},"author":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true}}},"started_at":{"type":"string"},"last_checkpoint_at":{"type":"string","nullable":true},"source_url":{"type":"string"},"status":{"type":"string","enum":["available","preparing","pending","unavailable","expired","no_matching_checkpoint"]},"selected_checkpoint":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/TranscriptCheckpoint"}]},"checkpoints":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptCheckpoint"}},"checkpoint_pagination":{"$ref":"#/components/schemas/TranscriptPagination"}}},"TranscriptDiscoveryPage":{"type":"object","required":["target","sessions","pagination","as_of","linkage"],"properties":{"target":{"type":"object","required":["kind","reference","repo","observed_head"],"properties":{"kind":{"type":"string","enum":["github_pr","change","commit"]},"reference":{"type":"string"},"repo":{"type":"string"},"observed_head":{"type":"string","nullable":true},"change_id":{"type":"string"},"number":{"type":"integer"},"github_url":{"type":"string"},"commit":{"type":"string"}}},"sessions":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptDiscoverySession"}},"pagination":{"$ref":"#/components/schemas/TranscriptPagination"},"as_of":{"type":"string"},"linkage":{"type":"string","enum":["observed"]}}},"TranscriptReadPage":{"type":"object","required":["status","session_id","checkpoint_id","source_ref","scope","events","older_cursor","has_more","limits","contains_truncated_events","truncation_notice","newer_cursor"],"properties":{"status":{"type":"string","enum":["available","preparing","pending","unavailable","expired","no_checkpoint"]},"session_id":{"type":"string"},"checkpoint_id":{"type":"string","nullable":true},"source_ref":{"type":"string","nullable":true},"scope":{"type":"string","enum":["checkpoint","whole_session"]},"events":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptReadEvent"}},"older_cursor":{"type":"string","nullable":true},"has_more":{"type":"boolean"},"limits":{"type":"object","required":["events","bytes","include_tools"],"properties":{"events":{"type":"integer"},"bytes":{"type":"integer"},"include_tools":{"type":"boolean"}}},"contains_truncated_events":{"type":"boolean"},"truncation_notice":{"type":"string","nullable":true},"newer_cursor":{"type":"string","nullable":true}}},"TranscriptReadEvent":{"type":"object","required":["index","kind","role","text","truncated","timestamp","citation"],"properties":{"index":{"type":"integer"},"kind":{"type":"string","enum":["message","tool_use","tool_result"]},"role":{"type":"string","nullable":true},"text":{"type":"string"},"truncated":{"type":"boolean"},"timestamp":{"type":"string","nullable":true},"citation":{"type":"object","required":["checkpoint_id","event_index","digest"],"properties":{"checkpoint_id":{"type":"string"},"event_index":{"type":"integer"},"digest":{"type":"string"}}}}},"TranscriptSearchRequest":{"type":"object","additionalProperties":false,"required":["query"],"properties":{"query":{"type":"string","minLength":1,"maxLength":4000},"mode":{"type":"string","enum":["hybrid","keyword","semantic"],"default":"hybrid"},"repo":{"type":"string"},"user":{"type":"string"},"adapter":{"type":"string"},"status":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"cursor":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":50,"default":20},"max_bytes":{"type":"integer","minimum":8192,"maximum":131072,"default":32768}}},"TranscriptSearchResult":{"type":"object","required":["query","mode_requested","mode_used","status","coverage","results","pagination","limits"],"properties":{"query":{"type":"string"},"mode_requested":{"type":"string"},"mode_used":{"type":"string"},"status":{"type":"string","enum":["ready","empty","not_ready","degraded"]},"coverage":{"type":"object","required":["sessions","ready","pending","failed","indexed_at"],"properties":{"sessions":{"type":"integer"},"ready":{"type":"integer"},"pending":{"type":"integer"},"failed":{"type":"integer"},"indexed_at":{"type":"string","nullable":true}}},"results":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptSearchHit"}},"pagination":{"type":"object","required":["next_cursor","window_exhausted","budget_limited"],"properties":{"next_cursor":{"type":"string","nullable":true},"window_exhausted":{"type":"boolean"},"budget_limited":{"type":"boolean"}}},"limits":{"type":"object","required":["limit","max_bytes","candidate_window"],"properties":{"limit":{"type":"integer"},"max_bytes":{"type":"integer"},"candidate_window":{"type":"integer"}}},"degradation":{"type":"string"}}},"TranscriptSearchHit":{"type":"object","required":["session_id","title","repository","user","harness","model","started_at","url","matches"],"properties":{"session_id":{"type":"string"},"title":{"type":"string","nullable":true},"repository":{"type":"object","required":["id","slug"],"properties":{"id":{"type":"string"},"slug":{"type":"string"}}},"user":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true}}},"harness":{"type":"string"},"model":{"type":"string","nullable":true},"started_at":{"type":"string"},"url":{"type":"string"},"matches":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptSearchMatch"}}}},"TranscriptSearchMatch":{"type":"object","required":["role","excerpt","source_ref","checkpoint_id","event_index","event_digest","byte_start","byte_end","truncated"],"properties":{"role":{"type":"string","enum":["user","assistant"]},"excerpt":{"type":"string"},"source_ref":{"type":"string"},"checkpoint_id":{"type":"string"},"event_index":{"type":"integer"},"event_digest":{"type":"string"},"byte_start":{"type":"integer"},"byte_end":{"type":"integer"},"truncated":{"type":"boolean"}}},"TranscriptSearchError":{"type":"object","required":["status","code","error","results"],"properties":{"status":{"type":"string","enum":["error"]},"code":{"type":"string"},"error":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptSearchHit"}}}},"VcsBranch":{"type":"object","required":["name","target_commit_id"],"properties":{"name":{"type":"string"},"target_commit_id":{"type":"string"}}},"VcsBranchesResponse":{"type":"object","required":["branches","branches_count_label","default_branch","protected_bookmarks","setup_required"],"properties":{"branches":{"type":"array","items":{"$ref":"#/components/schemas/VcsBranch"}},"branches_count_label":{"type":"string"},"default_branch":{"type":"string","nullable":true},"protected_bookmarks":{"type":"array","items":{"type":"string"}},"setup_required":{"type":"boolean","description":"True when the repository has no jj-backend counterpart yet, so the client should offer first-time setup instead of browsing."}}},"VcsCommitGithubLink":{"type":"object","required":["repository","root_path","commit_sha","commit_url"],"properties":{"repository":{"type":"string"},"root_path":{"type":"string"},"commit_sha":{"type":"string"},"commit_url":{"type":"string","format":"uri"}}},"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}}},"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"}]},"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"},"directory_ref":{"type":"string","description":"Immutable commit reference for expanding this tree. Fall back to ref.name when absent."},"tree":{"type":"object","required":["paths","truncated","path_count"],"properties":{"loaded_directories":{"type":"array","nullable":true,"description":"Directories whose children are present; null for a recursive index.","items":{"type":"string"}},"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"}}},"VcsChangePreview":{"type":"object","required":["id","app_id","app_name","name","status","access","retained","expires_at","source_revision","source_patchset_number","current_patchset","urls","deployments","runtime_revisions"],"properties":{"id":{"type":"string"},"app_id":{"type":"string"},"app_name":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"access":{"type":"string","enum":["org_members","public"]},"retained":{"type":"boolean"},"expires_at":{"type":"string","format":"date-time"},"source_revision":{"type":["string","null"]},"source_patchset_number":{"type":["integer","null"]},"current_patchset":{"type":"boolean"},"urls":{"type":"array","items":{"type":"object","required":["hostname","available"],"properties":{"hostname":{"type":"string"},"available":{"type":"boolean"}}}},"deployments":{"type":"array","items":{"type":"object","required":["id","service_name","status","build_status","rollout_status","source_revision","patchset_number"],"properties":{"id":{"type":"string"},"service_name":{"type":"string"},"status":{"type":"string"},"build_status":{"type":"string"},"rollout_status":{"type":"string"},"source_revision":{"type":["string","null"]},"patchset_number":{"type":["integer","null"]}}}},"runtime_revisions":{"type":"array","items":{"type":"object","required":["source_revision","patchset_number","status"],"properties":{"source_revision":{"type":"string"},"patchset_number":{"type":["integer","null"]},"status":{"type":"string"}}}}}},"VcsResolvedReviewer":{"type":"object","required":["name","email"],"properties":{"name":{"type":"string","nullable":true},"email":{"type":"string","format":"email"}}},"VcsChangeError":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"VcsChangePrimaryStatus":{"type":"string","enum":["needs_review","review_requested","changes_requested","approved","ready_to_land","waiting_to_land","landing","landed","abandoned","folded","orphaned","needs_restack"]},"VcsActorSummary":{"allOf":[{"$ref":"#/components/schemas/VcsUserSummary"},{"type":"object","properties":{"kind":{"type":"string","enum":["automation"]},"slug":{"type":"string"}}}],"description":"Human user summary or organization automation identity. Automations have kind and slug, without email or picture_url."},"VcsUserSummary":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"picture_url":{"type":"string"}}},"VcsChangeCheck":{"type":"object","required":["id","name","status"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"required":{"type":"boolean"},"started_at":{"type":"string","format":"date-time"},"finished_at":{"type":"string","format":"date-time"},"pipeline_id":{"type":"string"},"run_id":{"type":"string"},"job_id":{"type":"string"},"blocked_reason":{"type":"string"},"source":{"type":"string","enum":["vex","github"]},"details_url":{"type":"string","format":"uri"},"app_id":{"type":"integer"},"expected":{"type":"boolean"},"expected_since":{"type":"string","format":"date-time"},"requirement":{"type":"object","properties":{"name":{"type":"string"},"source":{"type":"string","enum":["vex","github","any"]},"app_id":{"type":"integer","nullable":true},"state":{"type":"string","enum":["expected","pending","failed","passed"]},"evaluated_head":{"type":"string"}}}}},"VcsChangeVote":{"type":"object","required":["id","kind"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["accept","request_changes"]},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/VcsUserSummary"},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string"}}},"VcsChangeReviewer":{"type":"object","required":["user","state","requested"],"properties":{"user":{"$ref":"#/components/schemas/VcsUserSummary"},"state":{"type":"string","enum":["changes_requested","approved","pending"]},"requested":{"type":"boolean"}}},"VcsChangeReviewerCandidate":{"type":"object","required":["user"],"properties":{"user":{"$ref":"#/components/schemas/VcsUserSummary"},"unavailable_reason":{"type":"string"}}},"VcsChangePatchset":{"type":"object","required":["id","number","commit_id"],"properties":{"id":{"type":"string"},"number":{"type":"integer","minimum":1},"commit_id":{"type":"string"},"parent_commit_id":{"type":"string"},"base_commit_id":{"type":"string"},"message":{"type":"string"},"source_kind":{"type":"string","enum":["git"]},"source_git_sha":{"type":"string"},"checks_status":{"type":"string"},"created_by":{"$ref":"#/components/schemas/VcsActorSummary"},"created_at":{"type":"string","format":"date-time"},"created_at_label":{"type":"string"}}},"VcsChangeDiffPatchset":{"allOf":[{"$ref":"#/components/schemas/VcsChangePatchset"},{"type":"object","required":["reviewed_files"],"properties":{"reviewed_files":{"type":"array","items":{"$ref":"#/components/schemas/VcsReviewedFile"}}}}]},"VcsChangeDiffOption":{"type":"object","required":["key","label","group"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"group":{"type":"string","enum":["Target","Stack changes","Patchset history"]}}},"VcsChangeDiff":{"type":"object","required":["base_key","base_commit_id","head_key","head_patchset","files","options","target_advanced"],"properties":{"base_key":{"type":"string","nullable":true},"base_commit_id":{"type":"string","nullable":true},"head_key":{"type":"string","nullable":true},"head_patchset":{"oneOf":[{"$ref":"#/components/schemas/VcsChangeDiffPatchset"},{"type":"null"}]},"files":{"type":"array","items":{"$ref":"#/components/schemas/VcsDiffFile"}},"options":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeDiffOption"}},"target_advanced":{"type":"boolean"}}},"VcsChangeSync":{"type":"object","required":["state","target_branch","base","conflicts"],"properties":{"state":{"type":"string","enum":["current","clean","conflicts","unavailable"]},"target_branch":{"type":"string"},"target_commit_id":{"type":"string","nullable":true},"base":{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","enum":["change","target"]},"commit_id":{"type":"string","nullable":true},"target_branch":{"type":"string"},"change":{"type":"object","required":["id","number","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"title":{"type":"string"}}}}},"conflicts":{"type":"array","items":{"type":"object","required":["path","kind","message"],"properties":{"path":{"type":"string"},"kind":{"type":"string"},"message":{"type":"string"}}}}}},"VcsChangeTranscript":{"type":"object","additionalProperties":false,"required":["id","capture_kind","status","captured_at","redaction_count","patchset_number","patchset_commit_id","superseded","harness"],"properties":{"id":{"type":"string"},"capture_kind":{"type":"string","enum":["commit","lifecycle","manual"]},"status":{"type":"string","enum":["pending","uploaded","failed","deleted"]},"captured_at":{"type":"string","format":"date-time"},"redaction_count":{"type":"integer","minimum":0},"patchset_number":{"type":"integer","minimum":1},"patchset_commit_id":{"type":"string"},"superseded":{"type":"boolean"},"harness":{"$ref":"#/components/schemas/VcsChangeTranscriptHarness"},"user":{"$ref":"#/components/schemas/VcsUserSummary"},"session_id":{"type":"string","nullable":true},"session_title":{"type":"string","nullable":true},"original_resume":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["codex_deep_link","claude_command","cursor_command","grok_command"]},"value":{"type":"string"}}},{"type":"null"}]}}},"VcsChangeTranscriptHarness":{"type":"object","additionalProperties":false,"properties":{"harness":{"type":"string","enum":["codex","claude-code","cursor","roder","grok"]},"harness_version":{"type":"string"},"model":{"type":"string"},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh","max","ultra"]},"token_usage":{"type":"object","additionalProperties":false,"properties":{"input_tokens":{"type":"integer","minimum":0},"cached_input_tokens":{"type":"integer","minimum":0},"output_tokens":{"type":"integer","minimum":0},"reasoning_output_tokens":{"type":"integer","minimum":0},"total_tokens":{"type":"integer","minimum":0},"total_tokens_is_estimated":{"type":"boolean"}}},"token_usage_scope":{"type":"string","enum":["turn","session","cumulative"]},"subagent_count":{"type":"integer","minimum":0,"maximum":1000000},"subagent_count_truncated":{"type":"boolean"}}},"VcsChangeTranscripts":{"type":"object","required":["status","available_count","unavailable_count","transcripts"],"properties":{"status":{"type":"string","enum":["available","unavailable"]},"available_count":{"type":"integer","minimum":0},"unavailable_count":{"type":"integer","minimum":0},"transcripts":{"type":"array","maxItems":8,"items":{"$ref":"#/components/schemas/VcsChangeTranscript"}}}},"VcsChangePatchsetUnresolvedCommentCount":{"type":"object","description":"Unresolved review threads on one file of one patchset.","required":["path","count","count_label"],"properties":{"path":{"type":"string"},"count":{"type":"integer","minimum":1},"count_label":{"type":"string"}}},"VcsReviewedFile":{"type":"object","required":["path","reviewed_patchset_number"],"properties":{"path":{"type":"string"},"reviewed_at":{"type":"string","format":"date-time"},"reviewed_patchset_number":{"type":"integer","minimum":1}}},"VcsChangeApproval":{"type":"object","required":["state","message","accepted","can_accept","can_request_changes"],"properties":{"state":{"type":"string","enum":["available","approved","unavailable"]},"message":{"type":"string","nullable":true},"accepted":{"type":"boolean"},"can_accept":{"type":"boolean"},"can_request_changes":{"type":"boolean"}}},"VcsChangeCapabilities":{"type":"object","required":["can_mark_ready","can_edit_description","can_edit_labels","can_edit_stack_name","can_edit_reviewers","can_comment"],"properties":{"can_mark_ready":{"type":"boolean"},"can_edit_description":{"type":"boolean"},"can_edit_labels":{"type":"boolean"},"can_edit_stack_name":{"type":"boolean"},"can_edit_reviewers":{"type":"boolean"},"can_comment":{"type":"boolean"}}},"VcsLabel":{"type":"object","description":"A free-form, organization-scoped grouping name applied to changes.","required":["id","name","slug","changes_count"],"properties":{"id":{"type":"string"},"name":{"type":"string","description":"Display name","preserving the casing it was created with.":null},"slug":{"type":"string","description":"Normalized identity used for filtering and lookup."},"changes_count":{"type":"integer","minimum":0}}},"VcsLabelFacet":{"type":"object","required":["slug","name","changes_count"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"changes_count":{"type":"integer","minimum":0}}},"VcsRelatedChange":{"type":"object","required":["id","number","title","status","primary_status","repository_slug","orphaned","url"],"properties":{"id":{"type":"string"},"number":{"type":"integer","minimum":1},"title":{"type":"string"},"status":{"type":"string","enum":["open","landed","abandoned","folded"]},"primary_status":{"$ref":"#/components/schemas/VcsChangePrimaryStatus"},"repository_slug":{"type":"string"},"orphaned":{"type":"boolean"},"url":{"type":"string"}}},"VcsRelatedChangeGroup":{"type":"object","required":["label","changes","total_count","count_label"],"properties":{"label":{"$ref":"#/components/schemas/VcsLabel"},"total_count":{"type":"integer","minimum":1,"description":"Total related changes for this label, which may exceed the returned page."},"count_label":{"type":"string"},"changes":{"type":"array","maxItems":10,"items":{"$ref":"#/components/schemas/VcsRelatedChange"}}}},"VcsChangePatchsetRef":{"type":"object","nullable":true,"required":["id","number","commit_id"],"properties":{"id":{"type":"string"},"number":{"type":"integer","minimum":1},"commit_id":{"type":"string"},"source_kind":{"type":"string","enum":["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"},"code":{"type":"string","description":"Requirement code for display icons."},"title":{"type":"string","description":"Short server-owned requirement heading."},"number":{"type":"integer","minimum":1},"check_name":{"type":"string"},"evaluated_head":{"type":"string","description":"Full revision evaluated by the check."}}},"VcsChangeLandingMember":{"type":"object","required":["id","number","title","status","primary_status","landable","orphaned"],"properties":{"id":{"type":"string"},"number":{"type":"integer","minimum":1},"title":{"type":"string"},"status":{"type":"string","enum":["open","landed","abandoned","folded"]},"primary_status":{"$ref":"#/components/schemas/VcsChangePrimaryStatus"},"landable":{"type":"boolean"},"orphaned":{"type":"boolean"}}},"VcsChangeLandingMemberReference":{"type":"object","required":["id","number","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer","minimum":1},"title":{"type":"string"}}},"VcsChangeLanding":{"type":"object","description":"Server-computed submitted-together closure and landing preflight. An unavailable closure returns `available: false` with `error` and nothing else.","required":["available","changes"],"properties":{"available":{"type":"boolean"},"can_land":{"type":"boolean"},"can_defer_landing":{"type":"boolean"},"can_prioritize":{"type":"boolean"},"target_requires_checks":{"type":"boolean","description":"Whether a bookmark protection rule makes the merge queue require CI on this target. When false, a deferred landing has nothing to wait for and lands immediately."},"landable":{"type":"boolean"},"error":{"type":"string"},"scope_version":{"type":"string","description":"Opaque fence echoed back as `expected_scope_version` when requesting a landing."},"count":{"type":"integer","minimum":0},"changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingMember"}},"submitted_together":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingMember"}},"requirements":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingRequirement"}},"blocker_summary":{"type":"string","nullable":true,"description":"One-line stack footer for why the set cannot land yet. Null when there are no requirements. Derived from requirement codes; React must not re-summarize the requirement list."},"votes_summary":{"$ref":"#/components/schemas/VcsChangeLandingLabeledTone"},"checks_summary":{"$ref":"#/components/schemas/VcsChangeLandingLabeledTone"},"waiting_on":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingWaitingRow"},"description":"Ordered readiness rows for the land action preview."},"sync_available":{"type":"boolean","description":"Whether Rails could build a merge preview for every Change in the landing scope."},"sync_unavailable_changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingMemberReference"}},"sync_conflicts":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingSyncConflict"}},"override_info":{"type":"object","required":["available","required"],"properties":{"available":{"type":"boolean","description":"True when this actor may force the set past its overridable requirements."},"required":{"type":"boolean"},"requirement_version":{"type":"string","nullable":true,"description":"Opaque fence echoed back as `expected_requirement_version` when overriding."}}},"request":{"type":"object","nullable":true,"required":["id","state","version","retry_count","health"],"properties":{"queue":{"type":"object","required":["ahead_count","paused","ahead"],"properties":{"ahead_count":{"type":"integer","minimum":0},"paused":{"type":"boolean"},"ahead":{"type":"array","items":{"type":"object","required":["id","number","title","state","retry_count","error"],"properties":{"id":{"type":"string"},"number":{"type":"integer","nullable":true},"title":{"type":"string"},"state":{"type":"string"},"retry_count":{"type":"integer"},"error":{"type":"string","nullable":true}}}}}},"id":{"type":"string"},"state":{"type":"string"},"priority":{"type":"string","enum":["normal","high"]},"position":{"type":"integer","minimum":1},"version":{"type":"integer","nullable":true,"description":"Optimistic fence echoed back as `expected_version` when cancelling."},"retry_count":{"type":"integer","minimum":0,"description":"How many times the queue restarted this attempt after it stalled."},"health":{"type":"string","enum":["steady","retrying","stalled"],"description":"Whether the retries so far are routine or the attempt is going nowhere."},"failure":{"allOf":[{"$ref":"#/components/schemas/VcsChangeLandingFailure"}],"nullable":true,"description":"The error this entry itself recorded, verbatim."},"queue_error":{"allOf":[{"$ref":"#/components/schemas/VcsChangeLandingFailure"}],"nullable":true,"description":"What the merge queue tick last recorded. Sent only while this entry is at the front of the queue, and attributed to the queue rather than to this change."}}},"attention":{"allOf":[{"$ref":"#/components/schemas/VcsChangeLandingAttention"}],"nullable":true}}},"VcsChangeLandingSyncConflict":{"type":"object","required":["change","base","conflicts"],"properties":{"change":{"$ref":"#/components/schemas/VcsChangeLandingMember"},"base":{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","enum":["change","target"]},"commit_id":{"type":"string","nullable":true},"target_branch":{"type":"string"},"change":{"type":"object","required":["id","number","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"title":{"type":"string"}}}}},"conflicts":{"type":"array","items":{"type":"object","required":["path","kind","message"],"properties":{"path":{"type":"string"},"kind":{"type":"string"},"message":{"type":"string"}}}}}},"VcsChangeLandingFailure":{"type":"object","required":["message"],"description":"A raw recorded error, shown behind a disclosure. Unlike the guidance summary this is the queue's own internal text and is not a fixed vocabulary.","properties":{"message":{"type":"string"},"recorded_at":{"type":"string","format":"date-time","nullable":true}}},"VcsChangeLandingAttention":{"type":"object","required":["entry_id","state","kind","summary","next_step","action_required_by","action_kind","occurred_at","occurred_at_label","retry_count","agent_prompt"],"properties":{"entry_id":{"type":"string"},"retry_count":{"type":"integer","minimum":0,"description":"How many times the queue restarted this attempt before it stopped."},"failure":{"allOf":[{"$ref":"#/components/schemas/VcsChangeLandingFailure"}],"nullable":true},"state":{"type":"string","enum":["ejected","needs_attention"]},"kind":{"type":"string"},"summary":{"type":"string"},"next_step":{"type":"string"},"action_required_by":{"type":"string","enum":["author","repo_admin","vex"]},"action_kind":{"type":"string","enum":["open_checks","open_change","open_integration","open_queue"]},"occurred_at":{"type":"string","format":"date-time"},"occurred_at_label":{"type":"string"},"agent_prompt":{"type":"string","description":"A paste-ready prompt for a coding agent. Rails composes it from the published attention contract so the browser only copies it."},"checks":{"type":"array","items":{"type":"object","required":["name","result","result_label"],"properties":{"name":{"type":"string"},"result":{"type":"string","enum":["failed","running","queued","passed"]},"result_label":{"type":"string"},"source":{"type":"string"},"app_id":{"type":"integer","nullable":true},"evaluated_head":{"type":"string"}}}},"conflicts":{"type":"array","items":{"type":"object","required":["path"],"properties":{"path":{"type":"string"},"kind":{"type":"string"},"change_number":{"type":"integer","nullable":true}}}}}},"VcsChangeActivityItem":{"type":"object","required":["id","kind","tone","title","occurred_at","occurred_at_label"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["submitted","patchset_pushed","synced","accepted","changes_requested","reviews_carried_forward","landing_requested","landing_retried","landing_candidate_built","landing_ejected","landing_cancelled","landed"]},"tone":{"type":"string","enum":["neutral","info","success","warning","destructive"]},"title":{"type":"string"},"detail":{"type":"string","nullable":true},"actor":{"allOf":[{"$ref":"#/components/schemas/VcsActorSummary"}],"nullable":true},"occurred_at":{"type":"string","format":"date-time"},"occurred_at_label":{"type":"string"},"patchset_number":{"type":"integer","minimum":1,"nullable":true},"source":{"type":"object","nullable":true,"required":["provider","repository","commit_sha","commit_url"],"properties":{"provider":{"type":"string","enum":["github"]},"repository":{"type":"string"},"branch":{"type":"string","nullable":true},"commit_sha":{"type":"string","pattern":"^[0-9a-f]{40}$"},"commit_url":{"type":"string","format":"uri"}}},"queue_entry_id":{"type":"string","nullable":true}}},"VcsStackSummary":{"type":"object","required":["code","name"],"properties":{"code":{"type":"string","pattern":"^[A-Z0-9]{4}$"},"name":{"type":"string","nullable":true}}},"VcsStackLanding":{"type":"object","description":"Compact landing state for the Stack CLI.","required":["changes"],"properties":{"can_land":{"type":"boolean"},"count":{"type":"integer","minimum":0},"changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingMember"}},"requirements":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingRequirement"}},"sync_available":{"type":"boolean"},"sync_unavailable_changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingMemberReference"}},"sync_conflicts":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingSyncConflict"}},"attention":{"type":"object","nullable":true,"required":["state","summary"],"properties":{"state":{"type":"string"},"summary":{"type":"string"}}},"error":{"type":"string"}}},"VcsStack":{"allOf":[{"$ref":"#/components/schemas/VcsStackSummary"},{"type":"object","required":["status","member_count","ref_name","alias_ref_name","tip_change_number","updated_at","updated_at_label","changes"],"properties":{"status":{"type":"string","enum":["active","archived"]},"member_count":{"type":"integer","minimum":0},"ref_name":{"type":"string","pattern":"^refs/heads/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"}}}]},"VcsChangeTranscriptSummary":{"type":"object","required":["session_count","total_tokens","tokens_partial","estimated_cost","sessions"],"properties":{"session_count":{"type":"integer"},"total_tokens":{"type":"integer","nullable":true},"tokens_partial":{"type":"boolean"},"estimated_cost":{"allOf":[{"$ref":"#/components/schemas/AgentCostEstimate"}],"nullable":true},"sessions":{"type":"array","items":{"type":"object","required":["harness","model","title","total_tokens"],"properties":{"session_id":{"type":"string","nullable":true},"harness":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"total_tokens":{"type":"integer","nullable":true}}}}}},"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":{"kind":{"type":"string","enum":["change"]},"github":{"allOf":[{"$ref":"#/components/schemas/GithubReviewSummary"}],"nullable":true},"id":{"type":"string"},"public_id":{"type":"string"},"number":{"type":"integer","minimum":1},"title":{"type":"string"},"status":{"type":"string","enum":["open","landed","abandoned","folded"]},"lifecycle":{"type":"string","enum":["open","waiting","needs_attention","landed","abandoned"],"description":"Index badge. Stored status stays open while a change is in an active landing request (waiting) or a current ejected request (needs_attention). Filters still use status.\n"},"primary_status":{"type":"string","enum":["needs_review","review_requested","changes_requested","approved","ready_to_land","waiting_to_land","landing","landed","abandoned","orphaned","needs_restack"]},"review_status":{"type":"string","enum":["no_review","review_requested","approved","changes_requested"]},"pending_reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsUserSummary"}},"checks_status":{"type":"string","enum":["absent","passing","failing","pending"]},"mergeability":{"type":"string","enum":["mergeable","conflicts","unknown","not_applicable"]},"target_branch":{"type":"string"},"base":{"oneOf":[{"type":"object","required":["kind","target_branch"],"properties":{"kind":{"type":"string","enum":["target"]},"target_branch":{"type":"string"}}},{"type":"object","required":["kind","number","title"],"properties":{"kind":{"type":"string","enum":["change"]},"number":{"type":"integer","minimum":1},"title":{"type":"string"}}}]},"repository_slug":{"type":"string"},"submitted_at":{"type":"string","format":"date-time"},"submitted_at_label":{"type":"string","description":"Relative time since submission"},"updated_at":{"type":"string","format":"date-time"},"updated_at_label":{"type":"string","description":"Relative time since the last update"},"conversation_count":{"type":"integer","minimum":0},"repo":{"type":"object","nullable":true,"required":["slug","name"],"properties":{"slug":{"type":"string"},"name":{"type":"string"}}},"author":{"allOf":[{"$ref":"#/components/schemas/VcsActorSummary"}],"nullable":true},"group":{"allOf":[{"$ref":"#/components/schemas/VcsChangeGroupRef"}],"nullable":true},"stack":{"allOf":[{"$ref":"#/components/schemas/VcsStackSummary"}],"nullable":true},"stack_position":{"type":"object","nullable":true,"required":["position","total"],"properties":{"position":{"type":"integer","minimum":1},"total":{"type":"integer","minimum":1}}},"labels":{"type":"array","items":{"$ref":"#/components/schemas/VcsLabel"}}}},"VcsPagination":{"type":"object","description":"Pagy's own page data. Navigate with `previous` and `next` rather than by adding to `page`, which the server may have resolved down to `last`.","additionalProperties":true,"required":["page","limit","count","count_label","last","series"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"count":{"type":"integer","minimum":0},"count_label":{"type":"string"},"last":{"type":"integer","minimum":1},"from":{"type":"integer","minimum":0,"description":"Position of this page's first row in the whole scope. `0` when the page holds no rows — an empty scope, or a `page` past `last` — so treat `0` as \"no range\" rather than as a row position."},"to":{"type":"integer","minimum":0,"description":"Position of this page's last row in the whole scope. `0` when the page holds no rows, for the same reason as `from`."},"previous":{"type":"integer","minimum":1,"nullable":true},"next":{"type":"integer","minimum":1,"nullable":true},"series":{"type":"array","items":{"oneOf":[{"type":"integer","minimum":1},{"type":"string"}]}}}},"VcsOrganizationChangeListResult":{"type":"object","description":"The flat change queue. `pagination` counts changes.","required":["kind","changes","pagination"],"properties":{"kind":{"type":"string","enum":["list"]},"changes":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/VcsOrganizationChangeSummary"},{"$ref":"#/components/schemas/GithubReviewSummary"}]}},"pagination":{"$ref":"#/components/schemas/VcsPagination"}}},"VcsOrganizationChangeGroupSubject":{"description":"What names one group. The `kind` matches the active grouping, except for the pinned `unstacked` remainder under stack grouping.","oneOf":[{"type":"object","required":["kind","stack"],"properties":{"kind":{"type":"string","enum":["stack"]},"stack":{"type":"object","required":["code","name","member_count"],"properties":{"code":{"type":"string","pattern":"^[A-Z0-9]{4}$"},"name":{"type":"string","nullable":true},"member_count":{"type":"integer","minimum":0,"description":"Every member of the stack, including those the active filters excluded."}}}}},{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","enum":["unstacked"]}}},{"type":"object","required":["kind","user"],"properties":{"kind":{"type":"string","enum":["author"]},"user":{"$ref":"#/components/schemas/VcsActorSummary"}}},{"type":"object","required":["kind","period","started_at","ended_at"],"properties":{"kind":{"type":"string","enum":["created_time"]},"period":{"type":"string","enum":["past_hour","past_day","past_week","older"]},"started_at":{"type":"string","format":"date-time","nullable":true,"description":"Null for `older`, whose range has no lower bound."},"ended_at":{"type":"string","format":"date-time","nullable":true,"description":"Null for `past_hour`, whose range is open above so a future timestamp is still reported."}}}]},"VcsOrganizationChangeGroup":{"type":"object","required":["key","subject","changes","pagination"],"properties":{"key":{"type":"string","description":"Stable public key for this group — a stack code or `unstacked`, a user public id, or a period name. Echo it back in `group_pages` to move this group alone."},"subject":{"$ref":"#/components/schemas/VcsOrganizationChangeGroupSubject"},"changes":{"type":"array","description":"One page of the matching changes in this group. Stack groups keep graph order, from tip to root; every other grouping uses the requested change sort.","items":{"oneOf":[{"$ref":"#/components/schemas/VcsOrganizationChangeSummary"},{"$ref":"#/components/schemas/GithubReviewSummary"}]}},"pagination":{"$ref":"#/components/schemas/VcsPagination"}}},"VcsOrganizationChangeGroupedResult":{"type":"object","description":"The queue divided into groups. `pagination` counts group keys, not changes.","required":["kind","grouping","groups","pagination"],"properties":{"kind":{"type":"string","enum":["grouped"]},"grouping":{"type":"string","enum":["stack","author","created_time"]},"groups":{"type":"array","items":{"$ref":"#/components/schemas/VcsOrganizationChangeGroup"}},"pagination":{"allOf":[{"$ref":"#/components/schemas/VcsPagination"}],"nullable":true,"description":"Null for `created_time`, which returns all four of its periods."}}},"VcsChange":{"allOf":[{"$ref":"#/components/schemas/VcsChangeSummary"},{"type":"object","properties":{"commit_message":{"type":"string","nullable":true},"has_description":{"type":"boolean","description":"True when the change has Vex-owned review description content, distinct from the JJ commit message."},"parent_change_id":{"type":"string","nullable":true},"parent_change_number":{"type":"integer","nullable":true},"change_key":{"type":"string"},"stable_change_id":{"type":"string"},"draft":{"type":"boolean"},"orphaned":{"type":"boolean"},"folded_into_number":{"type":"integer","nullable":true},"orphaned_reason":{"type":"string"},"orphaned_at":{"type":"string","format":"date-time"},"orphaned_at_label":{"type":"string"},"restack_state":{"type":"string","enum":["clean","restack_required"]},"accepted":{"type":"boolean"},"requested_changes":{"type":"boolean"},"landable":{"type":"boolean"},"checks_status":{"type":"string"},"checks":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeCheck"}},"approval":{"$ref":"#/components/schemas/VcsChangeApproval"},"capabilities":{"$ref":"#/components/schemas/VcsChangeCapabilities"},"group":{"$ref":"#/components/schemas/VcsChangeDetailGroup"},"author":{"$ref":"#/components/schemas/VcsActorSummary"},"landed_by":{"$ref":"#/components/schemas/VcsUserSummary"},"github_projection_status":{"type":"string","nullable":true,"enum":["pending","synced","drifted","error","disabled"]},"github_pull_request":{"type":"object","required":["number","url"],"properties":{"number":{"type":"integer"},"url":{"type":"string"},"state":{"type":"string"}}},"github_pull_requests":{"type":"array","items":{"type":"object","required":["number","url"],"properties":{"internal_path":{"type":"string","nullable":true},"number":{"type":"integer"},"url":{"type":"string"},"state":{"type":"string"},"repository":{"type":"string"},"change_number":{"type":"integer"}}}},"assets":{"type":"array","description":"Proof assets referenced from the description as `vex-asset:<id>`.","items":{"type":"object","required":["id","reference","alias","filename","content_type","byte_size","url"],"properties":{"id":{"type":"string"},"reference":{"type":"string"},"alias":{"type":"string"},"filename":{"type":"string"},"content_type":{"type":"string"},"byte_size":{"type":"integer","minimum":0},"url":{"type":"string"}}}},"comments_count":{"type":"integer","minimum":0},"comments_count_label":{"type":"string"},"unresolved_comments_count_label":{"type":"string"},"relation_chain":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeRelationChainMember"}},"current_patchset":{"$ref":"#/components/schemas/VcsChangePatchset"},"patchsets":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangePatchset"}},"votes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeVote"}},"reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeReviewer"}},"reviewer_candidates":{"type":"array","description":"Organization members available to the reviewer picker on this page.","items":{"$ref":"#/components/schemas/VcsChangeReviewerCandidate"}},"comments":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeComment"}}}}]},"VcsChangePage":{"allOf":[{"$ref":"#/components/schemas/VcsChange"},{"type":"object","required":["primary_status","draft","orphaned","has_description","checks","approval","capabilities","author","assets","comments_count","comments_count_label","unresolved_comments_count_label","relation_chain","current_patchset","patchsets","votes","reviewers","reviewer_candidates","comments","labels"],"properties":{"primary_status":{"$ref":"#/components/schemas/VcsChangePrimaryStatus"},"draft":{"type":"boolean"},"orphaned":{"type":"boolean"},"has_description":{"type":"boolean"},"checks":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeCheck"}},"approval":{"$ref":"#/components/schemas/VcsChangeApproval"},"capabilities":{"$ref":"#/components/schemas/VcsChangeCapabilities"},"author":{"$ref":"#/components/schemas/VcsActorSummary"},"assets":{"type":"array","items":{"type":"object","required":["id","reference","alias","filename","content_type","byte_size","url"],"properties":{"id":{"type":"string"},"reference":{"type":"string"},"alias":{"type":"string"},"filename":{"type":"string"},"content_type":{"type":"string"},"byte_size":{"type":"integer","minimum":0},"url":{"type":"string"}}}},"comments_count":{"type":"integer","minimum":0},"comments_count_label":{"type":"string"},"unresolved_comments_count_label":{"type":"string"},"relation_chain":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeRelationChainMember"}},"current_patchset":{"$ref":"#/components/schemas/VcsChangePatchset"},"patchsets":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangePatchset"}},"votes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeVote"}},"reviewers":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeReviewer"}},"reviewer_candidates":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeReviewerCandidate"}},"comments":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeComment"}},"labels":{"type":"array","items":{"$ref":"#/components/schemas/VcsLabel"}}}}]},"VcsExpectedCiEstimate":{"type":"object","description":"Historical CI duration estimate for the pipelines expected to run for this submission, from recent terminal pipeline-run wall-clock times. Omitted entirely when no workflow matches, no terminal history exists, or the estimate could not be computed.","required":["p50_seconds","p95_seconds","sample_size","basis","pipelines"],"properties":{"p50_seconds":{"type":"integer","minimum":0},"p95_seconds":{"type":"integer","minimum":0},"sample_size":{"type":"integer","minimum":1},"basis":{"type":"string","enum":["pipeline_runs"]},"pipelines":{"type":"array","items":{"$ref":"#/components/schemas/VcsExpectedCiPipelineEstimate"}}}},"VcsExpectedCiPipelineEstimate":{"type":"object","required":["slug","p50_seconds","p95_seconds","sample_size"],"properties":{"slug":{"type":"string"},"p50_seconds":{"type":"integer","minimum":0},"p95_seconds":{"type":"integer","minimum":0},"sample_size":{"type":"integer","minimum":1}}},"VcsChangeSubmitOutcome":{"type":"object","required":["number","public_id","jj_change_id","outcome","url"],"properties":{"number":{"type":"integer","minimum":1},"public_id":{"type":"string"},"jj_change_id":{"type":"string"},"outcome":{"type":"string","enum":["created","updated","unchanged"]},"patchset_number":{"type":"integer","nullable":true},"group":{"$ref":"#/components/schemas/VcsChangeGroupRef"},"url":{"type":"string"}}},"VcsChangeAsset":{"type":"object","required":["id","alias","filename","content_type","byte_size","status"],"properties":{"id":{"type":"string"},"alias":{"type":"string"},"filename":{"type":"string"},"content_type":{"type":"string"},"byte_size":{"type":"integer","minimum":0},"status":{"type":"string"}}},"VcsChangeCommentCapabilities":{"type":"object","required":["can_reply","can_resolve","can_reopen"],"properties":{"can_reply":{"type":"boolean"},"can_resolve":{"type":"boolean"},"can_reopen":{"type":"boolean"}}},"VcsChangeComment":{"type":"object","additionalProperties":true,"required":["id","body","resolved","capabilities","patchset_id","patchset_number","outdated"],"properties":{"id":{"type":"string"},"body":{"type":"string"},"resolved":{"type":"boolean"},"capabilities":{"$ref":"#/components/schemas/VcsChangeCommentCapabilities"},"change_id":{"type":"string","nullable":true},"patchset_id":{"type":"string","nullable":true},"patchset_number":{"type":"integer","nullable":true},"outdated":{"type":"boolean"},"path":{"type":"string","nullable":true},"side":{"type":"string","enum":["additions","deletions"],"nullable":true},"line":{"type":"integer","nullable":true},"kind":{"type":"string","nullable":true},"user":{"$ref":"#/components/schemas/VcsUserSummary"},"resolved_by":{"$ref":"#/components/schemas/VcsUserSummary"},"resolved_at":{"type":"string","format":"date-time","nullable":true},"resolved_at_label":{"type":"string","nullable":true},"parent_comment_id":{"type":"string","nullable":true},"replies":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeComment"}},"created_at":{"type":"string","format":"date-time","nullable":true},"created_at_label":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true},"updated_at_label":{"type":"string","nullable":true}}},"VcsChangeLandingRequest":{"type":"object","required":["state","numbers","count","scope_version"],"properties":{"id":{"type":"string","nullable":true},"state":{"type":"string"},"priority":{"type":"string","enum":["normal","high"]},"position":{"type":"integer","minimum":1},"version":{"type":"integer","minimum":1},"head_change_id":{"type":"string"},"change_ids":{"type":"array","items":{"type":"string"}},"numbers":{"type":"array","items":{"type":"integer"}},"count":{"type":"integer","minimum":1},"scope_version":{"type":"string"}}},"VcsChangeGroupRef":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"number":{"type":"integer"},"name":{"type":"string"}}},"VcsChangeGroup":{"allOf":[{"$ref":"#/components/schemas/VcsChangeGroupRef"},{"type":"object","required":["status","title","changes"],"properties":{"status":{"type":"string"},"title":{"type":"string","nullable":true},"changes":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeSummary"}}}}]},"VcsChangeDetailGroup":{"allOf":[{"$ref":"#/components/schemas/VcsChangeGroupRef"},{"type":"object","properties":{"status":{"type":"string"},"title":{"type":"string","nullable":true},"members":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingMember"}},"submitted_together":{"type":"array","items":{"$ref":"#/components/schemas/VcsChangeLandingMember"}},"landability_summary":{"type":"string","nullable":true}}}]},"KnowledgeTreeFile":{"type":"object","required":["type","path","name","title"],"properties":{"type":{"type":"string","enum":["file"]},"path":{"type":"string"},"name":{"type":"string"},"title":{"type":"string"}}},"KnowledgeTreeFolder":{"type":"object","required":["type","path","name","document_count","children"],"properties":{"type":{"type":"string","enum":["folder"]},"path":{"type":"string"},"name":{"type":"string"},"document_count":{"type":"integer"},"children":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeTreeNode"}}}},"KnowledgeTreeNode":{"oneOf":[{"$ref":"#/components/schemas/KnowledgeTreeFolder"},{"$ref":"#/components/schemas/KnowledgeTreeFile"}]},"VcsTourUnavailable":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string"},"code":{"type":"string","enum":["tour_context_unavailable","tour_run_unavailable"]}}},"VcsTourContextPreviewRequest":{"type":"object","additionalProperties":false,"required":["patchset_number"],"properties":{"patchset_number":{"type":"integer","minimum":1}}},"VcsTourCreateRequest":{"type":"object","additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/VcsTourModelSelection"}],"required":["patchset_number","excluded_source_group_ids","request_id"],"properties":{"patchset_number":{"type":"integer","minimum":1},"excluded_source_group_ids":{"type":"array","maxItems":200,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":128}},"request_id":{"type":"string","minLength":1,"maxLength":128},"model_provider":{"type":"string"},"model":{"type":"string"}}},"VcsTourModelSelection":{"type":"object","properties":{"model_provider":{"type":"string","minLength":1},"model":{"type":"string","minLength":1}}},"VcsTourContextPreview":{"type":"object","additionalProperties":false,"required":["schema_version","scope","hunk_count","source_count","can_generate","refusal_reasons","source_groups","sources","limits"],"properties":{"schema_version":{"type":"integer","const":1},"scope":{"$ref":"#/components/schemas/VcsTourPreviewScope"},"hunk_count":{"type":"integer","minimum":0},"source_count":{"type":"integer","minimum":0,"maximum":448},"can_generate":{"type":"boolean"},"refusal_reasons":{"type":"array","uniqueItems":true,"items":{"type":"string"}},"source_groups":{"type":"array","maxItems":200,"items":{"$ref":"#/components/schemas/VcsTourSourceGroup"}},"sources":{"type":"array","maxItems":448,"items":{"$ref":"#/components/schemas/VcsTourSource"}},"limits":{"$ref":"#/components/schemas/VcsTourPreviewLimits"}}},"VcsTourContextExport":{"type":"object","additionalProperties":false,"required":["input_manifest","input_manifest_digest","context"],"properties":{"input_manifest":{"$ref":"#/components/schemas/VcsTourInputManifest"},"input_manifest_digest":{"$ref":"#/components/schemas/VcsTourDigest"},"context":{"$ref":"#/components/schemas/VcsTourContextPayload"}}},"VcsTourContextPayload":{"type":"object","additionalProperties":false,"required":["source_references","change_description","transcript_events"],"properties":{"source_references":{"type":"array","maxItems":512,"items":{"$ref":"#/components/schemas/VcsTourContextSourceReference"}},"change_description":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/VcsTourChangeDescriptionText"}]},"transcript_events":{"type":"array","maxItems":256,"items":{"$ref":"#/components/schemas/VcsTourTranscriptText"}}}},"VcsTourContextSourceReference":{"type":"object","additionalProperties":false,"required":["id","kind","coordinate","state"],"properties":{"id":{"type":"string","minLength":1,"maxLength":128},"kind":{"type":"string"},"coordinate":{"type":"object"},"state":{"type":"string","enum":["available","missing"]}}},"VcsTourChangeDescriptionText":{"type":"object","additionalProperties":false,"required":["source_id","title","description","state"],"properties":{"source_id":{"type":"string","minLength":1,"maxLength":128},"title":{"type":"string"},"description":{"type":"string"},"state":{"type":"string","enum":["available","stale"]}}},"VcsTourTranscriptText":{"type":"object","additionalProperties":false,"required":["source_id","checkpoint_id","event_index","role","text","truncated","state"],"properties":{"source_id":{"type":"string","minLength":1,"maxLength":128},"checkpoint_id":{"type":"string","minLength":1,"maxLength":128},"event_index":{"type":"integer","minimum":0,"maximum":2147483647},"kind":{"type":"string","const":"message"},"role":{"type":"string","enum":["user","assistant"]},"text":{"type":"string"},"truncated":{"type":"boolean"},"timestamp":{"type":"string","format":"date-time","nullable":true},"state":{"type":"string","enum":["available","stale"]}}},"VcsTourValidationRequest":{"type":"object","additionalProperties":false,"required":["patchset_number","input_manifest_digest","manifest"],"properties":{"patchset_number":{"type":"integer","minimum":1},"input_manifest_digest":{"$ref":"#/components/schemas/VcsTourDigest"},"manifest":{"type":"object"}}},"VcsTourValidationResponse":{"type":"object","additionalProperties":false,"required":["valid","errors"],"properties":{"valid":{"type":"boolean"},"errors":{"type":"array","items":{"type":"string"}}}},"VcsTourPreviewScope":{"type":"object","additionalProperties":false,"required":["kind","patchset_id","patchset_number","base_commit_id","head_commit_id"],"properties":{"kind":{"type":"string","const":"change"},"patchset_id":{"type":"string"},"patchset_number":{"type":"integer","minimum":1},"base_commit_id":{"type":"string","minLength":1,"maxLength":128},"head_commit_id":{"type":"string","minLength":1,"maxLength":128}}},"VcsTourPreviewLimits":{"type":"object","additionalProperties":false,"required":["max_preview_sources","max_manifest_sources","reserved_registration_sources","max_checkpoint_groups","max_events_per_checkpoint","max_repository_document_groups","omitted_checkpoint_count","omitted_event_count","omitted_document_count"],"properties":{"max_preview_sources":{"type":"integer","const":448},"max_manifest_sources":{"type":"integer","const":512},"reserved_registration_sources":{"type":"integer","const":64},"max_checkpoint_groups":{"type":"integer","const":8},"max_events_per_checkpoint":{"type":"integer","const":32},"max_repository_document_groups":{"type":"integer","const":191},"omitted_checkpoint_count":{"type":"integer","minimum":0},"omitted_event_count":{"type":"integer","minimum":0},"omitted_document_count":{"type":"integer","minimum":0}}},"VcsTourSourceGroup":{"type":"object","additionalProperties":false,"required":["id","kind","label","state","source_ids","metadata"],"properties":{"id":{"type":"string","minLength":1,"maxLength":128},"kind":{"type":"string","enum":["change_description","transcript_checkpoint","repository_document"]},"label":{"type":"string","minLength":1,"maxLength":240},"state":{"type":"string","enum":["available","truncated","missing","stale","conflicting","inconclusive"]},"source_ids":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":128}},"metadata":{"oneOf":[{"$ref":"#/components/schemas/VcsTourChangeDescriptionGroupMetadata"},{"$ref":"#/components/schemas/VcsTourTranscriptGroupMetadata"},{"$ref":"#/components/schemas/VcsTourRepositoryDocumentGroupMetadata"}]}}},"VcsTourChangeDescriptionGroupMetadata":{"type":"object","additionalProperties":false,"required":["change_id","patchset_id","patchset_number"],"properties":{"change_id":{"type":"string"},"patchset_id":{"type":"string"},"patchset_number":{"type":"integer","minimum":1}}},"VcsTourTranscriptGroupMetadata":{"type":"object","additionalProperties":false,"required":["checkpoint_id","patchset_number","commit_id","superseded","session_id","title","user_summary","harness_summary","captured_at","redaction_count","event_count","selected_event_count"],"properties":{"checkpoint_id":{"type":"string"},"patchset_number":{"type":"integer","minimum":1},"commit_id":{"type":"string"},"superseded":{"type":"boolean"},"session_id":{"type":"string"},"title":{"type":"string"},"user_summary":{"type":"string","nullable":true},"harness_summary":{"type":"string","nullable":true},"captured_at":{"type":"string","format":"date-time"},"redaction_count":{"type":"integer","minimum":0},"event_count":{"type":"integer","minimum":0},"selected_event_count":{"type":"integer","minimum":0,"maximum":32}}},"VcsTourRepositoryDocumentGroupMetadata":{"type":"object","additionalProperties":false,"required":["commit_id","path","revision_relation","line_count","byte_count"],"properties":{"commit_id":{"type":"string"},"path":{"type":"string","minLength":1,"maxLength":1024},"revision_relation":{"type":"string","enum":["existing_guidance","added_during_work"]},"line_count":{"type":"integer","minimum":0},"byte_count":{"type":"integer","minimum":0}}},"VcsTour":{"type":"object","additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/VcsTourModelSelection"}],"required":["id","status","scope_kind","base_commit_id","head_commit_id","schema_version","analyzer_version","model_provider","model","input_manifest","manifest","failure_reason","failure_kind","failure_detail","started_at","deadline_at","completed_at","created_at","inputs","out_of_date"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["queued","running","ready","failed"]},"scope_kind":{"type":"string","enum":["change","stack"]},"base_commit_id":{"type":"string"},"head_commit_id":{"type":"string"},"schema_version":{"type":"integer","const":1},"analyzer_version":{"type":"string"},"model_provider":{"type":"string"},"model":{"type":"string"},"input_manifest":{"$ref":"#/components/schemas/VcsTourInputManifest"},"manifest":{"oneOf":[{"$ref":"#/components/schemas/VcsTourManifest"},{"type":"null"}]},"failure_reason":{"type":"string","nullable":true},"failure_kind":{"type":"string","enum":["timed_out","failed"],"nullable":true},"failure_detail":{"type":"string","nullable":true},"started_at":{"type":"string","format":"date-time","nullable":true},"deadline_at":{"type":"string","format":"date-time","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"inputs":{"type":"array","minItems":1,"maxItems":2,"items":{"$ref":"#/components/schemas/VcsTourInput"}},"out_of_date":{"type":"boolean"}}},"VcsTourInput":{"type":"object","additionalProperties":false,"required":["position","input_key","change_id","patchset_id"],"properties":{"position":{"type":"integer","minimum":0},"input_key":{"$ref":"#/components/schemas/VcsTourKey"},"change_id":{"type":"string"},"patchset_id":{"type":"string"}}},"VcsTourVersion":{"type":"object","additionalProperties":false,"required":["id","status","analyzer_version","started_at","completed_at","created_at","out_of_date"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["queued","running","ready","failed"]},"analyzer_version":{"type":"string"},"started_at":{"type":"string","format":"date-time","nullable":true},"completed_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"out_of_date":{"type":"boolean"}}},"VcsTourViewerState":{"type":"object","additionalProperties":false,"required":["current_step_key","completed_step_keys","dismissed_finding_keys"],"properties":{"current_step_key":{"oneOf":[{"$ref":"#/components/schemas/VcsTourKey"},{"type":"null"}]},"completed_step_keys":{"type":"array","maxItems":24,"uniqueItems":true,"items":{"$ref":"#/components/schemas/VcsTourKey"}},"dismissed_finding_keys":{"type":"array","maxItems":32,"uniqueItems":true,"items":{"$ref":"#/components/schemas/VcsTourKey"}}}},"VcsTourPage":{"type":"object","additionalProperties":false,"required":["tour","versions","viewer_state","capabilities","progress","step_presentations","displayed_hunks","evidence_targets"],"properties":{"tour":{"oneOf":[{"$ref":"#/components/schemas/VcsTour"},{"type":"null"}]},"versions":{"type":"array","items":{"$ref":"#/components/schemas/VcsTourVersion"}},"viewer_state":{"$ref":"#/components/schemas/VcsTourViewerState"},"capabilities":{"type":"object","additionalProperties":false,"required":["can_generate","can_update_viewer_state"],"properties":{"can_generate":{"type":"boolean"},"can_update_viewer_state":{"type":"boolean"}}},"progress":{"$ref":"#/components/schemas/VcsTourProgress"},"step_presentations":{"type":"array","items":{"$ref":"#/components/schemas/VcsTourStepPresentation"}},"displayed_hunks":{"type":"array","maxItems":128,"items":{"$ref":"#/components/schemas/VcsTourDisplayedHunk"}},"evidence_targets":{"type":"array","items":{"$ref":"#/components/schemas/VcsTourEvidenceTarget"}}}},"VcsTourProgress":{"type":"object","additionalProperties":false,"required":["completed_step_count","total_step_count","complete"],"properties":{"completed_step_count":{"type":"integer","minimum":0},"total_step_count":{"type":"integer","minimum":0,"maximum":24},"complete":{"type":"boolean"}}},"VcsTourStepPresentation":{"type":"object","additionalProperties":false,"required":["step_key","file_count","hunk_count","line_count","evidence_count","first_hunk"],"properties":{"step_key":{"$ref":"#/components/schemas/VcsTourKey"},"file_count":{"type":"integer","minimum":0},"hunk_count":{"type":"integer","minimum":0},"line_count":{"type":"integer","minimum":0},"evidence_count":{"type":"integer","minimum":0},"first_hunk":{"oneOf":[{"$ref":"#/components/schemas/VcsTourHunkTarget"},{"type":"null"}]}}},"VcsTourDisplayedHunk":{"type":"object","additionalProperties":false,"required":["id","path","position","status","patch"],"properties":{"id":{"type":"string","minLength":1,"maxLength":128},"path":{"type":"string","minLength":1,"maxLength":1024},"position":{"type":"integer","minimum":0},"status":{"type":"string","enum":["added","modified","deleted","renamed"]},"patch":{"type":"string","minLength":1}}},"VcsTourHunkTarget":{"type":"object","additionalProperties":false,"required":["path","position","old_start","new_start"],"properties":{"path":{"type":"string","minLength":1,"maxLength":1024},"position":{"type":"integer","minimum":0},"old_start":{"type":"integer","minimum":0},"new_start":{"type":"integer","minimum":0}}},"VcsTourEvidenceTarget":{"oneOf":[{"$ref":"#/components/schemas/VcsTourTranscriptEvidenceTarget"},{"$ref":"#/components/schemas/VcsTourRepositoryEvidenceTarget"}]},"VcsTourTranscriptEvidenceTarget":{"type":"object","additionalProperties":false,"required":["source_id","kind","session_id","checkpoint_id","event_index"],"properties":{"source_id":{"$ref":"#/components/schemas/VcsTourKey"},"kind":{"type":"string","const":"transcript_event"},"session_id":{"type":"string"},"checkpoint_id":{"type":"string"},"event_index":{"type":"integer","minimum":0}}},"VcsTourRepositoryEvidenceTarget":{"type":"object","additionalProperties":false,"required":["source_id","kind","commit_id","path","start_line","end_line"],"properties":{"source_id":{"$ref":"#/components/schemas/VcsTourKey"},"kind":{"type":"string","const":"repository_file"},"commit_id":{"type":"string"},"path":{"type":"string"},"start_line":{"type":"integer","minimum":1},"end_line":{"type":"integer","minimum":1}}},"VcsTourCompletionRequest":{"type":"object","additionalProperties":false,"required":["manifest"],"properties":{"manifest":{"oneOf":[{"$ref":"#/components/schemas/VcsTourManifest"},{"$ref":"#/components/schemas/VcsTourGenerationManifest"}]}}},"VcsTourCompletionResponse":{"type":"object","additionalProperties":false,"required":["tour","errors"],"properties":{"tour":{"$ref":"#/components/schemas/VcsTour"},"errors":{"type":"array","items":{"type":"string"}}}},"VcsTourFailureRequest":{"type":"object","additionalProperties":false,"required":["reason"],"properties":{"reason":{"type":"string","minLength":1,"maxLength":255}}},"VcsTourEvidenceRegistrationRequest":{"type":"object","additionalProperties":false,"required":["schema_version","commit_id","path","start_line","end_line","content_digest"],"properties":{"schema_version":{"type":"integer","const":1},"commit_id":{"type":"string","minLength":1,"maxLength":128},"path":{"type":"string","minLength":1,"maxLength":1024},"start_line":{"type":"integer","minimum":1},"end_line":{"type":"integer","minimum":1},"content_digest":{"$ref":"#/components/schemas/VcsTourDigest"}}},"VcsTourInputManifest":{"type":"object","additionalProperties":false,"required":["schema_version","scope","inputs","hunks","sources","excluded_source_ids"],"properties":{"schema_version":{"type":"integer","const":1},"scope":{"$ref":"#/components/schemas/VcsTourScope"},"inputs":{"type":"array","minItems":1,"maxItems":2,"items":{"$ref":"#/components/schemas/VcsTourManifestInput"}},"hunks":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/VcsTourHunk"}},"sources":{"type":"array","maxItems":512,"items":{"$ref":"#/components/schemas/VcsTourSource"}},"excluded_source_ids":{"type":"array","maxItems":512,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":128}}}},"VcsTourScope":{"type":"object","additionalProperties":false,"required":["kind","base_commit_id","head_commit_id"],"properties":{"kind":{"type":"string","enum":["change","stack"]},"base_commit_id":{"type":"string","minLength":1,"maxLength":128},"head_commit_id":{"type":"string","minLength":1,"maxLength":128}}},"VcsTourManifestInput":{"type":"object","additionalProperties":false,"required":["key","position","change_id","patchset_id"],"properties":{"key":{"$ref":"#/components/schemas/VcsTourKey"},"position":{"type":"integer","minimum":0,"maximum":2147483647},"change_id":{"type":"string","minLength":1,"maxLength":128},"patchset_id":{"type":"string","minLength":1,"maxLength":128}}},"VcsTourHunk":{"type":"object","additionalProperties":false,"required":["id","path","position","old_start","old_lines","new_start","new_lines","content_digest"],"properties":{"id":{"type":"string","minLength":1,"maxLength":128},"path":{"type":"string","minLength":1,"maxLength":1024},"previous_path":{"type":"string","minLength":1,"maxLength":1024},"position":{"type":"integer","minimum":0,"maximum":2147483647},"old_start":{"type":"integer","minimum":0,"maximum":2147483647},"old_lines":{"type":"integer","minimum":0,"maximum":2147483647},"new_start":{"type":"integer","minimum":0,"maximum":2147483647},"new_lines":{"type":"integer","minimum":0,"maximum":2147483647},"content_digest":{"$ref":"#/components/schemas/VcsTourDigest"}}},"VcsTourSource":{"oneOf":[{"$ref":"#/components/schemas/VcsTourTranscriptSource"},{"$ref":"#/components/schemas/VcsTourRepositorySource"},{"$ref":"#/components/schemas/VcsTourChangeDescriptionSource"},{"$ref":"#/components/schemas/VcsTourCheckOutputSource"}]},"VcsTourSourceBase":{"type":"object","required":["id","content_digest","revision_relation","state"],"properties":{"id":{"type":"string","minLength":1,"maxLength":128},"content_digest":{"$ref":"#/components/schemas/VcsTourDigest"},"revision_relation":{"type":"string","enum":["existing_guidance","added_during_work","generated_during_run","not_applicable"]},"state":{"type":"string","enum":["available","truncated","missing","stale","conflicting","inconclusive"]}}},"VcsTourTranscriptSource":{"type":"object","unevaluatedProperties":false,"allOf":[{"$ref":"#/components/schemas/VcsTourSourceBase"},{"type":"object","required":["kind","coordinate"],"properties":{"kind":{"type":"string","const":"transcript_event"},"coordinate":{"$ref":"#/components/schemas/VcsTourTranscriptCoordinate"}}}]},"VcsTourRepositorySource":{"type":"object","unevaluatedProperties":false,"allOf":[{"$ref":"#/components/schemas/VcsTourSourceBase"},{"type":"object","required":["kind","coordinate"],"properties":{"kind":{"type":"string","const":"repository_file"},"coordinate":{"$ref":"#/components/schemas/VcsTourRepositoryCoordinate"}}}]},"VcsTourChangeDescriptionSource":{"type":"object","unevaluatedProperties":false,"allOf":[{"$ref":"#/components/schemas/VcsTourSourceBase"},{"type":"object","required":["kind","coordinate"],"properties":{"kind":{"type":"string","const":"change_description"},"coordinate":{"$ref":"#/components/schemas/VcsTourChangeDescriptionCoordinate"}}}]},"VcsTourCheckOutputSource":{"type":"object","unevaluatedProperties":false,"allOf":[{"$ref":"#/components/schemas/VcsTourSourceBase"},{"type":"object","required":["kind","coordinate"],"properties":{"kind":{"type":"string","const":"check_output"},"coordinate":{"$ref":"#/components/schemas/VcsTourCheckOutputCoordinate"}}}]},"VcsTourTranscriptCoordinate":{"type":"object","additionalProperties":false,"required":["checkpoint_id","event_index"],"properties":{"checkpoint_id":{"type":"string","minLength":1,"maxLength":128},"event_index":{"type":"integer","minimum":0,"maximum":2147483647}}},"VcsTourRepositoryCoordinate":{"type":"object","additionalProperties":false,"required":["commit_id","path","start_line","end_line"],"properties":{"commit_id":{"type":"string","minLength":1,"maxLength":128},"path":{"type":"string","minLength":1,"maxLength":1024},"start_line":{"type":"integer","minimum":1,"maximum":2147483647},"end_line":{"type":"integer","minimum":1,"maximum":2147483647}}},"VcsTourChangeDescriptionCoordinate":{"type":"object","additionalProperties":false,"required":["change_id","patchset_id"],"properties":{"change_id":{"type":"string","minLength":1,"maxLength":128},"patchset_id":{"type":"string","minLength":1,"maxLength":128}}},"VcsTourCheckOutputCoordinate":{"type":"object","additionalProperties":false,"required":["roder_run_id","tool_call_id"],"properties":{"roder_run_id":{"type":"string","minLength":1,"maxLength":128},"tool_call_id":{"type":"string","minLength":1,"maxLength":128}}},"VcsTourGenerationManifest":{"type":"object","additionalProperties":false,"required":["schema_version","overview","steps","findings"],"properties":{"schema_version":{"type":"integer","const":2},"overview":{"$ref":"#/components/schemas/VcsTourOverview"},"steps":{"type":"array","minItems":1,"maxItems":5,"items":{"$ref":"#/components/schemas/VcsTourGenerationStep"}},"findings":{"type":"array","maxItems":0,"items":{"$ref":"#/components/schemas/VcsTourFinding"}}}},"VcsTourGenerationStep":{"type":"object","additionalProperties":false,"required":["key","title","summary","code_refs","related_step_keys","claims"],"properties":{"key":{"$ref":"#/components/schemas/VcsTourKey"},"title":{"type":"string","minLength":1,"maxLength":160},"summary":{"type":"string","minLength":1,"maxLength":1000},"code_refs":{"type":"array","minItems":1,"maxItems":32,"items":{"$ref":"#/components/schemas/VcsTourCodeReference"}},"related_step_keys":{"type":"array","maxItems":8,"uniqueItems":true,"items":{"$ref":"#/components/schemas/VcsTourKey"}},"claims":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/VcsTourClaim"}}}},"VcsTourCodeReference":{"type":"object","additionalProperties":false,"required":["path","side","start_line","end_line"],"properties":{"path":{"type":"string","minLength":1,"maxLength":1024},"side":{"type":"string","enum":["base","head"]},"start_line":{"type":"integer","minimum":1,"maximum":2147483647},"end_line":{"type":"integer","minimum":1,"maximum":2147483647}}},"VcsTourManifest":{"type":"object","additionalProperties":false,"required":["schema_version","overview","steps","findings"],"properties":{"schema_version":{"type":"integer","const":1},"overview":{"$ref":"#/components/schemas/VcsTourOverview"},"steps":{"type":"array","minItems":1,"maxItems":5,"items":{"$ref":"#/components/schemas/VcsTourStep"}},"findings":{"type":"array","maxItems":0,"items":{"$ref":"#/components/schemas/VcsTourFinding"}}}},"VcsTourOverview":{"type":"object","additionalProperties":false,"required":["title","summary"],"properties":{"title":{"type":"string","minLength":1,"maxLength":160},"summary":{"type":"string","minLength":1,"maxLength":800}}},"VcsTourStep":{"type":"object","additionalProperties":false,"required":["key","title","summary","hunk_refs","related_step_keys","claims"],"properties":{"key":{"$ref":"#/components/schemas/VcsTourKey"},"title":{"type":"string","minLength":1,"maxLength":160},"summary":{"type":"string","minLength":1,"maxLength":1000},"hunk_refs":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":128}},"related_step_keys":{"type":"array","maxItems":8,"uniqueItems":true,"items":{"$ref":"#/components/schemas/VcsTourKey"}},"claims":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/VcsTourClaim"}}}},"VcsTourClaim":{"type":"object","additionalProperties":false,"required":["key","kind","text","evidence_refs"],"properties":{"key":{"$ref":"#/components/schemas/VcsTourKey"},"kind":{"type":"string","enum":["recorded","inferred"]},"text":{"type":"string","minLength":1,"maxLength":2000},"evidence_refs":{"$ref":"#/components/schemas/VcsTourEvidenceReferences"}}},"VcsTourFinding":{"type":"object","additionalProperties":false,"required":["key","priority","title","body","hunk_ref","side","line","evidence_refs"],"properties":{"key":{"$ref":"#/components/schemas/VcsTourKey"},"priority":{"type":"string","enum":["p0","p1","p2","p3"]},"title":{"type":"string","minLength":1,"maxLength":160},"body":{"type":"string","minLength":1,"maxLength":4000},"hunk_ref":{"type":"string","minLength":1,"maxLength":128},"side":{"type":"string","enum":["additions","deletions"]},"line":{"type":"integer","minimum":1,"maximum":2147483647},"step_key":{"oneOf":[{"$ref":"#/components/schemas/VcsTourKey"},{"type":"null"}]},"evidence_refs":{"$ref":"#/components/schemas/VcsTourEvidenceReferences"}}},"VcsTourEvidenceReferences":{"type":"array","minItems":1,"maxItems":8,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":128}},"VcsTourKey":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9_-]*$"},"VcsTourDigest":{"type":"string","pattern":"^[0-9a-f]{64}$"},"ScenarioRunLesson":{"type":"object","required":["id","title","finding","workaround","created_at"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"finding":{"type":"string","description":"What went wrong, in the operator's words."},"workaround":{"type":"string","description":"What later runs should do instead."},"created_at":{"type":"string","format":"date-time"}}},"ScenarioRunLessonInput":{"type":"object","required":["finding","workaround"],"properties":{"title":{"type":"string","maxLength":160,"description":"Defaults to the Scenario's name."},"finding":{"type":"string","maxLength":1000},"workaround":{"type":"string","maxLength":1000}}},"ScenarioRunLearning":{"type":"object","required":["replayed_steps","offered_steps","healed_actions","model_from_step","offered_outcomes","replayed_outcomes","reported","steps","outcomes"],"properties":{"reported":{"type":"boolean","description":"Whether the runner posted a learning report; false when the run was done entirely by the model without one."},"replayed_steps":{"type":"integer","minimum":0,"description":"Learned steps replayed and checkpointed before the model took over."},"offered_steps":{"type":"integer","minimum":0,"description":"Learned steps Verify offered this run, every fresh step whose digest matches; the model completes any step without one."},"healed_actions":{"type":"integer","minimum":0,"description":"Replayed actions whose control had moved and was found again."},"model_from_step":{"type":["integer","null"],"minimum":0,"description":"The zero-based step the model started from; null when replay completed every authored step."},"offered_outcomes":{"type":"integer","minimum":0,"description":"Learned outcome checks Verify offered this run, every fresh outcome whose digest matches; they are checked once every step is complete."},"replayed_outcomes":{"type":"integer","minimum":0,"description":"Offered outcomes whose learned checks passed without the model."},"steps":{"type":"array","description":"How each journey step the run completed was done, in authored order. Steps the run never completed are left out.","items":{"type":"object","required":["index","mode","learned_from_run","actions","checks"],"properties":{"index":{"type":"integer","minimum":0,"description":"The zero-based authored step."},"mode":{"type":"string","enum":["learned","healed","ai"],"description":"learned when replayed with no model call; healed when replayed and Decisions found at least one moved control again; ai when the model did it because nothing was learned or replay failed."},"learned_from_run":{"type":["string","null"],"description":"The public id of the earlier passing run whose learned step this run replayed; null for ai steps, or when the dispatch did not record it."},"actions":{"type":"array","maxItems":40,"description":"The actions this run took for the step, as reported for learning; empty when the step could not be learned.","items":{"$ref":"#/components/schemas/ScenarioRunLearnedAction"}},"checks":{"type":"array","maxItems":10,"description":"The passing checkpoint checks that proved the step; empty when the step could not be learned.","items":{"$ref":"#/components/schemas/ScenarioRunLearnedCheck"}}}}},"outcomes":{"type":"array","description":"How each outcome the run checked, passed or failed, was done, in authored order. Unchecked outcomes are left out.","items":{"type":"object","required":["index","mode","learned_from_run","checks"],"properties":{"index":{"type":"integer","minimum":0,"description":"The zero-based authored outcome."},"mode":{"type":"string","enum":["learned","ai"],"description":"learned when its learned checks were replayed and then independently reviewed; ai when the model checked it."},"learned_from_run":{"type":["string","null"],"description":"The public id of the earlier passing run whose learned checks this run replayed; null for ai outcomes, or when the dispatch did not record it."},"checks":{"type":"array","maxItems":10,"description":"The live checks that proved the outcome; empty when it could not be learned.","items":{"$ref":"#/components/schemas/ScenarioRunLearnedCheck"}}}}}}},"ScenarioRunLearnedTarget":{"type":"object","description":"The signals that identify a control by its accessible role and name, not a CSS selector. Text is capped at 300 characters.","required":["role","label","context_text","tag"],"properties":{"role":{"type":["string","null"]},"label":{"type":["string","null"],"description":"The control's accessible name."},"context_text":{"type":["string","null"],"description":"Text around the control that tells it apart from similar ones."},"tag":{"type":["string","null"],"description":"The control's HTML tag."}}},"ScenarioRunLearnedAction":{"type":"object","description":"One action a run took for a step. A fill of a granted credential names only its kind (value_ref_kind), never its value; a mailed sign-in code or link is read live from mail, never stored. Text is capped at 300 characters.","required":["kind","target","value_ref_kind","value","option_label","key","repeat","path","direction","wait_ms","visual","files","directory"],"properties":{"kind":{"type":"string","enum":["click","double_click","right_click","fill","select","press","navigate","scroll","wait","reload","back","forward","upload","mail_code","mail_link"],"description":"upload chose files through a picker; mail_code filled the sign-in code mailed to the Persona; mail_link opened the mailed sign-in link."},"target":{"oneOf":[{"$ref":"#/components/schemas/ScenarioRunLearnedTarget"},{"type":"null"}]},"value_ref_kind":{"type":["string","null"],"enum":["username","password","totp",null]},"value":{"type":["string","null"],"description":"A literal fill value; synthetic test data."},"option_label":{"type":["string","null"]},"key":{"type":["string","null"]},"repeat":{"type":["integer","null"],"minimum":2,"description":"How many times in a row a page key press was pressed; null is once."},"path":{"type":["string","null"],"description":"Where a navigation went, relative to the target."},"direction":{"type":["string","null"],"enum":["up","down","left","right",null]},"wait_ms":{"type":["integer","null"],"minimum":0},"visual":{"oneOf":[{"$ref":"#/components/schemas/ScenarioRunLearnedVisualClick"},{"type":"null"}]},"files":{"type":["array","null"],"maxItems":16,"description":"The files an upload chose; null for other actions.","items":{"$ref":"#/components/schemas/ScenarioRunLearnedFile"}},"directory":{"type":["boolean","null"],"description":"Whether an upload chose a folder; null for other actions."}}},"ScenarioRunLearnedVisualClick":{"type":"object","description":"Where a click on no identifiable control landed.","required":["anchor","offset","point","viewport"],"properties":{"anchor":{"oneOf":[{"$ref":"#/components/schemas/ScenarioRunLearnedTarget"},{"type":"null"}],"description":"The nearest observed control, or null when there was none."},"offset":{"oneOf":[{"type":"object","required":["x","y"],"properties":{"x":{"type":"number"},"y":{"type":"number"}}},{"type":"null"}],"description":"The click in CSS px from the anchor's top-left corner."},"point":{"type":"object","required":["x_ratio","y_ratio"],"description":"The click as a fraction of the viewport.","properties":{"x_ratio":{"type":"number","minimum":0,"maximum":1},"y_ratio":{"type":"number","minimum":0,"maximum":1}}},"viewport":{"oneOf":[{"type":"object","required":["width","height"],"properties":{"width":{"type":"integer"},"height":{"type":"integer"}}},{"type":"null"}]}}},"ScenarioRunLearnedFile":{"type":"object","description":"One file an upload chose. A synthetic file's content is not shown.","required":["source","name"],"properties":{"source":{"type":"string","enum":["fixture","synthetic"],"description":"fixture for a file attached to the Scenario; synthetic for a small text file the model generated."},"name":{"type":"string","description":"The file's name, with {{run_tag}} for the run's own tag."}}},"ScenarioRunLearnedCheck":{"type":"object","description":"One check that proved a step or outcome. Text is capped at 300 characters.","required":["kind","expected","target","source_step_index"],"properties":{"kind":{"type":"string","enum":["text","absent_text","url","visible","accessible_name","pressed","enabled","disabled","focused","field_value","checked","height_above","absent_option","absent_console_error"]},"expected":{"type":["string","null"]},"target":{"oneOf":[{"$ref":"#/components/schemas/ScenarioRunLearnedTarget"},{"type":"null"}]},"source_step_index":{"type":["integer","null"],"minimum":0,"description":"For an outcome about state a later step removed, the earlier step whose passing check proves it."}}},"ScenarioRunBrowserError":{"type":"object","required":["kind","method","url","status","message","count","first_offset_ms"],"properties":{"kind":{"type":"string","enum":["console","network"]},"method":{"type":["string","null"]},"url":{"type":["string","null"],"description":"Without its query string."},"status":{"type":["integer","null"],"description":"HTTP status of a failed request; 0 when it never got a response."},"message":{"type":["string","null"]},"count":{"type":"integer","minimum":1},"first_offset_ms":{"type":["integer","null"],"description":"When it first happened, from the start of the recording."}}},"ScenarioRunFinding":{"type":"object","required":["id","title","severity","status","occurrence_count","first_seen_at","verification"],"properties":{"verification":{"$ref":"#/components/schemas/VerifyFindingVerification"},"id":{"type":"string"},"title":{"type":"string"},"severity":{"type":"string"},"status":{"type":"string","enum":["open","resolved","ignored"]},"occurrence_count":{"type":"integer","description":"How many scenario runs and reports have raised this finding."},"first_seen_at":{"type":"string","format":"date-time"}}},"ScenarioRunEvidenceFile":{"type":"object","required":["id","kind","content_type","captured_at","download_url","preview_url"],"properties":{"id":{"type":"string"},"kind":{"type":"string"},"content_type":{"type":"string"},"captured_at":{"type":"string","format":"date-time"},"download_url":{"type":"string"},"preview_url":{"type":["string","null"],"description":"Set for media a browser can show in place, such as screenshots."}}},"ScenarioRunOutcome":{"type":"object","required":["expected","status","checks","evidence","findings"],"properties":{"evidence":{"type":"array","description":"Evidence the outcome's checks cited.","items":{"$ref":"#/components/schemas/ScenarioRunEvidenceFile"}},"findings":{"type":"array","description":"Findings this outcome raised. A scenario's findings come from its failed checks, so they are listed once, with its first failed outcome.","items":{"$ref":"#/components/schemas/ScenarioRunFinding"}},"expected":{"type":"string"},"actors":{"type":"array","maxItems":4,"items":{"type":"string"}},"status":{"type":"string","enum":["passed","failed","unknown","pending"]},"decision_screenshot_count":{"type":"integer","minimum":1,"description":"Number of distinct screenshots cited by the outcome decisions."},"decided_by":{"type":"array","description":"Present when a model judged the outcome's text visible, or absent, in its checkpoint screenshots because the text capture could not read it. One entry per decision.","minItems":1,"items":{"type":"object","required":["provider","model"],"properties":{"provider":{"type":"string"},"model":{"type":"string"}}}},"checks":{"type":"array","items":{"type":"object","required":["kind","target","expected","status","error"],"properties":{"kind":{"type":["string","null"]},"target":{"type":["string","null"]},"expected":{"type":["string","null"]},"status":{"type":"string","enum":["passed","failed","unknown","pending"]},"error":{"type":["string","null"]}}}}}},"ScenarioRunLive":{"type":"object","description":"Latest browser activity while the ScenarioRun is running.","required":["captured_at","url","completed_steps","frame_url","stream"],"properties":{"captured_at":{"type":["string","null"],"format":"date-time"},"url":{"type":["string","null"]},"completed_steps":{"type":["integer","null"],"minimum":0,"description":"Browser actions taken so far."},"frame_url":{"type":["string","null"]},"stream":{"oneOf":[{"$ref":"#/components/schemas/LiveBrowserStream"},{"type":"null"}]}}},"LiveBrowserStream":{"type":"object","description":"The live view of a running browser. The token authenticates the read-only video and event socket at url; devtools_url opens full Chrome DevTools and is null unless the viewer may run tests and the runner serves it.","required":["url","token","devtools_url"],"properties":{"url":{"type":"string","format":"uri"},"token":{"type":"string"},"devtools_url":{"type":["string","null"],"format":"uri"}}},"ScenarioRunSummary":{"type":"object","required":["text","blocker_step","evidence","cause","cause_label"],"properties":{"cause_label":{"description":"Who can fix the result, in words to show with the summary. Null when cause is null.","type":["string","null"]},"cause":{"description":"Who can fix the result. app means the app did not meet an expected step or outcome; access, the sign-in account was refused; prerequisite, data or state the Scenario needs was missing; obstacle, the browser could not get past the page as the steps describe it; runner, Composal's runner failed; timed_out, the run ran out of time. Null when the run passed or gave no reason.","type":["string","null"],"enum":["app","access","prerequisite","obstacle","runner","timed_out",null]},"text":{"type":["string","null"]},"blocker_step":{"oneOf":[{"type":"object","required":["number","text"],"properties":{"number":{"type":"integer","minimum":1},"text":{"type":"string"}}},{"type":"null"}]},"evidence":{"type":"array","items":{"$ref":"#/components/schemas/ScenarioRunEvidenceLink"}}}},"ScenarioRunEvidenceLink":{"type":"object","required":["id","kind","url"],"properties":{"id":{"type":"string"},"kind":{"type":"string"},"url":{"type":"string"}}},"ScenarioRecordingTimelineEntry":{"type":"object","required":["id","label","status","start_ms","duration_ms"],"properties":{"id":{"type":"string"},"label":{"type":"string"},"status":{"type":"string"},"start_ms":{"type":"number"},"duration_ms":{"type":"number"},"step_index":{"type":"integer","minimum":0,"description":"The authored step this entry checkpoints, by zero-based position; present only for a live journey's step entries."},"outcome_index":{"type":"integer","minimum":0,"description":"The authored outcome this entry checks, by zero-based position; present only for outcome entries."}}},"ScenarioRunRecording":{"type":"object","required":["video_groups","videos","frame_url","steps","step_summary","events","phases","activity","replay_start_ms","observations","findings"],"properties":{"webp_segments":{"$ref":"#/components/schemas/ScenarioRunRecording/properties/videos"},"multi_actor":{"type":"boolean","description":"Multiple named actors own independent browsers in this scenario."},"video_groups":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","continuous","videos"],"properties":{"id":{"type":"string"},"actor_id":{"type":["string","null"],"description":"The named actor whose browser this recording contains; null when unknown."},"continuous":{"type":"boolean"},"videos":{"$ref":"#/components/schemas/ScenarioRunRecording/properties/videos"}}}},"videos":{"type":"array","items":{"type":"object","required":["id","url","start_ms","duration_ms","timing_source","recording_id"],"properties":{"id":{"type":"string"},"url":{"type":"string"},"start_ms":{"type":["number","null"],"minimum":0},"duration_ms":{"type":["number","null"],"minimum":0,"description":"Recorded length of this segment of one continuous recording, when known."},"recording_id":{"type":["string","null"]},"timing_source":{"type":["string","null"],"enum":["recorded","estimated",null]}}}},"frame_url":{"type":["string","null"]},"steps":{"type":"array","items":{"type":"object","required":["id","status","duration_ms","start_ms","label"],"properties":{"id":{"type":"string"},"status":{"type":"string"},"duration_ms":{"type":"number"},"start_ms":{"type":"number"},"label":{"type":["string","null"]}}}},"events":{"type":"array","description":"Timestamped replay events with settled outcome verdicts; failed checks superseded by a passing review stay excluded.","items":{"$ref":"#/components/schemas/ScenarioRecordingTimelineEntry"}},"phases":{"type":"array","description":"Recorded step and outcome spans, followed by terminal application cleanup when recorded. Cleanup includes retries and time spent finalizing.","items":{"$ref":"#/components/schemas/ScenarioRecordingTimelineEntry"}},"step_summary":{"type":"array","description":"The scenario's step list. Live journeys list every authored step, then each outcome the agent checked, in the order it checked them; a step the run never reached has status not_reached and no time, and an outcome row's status is that outcome's settled verdict, the same as its outcomes entry. Fixed replays list named plan actions.","items":{"type":"object","required":["kind","label","status","start_ms","duration_ms","step_ids","actions"],"properties":{"kind":{"type":"string","enum":["step","outcome"]},"outcome_index":{"type":"integer","minimum":0,"description":"The authored outcome's zero-based position, present only for outcome rows."},"step_index":{"type":"integer","minimum":0,"description":"The authored step's zero-based position, present only for a live journey's step rows."},"label":{"type":"string"},"status":{"type":"string"},"start_ms":{"type":["number","null"]},"duration_ms":{"type":["number","null"]},"step_ids":{"type":"array","description":"Recorded step ids this row covers, in order.","items":{"type":"string"}},"actions":{"type":"array","description":"What the narration adds to this step, in order. An action is something the agent did or saw that the step does not say; a check is a failed attempt to confirm the step, labelled with what was seen. A met outcome lists no checks.","items":{"type":"object","required":["id","kind","label","status","start_ms","duration_ms"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["action","check"]},"label":{"type":"string"},"status":{"type":"string"},"start_ms":{"type":"number"},"duration_ms":{"type":"number"}}}}}}},"activity":{"type":"array","description":"The run's activity in plain words, in order. What the agent did and each authored step or outcome it checked, with retries of one step folded into a row and unlabelled runner steps left out; then what the browser and agent reported. Raw steps and observations stay in their own fields.","items":{"type":"object","additionalProperties":false,"required":["id","kind","label","detail","status","start_ms","duration_ms","attempts"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["action","step","outcome","network","console","agent"]},"label":{"type":"string"},"detail":{"type":["string","null"],"description":"For a failed check, what the agent saw instead; for a report, its original text."},"status":{"type":["string","null"]},"start_ms":{"type":["number","null"]},"duration_ms":{"type":["number","null"]},"attempts":{"type":"integer","minimum":1,"description":"How many times the agent tried this row."}}}},"browser_events":{"description":"Left out when the run page is read with diagnostics=false.","$ref":"#/components/schemas/ScenarioRecordingDiagnostics/properties/browser_events"},"dropped_browser_events":{"description":"Left out when the run page is read with diagnostics=false.","type":"integer","minimum":0},"replay_start_ms":{"type":["number","null"],"minimum":0,"description":"Step-clock offset where replay opens, after the first step loads its page."},"observations":{"type":"array","items":{"type":"object","required":["kind","summary","evidence"],"properties":{"kind":{"type":"string"},"summary":{"type":"string"},"evidence":{"type":"array","items":{"$ref":"#/components/schemas/ScenarioRunEvidenceLink"}}}}},"findings":{"$ref":"#/components/schemas/ScenarioRecordingDiagnostics/properties/findings"}}},"VerifyNetworkBody":{"type":"object","additionalProperties":false,"required":["state"],"properties":{"state":{"type":"string","enum":["captured","truncated","omitted"]},"content_type":{"type":"string","maxLength":128},"text":{"type":"string","maxLength":4096,"description":"Bounded redacted request or response payload."},"reason":{"type":"string","enum":["unsupported_content_type","size_limit","unavailable","unparseable","sensitive_content","capture_limit"]}}},"ScenarioRecordingDiagnostics":{"type":"object","required":["id","started_at","duration_ms","timing","steps","browser_events","dropped_browser_events","observations","evidence","findings"],"properties":{"id":{"type":"string"},"started_at":{"type":"string","format":"date-time","nullable":true},"duration_ms":{"type":"integer","nullable":true},"timing":{"type":"object","properties":{"browser_ms":{"type":"integer"},"agent_think_ms":{"type":"integer"},"queue_ms":{"type":"integer"},"action_count":{"type":"integer"}}},"steps":{"type":"array","description":"The steps that ran, with their offset into the recording.","items":{"type":"object","required":["id","status","start_ms","duration_ms"],"properties":{"id":{"type":"string"},"status":{"type":"string"},"start_ms":{"type":"integer"},"duration_ms":{"type":"integer"}}}},"browser_events":{"type":"array","maxItems":200,"items":{"type":"object","required":["sequence","offset_ms","kind","message","url"],"properties":{"actor_id":{"type":"string","description":"Browser actor that produced this event, when known."},"sequence":{"type":"integer"},"offset_ms":{"type":"integer"},"kind":{"type":"string","enum":["console","network"]},"message":{"type":"string"},"url":{"type":"string"},"level":{"type":"string"},"method":{"type":"string"},"resource_type":{"type":"string"},"status":{"type":"integer"},"duration_ms":{"type":"integer"},"request_body":{"$ref":"#/components/schemas/VerifyNetworkBody"},"response_body":{"$ref":"#/components/schemas/VerifyNetworkBody"}}}},"dropped_browser_events":{"type":"integer","minimum":0,"description":"Earlier browser events left out of browser_events."},"observations":{"type":"array","items":{"type":"object","required":["kind","summary"],"properties":{"kind":{"type":"string"},"summary":{"type":"string"}}}},"evidence":{"type":"array","items":{"type":"object","required":["id","kind","content_type","byte_size","captured_at","preview_url","download_url"],"properties":{"id":{"type":"string"},"kind":{"type":"string"},"content_type":{"type":"string"},"byte_size":{"type":"integer"},"captured_at":{"type":"string","format":"date-time"},"preview_url":{"type":"string","nullable":true},"download_url":{"type":"string","nullable":true}}}},"findings":{"type":"array","items":{"type":"object","required":["id","title","severity"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"severity":{"type":"string"}}}}}},"VerificationIntegrations":{"type":"object","required":["slack","github","gitlab","permissions"],"properties":{"slack":{"$ref":"#/components/schemas/VerificationSlackIntegration"},"github":{"$ref":"#/components/schemas/VerificationRepositoryIntegration"},"gitlab":{"$ref":"#/components/schemas/VerificationRepositoryIntegration"},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"}}},"VerificationSlackIntegration":{"type":"object","required":["available","workspace_name","account_connected","connect_url"],"properties":{"available":{"type":"boolean","description":"Whether this deployment has a Slack app configured"},"workspace_name":{"type":"string","nullable":true,"description":"The connected Slack workspace, or null when none is installed"},"account_connected":{"type":"boolean","description":"Whether the current user has linked their own Slack account"},"connect_url":{"type":"string"}}},"VerificationRepositoryIntegration":{"type":"object","required":["repository_count"],"properties":{"repository_count":{"type":"integer","description":"Connected repositories Verify can test pull or merge requests for"}}},"ManagedBinaryManifest":{"type":"object","additionalProperties":false,"required":["schema_version","installer_version","platform","arch","format","executable","launch_args","window_title","version_id","preparation_id","configuration_digest","package_sha256","package_size","strategy","image_reference","image_content_digest","base_image","readiness_timeout_seconds","max_expanded_bytes","max_entries"],"properties":{"schema_version":{"const":1},"installer_version":{"const":"1"},"platform":{"const":"linux"},"arch":{"const":"amd64"},"format":{"enum":["deb","tar.gz"]},"executable":{"type":"string","minLength":1,"maxLength":1000},"launch_args":{"type":"array","maxItems":64,"items":{"type":"string","maxLength":1000}},"window_title":{"type":"string","minLength":1,"maxLength":200},"version_id":{"type":"string","pattern":"^vbinaryversion_"},"preparation_id":{"type":"string","pattern":"^vbinaryprep_"},"configuration_digest":{"type":"string","pattern":"^[0-9a-f]{64}$"},"package_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"package_size":{"type":"integer","minimum":1,"maximum":1073741824},"strategy":{"enum":["prepared_image","startup_extract"]},"image_reference":{"type":"string","pattern":"^sandbox/[a-zA-Z0-9_.-]+:(?!latest$)[a-zA-Z0-9_.-]+$"},"image_content_digest":{"type":["string","null"],"pattern":"^sha256:[0-9a-f]{64}$"},"base_image":{"type":"string"},"readiness_timeout_seconds":{"const":60},"max_expanded_bytes":{"const":4294967296},"max_entries":{"const":100000}}},"VerifyBinaryConfiguration":{"type":"object","required":["platform","arch","format","executable","launch_args","window_title"],"properties":{"platform":{"const":"linux"},"arch":{"const":"amd64"},"format":{"enum":["deb","tar.gz"]},"executable":{"type":"string","minLength":1,"maxLength":1000},"launch_args":{"type":"array","maxItems":64,"items":{"type":"string","maxLength":1000}},"window_title":{"type":"string","minLength":1,"maxLength":200}}},"VerifyBinaryPreparation":{"type":"object","required":["id","status","base_image","installer_version","image_reference","image_digest","failure_phase","safe_error","receipt","started_at","ready_at"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["queued","acquiring","preparing","ready","failed","canceled"]},"base_image":{"type":"string"},"installer_version":{"type":"string"},"image_reference":{"type":["string","null"]},"image_digest":{"type":["string","null"]},"failure_phase":{"type":["string","null"]},"safe_error":{"type":["string","null"]},"receipt":{"type":["object","null"],"additionalProperties":true},"started_at":{"type":["string","null"]},"ready_at":{"type":["string","null"]}}},"VerifyBinaryVersion":{"type":"object","required":["id","status","package_sha256","package_size","configuration_digest","configuration","retryable","deletable","created_at","preparations","cancelable","environment_uses"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["queued","acquiring","preparing","ready","failed","canceled"]},"package_sha256":{"type":["string","null"]},"package_size":{"type":["integer","null"]},"configuration_digest":{"type":"string"},"configuration":{"$ref":"#/components/schemas/VerifyBinaryConfiguration"},"retryable":{"type":"boolean"},"deletable":{"type":"boolean"},"created_at":{"type":"string"},"preparations":{"type":"array","items":{"$ref":"#/components/schemas/VerifyBinaryPreparation"}},"cancelable":{"type":"boolean"},"environment_uses":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}}}},"VerifyBinary":{"type":"object","required":["id","project_id","slug","name","archived_at","created_at","latest_version","accepts_versions"],"properties":{"id":{"type":"string"},"project_id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"archived_at":{"type":["string","null"]},"created_at":{"type":"string"},"latest_version":{"anyOf":[{"type":"object","required":["id","status"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["queued","acquiring","preparing","ready","failed","canceled"]}}},{"type":"null"}]},"accepts_versions":{"type":"boolean"}}},"VerifyBinaryRegistration":{"type":"object","required":["binary","version","operation"],"properties":{"binary":{"$ref":"#/components/schemas/VerifyBinary"},"version":{"$ref":"#/components/schemas/VerifyBinaryVersion"},"operation":{"$ref":"#/components/schemas/VerifyBinaryPreparation"}}},"VerifyBinaryDirectory":{"type":"object","required":["project","binaries","pagination","permissions","needs_refresh"],"properties":{"project":{"$ref":"#/components/schemas/ProjectHeader"},"binaries":{"type":"array","items":{"$ref":"#/components/schemas/VerifyBinary"}},"pagination":{"$ref":"#/components/schemas/VerifyRunsPagination"},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"},"needs_refresh":{"type":"boolean"}}},"VerifyBinaryPage":{"type":"object","required":["binary","permissions","versions","pagination","needs_refresh"],"properties":{"version_defaults":{"anyOf":[{"$ref":"#/components/schemas/VerifyBinaryConfiguration"},{"type":"null"}]},"binary":{"$ref":"#/components/schemas/VerifyBinary"},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"},"versions":{"type":"array","items":{"$ref":"#/components/schemas/VerifyBinaryVersion"}},"pagination":{"$ref":"#/components/schemas/VerifyRunsPagination"},"needs_refresh":{"type":"boolean"}}},"VerifyBinaryVersionPage":{"type":"object","required":["version","permissions"],"properties":{"version":{"$ref":"#/components/schemas/VerifyBinaryVersion"},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"}}},"VerifyBinaryVersionRegistration":{"type":"object","required":["version","operation"],"properties":{"version":{"$ref":"#/components/schemas/VerifyBinaryVersion"},"operation":{"$ref":"#/components/schemas/VerifyBinaryPreparation"}}},"VerifyBinaryVersionsPage":{"type":"object","required":["versions","pagination","permissions"],"properties":{"versions":{"type":"array","items":{"$ref":"#/components/schemas/VerifyBinaryVersion"}},"pagination":{"$ref":"#/components/schemas/VerifyRunsPagination"},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"}}},"VerifyBinaryLogs":{"type":"object","required":["version_id","operations"],"properties":{"version_id":{"type":"string"},"operations":{"type":"array","items":{"$ref":"#/components/schemas/VerifyBinaryPreparation"}}}},"VerifyBinaryCreate":{"type":"object","required":["slug","name","download_url","format","executable","window_title","idempotency_key"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"download_url":{"type":"string"},"download_secret":{"type":"string"},"sha256":{"type":"string"},"platform":{"const":"linux"},"arch":{"const":"amd64"},"format":{"enum":["deb","tar.gz"]},"executable":{"type":"string","minLength":1,"maxLength":1000},"launch_args":{"type":"array","maxItems":64,"items":{"type":"string","maxLength":1000}},"window_title":{"type":"string","minLength":1,"maxLength":200},"idempotency_key":{"type":"string"}}},"VerifyBinaryVersionCreate":{"type":"object","required":["download_url","idempotency_key"],"properties":{"download_url":{"type":"string"},"download_secret":{"type":"string"},"sha256":{"type":"string"},"platform":{"const":"linux"},"arch":{"const":"amd64"},"format":{"enum":["deb","tar.gz"]},"executable":{"type":"string","minLength":1,"maxLength":1000},"launch_args":{"type":"array","maxItems":64,"items":{"type":"string","maxLength":1000}},"window_title":{"type":"string","minLength":1,"maxLength":200},"idempotency_key":{"type":"string"}}},"VerifyBinaryChoice":{"type":"object","required":["selector","label"],"properties":{"selector":{"type":"string"},"label":{"type":"string"}}},"VerifyBinarySummaryPage":{"type":"object","required":["binary","permissions"],"properties":{"binary":{"$ref":"#/components/schemas/VerifyBinary"},"permissions":{"$ref":"#/components/schemas/ProjectPermissions"}}},"ManagedDesktopOptions":{"type":"object","additionalProperties":false,"properties":{"description":{"type":"string","minLength":1,"maxLength":4000},"setup_command":{"type":"string","maxLength":4000},"artifact_paths":{"type":"array","maxItems":20,"items":{"type":"string","pattern":"^/home/cua/","maxLength":1000}}}},"VerifyBrowserSession":{"type":"object","required":["id","account_id","status","origin","expires_at","viewer_url"],"properties":{"id":{"type":"string"},"account_id":{"type":"string"},"status":{"type":"string","enum":["pending","starting","ready","saved","closed","failed"]},"origin":{"type":"string"},"expires_at":{"type":"string","format":"date-time"},"viewer_url":{"type":"string","nullable":true,"description":"Owner-only bearer link. Do not share; expires with the browser lease."}}},"VerifyCodeRepairSettings":{"type":"object","required":["available","enabled","enabled_at","operator_user_id","repository_slug","daily_limit"],"properties":{"available":{"type":"boolean"},"enabled":{"type":"boolean"},"enabled_at":{"type":"string","format":"date-time","nullable":true},"operator_user_id":{"type":"string","nullable":true},"repository_slug":{"type":"string","nullable":true},"daily_limit":{"type":"integer"}}},"VerifyCodeRepair":{"type":"object","required":["id","scenario_run_id","trigger_kind","launch_state","base_sha","roder_thread_id","roder_turn_id","failure_code","cancel_requested","task"],"properties":{"id":{"type":"string"},"scenario_run_id":{"type":"string"},"trigger_kind":{"type":"string","enum":["manual","automatic"]},"launch_state":{"type":"string","enum":["queued","starting","started","unknown","failed","cancelled"]},"base_sha":{"type":"string"},"roder_thread_id":{"type":"string","nullable":true},"roder_turn_id":{"type":"string","nullable":true},"failure_code":{"type":"string","nullable":true},"cancel_requested":{"type":"boolean"},"task":{"type":"object","nullable":true,"required":["turn_id","status","text"],"properties":{"turn_id":{"type":"string"},"status":{"type":"string"},"text":{"type":"string"}}}}},"VerifyDeepScanContext":{"type":"object","required":["id","mode","title","goal","status","max_seconds","max_testers","concurrency","created_at","finished_at","deadline_at","observed_at","environment_name","project_id","report","reproduction_of","agents","running_agent_count","permissions"],"properties":{"id":{"type":"string"},"mode":{"type":"string","enum":["deep_scan"]},"title":{"type":"string"},"goal":{"type":"string"},"status":{"type":"string","enum":["discovering","testing","completed","partial","canceled"]},"max_seconds":{"type":"integer"},"max_testers":{"type":"integer"},"concurrency":{"type":"integer"},"created_at":{"type":"string"},"finished_at":{"type":"string","nullable":true},"deadline_at":{"type":"string"},"observed_at":{"type":"string"},"environment_name":{"type":"string"},"project_id":{"type":"string","nullable":true},"report":{"type":"object","required":["next_action"],"properties":{"next_action":{"type":"string","enum":["view","view_progress","retry","create"]}}},"reproduction_of":{"$ref":"#/components/schemas/VerifyExploration/properties/reproduction_of"},"running_agent_count":{"type":"integer","minimum":0},"agents":{"type":"array","items":{"type":"object","required":["id","ordinal","role","charter","title","status","task_group"],"properties":{"id":{"type":"string"},"ordinal":{"type":"integer"},"role":{"type":"string","enum":["orchestrator","breakdown","qa","ui"]},"charter":{"type":"string"},"title":{"type":"string"},"status":{"type":"string"},"task_group":{"type":"string","enum":["working","attention","queued","completed","stopped","setup"]}}}},"permissions":{"type":"object","required":["manage"],"properties":{"manage":{"type":"boolean"}}}}},"VerifyDeepScanFindings":{"type":"object","required":["id","title","mode","status","project_id","web_url","findings","findings_fix_prompt","finding_ids","reproduction_of","reproductions","permissions"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"mode":{"type":"string","enum":["deep_scan"]},"status":{"type":"string","enum":["discovering","testing","completed","partial","canceled"]},"project_id":{"type":"string","nullable":true},"web_url":{"type":"string"},"findings":{"type":"array","items":{"$ref":"#/components/schemas/VerifyExplorationFinding"}},"findings_fix_prompt":{"type":"string","nullable":true},"finding_ids":{"type":"array","description":"Original team order used by legacy hash links and rerun indices.","items":{"type":"string"}},"reproduction_of":{"type":"object","nullable":true,"required":["id"],"properties":{"id":{"type":"string"}}},"reproductions":{"$ref":"#/components/schemas/VerifyExploration/properties/reproductions"},"permissions":{"type":"object","required":["manage"],"properties":{"manage":{"type":"boolean"}}}}},"VerifyDeepScanOptions":{"type":"object","required":["environments","permissions","discovery_defaults"],"properties":{"discovery_defaults":{"$ref":"#/components/schemas/VerifyDiscoveryDefaults"},"permissions":{"type":"object","required":["manage"],"properties":{"manage":{"type":"boolean"}}},"environments":{"type":"array","items":{"type":"object","required":["id","name","target_url","accounts","flow_map"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"target_url":{"type":"string","nullable":true},"flow_map":{"type":"object","nullable":true,"description":"Flows from the newest discovery; null until discovery has recorded some.","required":["observed_at","flows"],"properties":{"observed_at":{"type":"string"},"flows":{"type":"array","items":{"type":"object","required":["name","purpose"],"properties":{"name":{"type":"string"},"purpose":{"type":"string"}}}}}},"accounts":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}}}}}}},"VerifyDreamsPage":{"type":"object","required":["permissions","schedule","waiting_runs","dreams","pagination"],"properties":{"permissions":{"type":"object","required":["manage"],"properties":{"manage":{"type":"boolean"}}},"schedule":{"$ref":"#/components/schemas/VerifyDreamSchedule"},"waiting_runs":{"type":"integer","minimum":0,"description":"Finished runs and blocked executions the next dream will review"},"dreams":{"type":"array","items":{"$ref":"#/components/schemas/VerifyDreamSummary"}},"pagination":{"$ref":"#/components/schemas/VerifyRunsPagination"}}},"VerifyDreamPage":{"type":"object","required":["permissions","dream","tab","counts","changes","runs","pagination"],"properties":{"permissions":{"type":"object","required":["manage"],"properties":{"manage":{"type":"boolean"}}},"dream":{"$ref":"#/components/schemas/VerifyDreamDetail"},"tab":{"type":"string","enum":["changes","runs"]},"counts":{"type":"object","required":["changes","runs"],"properties":{"changes":{"type":"integer","minimum":0,"description":"Changes the dream made"},"runs":{"type":"integer","minimum":0,"description":"Every run the dream covered, reviewed or skipped, so it can exceed the dream's reviewed count"}}},"changes":{"type":"array","description":"One page of changes when tab is changes; empty otherwise","items":{"$ref":"#/components/schemas/VerifyDreamChange"}},"runs":{"type":"array","description":"One page of covered runs, reviewed or skipped, when tab is runs; empty otherwise","items":{"$ref":"#/components/schemas/VerifyDreamRun"}},"pagination":{"$ref":"#/components/schemas/VerifyRunsPagination"}}},"VerifyDreamSchedule":{"type":"object","required":["timezone","start_hour","next_at"],"properties":{"timezone":{"type":"string","description":"Organization IANA timezone dreams are scheduled in"},"start_hour":{"type":"integer","minimum":0,"maximum":23,"description":"Local 24-hour clock hour a dream starts"},"next_at":{"type":"string","format":"date-time","description":"Next scheduled start"}}},"VerifyDreamSummary":{"type":"object","required":["id","reviewed_date","timezone","scope_name","phase","attention","reviewed","skipped","changes","completed_at","error_code","reason"],"properties":{"id":{"type":"string","description":"Public id used in the dream's URL"},"reviewed_date":{"type":"string","format":"date","description":"Local day whose finished runs it reviewed"},"timezone":{"type":"string","description":"Organization timezone the dream used"},"scope_name":{"type":"string","description":"Project or unassigned environment name"},"phase":{"type":"string","enum":["queued","running","stalled","paused","stopped","completed","stopped_early"],"description":"Where the dream is. queued: waiting for a worker. running: a worker holds it. stalled: marked running but no worker holds it. paused: it hit an error and the periodic sweep still resumes it. stopped: it hit an error and is no longer retried automatically; only an administrator can resume it. completed: finished normally. stopped_early: finished, but ended before reviewing everything because its project or environment became unavailable."},"attention":{"type":"boolean","description":"The dream skipped at least one run, which will not be retried"},"reviewed":{"type":"integer","minimum":0,"description":"Finished runs and blocked executions reviewed, not counting skipped ones"},"skipped":{"type":"integer","minimum":0,"description":"Runs skipped after repeated rejected review output"},"changes":{"type":"integer","minimum":0,"description":"Knowledge and memory entries created, updated or archived"},"completed_at":{"type":"string","format":"date-time","nullable":true},"error_code":{"type":"string","nullable":true,"description":"Diagnostic code from the last failure, or from a dream that stopped early; not display copy, show reason instead"},"reason":{"type":"string","nullable":true,"description":"Plain-language explanation of the phase: the cause and what happens next. Null for queued, running and completed dreams."}}},"VerifyDreamDetail":{"allOf":[{"$ref":"#/components/schemas/VerifyDreamSummary"},{"type":"object","required":["window_start","window_end","started_at","last_activity_at","batches","resumable"],"properties":{"window_start":{"type":"string","format":"date-time","description":"Start of the reviewed local day"},"window_end":{"type":"string","format":"date-time","description":"End of the reviewed local day"},"started_at":{"type":"string","format":"date-time"},"last_activity_at":{"type":"string","format":"date-time"},"batches":{"type":"integer","minimum":0,"description":"Review batches completed so far"},"resumable":{"type":"boolean","description":"The dream failed or was interrupted and no worker holds it, so an administrator can resume it now"}}}]},"VerifyDreamChange":{"type":"object","required":["id","operation","library","entry_id","title","reason","created_at","archived","previous","current","restore","can_add_back","runs","runs_total"],"properties":{"id":{"type":"string"},"operation":{"type":"string","enum":["create","update","archive"]},"library":{"type":"string","enum":["knowledge","memory"]},"entry_id":{"type":"string","description":"Public id of the knowledge document or memory"},"title":{"type":"string","description":"The entry's current title"},"reason":{"type":"string","description":"Why the dream made this change"},"created_at":{"type":"string","format":"date-time"},"archived":{"type":"boolean","description":"The entry is archived now"},"previous":{"description":"The entry before this change; null when the change created it","oneOf":[{"type":"object","required":["title","markdown","finding","response","workaround"],"properties":{"title":{"type":"string","nullable":true},"markdown":{"type":"string","nullable":true,"description":"Knowledge documents only"},"finding":{"type":"string","nullable":true,"description":"Memories only"},"response":{"type":"string","nullable":true,"description":"Memories only"},"workaround":{"type":"string","nullable":true,"description":"Memories only"}}},{"type":"null"}]},"current":{"description":"A memory as it is now, since memories have no page of their own; null for documents, which open their own page","oneOf":[{"type":"object","required":["title","finding","response","workaround"],"properties":{"title":{"type":"string"},"finding":{"type":"string"},"response":{"type":"string","nullable":true},"workaround":{"type":"string","nullable":true}}},{"type":"null"}]},"can_add_back":{"type":"boolean","description":"True only when the dream archived this knowledge document, it is still archived, its previous title and Markdown were kept, and no available document in the project already has that title (compared ignoring case). Then its previous content can be added back as a new document. Always false for memories and for any other operation"},"restore":{"description":"Present only when restoring this exact previous version is allowed","oneOf":[{"type":"object","required":["expected_digest"],"properties":{"expected_digest":{"type":"string","description":"Send as expected_digest when updating the document"}}},{"type":"null"}]},"runs":{"type":"array","maxItems":5,"description":"Runs this change cites, at most five","items":{"$ref":"#/components/schemas/VerifyDreamRunRef"}},"runs_total":{"type":"integer","minimum":0,"description":"All runs this change cites"}}},"VerifyDreamRunRef":{"type":"object","required":["id","kind","title","outcome","environment_name","observed_at","exploration_id","execution_id"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["discovery","deep_scan","scenario","triage","pull_request"]},"title":{"type":"string"},"outcome":{"type":"string","description":"The run's state as recorded, such as completed, partial, failed, passed or blocked"},"environment_name":{"type":"string","nullable":true},"observed_at":{"type":"string","format":"date-time","description":"When the run finished, a person triaged the finding, the pull request merged, or Verify first read an open pull request head"},"exploration_id":{"type":"string","nullable":true,"description":"Discovery or Deep Scan page id; open /explorations/{id} for kind discovery and /deepscan/{id} for kind deep_scan"},"execution_id":{"type":"string","nullable":true,"description":"Project run page id for a saved Scenario execution or a pull request's Verify run; open /runs/{id}"}}},"VerifyDreamRun":{"allOf":[{"$ref":"#/components/schemas/VerifyDreamRunRef"},{"type":"object","required":["coverage","reason"],"properties":{"coverage":{"type":"string","enum":["reviewed","skipped","ineligible","pending"]},"reason":{"type":"string","nullable":true,"description":"Plain-language sentence for why a skipped run was not reviewed, null for other runs"}}}]},"MessagingTargetSource":{"type":"object","required":["kind","resolved_at"],"properties":{"kind":{"type":"string","enum":["configured","comment","ci","deployment"]},"resolved_at":{"type":"string","format":"date-time"},"reference":{"type":"string"},"commit":{"type":"string"},"setting_id":{"type":"string"},"setting_version":{"type":"string"}}},"EnvironmentDetail":{"allOf":[{"$ref":"#/components/schemas/Environment"},{"type":"object","required":["messaging_tester_number","messaging_problem","messaging_conversation","conversation_only_messaging","messaging_source"],"properties":{"conversation_only_messaging":{"type":"boolean"},"messaging_tester_number":{"type":"string","nullable":true,"description":"One configured tester number. Copied to each preview; may be overridden locally before preparation."},"messaging_problem":{"type":"string","nullable":true},"messaging_conversation":{"allOf":[{"$ref":"#/components/schemas/VerifyMessagingSetup"}],"nullable":true},"messaging_source":{"allOf":[{"$ref":"#/components/schemas/MessagingTargetSource"}],"nullable":true}}}]},"VerifyExplorationToolActivity":{"type":"object","additionalProperties":false,"required":["sequence","name","status"],"properties":{"sequence":{"type":"integer","minimum":1,"maximum":9007199254740991},"name":{"type":"string","maxLength":80,"pattern":"^verify_[a-z_]+$"},"action":{"type":"string","enum":["navigate","click","fill","type","press","scroll","hover","select","wait","back","forward","reload"]},"status":{"type":"string","enum":["running","completed","failed"]},"input":{"type":"string","maxLength":4096,"description":"Scrubbed tool arguments, truncated to 4096 UTF-8 bytes. Absent on older workers."},"output":{"type":"string","maxLength":4096,"description":"Scrubbed tool result, truncated to 4096 UTF-8 bytes. Absent while pending or on older workers."}}},"VerifyExplorationThreadEntry":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","sequence","text"],"properties":{"kind":{"type":"string","enum":["reasoning"]},"sequence":{"type":"integer","minimum":1,"maximum":9007199254740991},"text":{"type":"string","maxLength":4096}}},{"type":"object","additionalProperties":false,"required":["kind","sequence","name","status"],"properties":{"kind":{"type":"string","enum":["tool"]},"sequence":{"type":"integer","minimum":1,"maximum":9007199254740991},"name":{"type":"string","maxLength":80,"pattern":"^verify_[a-z_]+$"},"action":{"type":"string","enum":["navigate","click","fill","type","press","scroll","hover","select","wait","back","forward","reload"]},"status":{"type":"string","enum":["running","completed","failed"]},"input":{"type":"string","maxLength":4096,"description":"Scrubbed tool arguments. Absent on older workers."},"output":{"type":"string","maxLength":4096,"description":"Scrubbed tool result. Absent while pending or on older workers."}}}]},"VerifyExplorationModelActivity":{"type":"object","additionalProperties":false,"required":["sequence","phase","summary","updated_at"],"properties":{"sequence":{"type":"integer"},"phase":{"type":"string","enum":["thinking","acting","working","retrying"]},"summary":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"tools":{"description":"Up to twelve recent tool calls with scrubbed arguments and results when captured by the worker.","type":"array","maxItems":12,"items":{"$ref":"#/components/schemas/VerifyExplorationToolActivity"}}}},"VerifyExplorationList":{"type":"object","additionalProperties":false,"required":["active","explorations","pagination","permissions"],"properties":{"permissions":{"type":"object","additionalProperties":false,"required":["manage"],"properties":{"manage":{"type":"boolean"}}},"active":{"type":"array","items":{"$ref":"#/components/schemas/VerifyExplorationSummary"}},"explorations":{"type":"array","items":{"$ref":"#/components/schemas/VerifyExplorationSummary"}},"pagination":{"$ref":"#/components/schemas/VerifyRunsPagination"},"launch_options":{"description":"Present only when launch was requested by an admin","$ref":"#/components/schemas/VerifyDeepScanOptions"}}},"VerifyExplorationSummary":{"type":"object","additionalProperties":false,"required":["id","title","status","environment_name","check_count","finding_count","started_at","finished_at","duration_ms"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"status":{"type":"string","enum":["discovering","testing","completed","partial","canceled"]},"environment_name":{"type":"string"},"check_count":{"type":"integer","minimum":0},"finding_count":{"type":"integer","minimum":0},"started_at":{"type":"string","format":"date-time"},"finished_at":{"type":"string","format":"date-time","nullable":true},"duration_ms":{"type":"integer","minimum":0,"nullable":true}}},"VerifyExplorationProgress":{"type":"object","required":["id","goal","status","deadline_at","environment_id","environment_name","agents"],"properties":{"id":{"type":"string"},"goal":{"type":"string"},"status":{"type":"string","enum":["discovering","testing","completed","partial","canceled"]},"deadline_at":{"type":"string"},"environment_id":{"type":"string"},"environment_name":{"type":"string"},"project_id":{"type":"string","nullable":true},"agents":{"type":"array","items":{"type":"object","required":["id","role","charter","status","pages","checks","issue_checks","blocked_checks","findings"],"properties":{"id":{"type":"string"},"role":{"type":"string"},"charter":{"type":"string"},"status":{"type":"string"},"failure_code":{"type":"string","nullable":true},"pages":{"type":"integer"},"checks":{"type":"integer"},"issue_checks":{"type":"integer"},"blocked_checks":{"type":"integer"},"findings":{"type":"integer"}}}}}},"VerifyExplorationChatMessage":{"type":"object","required":["id","text","author_id","author_name","created_at","agent_id","after_sequence","mode"],"properties":{"id":{"type":"string"},"text":{"type":"string"},"author_id":{"type":"string"},"author_name":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"agent_id":{"type":"string"},"after_sequence":{"type":"integer","minimum":0},"delivered_at":{"type":"string","format":"date-time"},"mode":{"type":"string","enum":["steer","continue"]}}},"VerifyExploration":{"type":"object","properties":{"chat_messages":{"type":"array","items":{"$ref":"#/components/schemas/VerifyExplorationChatMessage"}},"agent_filters":{"type":"object","description":"Status counts and matching agent IDs for every filter in this live snapshot.","required":["all"],"properties":{"all":{"$ref":"#/components/schemas/VerifyExplorationAgentFilter"}},"additionalProperties":{"$ref":"#/components/schemas/VerifyExplorationAgentFilter"}},"scenario_generation":{"$ref":"#/components/schemas/VerifyExplorationScenarioGeneration"},"observed_at":{"type":"string","description":"Time this run snapshot was read; distinct from browser activity timestamps."},"report":{"$ref":"#/components/schemas/VerifyExplorationReport"},"related_explorations":{"type":"array","items":{"$ref":"#/components/schemas/VerifyReportRunOption"}},"id":{"type":"string"},"mode":{"type":"string","enum":["exploration","deep_scan"]},"title":{"type":"string"},"goal":{"type":"string"},"status":{"type":"string","enum":["discovering","testing","completed","partial","canceled"]},"max_seconds":{"type":"integer"},"max_testers":{"type":"integer"},"concurrency":{"type":"integer"},"created_at":{"type":"string"},"finished_at":{"type":"string","nullable":true},"deadline_at":{"type":"string"},"environment_id":{"type":"string"},"environment_name":{"type":"string"},"web_url":{"type":"string","description":"The run's page in the Composal web app"},"project_id":{"type":"string","nullable":true,"description":"Set when the exploration targets a project environment."},"reproduction_of":{"type":"object","nullable":true,"description":"The Deep Scan or Discovery and reported bug this scan reruns in a fresh browser.","required":["id","title","deep_scan","finding_index","finding_title"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"deep_scan":{"type":"boolean","description":"False when the rerun checks a bug a Discovery reported."},"finding_index":{"type":"integer"},"finding_title":{"type":"string","nullable":true}}},"explorer_activity":{"type":"object","description":"What the team is doing now. The coordinator is not counted as an area.","required":["phase","active_areas","areas"],"properties":{"phase":{"type":"string","enum":["mapping","coordinating","investigating","exploring","reviewing","finished"],"description":"Discovery maps the app; Deep Scan coordinates investigations from existing knowledge. Workers investigate their areas and the coordinator reviews their reports."},"active_areas":{"type":"integer","description":"Areas in progress or waiting to start."},"areas":{"type":"integer","description":"Areas the explorers were given."}}},"findings_fix_prompt":{"type":"string","nullable":true,"description":"One coding-agent prompt covering every finding, most severe first. Null when there are no findings."},"saves_scenarios":{"type":"boolean","description":"Whether this exploration has started saving scenarios. Deep scans never do."},"scannable_flows":{"type":"array","description":"Flows a finished exploration recorded that deep scans can start from.","items":{"type":"object","required":["name","purpose"],"properties":{"name":{"type":"string"},"purpose":{"type":"string"}}}},"huntable_flows":{"type":"array","deprecated":true,"description":"Deprecated alias of scannable_flows, kept for released CLIs.","items":{"type":"object","required":["name","purpose"],"properties":{"name":{"type":"string"},"purpose":{"type":"string"}}}},"reproductions":{"type":"array","description":"Fresh-browser reruns of this scan's reported bugs.","items":{"type":"object","required":["id","finding_index","outcome"],"properties":{"id":{"type":"string"},"finding_index":{"type":"integer"},"outcome":{"type":"string","enum":["running","reproduced","not_reproduced","inconclusive"]}}}},"agents":{"type":"array","items":{"$ref":"#/components/schemas/VerifyExplorationAgent"}},"findings":{"type":"array","description":"Every tester's findings, most severe first, with the checks each one cites.","items":{"$ref":"#/components/schemas/VerifyExplorationFinding"}},"permissions":{"type":"object","required":["manage"],"properties":{"manage":{"type":"boolean"},"knowledge_connections":{"type":"boolean"}}}},"required":["report","related_explorations","id","goal","status","max_seconds","max_testers","concurrency","created_at","deadline_at","environment_id","environment_name","web_url","reproduction_of","reproductions","scannable_flows","huntable_flows","explorer_activity","saves_scenarios","agents","agent_filters","findings","findings_fix_prompt","permissions"]},"VerifyExplorationAgentFilter":{"type":"object","required":["status","count","agent_ids"],"properties":{"status":{"type":"string"},"count":{"type":"integer","minimum":0},"agent_ids":{"type":"array","items":{"type":"string"}}}},"VerifyExplorationFinding":{"type":"object","required":["id","agent_id","agent_title","title","severity","confidence","expected","actual","reproduction_steps","url","evidence_timestamp_ms","checks","fix_prompt","tracked"],"properties":{"id":{"type":"string"},"agent_id":{"type":"string"},"agent_title":{"type":"string"},"title":{"type":"string"},"severity":{"type":"string","enum":["high","medium","low"]},"confidence":{"type":"string","enum":["reproduced","suspected"]},"expected":{"type":"string"},"actual":{"type":"string"},"reproduction_steps":{"type":"array","items":{"type":"string"}},"url":{"type":"string"},"evidence_step_ids":{"type":"array","items":{"type":"string"}},"evidence_timestamp_ms":{"type":"integer","nullable":true},"checks":{"type":"array","description":"Checks in the same tester report that this finding cites.","items":{"type":"object","required":["index","charter"],"properties":{"index":{"type":"integer","minimum":0},"charter":{"type":"string"}}}},"fix_prompt":{"type":"string","description":"A coding-agent prompt for this finding alone","linked back to it.":null},"tracked":{"type":"object","nullable":true,"description":"The finding record to resolve or ignore; null until the tester finishes.","required":["id","status"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["open","resolved","ignored","deferred"]}}}}},"VerifyExplorationAgent":{"type":"object","properties":{"orchestrator_id":{"type":"string","nullable":true,"description":"Root orchestrator for this task; null when its owner is unavailable."},"recording":{"$ref":"#/components/schemas/VerifyMediaRecording"},"title":{"type":"string","description":"Compact charter excerpt; the complete instructions remain in charter."},"task_group":{"type":"string","enum":["setup","working","queued","completed","attention","stopped"]},"started_at":{"type":"string","nullable":true},"finished_at":{"type":"string","nullable":true},"id":{"type":"string"},"ordinal":{"type":"integer"},"role":{"type":"string","enum":["orchestrator","breakdown","qa","ui"]},"charter":{"type":"string"},"status":{"type":"string"},"failure_code":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"model_selection":{"type":"object","nullable":true,"description":"Immutable model-blend draw recorded at admission; absent on single-model and historical runs.","required":["strategy","role","settings_version","candidates","selected_index"],"properties":{"strategy":{"type":"string","enum":["uniform"]},"role":{"type":"string","enum":["deep_scan","deep_scan_workers"]},"settings_version":{"type":"string"},"selected_index":{"type":"integer","minimum":0},"candidates":{"type":"array","items":{"type":"object","required":["model","model_provider","reasoning_effort","service_tier"],"properties":{"model":{"type":"string"},"model_provider":{"type":"string"},"reasoning_effort":{"type":"string","nullable":true},"service_tier":{"type":"string"}}}}}},"reasoning_effort":{"type":"string"},"report":{"$ref":"#/components/schemas/VerifyDiscoveryReport"},"check_count":{"type":"integer","minimum":0},"finding_count":{"type":"integer","minimum":0,"description":"Findings this agent reported itself; a review's restated findings count on the tester that observed them."},"review":{"type":"boolean","description":"Whether this orchestrator reviews the testers' reports rather than starting investigations or mapping the application."},"review_summary":{"description":"For a review, what it concluded without repeating its testers' passing checks; null for any other agent.","nullable":true,"type":"object","additionalProperties":false,"required":["outcome_counts","attention","own_passed_check_indices"],"properties":{"outcome_counts":{"type":"object","additionalProperties":false,"required":["observed","issue","blocked","inconclusive"],"properties":{"observed":{"type":"integer","minimum":0},"issue":{"type":"integer","minimum":0},"blocked":{"type":"integer","minimum":0},"inconclusive":{"type":"integer","minimum":0}}},"attention":{"type":"array","description":"The review's checks that did not pass, each with the tester that saw it, or null where the review saw it itself.","items":{"type":"object","additionalProperties":false,"required":["check_index","agent_id","agent_title"],"properties":{"check_index":{"type":"integer","minimum":0},"agent_id":{"type":"string","nullable":true},"agent_title":{"type":"string","nullable":true}}}},"own_passed_check_indices":{"type":"array","description":"Positions of the passing checks the review made in its own browser.","items":{"type":"integer","minimum":0}}}},"stream":{"description":"The live view while this tester's browser runs.","oneOf":[{"$ref":"#/components/schemas/LiveBrowserStream"},{"type":"null"}]},"model_activity":{"description":"Current public model summary while this task runs; null after it stops.","oneOf":[{"$ref":"#/components/schemas/VerifyExplorationModelActivity"},{"type":"null"}]},"narration":{"type":"array","description":"The tester's steps in order. While it works, one line each time its live narration changed; once finished, its written-up account when it has one.","items":{"type":"object","required":["text","step","status"],"properties":{"text":{"type":"string"},"step":{"type":"integer","minimum":0,"description":"How many browser actions were done when the line began."},"status":{"type":"string","enum":["passed","failed","running","unknown"],"description":"unknown when the line has no saved actions to judge."}}}},"activity":{"type":"object","additionalProperties":true,"properties":{"thread_sequence":{"type":"integer","description":"Monotonic checkpoint sequence for reconciling retained activity with live updates."},"thread_activity":{"type":"array","maxItems":200,"description":"Retained public reasoning, tool status and scrubbed payloads for orchestrator rounds. Bounded to 200 entries and 256 KiB. Arguments and results are absent on older workers.","items":{"$ref":"#/components/schemas/VerifyExplorationThreadEntry"}}}},"evidence":{"type":"array","items":{"$ref":"#/components/schemas/VerifyEvidenceItem"}},"error":{"type":"string","nullable":true}},"required":["orchestrator_id","model_activity","stream","title","task_group","started_at","finished_at","id","ordinal","role","charter","status","failure_code","model","reasoning_effort","report","check_count","finding_count","review","review_summary","narration","activity","evidence"]},"VerifyDiscoveryDefaults":{"type":"object","required":["max_seconds","max_testers","concurrency"],"properties":{"max_seconds":{"type":"integer","description":"Default discovery duration in seconds."},"max_seconds_limit":{"type":"integer","description":"Maximum explicitly requested discovery duration in seconds."},"max_testers":{"type":"integer"},"concurrency":{"type":"integer"}}},"VerifyReportRunOption":{"type":"object","required":["id","goal","status","created_at"],"properties":{"id":{"type":"string"},"goal":{"type":"string"},"status":{"type":"string"},"created_at":{"type":"string"}}},"VerifyExplorationReport":{"type":"object","required":["status","can_retry","next_action","model","error","generated_at","source_ids","content","sources"],"properties":{"can_retry":{"type":"boolean"},"next_action":{"type":"string","enum":["view","view_progress","retry","create"],"description":"What a viewer can do next with the combined summary."},"status":{"type":"string","enum":["not_started","queued","writing","ready","failed"]},"model":{"type":"string","nullable":true},"error":{"type":"string","nullable":true},"generated_at":{"type":"string","nullable":true},"source_ids":{"type":"array","items":{"type":"string"}},"content":{"type":"object","nullable":true,"allOf":[{"$ref":"#/components/schemas/VerifyExplorationReportContent"}]},"sources":{"type":"array","items":{"type":"object","required":["id","goal","status","web_url","agents"],"properties":{"id":{"type":"string"},"goal":{"type":"string"},"status":{"type":"string"},"web_url":{"type":"string"},"agents":{"type":"array","items":{"type":"object","required":["id","role","ordinal","charter","replay_steps","evidence"],"properties":{"id":{"type":"string"},"role":{"type":"string"},"ordinal":{"type":"integer"},"charter":{"type":"string"},"replay_steps":{"type":"array","items":{"type":"object","additionalProperties":true}},"recording":{"$ref":"#/components/schemas/VerifyMediaRecording"},"evidence":{"type":"array","items":{"$ref":"#/components/schemas/VerifyEvidenceItem"}}}}}}}}}},"VerifyExplorationScenarioGeneration":{"type":"object","required":["status","model","reasoning_effort","error","generated_at","scenario_ids","scenarios","gaps","can_retry"],"properties":{"status":{"type":"string","enum":["not_started","queued","writing","ready","failed"]},"model":{"type":"string","nullable":true},"reasoning_effort":{"type":"string","nullable":true},"error":{"type":"string","nullable":true},"generated_at":{"type":"string","nullable":true},"scenario_ids":{"type":"array","items":{"type":"string"}},"scenarios":{"type":"array","items":{"type":"object","required":["id","name","starting_conditions","steps","outcomes"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"starting_conditions":{"type":"string","nullable":true},"steps":{"$ref":"#/components/schemas/Scenario/properties/steps"},"outcomes":{"$ref":"#/components/schemas/Scenario/properties/outcomes"}}}},"gaps":{"type":"array","items":{"type":"string"}},"can_retry":{"type":"boolean"}}},"VerifyExplorationReportPage":{"type":"object","description":"Report page data, excluding tester activity and full replay archives. Sources contain only cited files.","required":["id","mode","goal","status","environment_name","project_id","saves_scenarios","scenario_generation","related_explorations","report","permissions"],"properties":{"id":{"$ref":"#/components/schemas/VerifyExploration/properties/id"},"mode":{"type":"string","enum":["exploration","deep_scan"]},"goal":{"$ref":"#/components/schemas/VerifyExploration/properties/goal"},"status":{"$ref":"#/components/schemas/VerifyExploration/properties/status"},"environment_name":{"$ref":"#/components/schemas/VerifyExploration/properties/environment_name"},"project_id":{"type":"string","nullable":true},"saves_scenarios":{"type":"boolean"},"scenario_generation":{"$ref":"#/components/schemas/VerifyExplorationReportScenarios"},"related_explorations":{"$ref":"#/components/schemas/VerifyExploration/properties/related_explorations"},"report":{"$ref":"#/components/schemas/VerifyExploration/properties/report"},"permissions":{"$ref":"#/components/schemas/VerifyExploration/properties/permissions"}}},"VerifyExplorationReportScenarios":{"type":"object","required":["status","model","reasoning_effort","error","generated_at","scenario_ids","scenarios","gaps","can_retry"],"properties":{"status":{"$ref":"#/components/schemas/VerifyExplorationScenarioGeneration/properties/status"},"model":{"$ref":"#/components/schemas/VerifyExplorationScenarioGeneration/properties/model"},"reasoning_effort":{"$ref":"#/components/schemas/VerifyExplorationScenarioGeneration/properties/reasoning_effort"},"error":{"$ref":"#/components/schemas/VerifyExplorationScenarioGeneration/properties/error"},"generated_at":{"$ref":"#/components/schemas/VerifyExplorationScenarioGeneration/properties/generated_at"},"scenario_ids":{"$ref":"#/components/schemas/VerifyExplorationScenarioGeneration/properties/scenario_ids"},"gaps":{"$ref":"#/components/schemas/VerifyExplorationScenarioGeneration/properties/gaps"},"can_retry":{"$ref":"#/components/schemas/VerifyExplorationScenarioGeneration/properties/can_retry"},"scenarios":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}}}},"VerifyExplorationReportReplay":{"type":"object","required":["agent_id","generated_at","replay_steps","recording"],"properties":{"agent_id":{"type":"string"},"generated_at":{"type":"string"},"replay_steps":{"type":"array","items":{"type":"object","additionalProperties":true}},"recording":{"$ref":"#/components/schemas/VerifyMediaRecording"}}},"VerifyExplorationReportContent":{"type":"object","additionalProperties":false,"required":["title","summary","findings","questions","what_worked","coverage_notes","cleanup"],"properties":{"title":{"type":"string","minLength":1,"maxLength":100},"summary":{"type":"string","minLength":1,"maxLength":600},"findings":{"type":"array","maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["title","severity","confidence","explanation","impact","expected","steps","notes","sources","evidence"],"properties":{"title":{"type":"string","minLength":1,"maxLength":100},"severity":{"type":"string","enum":["high","medium","low"]},"confidence":{"type":"string","enum":["reproduced","suspected"]},"explanation":{"type":"string","minLength":1,"maxLength":600},"impact":{"type":"string","minLength":1,"maxLength":300},"expected":{"type":"string","minLength":1,"maxLength":300},"steps":{"type":"array","maxItems":6,"items":{"type":"string","minLength":1,"maxLength":240},"minItems":1},"notes":{"type":"array","maxItems":8,"items":{"type":"string","minLength":1,"maxLength":600}},"sources":{"type":"array","maxItems":30,"items":{"type":"object","additionalProperties":false,"required":["agent_id","finding_index","check_index"],"properties":{"agent_id":{"type":"string","minLength":1,"maxLength":100},"finding_index":{"type":"integer","minimum":0,"nullable":true},"check_index":{"type":"integer","minimum":0,"nullable":true}}},"minItems":1},"evidence":{"type":"array","maxItems":8,"items":{"type":"object","additionalProperties":false,"required":["agent_id","evidence_id","offset_ms"],"properties":{"agent_id":{"type":"string","minLength":1,"maxLength":100},"evidence_id":{"type":"string","minLength":1,"maxLength":100},"offset_ms":{"type":"integer","minimum":0,"nullable":true}}}}}}},"questions":{"type":"array","maxItems":30,"items":{"type":"string","minLength":1,"maxLength":400}},"what_worked":{"type":"array","maxItems":30,"items":{"type":"string","minLength":1,"maxLength":400}},"coverage_notes":{"type":"array","maxItems":30,"items":{"type":"string","minLength":1,"maxLength":600}},"cleanup":{"type":"array","maxItems":30,"items":{"type":"string","minLength":1,"maxLength":400}}}},"VerifyFixture":{"type":"object","required":["sha256","byte_size"],"properties":{"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"byte_size":{"type":"integer"}}},"VerifyFixtureDownload":{"type":"object","required":["sha256","byte_size","url"],"properties":{"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"byte_size":{"type":"integer"},"url":{"type":"string","format":"uri"}}},"VerifyGithubConnectionOptions":{"type":"object","required":["installations","accounts"],"properties":{"installations":{"$ref":"#/components/schemas/GithubOnboardingState/properties/installations"},"accounts":{"$ref":"#/components/schemas/GithubOnboardingState/properties/accounts"}}},"VerifyGithubConnectionInput":{"type":"object","required":["github_app_installation_id","repositories"],"properties":{"github_app_installation_id":{"type":"string"},"repositories":{"type":"array","items":{"type":"object","required":["owner","name"],"properties":{"owner":{"type":"string"},"name":{"type":"string"}}}},"project_id":{"type":"string","description":"Project slug or public ID the repositories are added to."}}},"VerifyGithubConnection":{"type":"object","required":["repositories"],"properties":{"repositories":{"type":"array","items":{"type":"object","required":["repository_id","source_repository"],"properties":{"repository_id":{"type":"string"},"source_repository":{"type":"string"}}}}}},"VerifyKnowledgeDocumentPage":{"type":"object","required":["organization","permissions","document","history"],"properties":{"organization":{"type":"object","required":["slug","name"],"properties":{"slug":{"type":"string"},"name":{"type":"string"}}},"permissions":{"type":"object","required":["manage"],"properties":{"manage":{"type":"boolean"}}},"document":{"$ref":"#/components/schemas/VerifyKnowledgeDocument"},"history":{"type":"array","items":{"$ref":"#/components/schemas/VerifyLearningHistory"}}}},"VerifyLearningHistory":{"type":"object","required":["id","operation","reason","created_at","origin","dream_id","before","after","sources","relations"],"properties":{"id":{"type":"string"},"operation":{"type":"string","enum":["create","update","archive"]},"reason":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"origin":{"type":"string","enum":["operator","review","dreaming"],"description":"Operator edit, automatic review of one run, or nightly dreaming"},"dream_id":{"type":"string","nullable":true,"description":"Public id of the nightly dream that made this change; null unless origin is dreaming"},"before":{"type":"object","additionalProperties":true},"after":{"type":"object","additionalProperties":true},"sources":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"run_id":{"type":"string","nullable":true},"environment_id":{"type":"string","nullable":true},"environment_name":{"type":"string","nullable":true}}}},"relations":{"type":"array","items":{"type":"object","required":["id","kind"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["related_to","supersedes","contradicts"]}}}}}},"VerifyKnowledgePage":{"type":"object","required":["organization","permissions","projects","selected_project_id","total","documents","dreaming"],"properties":{"organization":{"type":"object","required":["slug","name"],"properties":{"slug":{"type":"string"},"name":{"type":"string"}}},"permissions":{"type":"object","required":["manage"],"properties":{"manage":{"type":"boolean"}}},"selected_project_id":{"type":"string","nullable":true},"total":{"type":"integer"},"projects":{"type":"array","items":{"type":"object","required":["id","name","purpose"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"purpose":{"type":"string","nullable":true}}}},"documents":{"type":"array","items":{"$ref":"#/components/schemas/VerifyKnowledgeSummary"}},"dreaming":{"type":"object","required":["schedule","latest"],"properties":{"schedule":{"$ref":"#/components/schemas/VerifyDreamSchedule"},"latest":{"description":"The most recent dream for the selected project, or null before the first one","oneOf":[{"$ref":"#/components/schemas/VerifyDreamSummary"},{"type":"null"}]}}}}},"VerifyKnowledgeSummary":{"type":"object","required":["id","title","kind","observed_at","project_id","project_name","source"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"kind":{"type":"string","enum":["discovery","operator","learning"]},"observed_at":{"type":"string","format":"date-time"},"project_id":{"type":"string"},"project_name":{"type":"string"},"source":{"type":"object","required":["edited_at"],"properties":{"edited_at":{"type":"string","nullable":true}}}}},"VerifyKnowledgeDocument":{"type":"object","required":["id","title","kind","content_json","markdown","content_digest","observed_at","project_id","project_name","source"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"kind":{"type":"string","enum":["discovery","operator","learning"]},"markdown":{"type":"string"},"content_digest":{"type":"string"},"observed_at":{"type":"string","format":"date-time"},"project_id":{"type":"string"},"project_name":{"type":"string"},"source":{"type":"object","required":["run_id","exploration_id","environment_name","account_id","status","creator_name"],"properties":{"run_id":{"type":"string","nullable":true},"exploration_id":{"type":"string","nullable":true},"environment_name":{"type":"string","nullable":true},"account_id":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"editor_name":{"type":"string","nullable":true},"edited_at":{"type":"string","nullable":true},"creator_name":{"type":"string","nullable":true}}},"content_json":{"type":"object","properties":{"body":{"type":"string"},"product":{"type":"object","required":["summary","users","concepts"],"properties":{"summary":{"type":"string"},"users":{"type":"array","items":{"type":"string"}},"concepts":{"type":"array","items":{"type":"string"}}}},"flows":{"type":"array","items":{"type":"object","required":["name","purpose","entry_url","prerequisites","steps","expected_behavior","observed_behavior","expectation_source","coverage","gaps"],"properties":{"name":{"type":"string"},"purpose":{"type":"string"},"entry_url":{"type":"string"},"prerequisites":{"type":"array","items":{"type":"string"}},"steps":{"type":"array","items":{"type":"string"}},"expected_behavior":{"type":"string"},"observed_behavior":{"type":"string"},"expectation_source":{"type":"string","enum":["explicit","inferred"]},"coverage":{"type":"string","enum":["observed","partial","blocked"]},"gaps":{"type":"array","items":{"type":"string"}}}}},"pages":{"type":"array","items":{"type":"object","required":["url","title","description","controls"],"properties":{"url":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"controls":{"type":"array","items":{"type":"object","required":["label","attempted","destination"],"properties":{"label":{"type":"string"},"attempted":{"type":"boolean"},"destination":{"type":"string","nullable":true}}}}}}},"unvisited":{"type":"array","items":{"type":"string"}},"cleanup":{"type":"array","items":{"type":"string"}},"stopping_reason":{"type":"string"}}}}},"VerifyLoginAccountInput":{"type":"object","properties":{"name":{"type":"string"},"username":{"type":"string"},"login_method":{"type":"string","enum":["email_password","email_link","google","github","custom","passkey","session","oidc_identity"]},"login_url":{"type":"string","description":"Optional URL of the target app login page, not an OAuth callback URL. Required for oidc_identity, where it is the app URL that Composal sign-in starts from."},"email_link_auth_origins":{"type":"array","maxItems":20,"uniqueItems":true,"description":"Explicit auth-service origins for protected email-link login and signup links. Only email_link accounts support a nonempty list. Keep login_url on the public app entry; origins must be canonical HTTP(S) origins without credentials, paths, queries or fragments.","items":{"type":"string","format":"uri","maxLength":2000}},"description":{"type":"string","description":"When to choose this account: role, plan, tenant and intended journeys"},"instructions":{"type":"string","description":"Non-secret login instructions and the expected signed-in state; required for custom login"},"composal_inbox":{"type":"boolean","description":"email_password only: true signs in with a Composal-provisioned email address (reused if already provisioned) whose mail people and agents can read, ignoring username; the password may be saved later, after signing up with that address, and the account is not configured until then. false returns to the sent username. Omitted keeps the current choice. email_link accounts always use one; true is rejected for other login methods."},"password":{"type":"string","writeOnly":true,"description":"Required for email_password and other password methods, except an email_password account that uses a Composal address"},"totp_secret":{"type":"string","writeOnly":true,"description":"Base32 setup key or otpauth URI, not a current one-time code"},"remove_totp":{"type":"boolean"},"passkey":{"type":"string","writeOnly":true,"description":"JSON enrollment artifact for a cloud-managed software passkey; never returned. Provider acceptance must be tested."},"cookies":{"type":"string","writeOnly":true,"description":"Pasted cookies as name=value (Cookie header supported) or name:\"value\", separated by newlines or semicolons. Requires login_url for the app scope; stored as an encrypted browser session with a 24-hour import expiry. Values are preserved without URL decoding. Maximum 100 cookies and 1 MiB. Mutually exclusive with passkey and browser_session."},"browser_session":{"type":"string","writeOnly":true,"description":"JSON artifact containing scoped app cookies, localStorage and IndexedDB; Google provider cookies and other origins are rejected. Maximum 1 MiB."},"remove_browser_authentication":{"type":"boolean"},"oidc":{"type":"object","description":"Composal sign-in settings for oidc_identity, which only project credentials accept. Send the persona's user part, such as billing-admin, as username; Composal signs in as <user>.<organization slug>@cred.composal.ai. Blank values use the defaults.","properties":{"provider_id":{"type":"string","description":"The provider ID configured in the app. Defaults to composal."},"auth_url":{"type":"string","description":"The app's Better Auth base URL. Defaults to the app origin followed by /api/auth."},"client_id":{"type":"string","description":"The client ID configured in the app; Composal uses it as the token audience. Defaults to the app origin."}}}}},"VerifyLoginAccount":{"type":"object","required":["id","name","username","login_method","login_url","email_link_auth_origins","description","instructions","status","mfa_enabled","credential_keys","provider_guidance","configured","has_inbox","identity_provider","updated_at"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"username":{"type":"string"},"login_method":{"type":"string","enum":["email_password","email_link","google","github","custom","passkey","session","oidc_identity"]},"login_url":{"type":"string"},"email_link_auth_origins":{"type":"array","maxItems":20,"uniqueItems":true,"items":{"type":"string","format":"uri","maxLength":2000}},"description":{"type":"string","nullable":true},"instructions":{"type":"string","nullable":true},"status":{"type":"string"},"mfa_enabled":{"type":"boolean"},"configured":{"type":"boolean"},"has_inbox":{"type":"boolean","description":"Whether Composal provisioned this address and can show the mail it receives"},"provider_guidance":{"type":"string"},"browser_authentication":{"type":"object","nullable":true,"properties":{"kind":{"type":"string","enum":["webauthn","browser_session","oidc_identity"]},"origin":{"type":"string"},"rp_id":{"type":"string"},"expires_at":{"type":"string","format":"date-time"},"auth_url":{"type":"string"},"provider_id":{"type":"string"},"client_id":{"type":"string"},"issuer_origin":{"type":"string","description":"Server-assigned OIDC origin, retained when the credential is edited. Older credentials omit it and retain the legacy issuer."}}},"identity_provider":{"type":"object","nullable":true,"description":"For oidc_identity accounts, the Composal issuer the app trusts and the persona settings it must match","required":["issuer","discovery_url","email_suffix","persona_user","provider_id","client_id"],"properties":{"issuer":{"type":"string"},"discovery_url":{"type":"string"},"email_suffix":{"type":"string","description":"Every persona signs in as <user> followed by this suffix, for example .acme@cred.composal.ai"},"persona_user":{"type":"string","description":"The user part of this persona's address"},"provider_id":{"type":"string"},"client_id":{"type":"string"}}},"credential_keys":{"type":"object","required":["username"],"properties":{"username":{"type":"string"},"password":{"type":"string"},"totp":{"type":"string"},"browser":{"type":"string"}}},"updated_at":{"type":"string","format":"date-time"}}},"VerifyMemoryNoteInput":{"type":"object","required":["title","finding"],"additionalProperties":false,"oneOf":[{"required":["environment_id"],"not":{"required":["project_id"]}},{"required":["project_id"],"not":{"required":["environment_id"]}}],"properties":{"environment_id":{"type":"string"},"project_id":{"type":"string"},"title":{"type":"string","minLength":1,"maxLength":160},"finding":{"type":"string","minLength":1,"maxLength":1000},"response":{"type":"string","maxLength":1000},"workaround":{"type":"string","maxLength":1000},"tags":{"type":"array","maxItems":8,"items":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,39}$"}}}},"VerifyMemoryPage":{"type":"object","required":["organization","permissions","memories","search_available","counts"],"properties":{"organization":{"type":"object","required":["slug","name"],"properties":{"slug":{"type":"string"},"name":{"type":"string"}}},"permissions":{"type":"object","required":["manage"],"properties":{"manage":{"type":"boolean"}}},"memories":{"type":"array","items":{"$ref":"#/components/schemas/VerifyMemory"}},"search_available":{"type":"boolean"},"counts":{"type":"object","required":["ready","pending","failed","unindexed"],"properties":{"ready":{"type":"integer"},"pending":{"type":"integer"},"failed":{"type":"integer"},"unindexed":{"type":"integer"}}}}},"VerifyMemory":{"type":"object","required":["id","title","finding","response","workaround","tags","confidence","created_at","indexed_at","scope","source"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"finding":{"type":"string"},"response":{"type":"string"},"workaround":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"confidence":{"type":"string","enum":["low","medium","high"]},"created_at":{"type":"string","format":"date-time"},"indexed_at":{"type":"string","format":"date-time","nullable":true},"scope":{"type":"object","required":["environment_id","environment_name","project_id","project_name"],"properties":{"environment_id":{"type":"string","nullable":true},"environment_name":{"type":"string","nullable":true},"project_id":{"type":"string","nullable":true},"project_name":{"type":"string","nullable":true}}},"source":{"type":"object","required":["kind","creator_user_id","sweep_id","attempt_id","repository_id","repository_name","scenario","persona","outcome","observed_at"],"properties":{"kind":{"type":"string","enum":["scenario_attempt","operator","run","triage"]},"creator_user_id":{"type":"string","nullable":true},"sweep_id":{"type":"string","nullable":true},"attempt_id":{"type":"string","nullable":true},"repository_id":{"type":"string","nullable":true},"repository_name":{"type":"string","nullable":true},"scenario":{"type":"string","nullable":true},"persona":{"type":"string","nullable":true},"outcome":{"type":"string","nullable":true},"observed_at":{"type":"string","format":"date-time","nullable":true},"run_id":{"type":"string","nullable":true},"purpose":{"type":"string","nullable":true},"triage_id":{"type":"string","nullable":true,"description":"The finding triage a dream learned this lesson from"},"finding_id":{"type":"string","nullable":true},"verification_run_id":{"type":"string","nullable":true,"description":"The run whose failed or blocked Scenario an operator taught this note on"},"scenario_run_id":{"type":"string","nullable":true}}}}},"VerifyMessagingError":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}},"field_errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}},"VerifyMessagingPage":{"type":"object","required":["scenario_run_id","assistant_name","assistant_number","messages","operations","typing","send_blocked_reason","retry_blocked_reason","sends_remaining","expires_at","csrf_token","attachment_limit","attachment_max_bytes"],"properties":{"scenario_run_id":{"type":"string"},"assistant_name":{"type":"string"},"assistant_number":{"type":"string"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/VerifyMessagingPageMessage"}},"operations":{"type":"array","items":{"type":"object","required":["client_operation_id","status","disposition","error"],"properties":{"client_operation_id":{"type":"string"},"status":{"type":"string","enum":["pending","dispatch_committed","accepted","delivered","failed","unknown","cancelled"]},"disposition":{"type":"string","enum":["retry","sent","not_sent"],"description":"retry resubmits this same operation; not_sent needs a new one; sent must not be sent again."},"error":{"type":["string","null"]}}}},"typing":{"type":"boolean"},"send_blocked_reason":{"type":["string","null"],"description":"Why the run cannot send now; null when it can."},"retry_blocked_reason":{"type":["string","null"],"description":"Why an admitted pending operation cannot retry now; null when it can."},"sends_remaining":{"type":"integer"},"expires_at":{"type":"string","format":"date-time"},"attachment_limit":{"type":"integer"},"attachment_max_bytes":{"type":"integer"},"csrf_token":{"type":"string","description":"Sent back as X-Messages-CSRF-Token; useless without the session cookie."}}},"VerifyMessagingPageMessage":{"type":"object","required":["id","direction","content","display_content","link","links","service","receipt_status","date_sent","attachments","unsupported_attachment","reply_to","reactions","can_react","can_reply","send_style","read_at"],"properties":{"id":{"type":"string"},"direction":{"type":"string","enum":["incoming","outgoing"]},"content":{"type":"string","description":"Plain text with any account link removed"},"display_content":{"type":"string","description":"Message text with card links removed"},"link":{"type":["string","null"],"description":"A link into the app under test; other links stay in content as text."},"links":{"type":"array","items":{"type":"object","required":["url","account_link","preview"],"properties":{"url":{"type":"string"},"account_link":{"type":"boolean"},"preview":{"oneOf":[{"$ref":"#/components/schemas/VerifyMessagingLinkPreview"},{"type":"null"}]}}}},"service":{"type":["string","null"]},"receipt_status":{"type":["string","null"],"enum":["sending","sent","delivered","read","failed","unknown","not_sent",null]},"date_sent":{"type":"string","format":"date-time"},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/VerifyMessagingAttachment"}},"unsupported_attachment":{"type":"boolean"},"reply_to":{"type":["string","null"],"description":"Public ID of the visible quoted parent"},"reactions":{"type":"array","items":{"type":"object","required":["reaction","count","reacted"],"properties":{"reaction":{"type":"string"},"count":{"type":"integer"},"reacted":{"type":"boolean"}}}},"can_react":{"type":"boolean"},"can_reply":{"type":"boolean"},"send_style":{"type":["string","null"],"enum":["celebration","shooting_star","fireworks","lasers","love","confetti","balloons","spotlight","echo","invisible","gentle","loud","slam",null]},"read_at":{"type":["string","null"],"format":"date-time"}}},"VerifyMessagingMediaInput":{"type":"object","required":["name","content_type","data"],"properties":{"name":{"type":"string"},"content_type":{"type":"string"},"data":{"type":"string","description":"Base64 encoded file, maximum 10 MB decoded"}}},"VerifyMessagingUpload":{"type":"object","required":["upload_id","attachment"],"properties":{"upload_id":{"type":"string"},"attachment":{"$ref":"#/components/schemas/VerifyMessagingAttachment"}}},"VerifyMessagingAttachment":{"type":"object","required":["id","name","content_type","byte_size","url","kind"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"content_type":{"type":"string"},"byte_size":{"type":"integer"},"url":{"type":"string"},"download_url":{"type":"string","description":"Original file; url may be a JPEG preview for HEIC"},"kind":{"type":"string","enum":["image","video","audio","file"]}}},"VerifyMessagingLinkPreview":{"type":"object","required":["title","description","image"],"properties":{"title":{"type":"string"},"description":{"type":"string"},"image":{"oneOf":[{"type":"object","required":["id","name","content_type","byte_size","url","kind"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"content_type":{"type":"string"},"byte_size":{"type":"integer"},"url":{"type":"string"},"kind":{"type":"string","enum":["image"]}}},{"type":"null"}]}}},"VerifyMessagingSessionGrant":{"type":"object","required":["url","cookie","expires_at"],"properties":{"url":{"type":"string","format":"uri"},"expires_at":{"type":"string","format":"date-time"},"cookie":{"type":"object","required":["name","value","url","expires","httpOnly","secure","sameSite"],"properties":{"name":{"type":"string"},"value":{"type":"string"},"url":{"type":"string"},"expires":{"type":"integer"},"httpOnly":{"type":"boolean"},"secure":{"type":"boolean"},"sameSite":{"type":"string","enum":["Strict"]}}}}},"VerifyMessagingNumbers":{"type":"object","required":["tester_number","assistant_number"],"properties":{"tester_number":{"type":"string"},"assistant_number":{"type":"string"}}},"VerifyMessagingNumbersCreate":{"allOf":[{"$ref":"#/components/schemas/VerifyMessagingNumbers"},{"type":"object","required":["verify_environment_id"],"properties":{"verify_environment_id":{"type":"string"}}}]},"VerifyMessagingSetup":{"type":"object","required":["id","verify_environment_id","environment_name","tester_number","assistant_number","reconciled_at","seeded","leased","unknown_send","retirable","send_blocked_reason"],"properties":{"id":{"type":"string"},"verify_environment_id":{"type":"string"},"environment_name":{"type":"string"},"tester_number":{"type":"string"},"assistant_number":{"type":"string"},"reconciled_at":{"type":["string","null"],"format":"date-time"},"seeded":{"type":"boolean"},"leased":{"type":"boolean"},"unknown_send":{"type":"boolean"},"retirable":{"type":"boolean"},"send_blocked_reason":{"type":["string","null"]}}},"VerifyMessagingManual":{"type":"object","required":["messages","send_blocked_reason","attachment_limit","attachment_max_bytes"],"properties":{"attachment_limit":{"type":"integer"},"attachment_max_bytes":{"type":"integer"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/VerifyMessagingPageMessage"}},"send_blocked_reason":{"type":["string","null"]},"send_disposition":{"type":"string","enum":["retry","not_sent","sent"]},"send_error":{"type":["string","null"]}}},"VerifyNetworkConnectionInput":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"provider":{"type":"string","enum":["tailscale","aws_client_vpn"]},"oauth_client_id":{"type":"string"},"oauth_client_secret":{"type":"string","writeOnly":true},"aws_client_vpn_profile":{"type":"string","writeOnly":true,"maxLength":65536},"device_tag":{"type":"string"},"status":{"type":"string","enum":["active","disabled"]}}},"VerifyNetworkConnection":{"type":"object","required":["id","name","provider","oauth_client_id","device_tag","status","created_at","updated_at"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"provider":{"type":"string","enum":["tailscale","aws_client_vpn"]},"oauth_client_id":{"type":"string","nullable":true},"device_tag":{"type":"string","nullable":true},"status":{"type":"string","enum":["active","disabled"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"VerifyPullRequest":{"type":"object","required":["id","repository_id","number","title","state","draft","head_sha","base_sha","github_repository","github_url","web_path","comment_url","updated_at","provider","source_repository","source_url","request_label","project_id","project_slug","source_branch"],"properties":{"id":{"type":"string"},"repository_id":{"type":"string"},"number":{"type":"integer"},"title":{"type":"string"},"state":{"type":"string"},"draft":{"type":"boolean"},"head_sha":{"type":"string"},"base_sha":{"type":"string"},"github_repository":{"type":"string","description":"GitHub owner/repository associated with this pull request.","nullable":true},"github_url":{"type":"string","nullable":true},"web_path":{"type":"string"},"comment_url":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"source_repository":{"type":"string","nullable":true},"source_url":{"type":"string","nullable":true},"request_label":{"type":"string"},"provider":{"type":"string","enum":["github","gitlab"]},"project_id":{"type":"string","nullable":true},"project_slug":{"type":"string","nullable":true},"source_branch":{"type":"string","nullable":true}}},"VerifyPullRequestSummary":{"allOf":[{"$ref":"#/components/schemas/VerifyPullRequest"},{"type":"object","required":["latest_state","latest_reason","latest_run_id","latest_created_at","latest_head_sha","latest_current","can_verify"],"properties":{"latest_state":{"type":"string","nullable":true},"latest_reason":{"type":"string","nullable":true},"latest_run_id":{"type":"string","nullable":true},"latest_created_at":{"type":"string","format":"date-time","nullable":true},"latest_head_sha":{"type":"string","nullable":true},"latest_current":{"type":"boolean"},"can_verify":{"type":"boolean"}}}]},"VerifyPullRequestSettingInput":{"type":"object","required":["repository_id","verify_environment_id","target_mode","project_id"],"properties":{"repository_id":{"type":"string"},"verify_environment_id":{"type":"string"},"target_mode":{"type":"string","enum":["preview","managed","ci","comments"]},"deployment_environment":{"type":"string"},"preview_access":{"type":"string","enum":["org_members","public"]},"non_product_paths":{"type":"array","items":{"type":"string"}},"concurrency":{"type":"integer","description":"Organization maximum browser parallelism, capped at 50. Submitted values are ignored; PR and MR runs use the current organization entitlement."},"max_seconds":{"type":"integer"},"enabled":{"type":"boolean"},"app_preview_profile_id":{"type":"string","nullable":true},"app_service_id":{"type":"string","nullable":true},"provider":{"type":"string","enum":["github","gitlab"],"default":"github"},"project_id":{"type":"string","description":"Composal project owning this PR Testing configuration."},"trigger_on_push":{"type":"boolean","default":true},"trigger_on_ready":{"type":"boolean","default":true},"trigger_on_label":{"type":"boolean","default":false},"trigger_on_comment":{"type":"boolean","default":false},"trigger_label":{"type":"string","maxLength":255,"default":"qa","description":"Label whose addition triggers verification when trigger_on_label is enabled."},"github_check_enabled":{"type":"boolean","default":true,"description":"Report the Composal Verify check on GitHub pull requests. When false, new commits get no check and open checks are closed as neutral."},"demo_videos_enabled":{"type":"boolean","default":false,"description":"Record a short walkthrough of the change and add it to the PR comment. Off by default."},"preview_comment_authors":{"type":"array","items":{"type":"string"},"maxItems":10},"preview_comment_pattern":{"type":"string","maxLength":512},"preview_comment_wildcard":{"type":"string","nullable":true,"description":"A preview address with * for the part that changes, such as https://*.vercel.app. Replaces preview_comment_pattern when present; responses carry it when the pattern was written this way."},"imessage_number":{"type":"string","nullable":true,"description":"International destination number; blank or null clears it on an added environment."},"messaging_tester_number":{"type":"string","nullable":true,"description":"One configured tester number. Copied to each preview; may be overridden locally before preparation."},"imessage_number_source":{"type":"string","enum":["configured","deployment"]},"imessage_comment_prefix":{"type":"string","nullable":true,"maxLength":128}},"description":"The stored-setting shape released CLIs send. Prefer VerifyPullRequestSetupInput."},"VerifyPullRequestSetting":{"allOf":[{"$ref":"#/components/schemas/VerifyPullRequestSettingInput"},{"type":"object","required":["id","provider","source_repository","preview_comment_wildcard"],"properties":{"id":{"type":"string"},"source_repository":{"type":"string"},"provider":{"type":"string","enum":["github","gitlab"]}}}],"properties":{"imessage_number":{"type":"string","nullable":true,"description":"International destination number; blank or null clears it on an added environment."},"messaging_tester_number":{"type":"string","nullable":true,"description":"One configured tester number. Copied to each preview; may be overridden locally before preparation."},"imessage_number_source":{"type":"string","enum":["configured","deployment"]},"imessage_comment_prefix":{"type":"string","nullable":true,"maxLength":128}},"required":["imessage_number","messaging_tester_number","imessage_number_source","imessage_comment_prefix"]},"VerifyPullRequestOptions":{"type":"object","required":["permissions","settings","repositories","environments","preview_profiles","configured_repository","hosting_presets","setup_defaults","ci_preview","setup","messaging_enabled","tester_numbers","project_repositories","selected_repository"],"properties":{"permissions":{"type":"object","required":["manage"],"properties":{"manage":{"type":"boolean"}}},"settings":{"type":"array","items":{"$ref":"#/components/schemas/VerifyPullRequestSetting"}},"repositories":{"type":"array","items":{"$ref":"#/components/schemas/VerifyPullRequestRepositoryOption"}},"environments":{"type":"array","items":{"type":"object","required":["id","name","repository_id","external","test_accounts","previews"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"repository_id":{"type":"string","nullable":true},"external":{"type":"boolean"},"test_accounts":{"type":"array","description":"Names of the test accounts this environment signs in with","items":{"type":"string"}},"previews":{"type":"array","description":"The previews answers this environment can sign in to","items":{"type":"string","enum":["hosting","ci","composal"]}}}}},"preview_profiles":{"type":"array","items":{"type":"object","required":["id","name","repository_id","services"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"repository_id":{"type":"string","nullable":true},"services":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}}}}},"configured_repository":{"allOf":[{"$ref":"#/components/schemas/VerifyPullRequestRepositoryOption"}],"nullable":true},"hosting_presets":{"type":"array","description":"Hosting services that build PR previews and the setup answers each needs","items":{"type":"object","required":["name","answers"],"properties":{"name":{"type":"string"},"answers":{"type":"object","properties":{"deployment":{"type":"string"},"bots":{"type":"array","items":{"type":"string"}},"links":{"type":"string"},"link_pattern":{"type":"string"}}}}}},"ci_preview":{"type":"object","nullable":true,"description":"The latest preview the project's CI handed over, while the saved setting uses CI","required":["request_number","received_at"],"properties":{"request_number":{"type":"integer"},"received_at":{"type":"string","format":"date-time"}}},"setup":{"allOf":[{"$ref":"#/components/schemas/VerifyPullRequestSetup"}],"nullable":true,"description":"The project's saved setup as answers, when it has one."},"setup_defaults":{"type":"object","description":"The answers a new setup starts from","required":["deployment","triggers","pr_check","demo_videos","limits","trigger_label"],"properties":{"deployment":{"type":"string"},"triggers":{"type":"object","additionalProperties":false,"properties":{"push":{"type":"boolean","description":"Run on every push to an open PR."},"ready":{"type":"boolean","description":"Run when a draft PR is marked ready."},"label":{"type":"string","nullable":true,"maxLength":255,"description":"Run when this label is added; null turns label runs off."},"comment":{"type":"boolean","description":"Run on /verify comments."}},"description":"When runs start. GitHub only; GitLab runs on every MR update out of draft.","required":["push","ready","label","comment"]},"pr_check":{"type":"boolean"},"demo_videos":{"type":"boolean"},"limits":{"type":"object","additionalProperties":false,"properties":{"max_minutes":{"type":"number","minimum":0.5,"maximum":120,"description":"Longest a run may take."},"skip_paths":{"type":"array","maxItems":50,"items":{"type":"string"},"description":"Relative file globs; a change touching only these is not tested."}},"required":["max_minutes","skip_paths"]},"trigger_label":{"type":"string","description":"The label a label trigger starts with"}}},"messaging_enabled":{"type":"boolean"},"tester_numbers":{"type":"array","items":{"type":"string"}},"project_repositories":{"type":"array","items":{"$ref":"#/components/schemas/VerifyProjectPrRepository"}},"selected_repository":{"allOf":[{"$ref":"#/components/schemas/VerifyPullRequestRepositoryOption"}],"nullable":true}}},"VerifyPullRequestRun":{"type":"object","required":["id","verify_environment_revision_id","app_preview_id","head_sha","base_sha","state","display_state","reason","target_url","created_at","run_id","execution_path","selection_json"],"properties":{"id":{"type":"string"},"verify_environment_revision_id":{"type":"string","nullable":true},"app_preview_id":{"type":"string","nullable":true},"head_sha":{"type":"string"},"base_sha":{"type":"string"},"state":{"type":"string"},"display_state":{"type":"string"},"reason":{"type":"string","nullable":true},"target_url":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"run_id":{"type":"string","nullable":true},"execution_path":{"type":"string","nullable":true},"selection_json":{"type":"object","nullable":true,"required":["source","confidence","fallback","selected","excluded"],"properties":{"source":{"type":"string"},"confidence":{"type":"string"},"fallback":{"type":"boolean"},"selected":{"type":"array","items":{"type":"object","required":["id","name","reason","version"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"reason":{"type":"string"},"version":{"type":"integer"},"confidence":{"type":"number"}}}},"excluded":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"version":{"type":"integer"},"reason":{"type":"string"}}}},"context_mode":{"type":"string","enum":["patches","filenames"]},"comparison":{"type":"object","required":["mode","base_sha","head_sha"],"properties":{"mode":{"type":"string","enum":["incremental","full_pr"]},"base_sha":{"type":"string"},"head_sha":{"type":"string"}}},"reused":{"type":"array","items":{"type":"object","required":["id","name","reason","version","run_id","execution_path"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"reason":{"type":"string"},"version":{"type":"integer"},"run_id":{"type":"string"},"execution_path":{"type":"string"}}}},"confidence_threshold":{"type":"number"}}},"run_progress":{"type":"object","nullable":true,"required":["total","planned","planning","running","finished"],"properties":{"total":{"type":"integer"},"planned":{"type":"integer"},"planning":{"type":"integer"},"running":{"type":"integer"},"finished":{"type":"integer"}}},"imessage_number":{"type":"string","nullable":true},"environment_path":{"type":"string","nullable":true},"messaging_source":{"allOf":[{"$ref":"#/components/schemas/MessagingTargetSource"}],"nullable":true}}},"VerifyPullRequestPage":{"type":"object","required":["permissions","pull_request","runs","pagination","findings","available_tests","preview_cleanup_ready"],"properties":{"preview_cleanup_ready":{"type":"boolean","description":"The source is closed or merged and unfinished Scenario execution and Discovery have stopped. Worker and application cleanup do not hold its web runtime."},"preview_url":{"description":"Most recently supplied preview URL for the current head commit, retained across verification attempts.","type":["string","null"]},"permissions":{"type":"object","required":["manage"],"properties":{"manage":{"type":"boolean"}}},"pull_request":{"$ref":"#/components/schemas/VerifyPullRequest"},"current_run":{"description":"Latest verification request if it matches the current head and base, independent of history pagination.","oneOf":[{"$ref":"#/components/schemas/VerifyPullRequestRun"},{"type":"null"}]},"runs":{"type":"array","items":{"$ref":"#/components/schemas/VerifyPullRequestRun"}},"pagination":{"$ref":"#/components/schemas/VerifyRunsPagination"},"findings":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/VerifyFindingRecord"},{"type":"object","required":["run_id","scenario_run_id","web_path"],"properties":{"run_id":{"type":"string"},"scenario_run_id":{"type":"string"},"web_path":{"type":"string"}}}]}},"project":{"oneOf":[{"$ref":"#/components/schemas/Project"},{"type":"null"}]},"available_tests":{"type":"array","description":"All active saved scenarios in the configured project, including scenarios outside the automatic selection.","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}}}},"VerifyPullRequestLaunchOption":{"type":"object","required":["repository_id","repository_name","github_repository","environment_name","scenario_source","target_mode","preview_access","concurrency","max_seconds","available","provider","source_repository"],"properties":{"repository_id":{"type":"string"},"repository_name":{"type":"string"},"github_repository":{"type":"string","nullable":true},"environment_name":{"type":"string"},"target_mode":{"type":"string"},"preview_access":{"type":"string"},"concurrency":{"type":"integer"},"max_seconds":{"type":"integer"},"available":{"type":"boolean"},"provider":{"type":"string","enum":["github","gitlab"]},"source_repository":{"type":"string","nullable":true},"scenario_source":{"type":"string"}}},"VerifyBranchPreview":{"type":"object","required":["id","number","head_sha","requested_run_id","status","environment_id","web_path","project_id","project_slug","source_branch"],"properties":{"id":{"type":"string","nullable":true},"number":{"type":"integer","nullable":true},"head_sha":{"type":"string"},"requested_run_id":{"type":"string","nullable":true},"status":{"type":"string","enum":["preview_registered"]},"environment_id":{"type":"string"},"web_path":{"type":"string"},"project_id":{"type":"string","nullable":true},"project_slug":{"type":"string","nullable":true},"source_branch":{"type":"string","nullable":true}}},"VerifyPullRequestRepositoryOption":{"type":"object","required":["id","name","provider","source_repository","automatic_testing_enabled","associated"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"provider":{"type":"string","enum":["github","gitlab"]},"source_repository":{"type":"string"},"automatic_testing_enabled":{"type":"boolean"},"source_host":{"type":"string"},"associated":{"type":"boolean"}}},"VerifyPreviewDetection":{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","enum":["deployment","comment","none"]},"provider":{"type":"string","description":"Who builds the previews, such as Vercel or GitLab"},"request_number":{"type":"integer"},"example_url":{"type":"string"},"deployment":{"type":"string","description":"The deployment answer"},"bots":{"type":"array","items":{"type":"string"},"description":"The bots answer"},"link_pattern":{"type":"string","description":"The link_pattern answer"},"imessage_number":{"type":"string","nullable":true,"description":"International destination number; blank or null clears it on an added environment."},"imessage_comment_prefix":{"type":"string"}}},"VerifyPullRequestSetupInput":{"type":"object","required":["project_id"],"additionalProperties":false,"description":"PR testing setup answers. Give deployment, or bots with links or link_pattern, for hosting; preview_profile and service for composal.","properties":{"enabled":{"type":"boolean","description":"Test PRs automatically. New setups stay off until this is true."},"previews":{"type":"string","enum":["hosting","ci","composal"],"description":"Who builds each PR's preview: a hosting service such as Vercel or Netlify, your CI workflow, or Composal hosting."},"deployment":{"type":["string","null"],"description":"hosting: the deployment environment name the host reports on each PR, such as Preview."},"bots":{"type":"array","maxItems":10,"items":{"type":"string"},"description":"hosting: bot accounts that comment the preview link, such as netlify[bot]. GitHub only."},"links":{"type":["string","null"],"description":"hosting: the preview address with * for the part that changes, such as https://deploy-preview-*--shop.netlify.app."},"link_pattern":{"type":["string","null"],"maxLength":512,"description":"hosting: a regular expression for the preview link, as preview detection returns it. Use links when a * address fits."},"preview_profile":{"type":["string","null"],"description":"composal: the preview profile that builds each PR. Name, slug or ID."},"service":{"type":["string","null"],"description":"composal: the public service the browsers open. Name, slug or ID."},"environment":{"type":"string","description":"The environment whose test accounts sign in to the previews. Hosting and Composal previews need an external environment. Name, slug or ID; defaults to the saved or only fitting one."},"triggers":{"type":"object","additionalProperties":false,"properties":{"push":{"type":"boolean","description":"Run on every push to an open PR."},"ready":{"type":"boolean","description":"Run when a draft PR is marked ready."},"label":{"type":["string","null"],"maxLength":255,"description":"Run when this label is added; null turns label runs off."},"comment":{"type":"boolean","description":"Run on /verify comments."}},"description":"When runs start. GitHub only; GitLab runs on every MR update out of draft."},"pr_check":{"type":"boolean","description":"Report a Composal Verify check on GitHub PRs."},"demo_videos":{"type":"boolean","description":"Record a short walkthrough of the change and add it to the PR comment. Off by default."},"limits":{"type":"object","additionalProperties":false,"properties":{"max_minutes":{"type":"number","minimum":0.5,"maximum":120,"description":"Longest a run may take."},"skip_paths":{"type":"array","maxItems":50,"items":{"type":"string"},"description":"Relative file globs; a change touching only these is not tested."}}},"project_id":{"type":"string","description":"Project slug or ID."},"repository":{"type":"string","description":"Repository slug, ID or owner/name. Defaults to the saved or only repository. repository_id is accepted too."},"provider":{"type":"string","enum":["github","gitlab"],"description":"Only needed when the repository is connected to both."},"imessage_number":{"type":"string","nullable":true,"description":"International destination number; blank or null clears it on an added environment."},"messaging_tester_number":{"type":"string","nullable":true,"description":"One configured tester number. Copied to each preview; may be overridden locally before preparation."},"imessage_number_source":{"type":"string","enum":["configured","deployment"]},"imessage_comment_prefix":{"type":"string","nullable":true,"maxLength":128}}},"VerifyPullRequestSetup":{"type":"object","description":"A project's PR testing setup as the setup answers.","required":["id","project_id","repository","provider","source_repository","enabled","previews","deployment","bots","links","link_pattern","preview_profile","service","environment","triggers","pr_check","demo_videos","limits","trigger_label","imessage_number","messaging_tester_number","imessage_number_source","imessage_comment_prefix"],"properties":{"enabled":{"type":"boolean","description":"Test PRs automatically. New setups stay off until this is true."},"previews":{"type":"string","enum":["hosting","ci","composal"],"description":"Who builds each PR's preview: a hosting service such as Vercel or Netlify, your CI workflow, or Composal hosting."},"deployment":{"type":"string","nullable":true,"description":"hosting: the deployment environment name the host reports on each PR, such as Preview."},"bots":{"type":"array","maxItems":10,"items":{"type":"string"},"description":"hosting: bot accounts that comment the preview link, such as netlify[bot]. GitHub only."},"links":{"type":"string","nullable":true,"description":"hosting: the preview address with * for the part that changes, such as https://deploy-preview-*--shop.netlify.app."},"link_pattern":{"type":"string","nullable":true,"maxLength":512,"description":"hosting: a regular expression for the preview link, as preview detection returns it. Use links when a * address fits."},"preview_profile":{"type":"string","nullable":true,"description":"composal: the preview profile that builds each PR. Its ID."},"service":{"type":"string","nullable":true,"description":"composal: the public service the browsers open. Its ID."},"environment":{"type":"string","description":"The environment whose test accounts sign in to the previews. Hosting and Composal previews need an external environment. Its ID."},"triggers":{"type":"object","additionalProperties":false,"properties":{"push":{"type":"boolean","description":"Run on every push to an open PR."},"ready":{"type":"boolean","description":"Run when a draft PR is marked ready."},"label":{"type":"string","nullable":true,"maxLength":255,"description":"Run when this label is added; null turns label runs off."},"comment":{"type":"boolean","description":"Run on /verify comments."}},"description":"When runs start. GitHub only; GitLab runs on every MR update out of draft.","required":["push","ready","label","comment"]},"pr_check":{"type":"boolean","description":"Report a Composal Verify check on GitHub PRs."},"demo_videos":{"type":"boolean","description":"Record a short walkthrough of the change and add it to the PR comment. Off by default."},"limits":{"type":"object","additionalProperties":false,"properties":{"max_minutes":{"type":"number","minimum":0.5,"maximum":120,"description":"Longest a run may take."},"skip_paths":{"type":"array","maxItems":50,"items":{"type":"string"},"description":"Relative file globs; a change touching only these is not tested."}},"required":["max_minutes","skip_paths"]},"id":{"type":"string"},"project_id":{"type":"string"},"repository":{"type":"string","description":"Repository ID; see repositories for its name."},"provider":{"type":"string","enum":["github","gitlab"]},"source_repository":{"type":"string"},"trigger_label":{"type":"string","description":"The label name, kept while label runs are off; triggers.label is it when they are on."},"imessage_number":{"type":"string","nullable":true,"description":"International destination number; blank or null clears it on an added environment."},"messaging_tester_number":{"type":"string","nullable":true,"description":"One configured tester number. Copied to each preview; may be overridden locally before preparation."},"imessage_number_source":{"type":"string","enum":["configured","deployment"]},"imessage_comment_prefix":{"type":"string","nullable":true,"maxLength":128}}},"VerifyProjectPrRepository":{"type":"object","required":["id","name","source_repository","provider","configured","automatic_testing_enabled","can_configure","preview_source"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"source_repository":{"type":"string"},"provider":{"type":"string","nullable":true,"enum":["github","gitlab"]},"configured":{"type":"boolean"},"automatic_testing_enabled":{"type":"boolean"},"can_configure":{"type":"boolean"},"preview_source":{"type":"string","nullable":true}}},"VerifyDemoShare":{"type":"object","description":"A signed-out PR demo: the walkthrough's sentence, the commit it recorded and its video, served only through the share link.","additionalProperties":false,"required":["summary","head_sha","recording"],"properties":{"summary":{"type":"string","description":"What the recorded browser confirmed."},"head_sha":{"type":"string"},"recording":{"$ref":"#/components/schemas/VerifyMediaRecording"}}},"GitReviewIdentity":{"type":"object","required":["git_commit_id","change_id","change_number","patchset_number"],"properties":{"git_commit_id":{"type":"string","minLength":40,"maxLength":40,"pattern":"^[0-9a-f]{40}$"},"change_id":{"type":"string","minLength":32,"maxLength":32,"pattern":"^[0-9a-f]{32}$"},"change_number":{"type":"integer","minimum":1},"patchset_number":{"type":"integer","minimum":1}}},"GitPublicationSubmitRequest":{"type":"object","required":["git_publication_id"],"description":"Uses the receipt's verified graph and target. Explicit revisions and target fields are rejected. Review message, reviewers, labels, draft, and assets retain normal submit semantics.","properties":{"git_publication_id":{"type":"string"},"message":{"type":"string","nullable":true,"description":"Initial durable rich-text description for newly created changes."},"reviewers":{"type":"array","items":{"type":"string"},"description":"Organization member names or emails to add as reviewers."},"remove_reviewers":{"type":"array","items":{"type":"string"},"description":"Organization member names or emails to remove as reviewers."},"labels":{"type":"array","items":{"type":"string"}},"draft":{"type":"boolean","nullable":true,"description":"On submit, omitted or null means ready; on sync, omitted or null preserves the current draft status."},"assets":{"type":"array","items":{"type":"object","required":["id","alias"],"properties":{"id":{"type":"string"},"alias":{"type":"string"}}}}},"not":{"anyOf":[{"required":["revisions"]},{"required":["target"]},{"required":["target_branch"]},{"required":["expected_target_commit_id"]},{"required":["expected_target_version"]}]}},"GitPublicationReceipt":{"type":"object","required":["publication_id","request_digest","status"],"properties":{"transfer_refs":{"type":"array","description":"Immutable receipt-owned refs returned by preparation; transfer each exact Git target before polling readiness.","items":{"type":"object","required":["name","old","new"],"properties":{"name":{"type":"string"},"old":{"type":"string","pattern":"^[0-9a-f]{40}$"},"new":{"type":"string","pattern":"^[0-9a-f]{40}$"}}}},"publication_id":{"type":"string"},"request_digest":{"type":"string","pattern":"^[0-9a-f]{64}$"},"status":{"type":"string","enum":["awaiting_objects","objects_ready"]}}},"GitPublicationRequest":{"type":"object","additionalProperties":false,"required":["target_branch","expected_target_git_id","revisions"],"properties":{"target_branch":{"type":"string"},"expected_target_git_id":{"type":"string","pattern":"^[0-9a-f]{40}$"},"revisions":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["change_id","git_commit_id","git_parent_ids"],"dependentRequired":{"expected_head_commit_id":["expected_patchset_number"],"expected_patchset_number":["expected_head_commit_id"]},"properties":{"change_id":{"type":"string","pattern":"^[0-9a-f]{32}$"},"git_commit_id":{"type":"string","pattern":"^[0-9a-f]{40}$"},"expected_head_commit_id":{"type":"string","pattern":"^[0-9a-f]{40}$","description":"Observed original Git head of the existing review. Required together with expected_patchset_number when amending."},"expected_patchset_number":{"type":"integer","minimum":1},"git_parent_ids":{"type":"array","maxItems":128,"uniqueItems":true,"items":{"type":"string","pattern":"^[0-9a-f]{40}$"}}}}}}},"WorkspaceActivityLiveItem":{"oneOf":[{"$ref":"#/components/schemas/WorkspaceActivityLandingLiveItem"},{"$ref":"#/components/schemas/WorkspaceActivityDeploymentLiveItem"},{"$ref":"#/components/schemas/WorkspaceActivityDeploymentGroupLiveItem"},{"$ref":"#/components/schemas/WorkspaceActivityGithubImportLiveItem"}]},"WorkspaceActivityRepositorySummary":{"type":"object","required":["slug","name"],"properties":{"slug":{"type":"string"},"name":{"type":"string"}}},"WorkspaceActivityChangeSummary":{"type":"object","required":["id","number","title"],"properties":{"id":{"type":"string"},"number":{"type":"integer"},"title":{"type":"string"}}},"WorkspaceActivityActorSummary":{"type":"object","required":["id","name","picture_url"],"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"picture_url":{"type":"string","nullable":true}}},"WorkspaceActivityLandingLiveItem":{"type":"object","required":["id","kind","occurred_at","state","change_count","repository","change","changes","actor"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["landing"]},"occurred_at":{"type":"string","format":"date-time"},"state":{"type":"string","enum":["queued","validating","ready","merging"]},"change_count":{"type":"integer"},"repository":{"$ref":"#/components/schemas/WorkspaceActivityRepositorySummary"},"change":{"$ref":"#/components/schemas/WorkspaceActivityChangeSummary"},"changes":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceActivityChangeSummary"}},"actor":{"allOf":[{"$ref":"#/components/schemas/WorkspaceActivityActorSummary"}],"nullable":true}}},"WorkspaceActivityDeploymentLiveItem":{"type":"object","required":["id","kind","occurred_at","status","service_name","environment_name","deployment_id","live_region_count","region_count","actor"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["deployment"]},"occurred_at":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["queued","building","deploying"]},"service_name":{"type":"string"},"environment_name":{"type":"string"},"deployment_id":{"type":"string"},"live_region_count":{"type":"integer"},"region_count":{"type":"integer"},"actor":{"allOf":[{"$ref":"#/components/schemas/WorkspaceActivityActorSummary"}],"nullable":true}}},"WorkspaceActivityDeploymentGroupLiveItem":{"type":"object","required":["id","kind","occurred_at","title","service_names","actor"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["deployment_group"]},"occurred_at":{"type":"string","format":"date-time"},"title":{"type":"string"},"service_names":{"type":"array","items":{"type":"string"}},"actor":{"allOf":[{"$ref":"#/components/schemas/WorkspaceActivityActorSummary"}],"nullable":true}}},"WorkspaceActivityGithubImportLiveItem":{"type":"object","required":["id","kind","occurred_at","completed_count","total_count","actor"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["github_import"]},"occurred_at":{"type":"string","format":"date-time"},"completed_count":{"type":"integer"},"total_count":{"type":"integer"},"actor":{"allOf":[{"$ref":"#/components/schemas/WorkspaceActivityActorSummary"}],"nullable":true}}},"WorkspaceActivityRecentItem":{"oneOf":[{"$ref":"#/components/schemas/WorkspaceActivityReviewRequestedItem"},{"$ref":"#/components/schemas/WorkspaceActivityChangesRequestedItem"},{"$ref":"#/components/schemas/WorkspaceActivityGithubAccessItem"},{"$ref":"#/components/schemas/WorkspaceActivityLandingItem"},{"$ref":"#/components/schemas/WorkspaceActivityDeploymentItem"},{"$ref":"#/components/schemas/WorkspaceActivityGithubImportItem"}]},"WorkspaceActivityReviewRequestedItem":{"type":"object","required":["id","kind","occurred_at","repository","change","actor"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["review_requested"]},"occurred_at":{"type":"string","format":"date-time"},"repository":{"$ref":"#/components/schemas/WorkspaceActivityRepositorySummary"},"change":{"$ref":"#/components/schemas/WorkspaceActivityChangeSummary"},"actor":{"$ref":"#/components/schemas/WorkspaceActivityActorSummary"}}},"WorkspaceActivityChangesRequestedItem":{"type":"object","required":["id","kind","occurred_at","repository","change","actors"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["changes_requested"]},"occurred_at":{"type":"string","format":"date-time"},"repository":{"$ref":"#/components/schemas/WorkspaceActivityRepositorySummary"},"change":{"$ref":"#/components/schemas/WorkspaceActivityChangeSummary"},"actors":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceActivityActorSummary"}}}},"WorkspaceActivityLandingItem":{"type":"object","required":["id","kind","occurred_at","outcome","change_count","repository","change","changes","actor"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["landing"]},"occurred_at":{"type":"string","format":"date-time"},"outcome":{"type":"string","enum":["merged","ejected","cancelled","needs_attention"]},"change_count":{"type":"integer"},"repository":{"$ref":"#/components/schemas/WorkspaceActivityRepositorySummary"},"change":{"$ref":"#/components/schemas/WorkspaceActivityChangeSummary"},"changes":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceActivityChangeSummary"}},"actor":{"allOf":[{"$ref":"#/components/schemas/WorkspaceActivityActorSummary"}],"nullable":true}}},"WorkspaceActivityDeploymentItem":{"type":"object","required":["id","kind","occurred_at","outcome","service_name","environment_name","deployment_id","live_region_count","region_count","actor"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["deployment"]},"occurred_at":{"type":"string","format":"date-time"},"outcome":{"type":"string","enum":["active","failed","canceled","rolled_back"]},"service_name":{"type":"string"},"environment_name":{"type":"string"},"deployment_id":{"type":"string"},"live_region_count":{"type":"integer"},"region_count":{"type":"integer"},"actor":{"allOf":[{"$ref":"#/components/schemas/WorkspaceActivityActorSummary"}],"nullable":true}}},"WorkspaceActivityGithubImportItem":{"type":"object","required":["id","kind","occurred_at","outcome","imported_count","total_count","actor"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["github_import"]},"occurred_at":{"type":"string","format":"date-time"},"outcome":{"type":"string","enum":["success","attention"]},"imported_count":{"type":"integer"},"total_count":{"type":"integer"},"actor":{"allOf":[{"$ref":"#/components/schemas/WorkspaceActivityActorSummary"}],"nullable":true}}},"WorkspaceActivityPage":{"type":"object","required":["live_activity","recent_items","unresolved_notification_count"],"properties":{"live_activity":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceActivityLiveItem"}},"recent_items":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceActivityRecentItem"}},"unresolved_notification_count":{"type":"integer"}}},"WorkspaceActivityGithubAccessItem":{"type":"object","required":["id","kind","occurred_at","installation_id","account_login","message"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["github_connection_health"]},"occurred_at":{"type":"string","format":"date-time"},"installation_id":{"type":"string"},"account_login":{"type":"string"},"message":{"type":"string"}}},"OrganizationSummary":{"type":"object","required":["id","slug","name","timezone","sandbox_region","logo_url","role","personal","member_count","pending_invitation_count","repository_count","activated_products","can_activate_products","github_prs_authored_by_change_author","created_at","updated_at","created_at_label","updated_at_label"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"timezone":{"type":"string","description":"Default IANA timezone for organization-local schedules such as nightly dreaming."},"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},"repository_count":{"type":"integer","minimum":0},"source_ui_enabled":{"type":"boolean","description":"Organization-scoped Source workspace rollout; missing values mean disabled."},"source_control_providers":{"type":"array","description":"Connected source control providers for this organization. Missing values mean no providers are known.","uniqueItems":true,"items":{"type":"string","enum":["github","gitlab"]}},"activated_products":{"type":"array","description":"Products this organization has activated (PRD 144). Activation is what makes a product's surfaces visible; it is neither permission nor entitlement.","items":{"type":"string","enum":["transcripts","vcs"]}},"can_activate_products":{"type":"boolean","description":"Whether the current user may activate a product for this organization: the organization-admin rule the activation endpoint enforces."},"sandbox_region":{"type":"string","enum":["us-was-1","us-pdx-1","eu-lon-1","eu-fra-1","auto"]},"github_prs_authored_by_change_author":{"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}}},"WorkspaceSpace":{"type":"object","required":["id","organization_id","repository_id","repository_slug","slug","name","description","icon_name","status","import_status","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},"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"]},"import_status":{"type":"string","nullable":true,"enum":["queued","running","succeeded","failed","canceled"]},"hidden":{"type":"boolean"},"position":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/reconciliations/{reconciliation_id}/output":{"post":{"summary":"Accept a lease-scoped generated-file reconciliation delta","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["outputs"],"properties":{"outputs":{"type":"array","maxItems":100,"items":{"oneOf":[{"type":"object","additionalProperties":false,"required":["path","operation","content_base64","sha256","executable"],"properties":{"path":{"type":"string","maxLength":4096},"operation":{"type":"string","enum":["write"]},"content_base64":{"type":"string"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"executable":{"type":"boolean"}}},{"type":"object","additionalProperties":false,"required":["path","operation"],"properties":{"path":{"type":"string","maxLength":4096},"operation":{"type":"string","enum":["delete"]}}}]}}}}}}},"responses":{"200":{"description":"Immutable output receipt accepted; candidate publication is separate","content":{"application/json":{"schema":{"type":"object","required":["receipt_id","digest","status"],"properties":{"receipt_id":{"type":"string"},"digest":{"type":"string"},"status":{"type":"string","enum":["accepted"]}}}}}},"401":{"description":"Node certificate authentication failed"},"404":{"description":"Lease or reconciliation not available to this node"},"409":{"description":"Stale lease or conflicting output receipt"},"422":{"description":"Invalid or disallowed output delta"}}}},"/api/v1/ci/nodes/{id}/leases/{lease_id}/claim":{"post":{"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"batch_deadline_supported":{"type":"boolean","default":false,"description":"Runner enforces the batch execution deadline in lease metadata locally. Required to claim an adjacent batch job; ordinary jobs remain compatible without it."}}}}}}}},"/api/v1/ci/runner_pools/{runner_pool_id}/runners/{runner_id}/leases/{id}/claim":{"post":{"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"batch_deadline_supported":{"type":"boolean","default":false,"description":"Runner enforces the batch execution deadline in lease metadata locally. Required to claim an adjacent batch job; ordinary jobs remain compatible without it."}}}}}}}},"parameters":{"TranscriptReadSource":{"in":"query","name":"source_ref","description":"Opaque source reference returned by discovery, required on the source route unless continuing with a cursor.","schema":{"type":"string"}},"TranscriptReadCursor":{"in":"query","name":"cursor","schema":{"type":"string"}},"TranscriptReadLimit":{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},"TranscriptReadBytes":{"in":"query","name":"max_bytes","schema":{"type":"integer","minimum":8192,"maximum":131072,"default":32768}},"TranscriptReadTools":{"in":"query","name":"include_tools","schema":{"type":"boolean","default":false}},"TranscriptReadAround":{"in":"query","name":"around_event","schema":{"type":"integer","minimum":0},"description":"Cited event index, paired with event_digest and without cursor."},"TranscriptReadDigest":{"in":"query","name":"event_digest","schema":{"type":"string","pattern":"^[0-9a-f]{64}$"}}}},"tags":[{"name":"admin"},{"name":"agent"},{"name":"agent_sessions"},{"name":"app_access"},{"name":"artifacts"},{"name":"auth"},{"name":"bazel"},{"name":"billing"},{"name":"cdn_spaces"},{"name":"check"},{"name":"ci"},{"name":"cli_releases"},{"name":"contact_submissions"},{"name":"edge"},{"name":"email_verifications"},{"name":"execution"},{"name":"git_imports"},{"name":"github"},{"name":"github_app"},{"name":"github_runner_admission"},{"name":"github_runner_cache"},{"name":"github_runner_checkout"},{"name":"gitlab"},{"name":"hosting"},{"name":"identity"},{"name":"mcp"},{"name":"me"},{"name":"merge_resolutions"},{"name":"metronome"},{"name":"networking"},{"name":"observability"},{"name":"openapi"},{"name":"org_invitations"},{"name":"organizations"},{"name":"otel_ingest"},{"name":"personal_access_tokens"},{"name":"registry"},{"name":"relay"},{"name":"repositories"},{"name":"repository_access"},{"name":"repository_events"},{"name":"repository_import_sessions"},{"name":"roder"},{"name":"signals"},{"name":"source_connections"},{"name":"static_sites"},{"name":"stripe"},{"name":"submit_telemetry"},{"name":"transcripts"},{"name":"verify"},{"name":"verify_messages"},{"name":"waitlist_applications"},{"name":"webhooks"}],"security":[{"bearerAuth":[]}]}