{"info":{"title":"Syndai External Coding API","version":"3.1.0","description":"Public Coding-as-a-Service API for customer integrations.","contact":{"name":"Syndai","url":"https://syndai.com"}},"openapi":"3.1.0","servers":[{"url":"/"}],"paths":{"/api/v1/external/coding/runs/{coding_run_id}/cancel":{"post":{"tags":["External Coding"],"summary":"CancelExternalRun","operationId":"cancelRun","parameters":[{"name":"coding_run_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/CodingRunCancelRequest"},{"type":"null"}]}}},"required":true},"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalCodingRunStatusResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/runs":{"get":{"tags":["External Coding"],"summary":"ListExternalRuns","description":"List coding runs, attention-prioritized within the limit. Ordering is server-owned and clients need no re-sort: attention class ascending (needs-you, then done-unreviewed, then working, then idle), then newest attention_at, then newest created_at; runs without an attention projection sort last by recency. A needs-input run always outranks any lower-priority run regardless of recency, so newer working/idle runs never page it out (more than `limit` newer needs-you runs still can). limit defaults to 50 and is clamped to 100.","operationId":"listRuns","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":50},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalCodingRunListResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false},"post":{"tags":["External Coding"],"summary":"CreateExternalRun","operationId":"createRun","parameters":[{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalCodingRunCreateRequest"}}},"required":true},"responses":{"201":{"description":"Document created, URL follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalCodingRunCreateResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Idempotency replay","headers":{"Location":{"description":"Canonical URL for the existing resource","schema":{"type":"string"}}}},"402":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Budget exhausted"}},"deprecated":false}},"/api/v1/external/coding/webhooks":{"get":{"tags":["External Coding"],"summary":"ListExternalWebhookEndpoints","operationId":"listWebhookEndpoints","parameters":[{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointListResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false},"post":{"tags":["External Coding"],"summary":"CreateExternalWebhookEndpoint","operationId":"createWebhookEndpoint","parameters":[{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointCreateRequest"}}},"required":true},"responses":{"201":{"description":"Document created, URL follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointCreateResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/webhooks/{endpoint_id}":{"delete":{"tags":["External Coding"],"summary":"DisableExternalWebhookEndpoint","operationId":"disableWebhookEndpoint","parameters":[{"name":"endpoint_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointDisableResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/runs/{coding_run_id}":{"get":{"tags":["External Coding"],"summary":"GetExternalRun","operationId":"getRun","parameters":[{"name":"coding_run_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalCodingRunStatusResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/runs/{coding_run_id}/proposed-diff":{"get":{"tags":["External Coding"],"summary":"GetExternalRunProposedDiff","operationId":"getRunProposedDiff","parameters":[{"name":"coding_run_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalRunProposedDiffResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/repos":{"get":{"tags":["External Coding"],"summary":"ListExternalRepositories","operationId":"listRepos","parameters":[{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalRepositoryListResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/webhook-deliveries":{"get":{"tags":["External Coding"],"summary":"ListExternalWebhookDeliveries","operationId":"listWebhookDeliveries","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":50},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerWebhookDeliveryListResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/artifacts/{artifact_id}/open":{"get":{"tags":["External Coding"],"summary":"OpenExternalValidationArtifact","operationId":"openValidationArtifact","parameters":[{"name":"artifact_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false},{"name":"mode","in":"query","schema":{"type":"string","default":"auto"},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodingArtifactOpenResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/webhook-deliveries/{delivery_id}/redeliver":{"post":{"tags":["External Coding"],"summary":"RedeliverExternalWebhookDelivery","operationId":"redeliverWebhookDelivery","parameters":[{"name":"delivery_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerWebhookDeliveryRedeliverResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/runs/{coding_run_id}/responses":{"post":{"tags":["External Coding"],"summary":"RespondExternalRun","operationId":"respondToRun","parameters":[{"name":"coding_run_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalCodingRunRespondRequest"}}},"required":true},"responses":{"201":{"description":"Document created, URL follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalCodingRunRespondResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Run cannot accept this response"}},"deprecated":false}},"/api/v1/external/coding/runs/{coding_run_id}/steer":{"post":{"tags":["External Coding"],"summary":"SteerExternalRun","operationId":"steerRun","parameters":[{"name":"coding_run_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalRunSteerCreate"}}},"required":true},"responses":{"201":{"description":"Document created, URL follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalRunSteerResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/runs/{coding_run_id}/events":{"get":{"tags":["External Coding"],"summary":"External coding run event stream","operationId":"streamRunEvents","parameters":[{"name":"coding_run_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"since_global_seq","in":"query","schema":{"oneOf":[{"type":"integer"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"text/event-stream":{"schema":{}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/webhooks/{endpoint_id}/test":{"post":{"tags":["External Coding"],"summary":"TestExternalWebhookEndpoint","operationId":"testWebhookEndpoint","parameters":[{"name":"endpoint_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointTestResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/runs/{coding_run_id}/criteria/ratify":{"post":{"tags":["External Coding"],"summary":"RatifyRunCriteria","operationId":"ratifyRunCriteria","parameters":[{"name":"coding_run_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"base_round","in":"query","schema":{"type":"integer"},"required":true,"deprecated":false,"allowEmptyValue":false,"allowReserved":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalCodingRunStatusResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Spec review conflict"}},"deprecated":false}},"/api/v1/external/coding/runs/{coding_run_id}/criteria/{criterion_id}/edit":{"post":{"tags":["External Coding"],"summary":"EditCriterion","operationId":"editCriterion","parameters":[{"name":"coding_run_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"criterion_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalCriterionEditRequest"}}},"required":true},"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalCodingRunStatusResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Spec review conflict"}},"deprecated":false}},"/api/v1/external/coding/runs/{coding_run_id}/spec/annotations/{annotation_id}/accept":{"post":{"tags":["External Coding"],"summary":"AcceptSpecAnnotation","operationId":"acceptSpecAnnotation","parameters":[{"name":"coding_run_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"annotation_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalSpecAnnotationActionRequest"}}},"required":true},"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalCodingRunStatusResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Spec annotation conflict"}},"deprecated":false}},"/api/v1/external/coding/runs/{coding_run_id}/spec/annotations/{annotation_id}/reopen":{"post":{"tags":["External Coding"],"summary":"ReopenSpecAnnotation","operationId":"reopenSpecAnnotation","parameters":[{"name":"coding_run_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"annotation_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalSpecAnnotationActionRequest"}}},"required":true},"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalCodingRunStatusResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Spec annotation conflict"}},"deprecated":false}},"/api/v1/external/coding/runs/{coding_run_id}/spec/request-changes":{"post":{"tags":["External Coding"],"summary":"RequestSpecChanges","operationId":"requestSpecChanges","parameters":[{"name":"coding_run_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalSpecRequestChangesRequest"}}},"required":true},"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalCodingRunStatusResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Spec review conflict"}},"deprecated":false}},"/api/v1/external/coding/runs/{coding_run_id}/spec/annotations/{annotation_id}/resolve":{"post":{"tags":["External Coding"],"summary":"ResolveSpecAnnotation","operationId":"resolveSpecAnnotation","parameters":[{"name":"coding_run_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"annotation_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalSpecAnnotationActionRequest"}}},"required":true},"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalCodingRunStatusResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Spec annotation conflict"}},"deprecated":false}},"/api/v1/external/coding/runs/{coding_run_id}/spec/skip-review":{"post":{"tags":["External Coding"],"summary":"SkipSpecReview","operationId":"skipSpecReview","parameters":[{"name":"coding_run_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"base_round","in":"query","schema":{"type":"integer"},"required":true,"deprecated":false,"allowEmptyValue":false,"allowReserved":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalCodingRunStatusResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Spec review conflict"}},"deprecated":false}},"/api/v1/external/coding/runs/{coding_run_id}/spec/drafts/{annotation_id}":{"put":{"tags":["External Coding"],"summary":"UpsertSpecDraft","operationId":"upsertSpecDraft","parameters":[{"name":"coding_run_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"annotation_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalSpecDraftUpsertRequest"}}},"required":true},"responses":{"204":{"description":"Request fulfilled, nothing follows","headers":{}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Draft generation conflict"}},"deprecated":false},"delete":{"tags":["External Coding"],"summary":"RemoveSpecDraft","operationId":"removeSpecDraft","parameters":[{"name":"coding_run_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"annotation_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"generation","in":"query","schema":{"type":"integer"},"required":true,"deprecated":false,"allowEmptyValue":false,"allowReserved":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"204":{"description":"Request fulfilled, nothing follows","headers":{}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Draft generation conflict"}},"deprecated":false}},"/api/v1/external/coding/runs/{coding_run_id}/spec/rounds":{"get":{"tags":["External Coding"],"summary":"ListSpecRounds","operationId":"listSpecRounds","parameters":[{"name":"coding_run_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"limit","in":"query","schema":{"type":"integer","default":20},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false},{"name":"cursor","in":"query","schema":{"oneOf":[{"type":"string"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalSpecRoundHistoryResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/schedules":{"get":{"tags":["External Coding"],"summary":"ListSchedules","operationId":"listSchedules","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":50},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false},{"name":"cursor","in":"query","schema":{"oneOf":[{"type":"string"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleListResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid schedule cursor"}},"deprecated":false},"post":{"tags":["External Coding"],"summary":"CreateSchedule","operationId":"createSchedule","parameters":[{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreateRequest"}}},"required":true},"responses":{"201":{"description":"Document created, URL follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRead"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Idempotency replay","headers":{"Location":{"description":"Canonical URL for the existing resource","schema":{"type":"string"}}}}},"deprecated":false}},"/api/v1/external/coding/schedules/{schedule_id}":{"get":{"tags":["External Coding"],"summary":"GetSchedule","operationId":"getSchedule","parameters":[{"name":"schedule_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleDetailResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false},"delete":{"tags":["External Coding"],"summary":"DeleteSchedule","operationId":"deleteSchedule","parameters":[{"name":"schedule_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"204":{"description":"Request fulfilled, nothing follows","headers":{}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false},"patch":{"tags":["External Coding"],"summary":"UpdateSchedule","operationId":"updateSchedule","parameters":[{"name":"schedule_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdateRequest"}}},"required":true},"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRead"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/schedules/{schedule_id}/pause":{"post":{"tags":["External Coding"],"summary":"PauseSchedule","operationId":"pauseSchedule","parameters":[{"name":"schedule_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRead"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/schedules/{schedule_id}/resume":{"post":{"tags":["External Coding"],"summary":"ResumeSchedule","operationId":"resumeSchedule","parameters":[{"name":"schedule_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRead"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/schedules/{schedule_id}/run-now":{"post":{"tags":["External Coding"],"summary":"RunScheduleNow","operationId":"runScheduleNow","parameters":[{"name":"schedule_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"202":{"description":"Request accepted, processing continues off-line","headers":{}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/site-clones":{"post":{"tags":["External Coding"],"summary":"Kick off an authorized website-cloning coding run","description":"Start a Syndai coding run that rebuilds an authorized website. Each source URL requires an explicit attestation of ownership / authorization (see `source_authorizations`). Private, loopback, link-local, and cloud-metadata hosts are rejected before any external request is issued. By calling this endpoint you confirm you have the rights to rebuild or migrate every URL in `source_urls`.","operationId":"createSiteCloneRun","parameters":[{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalSiteCloneCreateRequest"}}},"required":true},"responses":{"201":{"description":"Document created, URL follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalSiteCloneCreateResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Idempotency replay","headers":{"Location":{"description":"Canonical URL for the existing resource","schema":{"type":"string"}}}},"402":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Budget exhausted"}},"deprecated":false}},"/api/v1/external/coding/customers/{customer_id}/repositories/{coding_repository_id}/publication":{"get":{"tags":["External Coding"],"summary":"GetPublication","operationId":"getAppPublication","parameters":[{"name":"customer_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"coding_repository_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PublicationResponse"},{}]}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false},"delete":{"tags":["External Coding"],"summary":"Unpublish","operationId":"unpublishApp","parameters":[{"name":"customer_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"coding_repository_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false}],"responses":{"202":{"description":"Request accepted, processing continues off-line","headers":{},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PublicationResponse"},{}]}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"App hosting is not configured"}},"deprecated":false},"patch":{"tags":["External Coding"],"summary":"UpdatePublication","operationId":"setAppAutoRedeploy","parameters":[{"name":"customer_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"coding_repository_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoRedeployRequest"}}},"required":true},"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PublicationResponse"},{}]}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/customers/{customer_id}/repositories/{coding_repository_id}/publish":{"post":{"tags":["External Coding"],"summary":"Publish","operationId":"publishApp","parameters":[{"name":"customer_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"coding_repository_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false}],"responses":{"202":{"description":"Request accepted, processing continues off-line","headers":{},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PublicationResponse"},{}]}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"App is already publishing"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Repository is not publishable (managed Forgejo only)"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"App hosting is not configured"}},"deprecated":false}},"/api/v1/external/coding/runs/{run_id}/timeline":{"get":{"tags":["External Coding"],"summary":"GetExternalRunTimeline","operationId":"getRunTimeline","parameters":[{"name":"run_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunTimelineResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/webhooks/{endpoint_id}/rotate-secret":{"post":{"tags":["External Coding"],"summary":"RotateSecret","operationId":"rotateWebhookSecret","parameters":[{"name":"endpoint_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false},{"name":"customer_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"201":{"description":"Document created, URL follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSecretRotationResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/members/accept":{"post":{"tags":["External Coding Members"],"summary":"Accept","operationId":"acceptInvite","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptRequest"}}},"required":true},"responses":{"201":{"description":"Document created, URL follows","headers":{},"content":{"application/json":{"schema":{}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Expired invite token"}},"deprecated":false}},"/api/v1/external/coding/members/invite":{"post":{"tags":["External Coding Members"],"summary":"Invite","operationId":"inviteMember","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteCreateRequest"}}},"required":true},"responses":{"201":{"description":"Document created, URL follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteCreateResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/members/invites":{"get":{"tags":["External Coding Members"],"summary":"ListInvites","operationId":"listInvites","parameters":[],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvitesListResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/members":{"get":{"tags":["External Coding Members"],"summary":"ListMembers","operationId":"listMembers","parameters":[],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MembersListResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/members/invites/{invite_id}":{"delete":{"tags":["External Coding Members"],"summary":"RevokeInvite","operationId":"revokeInvite","parameters":[{"name":"invite_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/members/{membership_id}":{"delete":{"tags":["External Coding Members"],"summary":"RevokeMember","operationId":"revokeMember","parameters":[{"name":"membership_id","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"deprecated":false}],"responses":{"204":{"description":"Request fulfilled, nothing follows","headers":{}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/policy/defaults":{"get":{"tags":["External Coding Policy"],"summary":"GetDefaults","operationId":"getPolicyDefaults","parameters":[{"name":"coding_repository_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyDefaultsRead"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false},"put":{"tags":["External Coding Policy"],"summary":"PutDefaults","operationId":"putPolicyDefaults","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyDefaultsPutRequest"}}},"required":true},"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyDefaultsPutResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Repository not bound"}},"deprecated":false}},"/api/v1/external/coding/policy/defaults/history":{"get":{"tags":["External Coding Policy"],"summary":"GetDefaultsHistory","operationId":"listPolicyDefaultsHistory","parameters":[{"name":"coding_repository_id","in":"query","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"required":false,"deprecated":false,"allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyDefaultsHistoryResponse"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/external/coding/policy/schema":{"get":{"tags":["External Coding Policy"],"summary":"GetSchema","operationId":"getPolicySchema","parameters":[],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{},"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Invalid or missing customer API key"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Insufficient scope or forbidden customer access"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false}},"/api/v1/public/receipts/{token}":{"get":{"tags":["Public Receipts"],"summary":"GetPublicReceipt","operationId":"getPublicReceipt","parameters":[{"name":"token","in":"path","schema":{"type":"string"},"required":true,"deprecated":false}],"responses":{"200":{"description":"Request fulfilled, document follows","headers":{"cache-control":{"schema":{"type":"string"},"required":false,"deprecated":false}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicReceiptView"}}}},"400":{"description":"Bad request syntax or unsupported method","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Resource not found"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request","schema":{"type":"integer"}}}},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unexpected error"}},"deprecated":false,"security":[]}}},"components":{"schemas":{"AcceptRequest":{"properties":{"token":{"type":"string"}},"type":"object","required":["token"],"title":"AcceptRequest"},"AppDeploymentRead":{"properties":{"id":{"type":"string"},"sha":{"oneOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string"},"url":{"oneOf":[{"type":"string"},{"type":"null"}]},"error_summary":{"oneOf":[{"type":"string"},{"type":"null"}]},"created_at":{"type":"string"},"finished_at":{"oneOf":[{"type":"string"},{"type":"null"}]}},"type":"object","required":["created_at","id","status"],"title":"AppDeploymentRead"},"AppPublicationRead":{"properties":{"id":{"type":"string"},"slug":{"type":"string"},"generation":{"type":"integer"},"state":{"type":"string"},"url":{"oneOf":[{"type":"string"},{"type":"null"}]},"auto_redeploy":{"type":"boolean"},"operation_error_summary":{"oneOf":[{"type":"string"},{"type":"null"}]},"latest_deployment":{"oneOf":[{"$ref":"#/components/schemas/AppDeploymentRead"},{"type":"null"}]}},"type":"object","required":["auto_redeploy","generation","id","slug","state"],"title":"AppPublicationRead"},"AutoRedeployRequest":{"properties":{"auto_redeploy":{"type":"boolean"}},"type":"object","required":["auto_redeploy"],"title":"AutoRedeployRequest"},"CodingArtifactOpenResponse":{"properties":{"artifact_id":{"type":"string","format":"uuid"},"title":{"type":"string"},"state":{"type":"string"},"open_mode":{"type":"string"},"mime_type":{"oneOf":[{"type":"string"},{"type":"null"}]},"content_size":{"oneOf":[{"type":"integer"},{"type":"null"}]},"sha256":{"oneOf":[{"type":"string"},{"type":"null"}]},"text_content":{"oneOf":[{"type":"string"},{"type":"null"}]},"signed_url":{"oneOf":[{"type":"string"},{"type":"null"}]},"signed_url_expires_at":{"oneOf":[{"type":"string"},{"type":"null"}]}},"type":"object","required":["artifact_id","open_mode","state","title"],"title":"CodingArtifactOpenResponse"},"CodingArtifactRefRead":{"properties":{"artifact_id":{"type":"string","format":"uuid"},"source_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"source_type":{"type":"string"},"section":{"type":"string"},"kind":{"type":"string"},"display_name":{"type":"string"},"mime_type":{"oneOf":[{"type":"string"},{"type":"null"}]},"size_bytes":{"oneOf":[{"type":"integer"},{"type":"null"}]},"sha256":{"oneOf":[{"type":"string"},{"type":"null"}]},"retention_tag":{"oneOf":[{"type":"string"},{"type":"null"}]},"expires_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"open_state":{"type":"string"}},"type":"object","required":["artifact_id","display_name","kind","open_state","section","source_type"],"title":"CodingArtifactRefRead"},"CodingCriterionRead":{"properties":{"id":{"type":"string","format":"uuid"},"criterion_key":{"type":"string","format":"uuid"},"label":{"type":"string"},"text":{"type":"string"},"status":{"type":"string"},"verdict":{"type":"string"},"bound_validator_count":{"type":"integer"},"proven_validator_count":{"type":"integer"},"text_hash":{"type":"string"},"proven_validators":{"items":{"type":"string"},"type":"array"},"tree_sha":{"oneOf":[{"type":"string"},{"type":"null"}]}},"type":"object","required":["bound_validator_count","criterion_key","id","label","proven_validator_count","status","text","text_hash","verdict"],"title":"CodingCriterionRead"},"CodingHitlResponseEntry":{"properties":{"input_id":{"type":"string"},"selected_option_ids":{"oneOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"text":{"oneOf":[{"type":"string"},{"type":"null"}]},"approved":{"oneOf":[{"type":"boolean"},{"type":"null"}]}},"type":"object","required":["input_id"],"title":"CodingHitlResponseEntry"},"CodingRepositoryRead":{"properties":{"id":{"type":"string","format":"uuid"},"provider":{"type":"string"},"full_name":{"type":"string"},"repo_url":{"type":"string"},"clone_url":{"type":"string"},"html_url":{"oneOf":[{"type":"string"},{"type":"null"}]},"default_branch":{"type":"string"},"capabilities":{"additionalProperties":true,"type":"object"},"status":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"type":"object","required":["capabilities","clone_url","created_at","default_branch","full_name","id","provider","repo_url","status","updated_at"],"title":"CodingRepositoryRead"},"CodingRequestedIntent":{"type":"string","enum":["auto","answer","change"],"title":"CodingRequestedIntent","description":"Caller-requested repository-work intent.","default":"auto"},"CodingReviewGateStatus":{"type":"string","enum":["pending","running","passed","failed","waived","blocked","cancelled"],"title":"CodingReviewGateStatus","description":"Lifecycle state for a structured coding review/playbook gate."},"CodingRunArtifactBundleRead":{"properties":{"coding_run_id":{"type":"string","format":"uuid"},"policy_contract_sha256":{"oneOf":[{"type":"string"},{"type":"null"}]},"effective_resolution_sha256":{"oneOf":[{"type":"string"},{"type":"null"}]},"sections":{"additionalProperties":{"items":{"$ref":"#/components/schemas/CodingArtifactRefRead"},"type":"array"},"type":"object"},"provenance":{"additionalProperties":true,"type":"object"}},"type":"object","required":["coding_run_id","provenance","sections"],"title":"CodingRunArtifactBundleRead"},"CodingRunCancelRequest":{"properties":{},"type":"object","required":[],"title":"CodingRunCancelRequest"},"CodingTestSpecStatus":{"type":"string","enum":["proposed","generated","running","passed","failed","waived"],"title":"CodingTestSpecStatus","description":"Lifecycle state for a plan-time test specification."},"CodingValidationStatus":{"type":"string","enum":["pending","running","passed","failed","skipped","blocked","cancelled"],"title":"CodingValidationStatus","description":"Lifecycle state for a validator or review execution."},"CodingWebhookDeliveryStatus":{"type":"string","enum":["pending","delivered","failed"],"title":"CodingWebhookDeliveryStatus","description":"Lifecycle state for outbound coding webhook delivery attempts."},"CodingWebhookEventType":{"type":"string","enum":["coding.webhook.test","coding.run.created","coding.run.phase_changed","coding.run.question_required","coding.run.plan_ready","coding.run.liveness_changed","coding.execution.attempt.started","coding.execution.attempt.completed","coding.validation.completed","coding.review_gate.completed","coding.artifact.created","coding.pr.opened","coding.pr.merged","coding.run.completed","coding.run.failed","coding.run.cancelled","coding.run.delivery_marked","coding.run.ac_contested","coding.run.final_response_ready","coding.run.final_response_failed","coding.run.capability.started","coding.run.capability.finished","coding.run.capability.governance_required","coding.run.preview_ready","coding.run.steer_received","coding.run.steer_applied","coding.run.steer_orphaned","coding.run.spec_review_ready"],"title":"CodingWebhookEventType","description":"External webhook and SSE event taxonomy for Coding-as-a-Service."},"CustomerWebhookDeliveryKind":{"type":"string","enum":["event","test"],"title":"CustomerWebhookDeliveryKind","description":"Source kind for one customer webhook delivery row."},"CustomerWebhookDeliveryListResponse":{"properties":{"deliveries":{"items":{"$ref":"#/components/schemas/CustomerWebhookDeliveryRead"},"type":"array"}},"type":"object","required":["deliveries"],"title":"CustomerWebhookDeliveryListResponse"},"CustomerWebhookDeliveryRead":{"properties":{"id":{"type":"string","format":"uuid"},"delivery_kind":{"$ref":"#/components/schemas/CustomerWebhookDeliveryKind"},"event_name":{"type":"string"},"event_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"coding_run_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"customer_id":{"type":"string","format":"uuid"},"endpoint_id":{"type":"string","format":"uuid"},"status":{"$ref":"#/components/schemas/CodingWebhookDeliveryStatus"},"target_url":{"type":"string"},"attempts":{"type":"integer"},"next_retry_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"last_error":{"oneOf":[{"type":"string"},{"type":"null"}]},"response_status":{"oneOf":[{"type":"integer"},{"type":"null"}]},"response_body_excerpt":{"oneOf":[{"type":"string"},{"type":"null"}]},"delivered_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"type":"object","required":["attempts","created_at","customer_id","delivery_kind","endpoint_id","event_name","id","status","target_url","updated_at"],"title":"CustomerWebhookDeliveryRead"},"CustomerWebhookDeliveryRedeliverResponse":{"properties":{"delivery":{"$ref":"#/components/schemas/CustomerWebhookDeliveryRead"}},"type":"object","required":["delivery"],"title":"CustomerWebhookDeliveryRedeliverResponse"},"ExternalCodingFinalResponseRead":{"properties":{"status":{"type":"string"},"message_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"content":{"oneOf":[{"type":"string"},{"type":"null"}]},"published_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"error_code":{"oneOf":[{"type":"string"},{"type":"null"}]}},"type":"object","required":["status"],"title":"ExternalCodingFinalResponseRead"},"ExternalCodingHitlFreeTextPolicyRead":{"properties":{"enabled":{"type":"boolean"},"max_length":{"oneOf":[{"type":"integer"},{"type":"null"}]},"placeholder":{"oneOf":[{"type":"string"},{"type":"null"}]},"ui_mode":{"oneOf":[{"type":"string"},{"type":"null"}]},"required_policy":{"oneOf":[{"type":"string"},{"type":"null"}]}},"type":"object","required":["enabled"],"title":"ExternalCodingHitlFreeTextPolicyRead"},"ExternalCodingHitlInputRead":{"properties":{"input_id":{"type":"string"},"kind":{"type":"string"},"prompt":{"type":"string"},"required":{"type":"boolean"},"context":{"oneOf":[{"type":"string"},{"type":"null"}]},"options":{"items":{"$ref":"#/components/schemas/ExternalCodingHitlOptionRead"},"type":"array"},"free_text":{"oneOf":[{"$ref":"#/components/schemas/ExternalCodingHitlFreeTextPolicyRead"},{"type":"null"}]}},"type":"object","required":["input_id","kind","prompt","required"],"title":"ExternalCodingHitlInputRead"},"ExternalCodingHitlOptionRead":{"properties":{"id":{"type":"string"},"label":{"type":"string"}},"type":"object","required":["id","label"],"title":"ExternalCodingHitlOptionRead"},"ExternalCodingPendingHitlRequestRead":{"properties":{"hitl_request_id":{"type":"string","format":"uuid"},"request_kind":{"type":"string"},"summary":{"type":"string"},"schema_version":{"type":"integer"},"inputs":{"items":{"$ref":"#/components/schemas/ExternalCodingHitlInputRead"},"type":"array"},"expires_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time"},"creates_standing_grant":{"type":"boolean","default":false}},"type":"object","required":["created_at","hitl_request_id","inputs","request_kind","schema_version","summary"],"title":"ExternalCodingPendingHitlRequestRead"},"ExternalCodingProjectRead":{"properties":{"id":{"type":"string","format":"uuid"},"repo_url":{"type":"string"},"repo_owner":{"type":"string"},"repo_name":{"type":"string"},"default_branch":{"type":"string"},"last_head_sha":{"oneOf":[{"type":"string"},{"type":"null"}]},"last_tree_sha":{"oneOf":[{"type":"string"},{"type":"null"}]},"repo_size_kb":{"oneOf":[{"type":"integer"},{"type":"null"}]},"repo_tree_entry_count":{"oneOf":[{"type":"integer"},{"type":"null"}]},"large_repo_detected":{"type":"boolean"},"repo_manifest_generated_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"last_synced_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"type":"object","required":["created_at","default_branch","id","large_repo_detected","repo_name","repo_owner","repo_url","updated_at"],"title":"ExternalCodingProjectRead"},"ExternalCodingReviewGateRead":{"properties":{"id":{"type":"string","format":"uuid"},"gate_name":{"type":"string"},"status":{"$ref":"#/components/schemas/CodingReviewGateStatus"},"blocking":{"type":"boolean"},"findings":{"items":{"additionalProperties":true,"type":"object"},"type":"array"},"artifact_refs":{"items":{"additionalProperties":true,"type":"object"},"type":"array"},"reviewed_head_sha":{"oneOf":[{"type":"string"},{"type":"null"}]},"reviewed_diff_sha256":{"oneOf":[{"type":"string"},{"type":"null"}]},"iteration":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"type":"object","required":["artifact_refs","blocking","created_at","findings","gate_name","id","iteration","status","updated_at"],"title":"ExternalCodingReviewGateRead"},"ExternalCodingRunCreateRequest":{"properties":{"prompt":{"type":"string"},"external_request_id":{"type":"string"},"coding_repository_id":{"type":"string","format":"uuid"},"base_branch":{"oneOf":[{"type":"string"},{"type":"null"}]},"policy_config":{"additionalProperties":true,"type":"object"},"requested_budget_usd":{"oneOf":[{"type":"number"},{"type":"null"}]},"metadata":{"additionalProperties":true,"type":"object"},"intent":{"$ref":"#/components/schemas/CodingRequestedIntent"},"parent_coding_run_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]}},"type":"object","required":["coding_repository_id","external_request_id","prompt"],"title":"ExternalCodingRunCreateRequest"},"ExternalCodingRunCreateResponse":{"properties":{"run":{"$ref":"#/components/schemas/ExternalCodingRunRead"},"project":{"$ref":"#/components/schemas/ExternalCodingProjectRead"},"created":{"type":"boolean"}},"type":"object","required":["created","project","run"],"title":"ExternalCodingRunCreateResponse"},"ExternalCodingRunListResponse":{"properties":{"runs":{"items":{"$ref":"#/components/schemas/ExternalCodingRunRead"},"type":"array"}},"type":"object","required":["runs"],"title":"ExternalCodingRunListResponse"},"ExternalCodingRunLivenessRead":{"properties":{"state":{"type":"string","enum":["running","waiting_on_approval","waiting_on_input","blocked","stuck","terminal","waiting_on_review"]},"reason":{"oneOf":[{"type":"string"},{"type":"null"}]},"source_type":{"oneOf":[{"type":"string"},{"type":"null"}]},"source_id":{"oneOf":[{"type":"string"},{"type":"null"}]},"last_activity_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"current_activity":{"oneOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}]},"stuck_reason":{"oneOf":[{"type":"string"},{"type":"null"}]},"stuck_detail":{"oneOf":[{"type":"string"},{"type":"null"}]}},"type":"object","required":["state"],"title":"ExternalCodingRunLivenessRead"},"ExternalCodingRunPauseRead":{"properties":{"kind":{"type":"string","description":"Why the run is paused. Current values: \"usage_exhausted\" (provider usage window exhausted; auto-resumes at resume_at when known) and \"credential_disconnected\" (a connected credential needs reconnecting). Additional kinds may be added over time; clients must tolerate unknown values and degrade to a generic paused state."},"resume_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"resume_kind":{"oneOf":[{"type":"string"},{"type":"null"}]}},"type":"object","required":["kind"],"title":"ExternalCodingRunPauseRead"},"ExternalCodingRunRead":{"properties":{"id":{"type":"string","format":"uuid"},"coding_project_id":{"type":"string","format":"uuid"},"coding_repository_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"current_phase":{"type":"string"},"result_kind":{"oneOf":[{"type":"string"},{"type":"null"}]},"external_request_id":{"type":"string"},"base_branch":{"oneOf":[{"type":"string"},{"type":"null"}]},"pr_number":{"oneOf":[{"type":"integer"},{"type":"null"}]},"pr_url":{"oneOf":[{"type":"string"},{"type":"null"}]},"pr_status":{"oneOf":[{"type":"string"},{"type":"null"}]},"validation_iteration":{"type":"integer"},"policy_contract_sha256":{"oneOf":[{"type":"string"},{"type":"null"}]},"policy_resolved_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"effective_resolution_sha256":{"oneOf":[{"type":"string"},{"type":"null"}]},"egress_profile":{"type":"string"},"artifact_retention_profile":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"terminal_summary":{"oneOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}]},"pull_requests":{"oneOf":[{"items":{"$ref":"#/components/schemas/ExternalRunPrRead"},"type":"array"},{"type":"null"}]},"readiness":{"oneOf":[{"$ref":"#/components/schemas/ExternalRunReadiness"},{"type":"null"}]},"preview_urls":{"additionalProperties":true,"type":"object"},"parent_coding_run_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"harness_kind":{"oneOf":[{"type":"string"},{"type":"null"}],"description":"The harness chosen in the run's policy_config, if any; null when no explicit choice was made. Open set — clients must tolerate unknown values."},"prompt":{"oneOf":[{"type":"string"},{"type":"null"}]},"attention":{"oneOf":[{"$ref":"#/components/schemas/ExternalRunAttentionRead"},{"type":"null"}]},"credits_used":{"type":"integer","default":0},"failure_origin":{"oneOf":[{"type":"string"},{"type":"null"}]},"schedule_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"origin":{"oneOf":[{"type":"string"},{"type":"null"}]},"cost_usd":{"oneOf":[{"type":"number"},{"type":"null"}]},"last_stage":{"oneOf":[{"type":"string"},{"type":"null"}]},"last_stage_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"redrive_count":{"type":"integer","default":0}},"type":"object","required":["artifact_retention_profile","coding_project_id","created_at","current_phase","egress_profile","external_request_id","id","updated_at","validation_iteration"],"title":"ExternalCodingRunRead"},"ExternalCodingRunRespondRequest":{"properties":{"hitl_request_id":{"type":"string","format":"uuid"},"entries":{"items":{"$ref":"#/components/schemas/CodingHitlResponseEntry"},"type":"array"},"idempotency_key":{"type":"string"}},"type":"object","required":["entries","hitl_request_id","idempotency_key"],"title":"ExternalCodingRunRespondRequest"},"ExternalCodingRunRespondResponse":{"properties":{"run":{"$ref":"#/components/schemas/ExternalCodingRunRead"},"accepted":{"type":"boolean"},"hitl_request_id":{"type":"string","format":"uuid"},"resolved":{"type":"boolean"},"deduped":{"type":"boolean","default":false}},"type":"object","required":["accepted","hitl_request_id","resolved","run"],"title":"ExternalCodingRunRespondResponse"},"ExternalCodingRunStatusResponse":{"properties":{"run":{"$ref":"#/components/schemas/ExternalCodingRunRead"},"project":{"$ref":"#/components/schemas/ExternalCodingProjectRead"},"validations":{"items":{"$ref":"#/components/schemas/ExternalCodingValidationRunRead"},"type":"array"},"artifact_bundle":{"oneOf":[{"$ref":"#/components/schemas/CodingRunArtifactBundleRead"},{"type":"null"}]},"review_gates":{"items":{"$ref":"#/components/schemas/ExternalCodingReviewGateRead"},"type":"array"},"test_specs":{"items":{"$ref":"#/components/schemas/ExternalCodingTestSpecRead"},"type":"array"},"pending_hitl_requests":{"items":{"$ref":"#/components/schemas/ExternalCodingPendingHitlRequestRead"},"type":"array"},"liveness":{"oneOf":[{"$ref":"#/components/schemas/ExternalCodingRunLivenessRead"},{"type":"null"}]},"criteria":{"items":{"$ref":"#/components/schemas/CodingCriterionRead"},"type":"array"},"pause":{"oneOf":[{"$ref":"#/components/schemas/ExternalCodingRunPauseRead"},{"type":"null"}]},"final_response":{"oneOf":[{"$ref":"#/components/schemas/ExternalCodingFinalResponseRead"},{"type":"null"}]},"steer_messages":{"items":{"$ref":"#/components/schemas/ExternalRunSteerMessageRead"},"type":"array"},"goal":{"oneOf":[{"$ref":"#/components/schemas/ExternalRunGoalRead"},{"type":"null"}]},"activity":{"items":{"$ref":"#/components/schemas/ExternalRunActivityEventRead"},"type":"array"},"brief":{"oneOf":[{"type":"string"},{"type":"null"}]},"linked_runs":{"oneOf":[{"items":{"$ref":"#/components/schemas/ExternalLinkedRunRead"},"type":"array"},{"type":"null"}]},"has_proposed_diff":{"type":"boolean","default":false},"session_approvals":{"items":{"$ref":"#/components/schemas/ExternalSessionApprovalRead"},"type":"array"},"spec_review":{"$ref":"#/components/schemas/ExternalSpecReviewRead"},"spec_review_auto_start_in_seconds":{"oneOf":[{"type":"integer"}]},"spec_review_paused_while_reviewing":{"oneOf":[{"type":"boolean"}]},"scorecard":{"oneOf":[{"$ref":"#/components/schemas/ExternalScorecardRead"},{"type":"null"}]}},"type":"object","required":["project","run"],"title":"ExternalCodingRunStatusResponse"},"ExternalCodingTestSpecRead":{"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"target_surface":{"type":"string"},"observable_behavior":{"type":"string"},"status":{"$ref":"#/components/schemas/CodingTestSpecStatus"},"evidence":{"additionalProperties":true,"type":"object"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"type":"object","required":["created_at","evidence","id","name","observable_behavior","status","target_surface","updated_at"],"title":"ExternalCodingTestSpecRead"},"ExternalCodingValidationRunRead":{"properties":{"id":{"type":"string","format":"uuid"},"validator_name":{"type":"string"},"category":{"type":"string"},"status":{"$ref":"#/components/schemas/CodingValidationStatus"},"blocking":{"type":"boolean"},"errors":{"items":{"additionalProperties":true,"type":"object"},"type":"array"},"findings":{"items":{"additionalProperties":true,"type":"object"},"type":"array"},"artifacts":{"items":{"$ref":"#/components/schemas/CodingArtifactRefRead"},"type":"array"},"iteration":{"type":"integer"},"duration_ms":{"oneOf":[{"type":"integer"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"tree_sha":{"oneOf":[{"type":"string"},{"type":"null"}]},"passed_count":{"oneOf":[{"type":"integer"},{"type":"null"}]},"failed_count":{"oneOf":[{"type":"integer"},{"type":"null"}]},"skipped_count":{"oneOf":[{"type":"integer"},{"type":"null"}]},"is_baseline_delta":{"type":"boolean","default":false}},"type":"object","required":["artifacts","blocking","category","created_at","errors","findings","id","iteration","status","updated_at","validator_name"],"title":"ExternalCodingValidationRunRead"},"ExternalCriterionEditRequest":{"properties":{"text":{"type":"string"},"base_round":{"type":"integer","minimum":1.0}},"type":"object","required":["base_round","text"],"title":"ExternalCriterionEditRequest"},"ExternalLinkedRunRead":{"properties":{"run_id":{"type":"string","format":"uuid"},"relation":{"type":"string"},"created_at":{"type":"string","format":"date-time"}},"type":"object","required":["created_at","relation","run_id"],"title":"ExternalLinkedRunRead"},"ExternalRepositoryListResponse":{"properties":{"repos":{"items":{"$ref":"#/components/schemas/CodingRepositoryRead"},"type":"array"}},"type":"object","required":["repos"],"title":"ExternalRepositoryListResponse"},"ExternalRunActivityEventRead":{"properties":{"id":{"type":"string"},"ts":{"type":"string","format":"date-time"},"kind":{"type":"string"},"target":{"oneOf":[{"type":"string"},{"type":"null"}]},"op":{"oneOf":[{"type":"string"},{"type":"null"}]},"lines_added":{"oneOf":[{"type":"integer"},{"type":"null"}]},"lines_removed":{"oneOf":[{"type":"integer"},{"type":"null"}]}},"type":"object","required":["id","kind","ts"],"title":"ExternalRunActivityEventRead"},"ExternalRunAttentionRead":{"properties":{"state":{"type":"string"},"attention_class":{"type":"integer"},"state_entered_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"attention_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"unread":{"type":"boolean","default":false},"pause_kind":{"oneOf":[{"type":"string"},{"type":"null"}]}},"type":"object","required":["attention_class","state"],"title":"ExternalRunAttentionRead"},"ExternalRunGoalLayerRead":{"properties":{"sequence":{"type":"integer"},"title":{"type":"string"},"status":{"type":"string"}},"type":"object","required":["sequence","status","title"],"title":"ExternalRunGoalLayerRead"},"ExternalRunGoalRead":{"properties":{"steps":{"items":{"$ref":"#/components/schemas/ExternalRunGoalStepRead"},"type":"array"},"current_detail":{"oneOf":[{"type":"string"},{"type":"null"}]},"repair_round":{"oneOf":[{"type":"integer"},{"type":"null"}]},"layers":{"oneOf":[{"items":{"$ref":"#/components/schemas/ExternalRunGoalLayerRead"},"type":"array"},{"type":"null"}]},"repair_reason":{"oneOf":[{"type":"string"},{"type":"null"}]}},"type":"object","required":["steps"],"title":"ExternalRunGoalRead"},"ExternalRunGoalStepRead":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"state":{"type":"string"}},"type":"object","required":["key","label","state"],"title":"ExternalRunGoalStepRead"},"ExternalRunPrRead":{"properties":{"sequence":{"type":"integer"},"feature_key":{"oneOf":[{"type":"string"},{"type":"null"}]},"pr_number":{"oneOf":[{"type":"integer"},{"type":"null"}]},"pr_url":{"oneOf":[{"type":"string"},{"type":"null"}]},"pr_status":{"oneOf":[{"type":"string"},{"type":"null"}]},"draft":{"type":"boolean"},"branch":{"type":"string"},"base_branch":{"type":"string"}},"type":"object","required":["base_branch","branch","draft","sequence"],"title":"ExternalRunPrRead"},"ExternalRunProposedDiffResponse":{"properties":{"unified_diff":{"type":"string"},"truncated":{"type":"boolean","default":false}},"type":"object","required":["unified_diff"],"title":"ExternalRunProposedDiffResponse"},"ExternalRunReadiness":{"properties":{"readiness":{"type":"string"},"clarifying_question":{"oneOf":[{"type":"string"},{"type":"null"}]},"assumptions":{"items":{"type":"string"},"type":"array"}},"type":"object","required":["assumptions","readiness"],"title":"ExternalRunReadiness"},"ExternalRunSteerCreate":{"properties":{"message":{"type":"string"}},"type":"object","required":["message"],"title":"ExternalRunSteerCreate"},"ExternalRunSteerMessageRead":{"properties":{"id":{"type":"string","format":"uuid"},"body":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"applied_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"type":"object","required":["body","created_at","id"],"title":"ExternalRunSteerMessageRead"},"ExternalRunSteerResponse":{"properties":{"steer_message":{"$ref":"#/components/schemas/ExternalRunSteerMessageRead"},"accepted":{"type":"boolean","default":true}},"type":"object","required":["steer_message"],"title":"ExternalRunSteerResponse"},"ExternalScorecardDimensionRead":{"properties":{"key":{"type":"string"},"band":{"type":"string"},"evidence":{"oneOf":[{"type":"string"},{"type":"null"}]}},"type":"object","required":["band","key"],"title":"ExternalScorecardDimensionRead"},"ExternalScorecardFindingRead":{"properties":{"severity":{"type":"string"},"message":{"type":"string"},"file":{"oneOf":[{"type":"string"},{"type":"null"}]}},"type":"object","required":["message","severity"],"title":"ExternalScorecardFindingRead"},"ExternalScorecardRead":{"properties":{"rubric_version":{"type":"string"},"gate_status":{"type":"string"},"headline":{"oneOf":[{"type":"string"},{"type":"null"}]},"dimensions":{"items":{"$ref":"#/components/schemas/ExternalScorecardDimensionRead"},"type":"array"},"security_flag":{"$ref":"#/components/schemas/ExternalScorecardSecurityRead"},"findings":{"items":{"$ref":"#/components/schemas/ExternalScorecardFindingRead"},"type":"array"},"reviewer":{"$ref":"#/components/schemas/ExternalScorecardReviewerRead"},"cost_usd":{"oneOf":[{"type":"number"},{"type":"null"}]}},"type":"object","required":["dimensions","findings","gate_status","reviewer","rubric_version","security_flag"],"title":"ExternalScorecardRead"},"ExternalScorecardReviewerRead":{"properties":{"model":{"oneOf":[{"type":"string"},{"type":"null"}]},"self_assessed":{"type":"boolean","default":false}},"type":"object","required":[],"title":"ExternalScorecardReviewerRead"},"ExternalScorecardSecurityRead":{"properties":{"kind":{"type":"string"},"detail":{"oneOf":[{"type":"string"},{"type":"null"}]}},"type":"object","required":["kind"],"title":"ExternalScorecardSecurityRead"},"ExternalSessionApprovalRead":{"properties":{"domain":{"type":"string"},"action_class":{"type":"string"},"approved_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"}},"type":"object","required":["action_class","approved_at","domain","expires_at"],"title":"ExternalSessionApprovalRead"},"ExternalSiteCloneCreateRequest":{"properties":{"external_request_id":{"type":"string","maxLength":160,"minLength":1},"source_urls":{"items":{"type":"string"},"type":"array","maxItems":20,"minItems":1},"source_authorizations":{"items":{"$ref":"#/components/schemas/SourceAuthorization"},"type":"array","maxItems":20,"minItems":1},"destination":{"oneOf":[{"$ref":"#/components/schemas/SiteCloneCreateManagedRepoDestination"},{"$ref":"#/components/schemas/SiteCloneExistingRepoDestination"}]},"instructions":{"oneOf":[{"type":"string"},{"type":"null"}]},"policy_config":{"additionalProperties":true,"type":"object"}},"type":"object","required":["destination","external_request_id","source_authorizations","source_urls"],"title":"ExternalSiteCloneCreateRequest"},"ExternalSiteCloneCreateResponse":{"properties":{"run_id":{"type":"string","format":"uuid"},"coding_repository_id":{"type":"string","format":"uuid"},"repository_url":{"type":"string"},"stream_url":{"type":"string"}},"type":"object","required":["coding_repository_id","repository_url","run_id","stream_url"],"title":"ExternalSiteCloneCreateResponse"},"ExternalSpecAnchorRead":{"properties":{"quote":{"oneOf":[{"type":"string"},{"type":"null"}]},"char_start":{"oneOf":[{"type":"integer"},{"type":"null"}]},"char_end":{"oneOf":[{"type":"integer"},{"type":"null"}]},"anchor_prefix":{"oneOf":[{"type":"string"},{"type":"null"}]},"anchor_suffix":{"oneOf":[{"type":"string"},{"type":"null"}]}},"type":"object","required":[],"title":"ExternalSpecAnchorRead"},"ExternalSpecAnnotationActionRequest":{"properties":{"base_round":{"type":"integer","minimum":1.0}},"type":"object","required":["base_round"],"title":"ExternalSpecAnnotationActionRequest"},"ExternalSpecAnnotationRead":{"properties":{"target":{"type":"string","enum":["brief","goal","criterion"]},"comment":{"type":"string"},"criterion_key":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"addressed":{"type":"boolean","default":false},"addressed_in_round":{"oneOf":[{"type":"integer"},{"type":"null"}]},"id":{"oneOf":[{"type":"string","format":"uuid"}]},"type":{"oneOf":[{"type":"string","enum":["comment","suggest_edit","flag_remove","global"]}]},"status":{"oneOf":[{"type":"string","enum":["draft","submitted","addressed","dismissed","resolved"]}]},"anchor":{"oneOf":[{"$ref":"#/components/schemas/ExternalSpecAnchorRead"},{"type":"null"}]},"suggested_text":{"oneOf":[{"type":"string"},{"type":"null"}]},"agent_response":{"oneOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}]},"updated_at":{"oneOf":[{"type":"string"}]},"draft_generation":{"oneOf":[{"type":"integer"}]}},"type":"object","required":["comment","target"],"title":"ExternalSpecAnnotationRead"},"ExternalSpecCriterionSnapshotRead":{"properties":{"key":{"type":"string"},"text":{"type":"string"}},"type":"object","required":["key","text"],"title":"ExternalSpecCriterionSnapshotRead"},"ExternalSpecDraftUpsertRequest":{"properties":{"target":{"type":"string","enum":["brief","goal","criterion"]},"comment":{"type":"string"},"generation":{"type":"integer","maximum":2147483646.0,"minimum":1.0},"criterion_key":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"quote":{"oneOf":[{"type":"string"},{"type":"null"}]},"char_start":{"oneOf":[{"type":"integer"},{"type":"null"}],"maximum":2147483647},"char_end":{"oneOf":[{"type":"integer"},{"type":"null"}],"maximum":2147483647,"minimum":1},"type":{"type":"string","enum":["comment","suggest_edit","flag_remove","global"],"default":"comment"},"suggested_text":{"oneOf":[{"type":"string"},{"type":"null"}]},"anchor_prefix":{"oneOf":[{"type":"string"},{"type":"null"}]},"anchor_suffix":{"oneOf":[{"type":"string"},{"type":"null"}]}},"type":"object","required":["comment","generation","target"],"title":"ExternalSpecDraftUpsertRequest"},"ExternalSpecRequestChangesRequest":{"properties":{"base_round":{"type":"integer","minimum":1.0},"idempotency_key":{"type":"string","maxLength":160,"minLength":1},"annotations":{"items":{"$ref":"#/components/schemas/SpecAnnotationInput"},"type":"array"},"overall_comment":{"oneOf":[{"type":"string"},{"type":"null"}]}},"type":"object","required":["base_round","idempotency_key"],"title":"ExternalSpecRequestChangesRequest"},"ExternalSpecReviewRead":{"properties":{"round":{"type":"integer"},"revising":{"type":"boolean","default":false},"revise_failed":{"type":"boolean","default":false},"previous_snapshot":{"oneOf":[{"$ref":"#/components/schemas/ExternalSpecSnapshotRead"},{"type":"null"}]},"current_snapshot":{"oneOf":[{"$ref":"#/components/schemas/ExternalSpecSnapshotRead"},{"type":"null"}]},"annotations":{"items":{"$ref":"#/components/schemas/ExternalSpecAnnotationRead"},"type":"array"},"drafts":{"oneOf":[{"items":{"$ref":"#/components/schemas/ExternalSpecAnnotationRead"},"type":"array"}]},"draft_persistence_enabled":{"oneOf":[{"type":"boolean"}]}},"type":"object","required":["round"],"title":"ExternalSpecReviewRead"},"ExternalSpecRoundDecisionRead":{"properties":{"kind":{"type":"string"},"decided_by":{"type":"string","format":"uuid"},"decided_at":{"type":"string","format":"date-time"}},"type":"object","required":["decided_at","decided_by","kind"],"title":"ExternalSpecRoundDecisionRead"},"ExternalSpecRoundHistoryResponse":{"properties":{"rounds":{"items":{"$ref":"#/components/schemas/ExternalSpecRoundRead"},"type":"array"},"next_cursor":{"oneOf":[{"type":"string"},{"type":"null"}]}},"type":"object","required":["rounds"],"title":"ExternalSpecRoundHistoryResponse"},"ExternalSpecRoundRead":{"properties":{"round":{"type":"integer"},"spec_snapshot":{"additionalProperties":true,"type":"object"},"created_at":{"type":"string","format":"date-time"},"annotation_count":{"type":"integer"},"decision":{"oneOf":[{"$ref":"#/components/schemas/ExternalSpecRoundDecisionRead"},{"type":"null"}]}},"type":"object","required":["annotation_count","created_at","round","spec_snapshot"],"title":"ExternalSpecRoundRead"},"ExternalSpecSnapshotRead":{"properties":{"round":{"type":"integer"},"enhanced_brief":{"oneOf":[{"type":"string"},{"type":"null"}]},"goal":{"oneOf":[{"type":"string"},{"type":"null"}]},"acceptance_criteria":{"items":{"$ref":"#/components/schemas/ExternalSpecCriterionSnapshotRead"},"type":"array"}},"type":"object","required":["round"],"title":"ExternalSpecSnapshotRead"},"InviteCreateRequest":{"properties":{"email":{"type":"string"},"role":{"type":"string","default":"member"}},"type":"object","required":["email"],"title":"InviteCreateRequest"},"InviteCreateResponse":{"properties":{"invite_id":{"type":"string","format":"uuid"},"token":{"type":"string"},"expires_at":{"type":"string","format":"date-time"}},"type":"object","required":["expires_at","invite_id","token"],"title":"InviteCreateResponse"},"InviteRead":{"properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string"},"role":{"type":"string"},"expires_at":{"type":"string","format":"date-time"},"created_at":{"type":"string","format":"date-time"}},"type":"object","required":["created_at","email","expires_at","id","role"],"title":"InviteRead"},"InvitesListResponse":{"properties":{"invites":{"items":{"$ref":"#/components/schemas/InviteRead"},"type":"array"}},"type":"object","required":["invites"],"title":"InvitesListResponse"},"MemberRead":{"properties":{"id":{"type":"string","format":"uuid"},"user_email":{"type":"string"},"role":{"type":"string"},"created_at":{"type":"string","format":"date-time"}},"type":"object","required":["created_at","id","role","user_email"],"title":"MemberRead"},"MembersListResponse":{"properties":{"members":{"items":{"$ref":"#/components/schemas/MemberRead"},"type":"array"}},"type":"object","required":["members"],"title":"MembersListResponse"},"PolicyDefaultsHistoryEntry":{"properties":{"version":{"type":"integer"},"coding_repository_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"config":{"additionalProperties":true,"type":"object"},"is_current":{"type":"boolean"},"updated_at":{"type":"string","format":"date-time"}},"type":"object","required":["config","is_current","updated_at","version"],"title":"PolicyDefaultsHistoryEntry"},"PolicyDefaultsHistoryResponse":{"properties":{"entries":{"items":{"$ref":"#/components/schemas/PolicyDefaultsHistoryEntry"},"type":"array"}},"type":"object","required":["entries"],"title":"PolicyDefaultsHistoryResponse"},"PolicyDefaultsPutRequest":{"properties":{"config":{"additionalProperties":true,"type":"object"},"coding_repository_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]}},"type":"object","required":["config"],"title":"PolicyDefaultsPutRequest"},"PolicyDefaultsPutResponse":{"properties":{"version":{"type":"integer"},"coding_repository_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"updated_at":{"type":"string","format":"date-time"}},"type":"object","required":["updated_at","version"],"title":"PolicyDefaultsPutResponse"},"PolicyDefaultsRead":{"properties":{"config":{"additionalProperties":true,"type":"object"},"version":{"type":"integer"},"coding_repository_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"updated_at":{"type":"string","format":"date-time"}},"type":"object","required":["config","updated_at","version"],"title":"PolicyDefaultsRead"},"PublicReceiptView":{"properties":{"payload":{"additionalProperties":true,"type":"object"},"payload_hash":{"type":"string"},"signature":{"type":"string"},"alg":{"type":"string"},"kid":{"type":"string"},"jwks_url":{"type":"string"},"issued_at":{"type":"string","format":"date-time"}},"type":"object","required":["alg","issued_at","jwks_url","kid","payload","payload_hash","signature"],"title":"PublicReceiptView"},"PublicationResponse":{"properties":{"publication":{"oneOf":[{"$ref":"#/components/schemas/AppPublicationRead"},{"type":"null"}]}},"type":"object","required":[],"title":"PublicationResponse"},"RunTimelineResponse":{"properties":{"entries":{"items":{"$ref":"#/components/schemas/TimelineEntryRead"},"type":"array"}},"type":"object","required":["entries"],"title":"RunTimelineResponse"},"ScheduleCreateRequest":{"properties":{"prompt":{"type":"string"},"coding_repository_id":{"type":"string","format":"uuid"},"trigger":{"$ref":"#/components/schemas/ScheduleTriggerSpec"},"policy_config":{"additionalProperties":true,"type":"object"},"skip_if_no_new_commits":{"type":"boolean","default":true},"occurrence_budget_usd":{"oneOf":[{"type":"number"},{"type":"null"}]},"client_request_id":{"oneOf":[{"type":"string","minLength":1,"maxLength":160},{"type":"null"}]}},"type":"object","required":["coding_repository_id","prompt","trigger"],"title":"ScheduleCreateRequest"},"ScheduleDetailResponse":{"properties":{"schedule":{"$ref":"#/components/schemas/ScheduleRead"},"occurrences":{"items":{"$ref":"#/components/schemas/ScheduleOccurrenceRead"},"type":"array"}},"type":"object","required":["occurrences","schedule"],"title":"ScheduleDetailResponse"},"ScheduleListResponse":{"properties":{"schedules":{"items":{"$ref":"#/components/schemas/ScheduleRead"},"type":"array"},"next_cursor":{"oneOf":[{"type":"string"},{"type":"null"}]}},"type":"object","required":["schedules"],"title":"ScheduleListResponse"},"ScheduleOccurrenceRead":{"properties":{"slot_ts":{"type":"string","format":"date-time"},"disposition":{"type":"string"},"coding_run_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"summary":{"oneOf":[{"type":"string"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time"}},"type":"object","required":["created_at","disposition","slot_ts"],"title":"ScheduleOccurrenceRead"},"ScheduleRead":{"properties":{"id":{"type":"string","format":"uuid"},"coding_repository_id":{"type":"string","format":"uuid"},"repo_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"prompt":{"type":"string"},"trigger":{"$ref":"#/components/schemas/ScheduleTriggerSpec"},"status":{"type":"string"},"pause_reason":{"oneOf":[{"type":"string"},{"type":"null"}]},"next_fire_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"last_run_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"consecutive_failures":{"type":"integer"},"skip_if_no_new_commits":{"type":"boolean"},"occurrence_budget_usd":{"oneOf":[{"type":"number"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time"},"upcoming":{"items":{"type":"string","format":"date-time"},"type":"array"}},"type":"object","required":["coding_repository_id","consecutive_failures","created_at","id","prompt","skip_if_no_new_commits","status","trigger"],"title":"ScheduleRead"},"ScheduleTriggerSpec":{"properties":{"kind":{"type":"string"},"expr":{"type":"string"},"timezone":{"type":"string"}},"type":"object","required":["expr","kind","timezone"],"title":"ScheduleTriggerSpec"},"ScheduleUpdateRequest":{"properties":{"prompt":{"oneOf":[{"type":"string"},{"type":"null"}]},"trigger":{"oneOf":[{"$ref":"#/components/schemas/ScheduleTriggerSpec"},{"type":"null"}]},"policy_config":{"oneOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}]},"skip_if_no_new_commits":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"occurrence_budget_usd":{"oneOf":[{"type":"number"},{"type":"null"}]}},"type":"object","required":[],"title":"ScheduleUpdateRequest"},"SiteCloneCreateManagedRepoDestination":{"properties":{"repo_name":{"type":"string","maxLength":100,"minLength":1,"pattern":"^[a-zA-Z0-9](?:[a-zA-Z0-9_.-]{0,98}[a-zA-Z0-9])?$"},"mode":{"type":"string","const":"create_managed_repo"}},"type":"object","required":["mode","repo_name"],"title":"SiteCloneCreateManagedRepoDestination"},"SiteCloneExistingRepoDestination":{"properties":{"coding_repository_id":{"type":"string","format":"uuid"},"mode":{"type":"string","const":"existing_repo"}},"type":"object","required":["coding_repository_id","mode"],"title":"SiteCloneExistingRepoDestination"},"SourceAuthorization":{"properties":{"url":{"type":"string","maxLength":2048,"minLength":1},"attestation":{"type":"string","enum":["i_own_or_have_permission","public_archive","my_employer_authorized","academic_research"]}},"type":"object","required":["attestation","url"],"title":"SourceAuthorization"},"SpecAnnotationInput":{"properties":{"target":{"type":"string","enum":["brief","goal","criterion"]},"comment":{"type":"string"},"criterion_key":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"quote":{"oneOf":[{"type":"string"},{"type":"null"}]},"char_start":{"oneOf":[{"type":"integer"},{"type":"null"}],"maximum":2147483647},"char_end":{"oneOf":[{"type":"integer"},{"type":"null"}],"maximum":2147483647,"minimum":1},"type":{"type":"string","enum":["comment","suggest_edit","flag_remove","global"],"default":"comment"},"suggested_text":{"oneOf":[{"type":"string"},{"type":"null"}]},"anchor_prefix":{"oneOf":[{"type":"string"},{"type":"null"}]},"anchor_suffix":{"oneOf":[{"type":"string"},{"type":"null"}]},"draft_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]}},"type":"object","required":["comment","target"],"title":"SpecAnnotationInput"},"TimelineEntryRead":{"properties":{"entry_kind":{"type":"string"},"event_name":{"type":"string"},"occurred_at":{"type":"string","format":"date-time"},"global_seq":{"oneOf":[{"type":"integer"},{"type":"null"}]},"evidence":{"additionalProperties":true,"type":"object"}},"type":"object","required":["entry_kind","event_name","evidence","occurred_at"],"title":"TimelineEntryRead"},"WebhookEndpointCreateRequest":{"properties":{"name":{"type":"string"},"target_url":{"type":"string"},"event_types":{"items":{"$ref":"#/components/schemas/CodingWebhookEventType"},"type":"array"}},"type":"object","required":["name","target_url"],"title":"WebhookEndpointCreateRequest"},"WebhookEndpointCreateResponse":{"properties":{"endpoint":{"$ref":"#/components/schemas/WebhookEndpointRead"},"signing_secret":{"type":"string"}},"type":"object","required":["endpoint","signing_secret"],"title":"WebhookEndpointCreateResponse"},"WebhookEndpointDisableResponse":{"properties":{"endpoint":{"$ref":"#/components/schemas/WebhookEndpointRead"}},"type":"object","required":["endpoint"],"title":"WebhookEndpointDisableResponse"},"WebhookEndpointListResponse":{"properties":{"endpoints":{"items":{"$ref":"#/components/schemas/WebhookEndpointRead"},"type":"array"}},"type":"object","required":["endpoints"],"title":"WebhookEndpointListResponse"},"WebhookEndpointRead":{"properties":{"id":{"type":"string","format":"uuid"},"customer_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"target_url":{"type":"string"},"status":{"$ref":"#/components/schemas/WebhookEndpointStatus"},"event_types":{"items":{"type":"string"},"type":"array"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"last_secret_rotated_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"type":"object","required":["created_at","customer_id","event_types","id","name","status","target_url","updated_at"],"title":"WebhookEndpointRead"},"WebhookEndpointStatus":{"type":"string","enum":["active","disabled","revoked"],"title":"WebhookEndpointStatus","description":"Lifecycle state for customer-managed webhook endpoints."},"WebhookEndpointTestResponse":{"properties":{"delivery":{"$ref":"#/components/schemas/CustomerWebhookDeliveryRead"}},"type":"object","required":["delivery"],"title":"WebhookEndpointTestResponse"},"WebhookSecretRotationResponse":{"properties":{"secret":{"type":"string"},"version":{"type":"integer"},"retired_grace_until":{"type":"string","format":"date-time"}},"type":"object","required":["retired_grace_until","secret","version"],"title":"WebhookSecretRotationResponse"},"ExternalErrorCode":{"description":"Stable error codes surfaced to public CaaS clients.","enum":["BUDGET_EXHAUSTED","QUOTA_EXCEEDED","RUN_CONCURRENCY_LIMIT","CUSTOMER_DISABLED","REPO_NOT_BOUND","IDEMPOTENCY_REPLAY","CONFLICT","MISSION_BUSY_RETRY","INVALID_POLICY","INVALID_SCOPE","RATE_LIMITED","INSTALLATION_INCOMPLETE","SUBSCRIPTION_USAGE_LIMIT_REACHED","SUBSCRIPTION_USAGE_UNAVAILABLE","INVALID_TOKEN","EMAIL_MISMATCH","EXPIRED_TOKEN","NOT_FOUND","INTERNAL_ERROR"],"title":"ExternalErrorCode","type":"string"},"ProblemDetail":{"additionalProperties":true,"description":"RFC 7807 problem detail returned for public CaaS errors.","properties":{"type":{"default":"about:blank","title":"Type","type":"string"},"title":{"title":"Title","type":"string"},"status":{"title":"Status","type":"integer"},"code":{"$ref":"#/components/schemas/ExternalErrorCode"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Detail"},"instance":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Instance"},"existing_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Existing Run Id"}},"required":["title","status","code"],"title":"ProblemDetail","type":"object"}},"securitySchemes":{"CustomerApiKey":{"type":"http","description":"Customer API key sent as a bearer token","scheme":"bearer","bearerFormat":"API Key"}}},"security":[{"CustomerApiKey":[]}],"tags":[{"name":"External Coding","description":"Public CaaS endpoints"}]}