{"openapi":"3.1.1","info":{"title":"Twig public API","version":"0.1.0-alpha","description":"Portable durable workspace lifecycle. Storage safety qualification is explicit; see validation documentation."},"servers":[{"url":"https://dev.twig.dev/api/v1"}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer"},"browserSession":{"type":"apiKey","in":"cookie","name":"twig.session_token"}}},"paths":{"/health":{"get":{"operationId":"get__health","summary":"GET /health","parameters":[],"security":[],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}}}},"/config":{"get":{"operationId":"get__config","summary":"GET /config","parameters":[],"security":[],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}}}},"/auth/register":{"post":{"operationId":"post__auth_register","summary":"POST /auth/register","parameters":[{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"password":{"type":"string","minLength":12,"maxLength":256},"name":{"type":"string","minLength":1,"maxLength":100},"organization_name":{"type":"string","minLength":1,"maxLength":100}},"required":["email","password","name","organization_name"],"additionalProperties":false}}}}}},"/auth/login":{"post":{"operationId":"post__auth_login","summary":"POST /auth/login","parameters":[{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"password":{"type":"string","minLength":1,"maxLength":256}},"required":["email","password"],"additionalProperties":false}}}}}},"/auth/session":{"get":{"operationId":"get__auth_session","summary":"GET /auth/session","parameters":[],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}}}},"/auth/logout":{"post":{"operationId":"post__auth_logout","summary":"POST /auth/logout","parameters":[{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}}}},"/auth/password/reset/request":{"post":{"operationId":"post__auth_password_reset_request","summary":"POST /auth/password/reset/request","parameters":[{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"required":["email"],"additionalProperties":false}}}}}},"/auth/password/reset/confirm":{"post":{"operationId":"post__auth_password_reset_confirm","summary":"POST /auth/password/reset/confirm","parameters":[{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"token":{"type":"string","minLength":20,"maxLength":4096},"password":{"type":"string","minLength":12,"maxLength":256}},"required":["token","password"],"additionalProperties":false}}}}}},"/auth/verify-email/request":{"post":{"operationId":"post__auth_verify_email_request","summary":"POST /auth/verify-email/request","parameters":[{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}}}},"/auth/verify-email/confirm":{"post":{"operationId":"post__auth_verify_email_confirm","summary":"POST /auth/verify-email/confirm","parameters":[{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"token":{"type":"string","minLength":20,"maxLength":4096}},"required":["token"],"additionalProperties":false}}}}}},"/orgs":{"get":{"operationId":"get__orgs","summary":"GET /orgs","parameters":[],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}}},"post":{"operationId":"post__orgs","summary":"POST /orgs","parameters":[{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100}},"required":["name"],"additionalProperties":false}}}}}},"/orgs/{org}":{"get":{"operationId":"get__orgs_org_","summary":"GET /orgs/{org}","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}}}},"/orgs/{org}/members":{"get":{"operationId":"get__orgs_org_members","summary":"GET /orgs/{org}/members","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}}}},"/orgs/{org}/members/{user}":{"delete":{"operationId":"delete__orgs_org_members_user_","summary":"DELETE /orgs/{org}/members/{user}","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"user","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}}}},"/orgs/{org}/invitations":{"post":{"operationId":"post__orgs_org_invitations","summary":"POST /orgs/{org}/invitations","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"role":{"default":"member","type":"string","enum":["admin","member","viewer"]}},"required":["email"],"additionalProperties":false}}}}}},"/invitations/accept":{"post":{"operationId":"post__invitations_accept","summary":"POST /invitations/accept","parameters":[{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"token":{"type":"string","minLength":20,"maxLength":4096}},"required":["token"],"additionalProperties":false}}}}}},"/orgs/{org}/keys":{"get":{"operationId":"get__orgs_org_keys","summary":"GET /orgs/{org}/keys","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}}},"post":{"operationId":"post__orgs_org_keys","summary":"POST /orgs/{org}/keys","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"scopes":{"default":["read","write"],"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","enum":["read","write","admin"]}}},"required":["name"],"additionalProperties":false}}}}}},"/orgs/{org}/keys/{key}":{"delete":{"operationId":"delete__orgs_org_keys_key_","summary":"DELETE /orgs/{org}/keys/{key}","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"key","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}}}},"/orgs/{org}/usage":{"get":{"operationId":"get__orgs_org_usage","summary":"GET /orgs/{org}/usage","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}}}},"/orgs/{org}/audit":{"get":{"operationId":"get__orgs_org_audit","summary":"GET /orgs/{org}/audit","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}}}},"/orgs/{org}/billing":{"get":{"operationId":"get__orgs_org_billing","summary":"GET /orgs/{org}/billing","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}}}},"/orgs/{org}/billing/checkout":{"post":{"operationId":"post__orgs_org_billing_checkout","summary":"POST /orgs/{org}/billing/checkout","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"plan":{"type":"string","enum":["developer","team"]}},"required":["plan"],"additionalProperties":false}}}}}},"/orgs/{org}/billing/portal":{"post":{"operationId":"post__orgs_org_billing_portal","summary":"POST /orgs/{org}/billing/portal","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}}}},"/orgs/{org}/disks":{"get":{"operationId":"get__orgs_org_disks","summary":"GET /orgs/{org}/disks","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}}},"post":{"operationId":"post__orgs_org_disks","summary":"POST /orgs/{org}/disks","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"region":{"default":"us-west1","type":"string","pattern":"^[a-z][a-z0-9-]{0,62}$"},"size_gib":{"default":8,"type":"integer","minimum":1,"maximum":1024},"template_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":100},{"type":"null"}]}},"required":["name"],"additionalProperties":false}}}}}},"/orgs/{org}/templates":{"get":{"operationId":"get__orgs_org_templates","summary":"GET /orgs/{org}/templates","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}}}},"/orgs/{org}/disks/{disk}":{"get":{"operationId":"get__orgs_org_disks_disk_","summary":"GET /orgs/{org}/disks/{disk}","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"disk","required":true,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}}},"patch":{"operationId":"patch__orgs_org_disks_disk_","summary":"PATCH /orgs/{org}/disks/{disk}","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"disk","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100}},"required":["name"],"additionalProperties":false}}}}},"delete":{"operationId":"delete__orgs_org_disks_disk_","summary":"DELETE /orgs/{org}/disks/{disk}","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"disk","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}}}},"/orgs/{org}/disks/{disk}/fork":{"post":{"operationId":"post__orgs_org_disks_disk_fork","summary":"POST /orgs/{org}/disks/{disk}/fork","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"disk","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"checkpoint_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":100},{"type":"null"}]}},"required":["name"],"additionalProperties":false}}}}}},"/orgs/{org}/disks/{disk}/template":{"post":{"operationId":"post__orgs_org_disks_disk_template","summary":"POST /orgs/{org}/disks/{disk}/template","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"disk","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100}},"required":["name"],"additionalProperties":false}}}}}},"/orgs/{org}/disks/{disk}/checkpoints":{"get":{"operationId":"get__orgs_org_disks_disk_checkpoints","summary":"GET /orgs/{org}/disks/{disk}/checkpoints","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"disk","required":true,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"description":"Default waits for verified committed publication (201). Explicit wait_for_publication:false can return trusted durable local capture (202, status captured/publication_status pending/captured_at), which is not bucket publication. Poll checkpoints for committed publication."},"post":{"operationId":"post__orgs_org_disks_disk_checkpoints","summary":"POST /orgs/{org}/disks/{disk}/checkpoints","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"disk","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"operation_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,100}$"},"attachment_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":100},{"type":"null"}]},"wait_for_publication":{"type":"boolean"}},"required":["operation_id"],"additionalProperties":false}}}},"description":"Default waits for verified committed publication (201). Explicit wait_for_publication:false can return trusted durable local capture (202, status captured/publication_status pending/captured_at), which is not bucket publication. Poll checkpoints for committed publication."}},"/orgs/{org}/disks/{disk}/restore":{"post":{"operationId":"post__orgs_org_disks_disk_restore","summary":"POST /orgs/{org}/disks/{disk}/restore","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"disk","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"operation_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,100}$"},"checkpoint_id":{"type":"string","minLength":1,"maxLength":100}},"required":["operation_id","checkpoint_id"],"additionalProperties":false}}}}}},"/orgs/{org}/disks/{disk}/attachments":{"get":{"operationId":"get__orgs_org_disks_disk_attachments","summary":"GET /orgs/{org}/disks/{disk}/attachments","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"disk","required":true,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"description":"One writer lease. Immutable readers are currently unavailable (reader_journal_unqualified). Attachment TLS secrets are returned only at creation."},"post":{"operationId":"post__orgs_org_disks_disk_attachments","summary":"POST /orgs/{org}/disks/{disk}/attachments","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"disk","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"owner":{"type":"string","minLength":1,"maxLength":100},"ttl_seconds":{"default":60,"type":"integer","minimum":10,"maximum":300},"role":{"default":"writer","type":"string","enum":["writer","reader"]},"checkpoint_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":100},{"type":"null"}]}},"required":["owner"],"additionalProperties":false}}}},"description":"One writer lease. Immutable readers are currently unavailable (reader_journal_unqualified). Attachment TLS secrets are returned only at creation."}},"/orgs/{org}/disks/{disk}/attachments/{attachment}/renew":{"post":{"operationId":"post__orgs_org_disks_disk_attachments_attachment_renew","summary":"POST /orgs/{org}/disks/{disk}/attachments/{attachment}/renew","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"disk","required":true,"schema":{"type":"string"}},{"in":"path","name":"attachment","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ttl_seconds":{"default":60,"type":"integer","minimum":10,"maximum":300}},"additionalProperties":false}}}},"description":"One writer lease. Immutable readers are currently unavailable (reader_journal_unqualified). Attachment TLS secrets are returned only at creation."}},"/orgs/{org}/disks/{disk}/attachments/{attachment}":{"delete":{"operationId":"delete__orgs_org_disks_disk_attachments_attachment_","summary":"DELETE /orgs/{org}/disks/{disk}/attachments/{attachment}","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"disk","required":true,"schema":{"type":"string"}},{"in":"path","name":"attachment","required":true,"schema":{"type":"string"}},{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{"browserSession":[]}],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}},"description":"One writer lease. Immutable readers are currently unavailable (reader_journal_unqualified). Attachment TLS secrets are returned only at creation."}},"/billing/webhook":{"post":{"operationId":"post__billing_webhook","summary":"POST /billing/webhook","parameters":[{"in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"security":[],"responses":{"200":{"description":"Success (creation routes may return201; deletes204)"},"201":{"description":"Created"},"204":{"description":"Deleted or signed out"},"401":{"description":"Authentication required"},"403":{"description":"Role, scope, CSRF or verification denied"},"409":{"description":"Conflict or idempotency mismatch"},"422":{"description":"Invalid request"},"503":{"description":"Service unavailable; no durability acknowledgement"}}}}}}