{"openapi":"3.0.3","info":{"title":"API Gateway W8 — Pública","description":"API pública W8 — endpoints expostos para integração externa","version":"1.0.9"},"components":{"schemas":{"ApiErrorInput":{"type":"object","properties":{"statusCode":{"type":"number"},"error":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"},"code":{"type":"string"},"messageTitle":{"type":"string"},"fields":{"type":"array","items":{"$ref":"#/components/schemas/FieldErrorInput"}},"details":{}},"required":["statusCode","error","message","requestId"]},"FieldErrorInput":{"type":"object","properties":{"name":{"type":"string"},"message":{"type":"string"}},"required":["name","message"]},"LoginInputInput":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"password":{"type":"string","minLength":8}},"required":["email","password"]},"LoginResponseInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"orgRole":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]}},"required":["id","organizationId","orgRole"]},"CreateUserInputInput":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"password":{"type":"string","minLength":8},"platformRole":{"type":"string","enum":["SUPER"]},"name":{"type":"string","minLength":2,"maxLength":100},"whatsapp":{"type":"string","maxLength":20},"avatarUrl":{"type":"string","format":"uri"}},"required":["email","password"]},"UserInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"nullable":true,"type":"string"},"whatsapp":{"nullable":true,"type":"string"},"avatarUrl":{"nullable":true,"type":"string"},"platformRole":{"nullable":true,"type":"string","enum":["SUPER","MEMBER"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","email"]},"UserListInput":{"type":"array","items":{"$ref":"#/components/schemas/UserInput"}},"UserWithMembershipsInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"memberships":{"type":"array","items":{"type":"object","properties":{"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"role":{"type":"string"},"organization":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"}},"required":["id","name"]}},"required":["organizationId","role"]}},"createdAt":{"type":"string"}},"required":["id","email","memberships","createdAt"]},"UserOrganizationInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"},"domain":{"nullable":true,"type":"string"},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]}},"required":["id","name","slug","domain","role"]},"UserOrganizationListInput":{"type":"array","items":{"$ref":"#/components/schemas/UserOrganizationInput"}},"CreateOrganizationInputInput":{"type":"object","properties":{"name":{"type":"string","minLength":3,"maxLength":100},"domain":{"type":"string","minLength":3,"maxLength":20},"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["name","domain"]},"UpdateOrganizationInputInput":{"type":"object","properties":{"name":{"type":"string","minLength":3,"maxLength":100},"domain":{"type":"string","minLength":3,"maxLength":20},"slug":{"type":"string","minLength":3,"maxLength":50}}},"CreateInvitationInputInput":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([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":["OWNER","ADMIN","MEMBER"]}},"required":["email"]},"AcceptInvitationInputInput":{"type":"object","properties":{"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"UpdateMemberRoleInputInput":{"type":"object","properties":{"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]}},"required":["role"]},"OrganizationInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"},"domain":{"nullable":true,"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","slug","domain","createdAt","updatedAt"]},"OrganizationFullInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"},"domain":{"nullable":true,"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"orgProjects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"projectDestination":{"nullable":true,"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"destUuid":{"type":"string"},"serverId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","destUuid","serverId","createdAt","updatedAt"]},"resources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"fqdn":{"nullable":true,"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","type","kind","status","fqdn","createdAt","updatedAt"]}}},"required":["id","name","slug","organizationId","serverId","createdAt","updatedAt","projectDestination","resources"]}}},"required":["id","name","slug","domain","createdAt","updatedAt","orgProjects"]},"InvitationInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"token":{"type":"string"},"expiresAt":{"type":"string"},"createdAt":{"type":"string"},"organization":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"}},"required":["id","name","slug"]}},"required":["email","role","token","organization"]},"InvitationCreateResultInput":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"token":{"type":"string"},"expiresAt":{"type":"string"},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]}},"required":["email","token","expiresAt","role"]},"MyInvitationsListInput":{"type":"object","properties":{"invitations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"token":{"type":"string"},"status":{"type":"string","enum":["PENDING","ACCEPTED","EXPIRED","REVOKED"]},"expiresAt":{"type":"string"},"createdAt":{"type":"string"},"organization":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"}},"required":["id","name","slug"]},"invitedBy":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"required":["id","email"]}},"required":["id","email","role","token","status","expiresAt","createdAt","organization","invitedBy"]}}},"required":["invitations"]},"InvitationDeclinedInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["REVOKED"]}},"required":["id","status"]},"MembershipListInput":{"type":"object","properties":{"members":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"platformRole":{"nullable":true,"type":"string","enum":["SUPER","MEMBER"]}},"required":["id","email","platformRole"]}},"required":["id","userId","role","createdAt","updatedAt","user"]}}},"required":["members"]},"MembershipInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"updatedAt":{"type":"string"}},"required":["id","userId","role","updatedAt"]},"CreateProjectInputInput":{"type":"object","properties":{"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":3},"slug":{"type":"string"},"destinationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["organizationId","name"]},"UpdateProjectInputInput":{"type":"object","properties":{"name":{"type":"string","minLength":3}},"required":["name"]},"ProjectInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"},"organizationId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"serverId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"destinationId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name"]},"ProjectListInput":{"type":"array","items":{"$ref":"#/components/schemas/ProjectInput"}},"ProjectWithDestinationInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"serverId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"destination":{"nullable":true,"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"}},"required":["id","name"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","slug","organizationId","serverId","destination","createdAt","updatedAt"]},"ProjectToolListInput":{"type":"array","items":{"type":"object","properties":{"tool":{"type":"string"},"available":{"type":"boolean"}},"required":["tool","available"]}},"ProjectWithResourcesListInput":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"resources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string"},"status":{"type":"string"},"fqdn":{"nullable":true,"type":"string"}},"required":["id","kind","status","fqdn"]}}},"required":["id","name","slug","organizationId","resources"]}},"CreateDockerImageInputInput":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":2,"maxLength":30,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$"},"slug":{"type":"string","minLength":2,"maxLength":30,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$"},"description":{"type":"string"},"dockerImage":{"type":"string","minLength":1},"dockerTag":{"default":"latest","type":"string"},"port":{"default":80,"type":"integer","minimum":1,"maximum":65535},"portsMappings":{"type":"string"},"fqdn":{"type":"string","format":"uri"},"generateDomain":{"default":true,"type":"boolean"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"}},"limits":{"default":{"cpus":"1","memory":"1024M","memorySwap":"1536M"},"type":"object","properties":{"cpus":{"default":"1","type":"string"},"memory":{"default":"1024M","type":"string"},"memorySwap":{"default":"1536M","type":"string"}}},"instantDeploy":{"default":false,"type":"boolean"},"connectToDockerNetwork":{"default":true,"type":"boolean"},"environment":{"type":"string","enum":["PRODUCTION","STAGING","DEVELOPMENT"]}},"required":["projectId","name","slug","dockerImage"]},"CreatePublicGithubInputInput":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":2,"maxLength":30,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$"},"slug":{"type":"string","minLength":2,"maxLength":30,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$"},"gitRepository":{"type":"string","minLength":1},"gitBranch":{"default":"main","type":"string","minLength":1},"buildMode":{"type":"string","enum":["nixpacks","dockerfile","static"]},"fqdn":{"type":"string","format":"uri"},"generateDomain":{"default":true,"type":"boolean"},"instantDeploy":{"default":false,"type":"boolean"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"}},"limits":{"default":{"cpus":"1","memory":"512M","memorySwap":"512M"},"type":"object","properties":{"cpus":{"default":"1","type":"string"},"memory":{"default":"512M","type":"string"},"memorySwap":{"default":"512M","type":"string"}}},"buildConfig":{"type":"object","properties":{"baseDirectory":{"type":"string"},"publishDirectory":{"type":"string"},"installCommand":{"type":"string"},"buildCommand":{"type":"string"},"startCommand":{"type":"string"},"dockerfileLocation":{"type":"string"},"staticImage":{"type":"string"},"isSpa":{"type":"boolean"},"portsExposes":{"type":"string"},"portsMappings":{"type":"string"},"isAutoDeployEnabled":{"type":"boolean"},"watchPaths":{"type":"string"},"isForceHttpsEnabled":{"type":"boolean"},"autogenerateDomain":{"type":"boolean"},"isContainerLabelEscapeEnabled":{"type":"boolean"},"preDeploymentCommand":{"type":"string"},"preDeploymentCommandContainer":{"type":"string"},"postDeploymentCommand":{"type":"string"},"postDeploymentCommandContainer":{"type":"string"},"redirect":{"type":"string"},"healthCheckEnabled":{"type":"boolean"},"healthCheckPath":{"type":"string"},"healthCheckPort":{"type":"string"},"healthCheckHost":{"type":"string"},"healthCheckMethod":{"type":"string"},"healthCheckReturnCode":{"type":"number"},"healthCheckScheme":{"type":"string"},"healthCheckResponseText":{"type":"string"},"healthCheckInterval":{"type":"number"},"healthCheckTimeout":{"type":"number"},"healthCheckRetries":{"type":"number"},"healthCheckStartPeriod":{"type":"number"}}},"environment":{"type":"string","enum":["PRODUCTION","STAGING","DEVELOPMENT"]}},"required":["projectId","name","gitRepository","buildMode"]},"UpdateResourceInputInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"slug":{"type":"string","minLength":2,"maxLength":50,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$"},"description":{"type":"string"},"git_repository":{"type":"string"},"git_branch":{"type":"string"},"build_pack":{"type":"string","enum":["nixpacks","dockerfile","dockercompose","dockerimage","static"]},"install_command":{"type":"string"},"build_command":{"type":"string"},"start_command":{"type":"string"},"base_directory":{"type":"string"},"publish_directory":{"type":"string"},"is_static":{"type":"boolean"},"is_spa":{"type":"boolean"},"static_image":{"type":"string"},"dockerfile":{"type":"string"},"dockerfile_location":{"type":"string"},"docker_registry_image_name":{"type":"string"},"docker_registry_image_tag":{"type":"string"},"docker_compose_location":{"type":"string"},"docker_compose_raw":{"type":"string"},"docker_compose_custom_start_command":{"type":"string"},"docker_compose_custom_build_command":{"type":"string"},"docker_compose_domains":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"domain":{"type":"string"}},"required":["name","domain"]}},"ports_exposes":{"type":"string"},"ports_mappings":{"type":"string"},"domains":{"type":"string"},"health_check_enabled":{"type":"boolean"},"health_check_path":{"type":"string"},"health_check_port":{"type":"string"},"health_check_host":{"type":"string"},"health_check_method":{"type":"string"},"health_check_return_code":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"health_check_scheme":{"type":"string"},"health_check_response_text":{"type":"string"},"health_check_interval":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"health_check_timeout":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"health_check_retries":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"health_check_start_period":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_cpus":{"type":"string"},"limits_memory":{"type":"string"},"limits_memory_swap":{"type":"string"},"limits_memory_swappiness":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_memory_reservation":{"type":"string"},"limits_cpuset":{"type":"string"},"limits_cpu_shares":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"watch_paths":{"type":"string"},"is_auto_deploy_enabled":{"type":"boolean"},"is_force_https_enabled":{"type":"boolean"},"use_build_server":{"type":"boolean"},"instant_deploy":{"type":"boolean"},"redirect":{"type":"string"},"pre_deployment_command":{"type":"string"},"pre_deployment_command_container":{"type":"string"},"post_deployment_command":{"type":"string"},"post_deployment_command_container":{"type":"string"},"custom_nginx_configuration":{"type":"string"},"is_http_basic_auth_enabled":{"type":"boolean"},"http_basic_auth_username":{"type":"string"},"http_basic_auth_password":{"type":"string"},"custom_labels":{"type":"string"},"custom_docker_run_options":{"type":"string"},"connect_to_docker_network":{"type":"boolean"},"force_domain_override":{"type":"boolean"},"is_container_label_escape_enabled":{"type":"boolean"},"manual_webhook_secret_github":{"type":"string"},"manual_webhook_secret_gitlab":{"type":"string"},"manual_webhook_secret_bitbucket":{"type":"string"},"manual_webhook_secret_gitea":{"type":"string"},"environment":{"type":"string","enum":["PRODUCTION","STAGING","DEVELOPMENT"]}}},"UpdateResourceDomainInputInput":{"type":"object","properties":{"fqdn":{"type":"string","minLength":1},"domains":{"type":"array","items":{"type":"string","minLength":1}}}},"CreateEnvInputInput":{"type":"object","properties":{"key":{"type":"string","minLength":1},"value":{"type":"string"},"is_preview":{"type":"boolean"},"is_literal":{"type":"boolean"},"is_multiline":{"type":"boolean"},"is_shown_once":{"type":"boolean"},"is_buildtime":{"type":"boolean"},"is_runtime":{"type":"boolean"}},"required":["key","value"]},"UpdateEnvInputInput":{"type":"object","properties":{"key":{"type":"string","minLength":1},"value":{"type":"string"},"is_preview":{"type":"boolean"},"is_literal":{"type":"boolean"},"is_multiline":{"type":"boolean"},"is_shown_once":{"type":"boolean"},"is_buildtime":{"type":"boolean"},"is_runtime":{"type":"boolean"}},"required":["key","value"]},"BulkUpdateEnvInputInput":{"anyOf":[{"type":"object","properties":{"set":{"type":"object","additionalProperties":{"type":"string"}},"unset":{"type":"array","items":{"type":"string","minLength":1}}}},{"type":"object","properties":{"data":{"minItems":1,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","minLength":1},"value":{"type":"string"},"is_preview":{"type":"boolean"},"is_literal":{"type":"boolean"},"is_multiline":{"type":"boolean"},"is_shown_once":{"type":"boolean"},"is_buildtime":{"type":"boolean"},"is_runtime":{"type":"boolean"}},"required":["key","value"]}}},"required":["data"]}]},"EnvResponseInput":{"type":"object","properties":{"uuid":{"type":"string"},"key":{"type":"string"},"value":{"type":"string"},"isPreview":{"type":"boolean"},"isLiteral":{"type":"boolean"},"isMultiline":{"type":"boolean"},"isBuildtime":{"type":"boolean"},"isRuntime":{"type":"boolean"}},"required":["uuid","key","value"]},"ProvisionInputInput":{"type":"object","properties":{"resources":{"minItems":1,"type":"array","items":{"type":"object","properties":{"tool":{"type":"string"},"version":{"type":"string"},"template":{"type":"string"},"name":{"type":"string","minLength":2,"maxLength":50,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9 -]*[a-zA-Z0-9]$"},"slug":{"type":"string","minLength":2,"maxLength":50,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"description":{"type":"string"},"fqdn":{"type":"string","format":"uri"},"databaseAccountId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"}},"limits":{"type":"object","properties":{"cpus":{"type":"string"},"memory":{"type":"string"}}}},"required":["tool","name","slug"]}}},"required":["resources"]},"ProvisionResponseInput":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"tool":{"type":"string"},"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"appUuid":{"nullable":true,"type":"string"}},"required":["tool","resourceId","appUuid"]}}},"required":["results"]},"ResourceInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"category":{"type":"string","enum":["application","service"]},"status":{"type":"string"},"environment":{"type":"string","enum":["PRODUCTION","STAGING","DEVELOPMENT"]},"isShared":{"type":"boolean"},"isWorker":{"type":"boolean"},"fqdn":{"nullable":true,"type":"string"},"domains":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"serviceName":{"type":"string"}},"required":["url","serviceName"]}},"totalDomains":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"services":{"type":"array","items":{"type":"string"}},"sourceId":{"nullable":true,"type":"string"},"gitRepository":{"nullable":true,"type":"string"},"gitBranch":{"nullable":true,"type":"string"},"activity":{"nullable":true,"type":"object","properties":{"activity":{"nullable":true,"type":"string"},"activityPhase":{"nullable":true,"type":"string"},"activityStatus":{"nullable":true,"type":"string"},"activityStartedAt":{"nullable":true,"type":"string"},"activityUpdatedAt":{"nullable":true,"type":"string"},"activityPhases":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"status":{"type":"string","enum":["pending","running","completed","failed"]},"startedAt":{"type":"string"},"completedAt":{"type":"string"},"durationMs":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"error":{"type":"string"},"meta":{"type":"object","additionalProperties":{}}},"required":["key","status"]}}},"required":["activity","activityPhase","activityStatus","activityStartedAt","activityUpdatedAt","activityPhases"]},"config":{"nullable":true,"type":"object","properties":{"buildPack":{"nullable":true,"type":"string"},"installCommand":{"nullable":true,"type":"string"},"buildCommand":{"nullable":true,"type":"string"},"startCommand":{"nullable":true,"type":"string"},"baseDirectory":{"nullable":true,"type":"string"},"publishDirectory":{"nullable":true,"type":"string"},"isStatic":{"nullable":true,"type":"boolean"},"isSpa":{"nullable":true,"type":"boolean"},"staticImage":{"nullable":true,"type":"string"},"dockerfile":{"nullable":true,"type":"string"},"dockerfileLocation":{"nullable":true,"type":"string"},"dockerRegistryImageName":{"nullable":true,"type":"string"},"dockerRegistryImageTag":{"nullable":true,"type":"string"},"dockerComposeLocation":{"nullable":true,"type":"string"},"dockerComposeCustomStartCommand":{"nullable":true,"type":"string"},"dockerComposeCustomBuildCommand":{"nullable":true,"type":"string"},"dockerComposeDomains":{"nullable":true,"type":"string"},"portsExposes":{"nullable":true,"type":"string"},"portsMappings":{"nullable":true,"type":"string"},"healthCheckEnabled":{"nullable":true,"type":"boolean"},"healthCheckPath":{"nullable":true,"type":"string"},"healthCheckPort":{"nullable":true,"type":"string"},"healthCheckHost":{"nullable":true,"type":"string"},"healthCheckMethod":{"nullable":true,"type":"string"},"healthCheckReturnCode":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"healthCheckScheme":{"nullable":true,"type":"string"},"healthCheckResponseText":{"nullable":true,"type":"string"},"healthCheckInterval":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"healthCheckTimeout":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"healthCheckRetries":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"healthCheckStartPeriod":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limitsCpus":{"nullable":true,"type":"string"},"limitsMemory":{"nullable":true,"type":"string"},"limitsMemorySwap":{"nullable":true,"type":"string"},"limitsMemorySwappiness":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limitsMemoryReservation":{"nullable":true,"type":"string"},"limitsCpuset":{"nullable":true,"type":"string"},"limitsCpuShares":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"watchPaths":{"nullable":true,"type":"string"},"isAutoDeployEnabled":{"nullable":true,"type":"boolean"},"isForceHttpsEnabled":{"nullable":true,"type":"boolean"},"useBuildServer":{"nullable":true,"type":"boolean"},"instantDeploy":{"nullable":true,"type":"boolean"},"redirect":{"nullable":true,"type":"string"},"preDeploymentCommand":{"nullable":true,"type":"string"},"preDeploymentCommandContainer":{"nullable":true,"type":"string"},"postDeploymentCommand":{"nullable":true,"type":"string"},"postDeploymentCommandContainer":{"nullable":true,"type":"string"},"customNginxConfiguration":{"nullable":true,"type":"string"},"isHttpBasicAuthEnabled":{"nullable":true,"type":"boolean"},"httpBasicAuthUsername":{"nullable":true,"type":"string"},"httpBasicAuthPassword":{"nullable":true,"type":"string"},"customLabels":{"nullable":true,"type":"string"},"customDockerRunOptions":{"nullable":true,"type":"string"},"connectToDockerNetwork":{"nullable":true,"type":"boolean"},"forceDomainOverride":{"nullable":true,"type":"boolean"},"isContainerLabelEscapeEnabled":{"nullable":true,"type":"boolean"},"manualWebhookSecretGithub":{"nullable":true,"type":"string"},"manualWebhookSecretGitlab":{"nullable":true,"type":"string"},"manualWebhookSecretBitbucket":{"nullable":true,"type":"string"},"manualWebhookSecretGitea":{"nullable":true,"type":"string"}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","projectId","type","kind","name","slug","category","status","environment","isShared","isWorker","fqdn","domains","totalDomains","services","sourceId","gitRepository","gitBranch","createdAt","updatedAt"]},"ResourceAdminInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"category":{"type":"string","enum":["application","service"]},"status":{"type":"string"},"environment":{"type":"string","enum":["PRODUCTION","STAGING","DEVELOPMENT"]},"isShared":{"type":"boolean"},"isWorker":{"type":"boolean"},"fqdn":{"nullable":true,"type":"string"},"domains":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"serviceName":{"type":"string"}},"required":["url","serviceName"]}},"totalDomains":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"services":{"type":"array","items":{"type":"string"}},"sourceId":{"nullable":true,"type":"string"},"gitRepository":{"nullable":true,"type":"string"},"gitBranch":{"nullable":true,"type":"string"},"activity":{"nullable":true,"type":"object","properties":{"activity":{"nullable":true,"type":"string"},"activityPhase":{"nullable":true,"type":"string"},"activityStatus":{"nullable":true,"type":"string"},"activityStartedAt":{"nullable":true,"type":"string"},"activityUpdatedAt":{"nullable":true,"type":"string"},"activityPhases":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"status":{"type":"string","enum":["pending","running","completed","failed"]},"startedAt":{"type":"string"},"completedAt":{"type":"string"},"durationMs":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"error":{"type":"string"},"meta":{"type":"object","additionalProperties":{}}},"required":["key","status"]}}},"required":["activity","activityPhase","activityStatus","activityStartedAt","activityUpdatedAt","activityPhases"]},"image":{"type":"string"},"version":{"type":"string"},"cpuLimit":{"nullable":true,"type":"string"},"memLimit":{"nullable":true,"type":"string"},"memswapLimit":{"nullable":true,"type":"string"},"meta":{"nullable":true,"type":"object","additionalProperties":{}},"config":{"nullable":true,"type":"object","properties":{"buildPack":{"nullable":true,"type":"string"},"installCommand":{"nullable":true,"type":"string"},"buildCommand":{"nullable":true,"type":"string"},"startCommand":{"nullable":true,"type":"string"},"baseDirectory":{"nullable":true,"type":"string"},"publishDirectory":{"nullable":true,"type":"string"},"isStatic":{"nullable":true,"type":"boolean"},"isSpa":{"nullable":true,"type":"boolean"},"staticImage":{"nullable":true,"type":"string"},"dockerfile":{"nullable":true,"type":"string"},"dockerfileLocation":{"nullable":true,"type":"string"},"dockerRegistryImageName":{"nullable":true,"type":"string"},"dockerRegistryImageTag":{"nullable":true,"type":"string"},"dockerComposeLocation":{"nullable":true,"type":"string"},"dockerComposeCustomStartCommand":{"nullable":true,"type":"string"},"dockerComposeCustomBuildCommand":{"nullable":true,"type":"string"},"dockerComposeDomains":{"nullable":true,"type":"string"},"portsExposes":{"nullable":true,"type":"string"},"portsMappings":{"nullable":true,"type":"string"},"healthCheckEnabled":{"nullable":true,"type":"boolean"},"healthCheckPath":{"nullable":true,"type":"string"},"healthCheckPort":{"nullable":true,"type":"string"},"healthCheckHost":{"nullable":true,"type":"string"},"healthCheckMethod":{"nullable":true,"type":"string"},"healthCheckReturnCode":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"healthCheckScheme":{"nullable":true,"type":"string"},"healthCheckResponseText":{"nullable":true,"type":"string"},"healthCheckInterval":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"healthCheckTimeout":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"healthCheckRetries":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"healthCheckStartPeriod":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limitsCpus":{"nullable":true,"type":"string"},"limitsMemory":{"nullable":true,"type":"string"},"limitsMemorySwap":{"nullable":true,"type":"string"},"limitsMemorySwappiness":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limitsMemoryReservation":{"nullable":true,"type":"string"},"limitsCpuset":{"nullable":true,"type":"string"},"limitsCpuShares":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"watchPaths":{"nullable":true,"type":"string"},"isAutoDeployEnabled":{"nullable":true,"type":"boolean"},"isForceHttpsEnabled":{"nullable":true,"type":"boolean"},"useBuildServer":{"nullable":true,"type":"boolean"},"instantDeploy":{"nullable":true,"type":"boolean"},"redirect":{"nullable":true,"type":"string"},"preDeploymentCommand":{"nullable":true,"type":"string"},"preDeploymentCommandContainer":{"nullable":true,"type":"string"},"postDeploymentCommand":{"nullable":true,"type":"string"},"postDeploymentCommandContainer":{"nullable":true,"type":"string"},"customNginxConfiguration":{"nullable":true,"type":"string"},"isHttpBasicAuthEnabled":{"nullable":true,"type":"boolean"},"httpBasicAuthUsername":{"nullable":true,"type":"string"},"httpBasicAuthPassword":{"nullable":true,"type":"string"},"customLabels":{"nullable":true,"type":"string"},"customDockerRunOptions":{"nullable":true,"type":"string"},"connectToDockerNetwork":{"nullable":true,"type":"boolean"},"forceDomainOverride":{"nullable":true,"type":"boolean"},"isContainerLabelEscapeEnabled":{"nullable":true,"type":"boolean"},"manualWebhookSecretGithub":{"nullable":true,"type":"string"},"manualWebhookSecretGitlab":{"nullable":true,"type":"string"},"manualWebhookSecretBitbucket":{"nullable":true,"type":"string"},"manualWebhookSecretGitea":{"nullable":true,"type":"string"}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","projectId","type","kind","name","slug","category","status","environment","isShared","isWorker","fqdn","domains","totalDomains","services","sourceId","gitRepository","gitBranch","createdAt","updatedAt"]},"TriggerDeployInputInput":{"type":"object","properties":{"force":{"default":false,"type":"boolean"}}},"DeploymentInput":{"type":"object","properties":{"id":{"type":"number"},"deploymentUuid":{"type":"string"},"applicationId":{"type":"string"},"status":{"type":"string"},"commit":{"nullable":true,"type":"string"},"commitMessage":{"nullable":true,"type":"string"},"commitUrl":{"nullable":true,"type":"string"},"forceRebuild":{"type":"boolean"},"isWebhook":{"type":"boolean"},"isApi":{"type":"boolean"},"restartOnly":{"type":"boolean"},"rollback":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"applicationName":{"nullable":true,"type":"string"},"author":{"nullable":true,"type":"object","properties":{"login":{"nullable":true,"type":"string"},"name":{"nullable":true,"type":"string"},"avatarUrl":{"nullable":true,"type":"string"}},"required":["login","name","avatarUrl"]}},"required":["id","deploymentUuid","applicationId","status","commit","commitMessage","commitUrl","forceRebuild","isWebhook","isApi","restartOnly","rollback","createdAt","updatedAt","applicationName","author"]},"TriggerDeployResultInput":{"type":"object","properties":{"message":{"type":"string"},"resourceUuid":{"type":"string"},"deploymentUuid":{"type":"string"}},"required":["message","resourceUuid","deploymentUuid"]},"ToolInput":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"category":{"type":"string","enum":["automation","crm","chat","monitoring","database","other"]},"logo":{"type":"string"},"website":{"type":"string"},"documentation":{"type":"string"},"dbType":{"type":"string","enum":["postgres","mariadb","redis","sqlite","none"]},"auxiliaryDBs":{"type":"array","items":{"type":"string"}},"dependentServices":{"type":"array","items":{"type":"string"}},"versions":{"type":"object","additionalProperties":{"type":"object","properties":{"version":{"type":"string"},"image":{"type":"string"},"releaseDate":{"type":"string"},"deprecated":{"type":"boolean"},"minResources":{"type":"object","properties":{"cpu":{"type":"string"},"memory":{"type":"string"}},"required":["cpu","memory"]},"templates":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"}},"required":["name","description"]}}},"required":["version","image","templates"]}},"defaultVersion":{"type":"string"},"enabled":{"type":"boolean"},"beta":{"type":"boolean"},"superOnly":{"type":"boolean"}},"required":["id","name","description","category","dbType","auxiliaryDBs","dependentServices","versions","defaultVersion","enabled"]},"ToolListInput":{"type":"array","items":{"$ref":"#/components/schemas/ToolInput"}},"CreateDatabaseInputInput":{"oneOf":[{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":3},"description":{"type":"string"},"image":{"type":"string"},"is_public":{"default":false,"type":"boolean"},"public_port":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"wevy_lb_rule_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"limits_memory":{"type":"string"},"limits_memory_swap":{"type":"string"},"limits_memory_swappiness":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_memory_reservation":{"type":"string"},"limits_cpus":{"type":"string"},"limits_cpuset":{"type":"string"},"limits_cpu_shares":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"instant_deploy":{"type":"boolean"},"kind":{"type":"string","enum":["postgres"]},"postgres_user":{"default":"postgres","type":"string","minLength":1,"maxLength":50},"postgres_db":{"default":"postgres","type":"string"},"postgres_initdb_args":{"type":"string"},"postgres_host_auth_method":{"type":"string"},"postgres_conf":{"type":"string"}},"required":["projectId","name","kind"]},{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":3},"description":{"type":"string"},"image":{"type":"string"},"is_public":{"default":false,"type":"boolean"},"public_port":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"wevy_lb_rule_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"limits_memory":{"type":"string"},"limits_memory_swap":{"type":"string"},"limits_memory_swappiness":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_memory_reservation":{"type":"string"},"limits_cpus":{"type":"string"},"limits_cpuset":{"type":"string"},"limits_cpu_shares":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"instant_deploy":{"type":"boolean"},"kind":{"type":"string","enum":["mariadb"]},"mariadb_user":{"default":"mariadb","type":"string","minLength":1,"maxLength":32},"mariadb_database":{"default":"mariadb","type":"string","minLength":1,"maxLength":64}},"required":["projectId","name","kind"]},{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":3},"description":{"type":"string"},"image":{"type":"string"},"is_public":{"default":false,"type":"boolean"},"public_port":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"wevy_lb_rule_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"limits_memory":{"type":"string"},"limits_memory_swap":{"type":"string"},"limits_memory_swappiness":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_memory_reservation":{"type":"string"},"limits_cpus":{"type":"string"},"limits_cpuset":{"type":"string"},"limits_cpu_shares":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"instant_deploy":{"type":"boolean"},"kind":{"type":"string","enum":["redis"]}},"required":["projectId","name","kind"]},{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":3},"description":{"type":"string"},"image":{"type":"string"},"is_public":{"default":false,"type":"boolean"},"public_port":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"wevy_lb_rule_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"limits_memory":{"type":"string"},"limits_memory_swap":{"type":"string"},"limits_memory_swappiness":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_memory_reservation":{"type":"string"},"limits_cpus":{"type":"string"},"limits_cpuset":{"type":"string"},"limits_cpu_shares":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"instant_deploy":{"type":"boolean"},"kind":{"type":"string","enum":["mysql"]},"mysql_user":{"default":"mysql","type":"string","minLength":1,"maxLength":32},"mysql_database":{"default":"mysql","type":"string","minLength":1,"maxLength":64},"mysql_conf":{"type":"string"}},"required":["projectId","name","kind"]},{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":3},"description":{"type":"string"},"image":{"type":"string"},"is_public":{"default":false,"type":"boolean"},"public_port":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"wevy_lb_rule_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"limits_memory":{"type":"string"},"limits_memory_swap":{"type":"string"},"limits_memory_swappiness":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_memory_reservation":{"type":"string"},"limits_cpus":{"type":"string"},"limits_cpuset":{"type":"string"},"limits_cpu_shares":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"instant_deploy":{"type":"boolean"},"kind":{"type":"string","enum":["mongodb"]},"mongo_initdb_root_username":{"default":"mongodb","type":"string","minLength":1,"maxLength":64},"mongo_initdb_database":{"default":"mongodb","type":"string","minLength":1,"maxLength":64},"mongo_conf":{"type":"string"}},"required":["projectId","name","kind"]},{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":3},"description":{"type":"string"},"image":{"type":"string"},"is_public":{"default":false,"type":"boolean"},"public_port":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"wevy_lb_rule_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"limits_memory":{"type":"string"},"limits_memory_swap":{"type":"string"},"limits_memory_swappiness":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_memory_reservation":{"type":"string"},"limits_cpus":{"type":"string"},"limits_cpuset":{"type":"string"},"limits_cpu_shares":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"instant_deploy":{"type":"boolean"},"kind":{"type":"string","enum":["keydb"]},"keydb_conf":{"type":"string"}},"required":["projectId","name","kind"]},{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":3},"description":{"type":"string"},"image":{"type":"string"},"is_public":{"default":false,"type":"boolean"},"public_port":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"wevy_lb_rule_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"limits_memory":{"type":"string"},"limits_memory_swap":{"type":"string"},"limits_memory_swappiness":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_memory_reservation":{"type":"string"},"limits_cpus":{"type":"string"},"limits_cpuset":{"type":"string"},"limits_cpu_shares":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"instant_deploy":{"type":"boolean"},"kind":{"type":"string","enum":["dragonfly"]}},"required":["projectId","name","kind"]},{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":3},"description":{"type":"string"},"image":{"type":"string"},"is_public":{"default":false,"type":"boolean"},"public_port":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"wevy_lb_rule_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"limits_memory":{"type":"string"},"limits_memory_swap":{"type":"string"},"limits_memory_swappiness":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_memory_reservation":{"type":"string"},"limits_cpus":{"type":"string"},"limits_cpuset":{"type":"string"},"limits_cpu_shares":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"instant_deploy":{"type":"boolean"},"kind":{"type":"string","enum":["clickhouse"]},"clickhouse_admin_user":{"default":"default","type":"string","minLength":1,"maxLength":64}},"required":["projectId","name","kind"]}]},"UpdateDatabaseInputInput":{"type":"object","properties":{"name":{"type":"string","minLength":3},"description":{"type":"string"},"image":{"type":"string"},"is_public":{"type":"boolean"},"public_port":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"wevy_lb_rule_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"limits_memory":{"type":"string"},"limits_memory_swap":{"type":"string"},"limits_memory_swappiness":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_memory_reservation":{"type":"string"},"limits_cpus":{"type":"string"},"limits_cpuset":{"type":"string"},"limits_cpu_shares":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"instant_deploy":{"type":"boolean"}}},"DatabaseInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"image":{"nullable":true,"type":"string"},"version":{"nullable":true,"type":"string"},"status":{"type":"string"},"isShared":{"type":"boolean"},"isPublic":{"type":"boolean"},"publicPort":{"nullable":true,"type":"number"},"publicHost":{"nullable":true,"type":"string"},"connection":{"nullable":true,"type":"object","properties":{"host":{"type":"string"},"port":{"type":"number"},"publicHost":{"nullable":true,"type":"string"},"publicPort":{"nullable":true,"type":"number"},"password":{"type":"string"},"uri":{"type":"string"}},"required":["host","port","publicHost","publicPort","password","uri"]},"cpuLimit":{"nullable":true,"type":"string"},"memLimit":{"nullable":true,"type":"string"},"memswapLimit":{"nullable":true,"type":"string"},"limitsMemorySwappiness":{"nullable":true,"type":"number"},"limitsCpuset":{"nullable":true,"type":"string"},"limitsCpuShares":{"nullable":true,"type":"number"},"limitsMemoryReservation":{"nullable":true,"type":"string"},"meta":{"nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","projectId","type","kind","name","slug","image","version","status","isShared","isPublic","publicPort","publicHost","cpuLimit","memLimit","memswapLimit","createdAt","updatedAt"]},"DatabaseListInput":{"type":"array","items":{"$ref":"#/components/schemas/DatabaseInput"}},"CreateBackupInputInput":{"type":"object","properties":{"frequency":{"type":"string"},"enabled":{"type":"boolean"},"databasesToBackup":{"type":"string"},"dumpAll":{"type":"boolean"},"saveS3":{"type":"boolean"},"s3StorageUuid":{"type":"string"},"retentionAmountLocally":{"type":"integer","minimum":0,"maximum":9007199254740991},"retentionDaysLocally":{"type":"integer","minimum":0,"maximum":9007199254740991},"retentionMaxStorageLocally":{"type":"integer","minimum":0,"maximum":9007199254740991},"retentionAmountS3":{"type":"integer","minimum":0,"maximum":9007199254740991},"retentionDaysS3":{"type":"integer","minimum":0,"maximum":9007199254740991},"retentionMaxStorageS3":{"type":"integer","minimum":0,"maximum":9007199254740991}}},"RestoreBackupInputInput":{"type":"object","properties":{"executionId":{"type":"string","minLength":1},"confirm":{"type":"boolean","enum":[true]}},"required":["executionId","confirm"]},"BackupConfigInput":{"type":"object","properties":{"id":{"type":"number"},"uuid":{"type":"string"},"databaseId":{"type":"number"},"saveS3":{"type":"boolean"},"s3StorageUuid":{"nullable":true,"type":"string"},"enabled":{"type":"boolean"},"databasesToBackup":{"type":"string"},"dumpAll":{"type":"boolean"},"frequency":{"type":"string"},"retentionAmountLocally":{"type":"number"},"retentionDaysLocally":{"type":"number"},"retentionMaxStorageLocally":{"type":"number"},"retentionAmountS3":{"type":"number"},"retentionDaysS3":{"type":"number"},"retentionMaxStorageS3":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","uuid","databaseId","saveS3","s3StorageUuid","enabled","databasesToBackup","dumpAll","frequency","retentionAmountLocally","retentionDaysLocally","retentionMaxStorageLocally","retentionAmountS3","retentionDaysS3","retentionMaxStorageS3","createdAt","updatedAt"]},"BackupExecutionInput":{"type":"object","properties":{"uuid":{"type":"string"},"filename":{"type":"string"},"size":{"type":"number"},"createdAt":{"type":"string"},"message":{"type":"string"},"status":{"type":"string"}},"required":["uuid","filename","size","createdAt","message","status"]},"BackupCreateResultInput":{"type":"object","properties":{"uuid":{"type":"string"}},"required":["uuid"]},"BackupTriggerResultInput":{"type":"object","properties":{"status":{"type":"string","enum":["triggered"]},"backupId":{"type":"string"}},"required":["status","backupId"]},"BackupRestoreResultInput":{"type":"object","properties":{"status":{"type":"string","enum":["restored"]},"executionId":{"type":"string"},"filename":{"type":"string"},"restoredAt":{"type":"string"}},"required":["status","executionId","filename","restoredAt"]},"CreateAccountInputInput":{"type":"object","properties":{"username":{"type":"string","pattern":"^[a-zA-Z0-9_]{1,32}$"},"password":{"type":"string","minLength":12,"maxLength":128},"dbName":{"type":"string","pattern":"^[a-zA-Z0-9_]+$"},"provision":{"default":true,"type":"boolean"}},"required":["username","password","dbName"]},"ResetPasswordInputInput":{"type":"object","properties":{"password":{"type":"string","minLength":12,"maxLength":128}},"required":["password"]},"EnableExtensionsInputInput":{"type":"object","properties":{"extensions":{"minItems":1,"type":"array","items":{"type":"string","enum":["pg_stat_statements","pg_trgm","vector"]}}},"required":["extensions"]},"ExecuteQueryInputInput":{"type":"object","properties":{"sql":{"type":"string","minLength":1,"maxLength":10000},"limit":{"default":500,"type":"integer","minimum":1,"maximum":500},"timeout":{"default":30000,"type":"integer","minimum":1000,"maximum":60000}},"required":["sql"]},"DatabaseAccountInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"password":{"type":"string"},"dbName":{"type":"string"},"isDefault":{"type":"boolean"},"provisioned":{"type":"boolean"},"enabledExtensions":{"type":"array","items":{"type":"string"}},"host":{"type":"string"},"publicPort":{"nullable":true,"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","resourceId","username","password","dbName","isDefault","provisioned","enabledExtensions","host","publicPort","createdAt","updatedAt"]},"DatabaseAccountListInput":{"type":"array","items":{"$ref":"#/components/schemas/DatabaseAccountInput"}},"QueryResultInput":{"type":"object","properties":{"columns":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"]}},"rows":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"rowCount":{"type":"number"},"raw":{"type":"string"}},"required":["columns","rows","rowCount"]},"DatabaseSchemaInput":{"type":"object","properties":{"tables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"schema":{"type":"string"},"columns":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"nullable":{"type":"boolean"},"defaultValue":{"nullable":true,"type":"string"},"isPrimaryKey":{"type":"boolean"},"isUnique":{"type":"boolean"}},"required":["name","type","nullable","defaultValue","isPrimaryKey","isUnique"]}},"primaryKey":{"type":"array","items":{"type":"string"}},"indexes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"columns":{"type":"array","items":{"type":"string"}},"isUnique":{"type":"boolean"}},"required":["name","columns","isUnique"]}}},"required":["name","schema","columns","primaryKey","indexes"]}},"relationships":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"sourceTable":{"type":"string"},"sourceColumns":{"type":"array","items":{"type":"string"}},"targetTable":{"type":"string"},"targetColumns":{"type":"array","items":{"type":"string"}}},"required":["name","sourceTable","sourceColumns","targetTable","targetColumns"]}}},"required":["tables","relationships"]},"CreateServerInputInput":{"type":"object","properties":{"name":{"type":"string","minLength":3,"maxLength":100},"location":{"type":"string","minLength":2,"maxLength":50},"hostname":{"type":"string","minLength":1},"ip":{"type":"string","pattern":"^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$"},"sshAdminIp":{"nullable":true,"type":"string","pattern":"^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$"},"sshPort":{"default":22,"type":"integer","minimum":1,"maximum":65535},"sshKeyId":{"type":"string","minLength":1},"sshUsername":{"default":"opsbot","type":"string","enum":["root","ubuntu","opsbot"]},"serverTimezone":{"default":"America/Sao_Paulo","type":"string"},"cpuCores":{"type":"integer","minimum":1,"maximum":9007199254740991},"ramGB":{"type":"integer","minimum":1,"maximum":9007199254740991},"diskGB":{"type":"integer","minimum":1,"maximum":9007199254740991},"healthStatus":{"default":"unknown","type":"string","enum":["online","offline","maintenance","unknown"]},"isActive":{"default":true,"type":"boolean"},"sharedMariadbContainerName":{"nullable":true,"type":"string"},"sharedMariadbNetwork":{"nullable":true,"type":"string"},"type":{"default":"WORKER","type":"string","enum":["EDGE","BASTION","WORKER","COOLIFY_HOST"]},"category":{"default":"PROD","type":"string","enum":["PROD","DEV"]},"networkLocation":{"default":"INTERNAL","type":"string","enum":["INTERNAL","REMOTE"]},"bastionServerId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"snatOutboundIp":{"nullable":true,"type":"string","pattern":"^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$"}},"required":["name","location","hostname","ip","sshKeyId","cpuCores","ramGB","diskGB"]},"UpdateServerInputInput":{"type":"object","properties":{"name":{"type":"string","minLength":3,"maxLength":100},"location":{"type":"string","minLength":2,"maxLength":50},"hostname":{"type":"string","minLength":1},"ip":{"type":"string","pattern":"^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$"},"sshAdminIp":{"nullable":true,"type":"string","pattern":"^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$"},"sshPort":{"default":22,"type":"integer","minimum":1,"maximum":65535},"sshKeyId":{"type":"string","minLength":1},"sshUsername":{"default":"opsbot","type":"string","enum":["root","ubuntu","opsbot"]},"serverTimezone":{"default":"America/Sao_Paulo","type":"string"},"cpuCores":{"type":"integer","minimum":1,"maximum":9007199254740991},"ramGB":{"type":"integer","minimum":1,"maximum":9007199254740991},"diskGB":{"type":"integer","minimum":1,"maximum":9007199254740991},"healthStatus":{"default":"unknown","type":"string","enum":["online","offline","maintenance","unknown"]},"isActive":{"default":true,"type":"boolean"},"sharedMariadbContainerName":{"nullable":true,"type":"string"},"sharedMariadbNetwork":{"nullable":true,"type":"string"},"type":{"default":"WORKER","type":"string","enum":["EDGE","BASTION","WORKER","COOLIFY_HOST"]},"category":{"default":"PROD","type":"string","enum":["PROD","DEV"]},"networkLocation":{"default":"INTERNAL","type":"string","enum":["INTERNAL","REMOTE"]},"bastionServerId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"snatOutboundIp":{"nullable":true,"type":"string","pattern":"^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$"}}},"ServerInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"location":{"type":"string"},"hostname":{"type":"string"},"ip":{"type":"string"},"sshAdminIp":{"nullable":true,"type":"string"},"sshPort":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sshKeyId":{"type":"string","minLength":1},"sshUsername":{"type":"string"},"serverUuid":{"nullable":true,"type":"string"},"serverTimezone":{"type":"string"},"cpuCores":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"ramGB":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"diskGB":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"healthStatus":{"type":"string","enum":["online","offline","maintenance","unknown"]},"isActive":{"type":"boolean"},"sharedMariadbContainerName":{"nullable":true,"type":"string"},"sharedMariadbNetwork":{"nullable":true,"type":"string"},"type":{"type":"string","enum":["EDGE","BASTION","WORKER","COOLIFY_HOST"]},"category":{"type":"string","enum":["PROD","DEV"]},"networkLocation":{"type":"string","enum":["INTERNAL","REMOTE"]},"bastionServerId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"opsctlVersion":{"nullable":true,"type":"string"},"wgAdmIp":{"nullable":true,"type":"string"},"wgPublicIp":{"nullable":true,"type":"string"},"snatOutboundIp":{"nullable":true,"type":"string"},"adminFqdn":{"nullable":true,"type":"string"},"onboarding":{"type":"object","properties":{"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"completed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"completedWithWarnings":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"failed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pending":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"running":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"notApplicable":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"startedAt":{"nullable":true,"type":"string"},"completedAt":{"nullable":true,"type":"string"}},"required":["total","completed","completedWithWarnings","failed","pending","running","notApplicable","startedAt","completedAt"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","location","hostname","ip","sshAdminIp","sshPort","sshKeyId","sshUsername","serverUuid","serverTimezone","cpuCores","ramGB","diskGB","healthStatus","isActive","type","category","networkLocation","bastionServerId","opsctlVersion","wgAdmIp","wgPublicIp","snatOutboundIp","adminFqdn","onboarding","createdAt","updatedAt"]},"ServerListInput":{"type":"array","items":{"$ref":"#/components/schemas/ServerInput"}},"CreateDestinationInputInput":{"type":"object","properties":{"name":{"type":"string","minLength":3},"destUuid":{"type":"string"},"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["name","destUuid","serverId"]},"DestinationInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"destUuid":{"type":"string"},"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"createdAt":{}},"required":["id","name","destUuid","serverId","createdAt"]},"DestinationListInput":{"type":"array","items":{"$ref":"#/components/schemas/DestinationInput"}},"PgListUsersInputInput":{"type":"object","properties":{"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"container":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$"}},"required":["serverId","container"]},"PgCreateUserInputInput":{"type":"object","properties":{"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"container":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$"},"db":{"type":"string","pattern":"^[a-zA-Z0-9_]+$"},"username":{"type":"string","pattern":"^[a-zA-Z0-9_]{1,32}$"},"password":{"type":"string","minLength":12,"maxLength":128}},"required":["serverId","container","db","username","password"]},"PgListTablesInputInput":{"type":"object","properties":{"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"container":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$"},"db":{"type":"string","pattern":"^[a-zA-Z0-9_]+$"}},"required":["serverId","container","db"]},"PgEnableExtensionsInputInput":{"type":"object","properties":{"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"container":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$"},"db":{"type":"string","pattern":"^[a-zA-Z0-9_]+$"},"extensions":{"minItems":1,"type":"array","items":{"type":"string","pattern":"^[a-zA-Z_][a-zA-Z0-9_-]*$"}}},"required":["serverId","container","db","extensions"]},"PgDropUserInputInput":{"type":"object","properties":{"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"container":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$"},"username":{"type":"string","pattern":"^[a-zA-Z0-9_]{1,32}$"}},"required":["serverId","container","username"]},"MysqlCreateUserInputInput":{"type":"object","properties":{"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"container":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$"},"db":{"type":"string","pattern":"^[a-zA-Z0-9_]{1,64}$"},"username":{"type":"string","pattern":"^[a-zA-Z0-9_]{1,32}$"},"password":{"type":"string","minLength":12,"maxLength":128}},"required":["serverId","container","db","username","password"]},"MysqlDropUserInputInput":{"type":"object","properties":{"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"container":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$"},"username":{"type":"string","pattern":"^[a-zA-Z0-9_]{1,32}$"}},"required":["serverId","container","username"]},"MysqlDropDatabaseInputInput":{"type":"object","properties":{"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"container":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$"},"db":{"type":"string","pattern":"^[a-zA-Z0-9_]{1,64}$"}},"required":["serverId","container","db"]},"MysqlListTablesInputInput":{"type":"object","properties":{"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"container":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$"},"db":{"type":"string","pattern":"^[a-zA-Z0-9_]{1,64}$"}},"required":["serverId","container","db"]},"PgListUsersResultInput":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"}}},"required":["users"]},"PgCreateUserResultInput":{"type":"object","properties":{"created":{"type":"boolean"}},"required":["created"]},"PgListTablesResultInput":{"type":"object","properties":{"tables":{"type":"array","items":{"type":"string"}}},"required":["tables"]},"PgEnableExtensionsResultInput":{"type":"object","properties":{"enabled":{"type":"array","items":{"type":"string"}}},"required":["enabled"]},"PgDropUserResultInput":{"type":"object","properties":{"dropped":{"type":"boolean"}},"required":["dropped"]},"MysqlCreateUserResultInput":{"type":"object","properties":{"created":{"type":"boolean"}},"required":["created"]},"MysqlDropUserResultInput":{"type":"object","properties":{"dropped":{"type":"boolean"}},"required":["dropped"]},"MysqlDropDatabaseResultInput":{"type":"object","properties":{"dropped":{"type":"boolean"}},"required":["dropped"]},"MysqlListTablesResultInput":{"type":"object","properties":{"tables":{"type":"array","items":{"type":"string"}}},"required":["tables"]},"CreateGithubResourceInputInput":{"type":"object","properties":{"sourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"installationId":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":9007199254740991},"name":{"type":"string","minLength":1},"kind":{"type":"string","minLength":1},"repoFullName":{"type":"string","pattern":"^[\\w.-]+\\/[\\w.-]+$"},"branch":{"type":"string","minLength":1},"buildMode":{"type":"string","enum":["nixpacks","dockerfile","static"]},"fqdn":{"type":"string","format":"uri"},"generateDomain":{"default":true,"type":"boolean"},"instantDeploy":{"default":false,"type":"boolean"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"}},"limits":{"default":{"cpus":"1","memory":"512M","memorySwap":"512M"},"type":"object","properties":{"cpus":{"default":"1","type":"string"},"memory":{"default":"512M","type":"string"},"memorySwap":{"default":"512M","type":"string"}}},"buildConfig":{"type":"object","properties":{"baseDirectory":{"type":"string"},"publishDirectory":{"type":"string"},"installCommand":{"type":"string"},"buildCommand":{"type":"string"},"startCommand":{"type":"string"},"dockerfileLocation":{"type":"string"},"staticImage":{"type":"string"},"isSpa":{"type":"boolean"},"portsExposes":{"type":"string"},"portsMappings":{"type":"string"},"isAutoDeployEnabled":{"type":"boolean"},"watchPaths":{"type":"string"},"isForceHttpsEnabled":{"type":"boolean"},"autogenerateDomain":{"type":"boolean"},"isContainerLabelEscapeEnabled":{"type":"boolean"},"preDeploymentCommand":{"type":"string"},"preDeploymentCommandContainer":{"type":"string"},"postDeploymentCommand":{"type":"string"},"postDeploymentCommandContainer":{"type":"string"},"redirect":{"type":"string"},"healthCheckEnabled":{"type":"boolean"},"healthCheckPath":{"type":"string"},"healthCheckPort":{"type":"string"},"healthCheckHost":{"type":"string"},"healthCheckMethod":{"type":"string"},"healthCheckReturnCode":{"type":"number"},"healthCheckScheme":{"type":"string"},"healthCheckResponseText":{"type":"string"},"healthCheckInterval":{"type":"number"},"healthCheckTimeout":{"type":"number"},"healthCheckRetries":{"type":"number"},"healthCheckStartPeriod":{"type":"number"}}}},"required":["repoFullName","branch","buildMode"]},"DeployGithubInputInput":{"type":"object","properties":{"sourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"installationId":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":9007199254740991},"repoFullName":{"type":"string","pattern":"^[\\w.-]+\\/[\\w.-]+$"},"branch":{"type":"string","minLength":1},"buildMode":{"type":"string","enum":["nixpacks","dockerfile"]},"fqdn":{"type":"string","format":"uri"},"instantDeploy":{"default":false,"type":"boolean"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"}},"buildConfig":{"type":"object","properties":{"baseDirectory":{"type":"string"},"publishDirectory":{"type":"string"},"installCommand":{"type":"string"},"buildCommand":{"type":"string"},"startCommand":{"type":"string"},"dockerfileLocation":{"type":"string"},"staticImage":{"type":"string"},"isSpa":{"type":"boolean"},"portsExposes":{"type":"string"},"portsMappings":{"type":"string"},"isAutoDeployEnabled":{"type":"boolean"},"watchPaths":{"type":"string"},"isForceHttpsEnabled":{"type":"boolean"},"autogenerateDomain":{"type":"boolean"},"isContainerLabelEscapeEnabled":{"type":"boolean"},"preDeploymentCommand":{"type":"string"},"preDeploymentCommandContainer":{"type":"string"},"postDeploymentCommand":{"type":"string"},"postDeploymentCommandContainer":{"type":"string"},"redirect":{"type":"string"},"healthCheckEnabled":{"type":"boolean"},"healthCheckPath":{"type":"string"},"healthCheckPort":{"type":"string"},"healthCheckHost":{"type":"string"},"healthCheckMethod":{"type":"string"},"healthCheckReturnCode":{"type":"number"},"healthCheckScheme":{"type":"string"},"healthCheckResponseText":{"type":"string"},"healthCheckInterval":{"type":"number"},"healthCheckTimeout":{"type":"number"},"healthCheckRetries":{"type":"number"},"healthCheckStartPeriod":{"type":"number"}}}},"required":["repoFullName","branch","buildMode"]},"GithubConnectInput":{"type":"object","properties":{"installUrl":{"type":"string"},"expiresAt":{"type":"string"},"message":{"type":"string"}},"required":["installUrl","expiresAt","message"]},"GithubSourceListInput":{"type":"object","properties":{"source":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"installationId":{"type":"number"},"githubAccountLogin":{"nullable":true,"type":"string"},"isActive":{"type":"boolean"},"createdAt":{"type":"string"}},"required":["id","installationId","githubAccountLogin","isActive","createdAt"]},"message":{"type":"string"}},"required":["source"]},"GithubRepositoryListInput":{"type":"object","properties":{"repositories":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"},"full_name":{"type":"string"},"description":{"nullable":true,"type":"string"},"private":{"type":"boolean"},"html_url":{"type":"string"},"sourceId":{"type":"string"},"created_at":{"nullable":true,"type":"string"},"default_branch":{"nullable":true,"type":"string"}},"required":["id","name","full_name","description","private","html_url","sourceId"]}},"total_count":{"type":"number"},"page":{"type":"number"},"per_page":{"type":"number"}},"required":["repositories"]},"GithubBranchListInput":{"type":"object","properties":{"branches":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"commit":{"type":"object","properties":{"sha":{"type":"string"},"url":{"type":"string"}},"required":["sha","url"]},"protected":{"type":"boolean"}},"required":["name","commit","protected"]}}},"required":["branches"]},"GithubResourceCreateResponseInput":{"type":"object","properties":{"resource":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string"},"kind":{"type":"string"},"gitRepository":{"type":"string"},"gitBranch":{"type":"string"},"buildMode":{"type":"string","enum":["nixpacks","dockerfile","static"]},"port":{"nullable":true,"type":"number"},"autoDeploy":{"type":"boolean"},"status":{"type":"string"},"fqdn":{"nullable":true,"type":"string"},"coolifySourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string"},"createdAt":{"type":"string"}},"required":["id","type","kind","gitRepository","gitBranch","buildMode","port","autoDeploy","status","fqdn","coolifySourceId","projectId","createdAt"]},"deployment":{"type":"object","properties":{"coolifyAppId":{"type":"string"},"deploymentUuid":{"nullable":true,"type":"string"}},"required":["coolifyAppId"]},"message":{"type":"string"}},"required":["resource","deployment","message"]},"GithubDeployResponseInput":{"type":"object","properties":{"resource":{"type":"object","properties":{"id":{"type":"string"},"gitRepository":{"type":"string"},"gitBranch":{"type":"string"},"buildMode":{"type":"string","enum":["nixpacks","dockerfile"]},"port":{"nullable":true,"type":"number"},"autoDeploy":{"type":"boolean"},"status":{"type":"string"},"fqdn":{"nullable":true,"type":"string"},"coolifySourceId":{"type":"string"}},"required":["id","gitRepository","gitBranch","buildMode","port","autoDeploy","status","fqdn","coolifySourceId"]},"deployment":{"type":"object","properties":{"coolifyAppId":{"type":"string"},"deploymentUuid":{"nullable":true,"type":"string"}},"required":["coolifyAppId"]},"message":{"type":"string"}},"required":["resource","deployment","message"]},"GithubWebhookResponseInput":{"type":"object","properties":{"message":{"type":"string"},"resourcesAffected":{"type":"number"},"results":{"type":"array","items":{"type":"object","properties":{"resourceId":{"type":"string"},"status":{"type":"string","enum":["success","error"]},"error":{"type":"string"}},"required":["resourceId","status"]}}},"required":["message"]},"AuditLogInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"action":{"type":"string","enum":["CREATE","UPDATE","DELETE","DEPLOY","LOGIN","LOGOUT","ATTACH","DETACH","CONNECT","DISCONNECT","START","STOP","RESTART","MIGRATE","BACKUP_CREATE","BACKUP_RESTORE","BACKUP_DOWNLOAD","BACKUP_CONFIG_CREATE","BACKUP_CONFIG_UPDATE","BACKUP_CONFIG_DELETE"]},"actorId":{"nullable":true,"type":"string"},"actorKind":{"nullable":true,"type":"string"},"actorRole":{"nullable":true,"type":"string"},"actor":{"nullable":true,"type":"object","properties":{"email":{"type":"string"}},"required":["email"]},"organizationId":{"nullable":true,"type":"string"},"organization":{"nullable":true,"type":"object","properties":{"name":{"type":"string"}},"required":["name"]},"projectId":{"nullable":true,"type":"string"},"project":{"nullable":true,"type":"object","properties":{"name":{"type":"string"}},"required":["name"]},"resourceId":{"nullable":true,"type":"string"},"resource":{"nullable":true,"type":"object","properties":{"kind":{"type":"string"},"type":{"type":"string"}},"required":["kind","type"]},"targetType":{"nullable":true,"type":"string"},"targetId":{"nullable":true,"type":"string"},"ip":{"nullable":true,"type":"string"},"userAgent":{"nullable":true,"type":"string"},"requestId":{"nullable":true,"type":"string"},"meta":{"nullable":true},"diff":{"nullable":true},"apiResp":{"nullable":true},"createdAt":{"type":"string"}},"required":["id","action","actorId","actorKind","actorRole","actor","organizationId","organization","projectId","project","resourceId","resource","targetType","targetId","ip","userAgent","requestId","meta","diff","apiResp","createdAt"]},"CreateDomainInputInput":{"type":"object","properties":{"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fqdn":{"type":"string","minLength":3,"pattern":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,}$"},"resourceId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"makePrimary":{"type":"boolean"},"keepPlatformDomain":{"type":"boolean"},"dnsProvider":{"type":"string","enum":["CLOUDFLARE"]},"cfAccountId":{"type":"string"},"cfManaged":{"type":"boolean"},"cloudflareIntegrationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["organizationId","fqdn"]},"UpdateDomainInputInput":{"type":"object","properties":{"fqdn":{"type":"string","minLength":3,"pattern":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,}$"},"serviceName":{"type":"string","minLength":1},"keepPlatformDomain":{"type":"boolean"}}},"AttachDomainInputInput":{"type":"object","properties":{"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"makePrimary":{"type":"boolean"},"serviceName":{"type":"string","minLength":1},"keepPlatformDomain":{"type":"boolean"}},"required":["resourceId"]},"DomainInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"resourceId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fqdn":{"type":"string"},"type":{"type":"string","enum":["PLATFORM","CUSTOM","TENANT"]},"status":{"type":"string","enum":["PENDING","VERIFYING","ACTIVE","ERROR","DISABLED"]},"cnameTarget":{"nullable":true,"type":"string"},"dnsInstructions":{"nullable":true,"oneOf":[{"type":"object","properties":{"recordType":{"type":"string","enum":["CNAME"]},"host":{"type":"string"},"value":{"type":"string"}},"required":["recordType","host","value"]},{"type":"object","properties":{"recordType":{"type":"string","enum":["A"]},"host":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}},"required":["recordType","host","values"]}]},"serviceName":{"nullable":true,"type":"string"},"keepPlatformDomain":{"type":"boolean"},"verifiedAt":{"nullable":true,"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"authoritativeZone":{"nullable":true,"type":"string"},"authoritativeNs":{"nullable":true,"type":"array","items":{"type":"string"}},"lastCheckedAt":{"nullable":true,"type":"string"},"errorMessage":{"nullable":true,"type":"string"}},"required":["id","organizationId","resourceId","fqdn","type","status","cnameTarget","dnsInstructions","serviceName","keepPlatformDomain","verifiedAt","createdAt","updatedAt","authoritativeZone","authoritativeNs","lastCheckedAt","errorMessage"]},"DomainPaginatedListInput":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"resourceId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fqdn":{"type":"string"},"type":{"type":"string","enum":["PLATFORM","CUSTOM","TENANT"]},"status":{"type":"string","enum":["PENDING","VERIFYING","ACTIVE","ERROR","DISABLED"]},"cnameTarget":{"nullable":true,"type":"string"},"dnsInstructions":{"nullable":true,"oneOf":[{"type":"object","properties":{"recordType":{"type":"string","enum":["CNAME"]},"host":{"type":"string"},"value":{"type":"string"}},"required":["recordType","host","value"]},{"type":"object","properties":{"recordType":{"type":"string","enum":["A"]},"host":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}},"required":["recordType","host","values"]}]},"serviceName":{"nullable":true,"type":"string"},"keepPlatformDomain":{"type":"boolean"},"verifiedAt":{"nullable":true,"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","resourceId","fqdn","type","status","cnameTarget","dnsInstructions","serviceName","keepPlatformDomain","verifiedAt","createdAt","updatedAt"]}},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"perPage":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalPages":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["data","total","page","perPage","totalPages"]},"DomainAttachResponseInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"cnameTarget":{"type":"string"},"status":{"type":"string","enum":["PENDING","VERIFYING","ACTIVE","ERROR","DISABLED"]}},"required":["id","resourceId","cnameTarget","status"]},"DomainDetachResponseInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"resourceId":{"type":"string","nullable":true,"enum":[null]},"cnameTarget":{"nullable":true,"type":"string"},"status":{"type":"string"}},"required":["id","resourceId","cnameTarget","status"]},"DomainSetPrimaryResponseInput":{"type":"object","properties":{"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"primaryDomainId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fqdn":{"type":"string"}},"required":["resourceId","primaryDomainId","fqdn"]},"DomainVerifyResponseInput":{"type":"object","properties":{"status":{"type":"string","enum":["PENDING","VERIFYING","ACTIVE","ERROR","DISABLED"]},"fqdn":{"type":"string"},"verification":{"nullable":true,"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["CNAME"]},"expectedTarget":{"type":"string"},"actualCname":{"nullable":true,"type":"string"},"isCorrect":{"type":"boolean"}},"required":["mode","expectedTarget","actualCname","isCorrect"]},{"type":"object","properties":{"mode":{"type":"string","enum":["APEX_AAAA"]},"expectedTarget":{"type":"string"},"expectedIps":{"type":"array","items":{"type":"string"}},"actualIps":{"type":"array","items":{"type":"string"}},"isCorrect":{"type":"boolean"}},"required":["mode","expectedTarget","expectedIps","actualIps","isCorrect"]}]},"verifiedAt":{"nullable":true,"type":"string"},"authoritativeZone":{"nullable":true,"type":"string"},"authoritativeNs":{"nullable":true,"type":"array","items":{"type":"string"}}},"required":["status","fqdn","verification"]},"CreateDnsRecordInputInput":{"type":"object","properties":{"type":{"type":"string","enum":["A","AAAA","CNAME","MX","TXT","NS","SRV","CAA"]},"name":{"type":"string","minLength":1},"content":{"type":"string","minLength":1},"ttl":{"type":"integer","minimum":1,"maximum":9007199254740991},"proxied":{"type":"boolean"},"priority":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"object","additionalProperties":{}}},"required":["type","name","content"]},"UpdateDnsRecordInputInput":{"type":"object","properties":{"type":{"type":"string","enum":["A","AAAA","CNAME","MX","TXT","NS","SRV","CAA"]},"name":{"type":"string","minLength":1},"content":{"type":"string","minLength":1},"ttl":{"type":"integer","minimum":1,"maximum":9007199254740991},"proxied":{"type":"boolean"},"priority":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"object","additionalProperties":{}}},"required":["type","name","content"]},"CreateApiTokenInputInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"allowedOrigins":{"default":[],"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":253}},"expiresInDays":{"default":90,"nullable":true,"type":"integer","minimum":1,"maximum":365}},"required":["name"]},"ApiTokenCreateResponseInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"token":{"type":"string"},"name":{"type":"string"},"audience":{"type":"string","enum":["PUBLIC","PRIVATE"]},"allowedOrigins":{"type":"array","items":{"type":"string"}},"expiresAt":{"nullable":true,"type":"string"},"createdAt":{"type":"string"}},"required":["id","token","name","audience","allowedOrigins","expiresAt","createdAt"]},"ApiTokenListResponseInput":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"tokenPrefix":{"type":"string"},"name":{"type":"string"},"audience":{"type":"string","enum":["PUBLIC","PRIVATE"]},"allowedOrigins":{"type":"array","items":{"type":"string"}},"expiresAt":{"nullable":true,"type":"string"},"lastUsedAt":{"nullable":true,"type":"string"},"revokedAt":{"nullable":true,"type":"string"},"createdAt":{"type":"string"}},"required":["id","tokenPrefix","name","audience","allowedOrigins","expiresAt","lastUsedAt","revokedAt","createdAt"]}},"CreateBucketInputInput":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]$"},"displayName":{"type":"string","minLength":1,"maxLength":100},"quotaGB":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991},"policy":{"default":"readwrite","type":"string","enum":["readonly","writeonly","readwrite"]},"environment":{"type":"string","enum":["PRODUCTION","STAGING","DEVELOPMENT"]},"isPublic":{"default":false,"type":"boolean"}},"required":["projectId","name"]},"UpdateBucketInputInput":{"type":"object","properties":{"displayName":{"type":"string","minLength":1,"maxLength":100},"quotaGB":{"type":"integer","minimum":0,"maximum":9007199254740991}}},"StorageBucketInput":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"displayName":{"nullable":true,"type":"string"},"status":{"type":"string","enum":["CREATING","ACTIVE","ERROR","DELETING"]},"environment":{"type":"string","enum":["PRODUCTION","STAGING","DEVELOPMENT"]},"quotaGB":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"policy":{"type":"string"},"region":{"type":"string"},"sizeBytes":{"type":"number"},"objectCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"isDefault":{"type":"boolean"},"isPublic":{"type":"boolean"},"customDomain":{"nullable":true,"type":"string"},"publicUrl":{"nullable":true,"type":"string"},"corsRules":{"nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","projectId","name","displayName","status","environment","quotaGB","policy","region","sizeBytes","objectCount","isDefault","isPublic","customDomain","publicUrl","corsRules","createdAt","updatedAt"]},"StorageBucketListInput":{"type":"array","items":{"$ref":"#/components/schemas/StorageBucketInput"}},"FinanceAsaasDashboardInput":{"type":"object","properties":{"mrr":{"type":"number"},"arr":{"type":"number"},"projectedAnnualRevenue":{"type":"number"},"activeSubscriptions":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"newSubscriptions":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"newCustomers":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"ticketMedio":{"type":"number"},"received":{"type":"object","properties":{"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"value":{"type":"number"},"netValue":{"type":"number"}},"required":["quantity","value","netValue"]},"confirmed":{"type":"object","properties":{"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"value":{"type":"number"},"netValue":{"type":"number"}},"required":["quantity","value","netValue"]},"pending":{"type":"object","properties":{"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"value":{"type":"number"},"netValue":{"type":"number"}},"required":["quantity","value","netValue"]},"overdue":{"type":"object","properties":{"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"value":{"type":"number"},"netValue":{"type":"number"}},"required":["quantity","value","netValue"]}},"required":["mrr","arr","projectedAnnualRevenue","activeSubscriptions","newSubscriptions","newCustomers","ticketMedio","received","confirmed","pending","overdue"]},"FinanceAsaasSubscriptionsListInput":{"type":"object","properties":{"totalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"hasMore":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"customer":{"type":"string"},"customerName":{"type":"string"},"value":{"type":"number"},"cycle":{"nullable":true,"type":"string"},"status":{"type":"string"},"nextDueDate":{"nullable":true,"type":"string"},"billingType":{"nullable":true,"type":"string"},"description":{"nullable":true,"type":"string"},"dateCreated":{"nullable":true,"type":"string"}},"required":["id","customer","customerName","value","cycle","status","nextDueDate","billingType","description","dateCreated"]}}},"required":["totalCount","hasMore","data"]},"FinanceAsaasSubscriptionTotalsInput":{"type":"object","properties":{"totalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalValue":{"type":"number"}},"required":["totalCount","totalValue"]},"FinanceAsaasPaymentsListInput":{"type":"object","properties":{"totalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"hasMore":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"customer":{"type":"string"},"customerName":{"type":"string"},"subscription":{"nullable":true,"type":"string"},"value":{"type":"number"},"netValue":{"nullable":true,"type":"number"},"status":{"type":"string"},"billingType":{"nullable":true,"type":"string"},"description":{"nullable":true,"type":"string"},"dueDate":{"nullable":true,"type":"string"},"paymentDate":{"nullable":true,"type":"string"},"dateCreated":{"nullable":true,"type":"string"},"invoiceUrl":{"nullable":true,"type":"string"}},"required":["id","customer","customerName","subscription","value","netValue","status","billingType","description","dueDate","paymentDate","dateCreated","invoiceUrl"]}}},"required":["totalCount","hasMore","data"]},"FinanceAsaasPaymentTotalsInput":{"type":"object","properties":{"totalValue":{"type":"number"},"totalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totalValue","totalCount"]},"FinanceAsaasCustomersListInput":{"type":"object","properties":{"totalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"hasMore":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"nullable":true,"type":"string"},"phone":{"nullable":true,"type":"string"},"mobilePhone":{"nullable":true,"type":"string"},"cpfCnpj":{"nullable":true,"type":"string"},"personType":{"nullable":true,"type":"string"},"dateCreated":{"nullable":true,"type":"string"},"ltv":{"type":"number"},"monthlyTotal":{"type":"number"},"annualTotal":{"type":"number"},"subscriptionCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mergedCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mergedIds":{"type":"array","items":{"type":"string"}}},"required":["id","name","email","phone","mobilePhone","cpfCnpj","personType","dateCreated","mergedCount"]}}},"required":["totalCount","hasMore","data"]},"FinanceAsaasCustomersWithSubsInput":{"type":"object","properties":{"customers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"nullable":true,"type":"string"},"phone":{"nullable":true,"type":"string"},"mobilePhone":{"nullable":true,"type":"string"},"cpfCnpj":{"nullable":true,"type":"string"},"personType":{"nullable":true,"type":"string"},"dateCreated":{"nullable":true,"type":"string"},"ltv":{"type":"number"},"monthlyTotal":{"type":"number"},"annualTotal":{"type":"number"},"subscriptionCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mergedCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mergedIds":{"type":"array","items":{"type":"string"}}},"required":["id","name","email","phone","mobilePhone","cpfCnpj","personType","dateCreated","mergedCount"]}},"totalMonthly":{"type":"number"},"totalAnnual":{"type":"number"},"totalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["customers","totalMonthly","totalAnnual","totalCount"]},"FinanceAsaasContactSubscriptionsInput":{"type":"object","properties":{"subscriptions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string"},"value":{"type":"number"},"nextDueDate":{"nullable":true,"type":"string"},"cycle":{"nullable":true,"type":"string"},"description":{"nullable":true,"type":"string"}},"required":["id","status","value","nextDueDate","cycle","description"]}},"customer":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"required":["subscriptions","customer"]},"MonitoringHttpRequestsInput":{"type":"object","properties":{"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"range":{"type":"string"},"step":{"type":"string"},"groupBy":{"type":"string","enum":["class","code"]},"buckets":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"string"},"counts":{"type":"object","additionalProperties":{"type":"number"}}},"required":["timestamp","counts"]}},"totals":{"type":"object","properties":{"byKey":{"type":"object","additionalProperties":{"type":"number"}},"total":{"type":"number"}},"required":["byKey","total"]},"fqdns":{"type":"array","items":{"type":"object","properties":{"fqdn":{"type":"string"},"total":{"type":"number"},"byKey":{"type":"object","additionalProperties":{"type":"number"}},"buckets":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"string"},"counts":{"type":"object","additionalProperties":{"type":"number"}}},"required":["timestamp","counts"]}}},"required":["fqdn","total","byKey","buckets"]}}},"required":["resourceId","range","step","groupBy","buckets","totals"]},"ApiError":{"type":"object","properties":{"statusCode":{"type":"number"},"error":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"},"code":{"type":"string"},"messageTitle":{"type":"string"},"fields":{"type":"array","items":{"$ref":"#/components/schemas/FieldError"}},"details":{}},"required":["statusCode","error","message","requestId"],"additionalProperties":false},"FieldError":{"type":"object","properties":{"name":{"type":"string"},"message":{"type":"string"}},"required":["name","message"],"additionalProperties":false},"LoginInput":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"password":{"type":"string","minLength":8}},"required":["email","password"],"additionalProperties":false},"LoginResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"orgRole":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]}},"required":["id","organizationId","orgRole"],"additionalProperties":false},"CreateUserInput":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"password":{"type":"string","minLength":8},"platformRole":{"type":"string","enum":["SUPER"]},"name":{"type":"string","minLength":2,"maxLength":100},"whatsapp":{"type":"string","maxLength":20},"avatarUrl":{"type":"string","format":"uri"}},"required":["email","password"],"additionalProperties":false},"User":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"nullable":true,"type":"string"},"whatsapp":{"nullable":true,"type":"string"},"avatarUrl":{"nullable":true,"type":"string"},"platformRole":{"nullable":true,"type":"string","enum":["SUPER","MEMBER"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","email"],"additionalProperties":false},"UserList":{"type":"array","items":{"$ref":"#/components/schemas/User"}},"UserWithMemberships":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"memberships":{"type":"array","items":{"type":"object","properties":{"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"role":{"type":"string"},"organization":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false}},"required":["organizationId","role"],"additionalProperties":false}},"createdAt":{"type":"string"}},"required":["id","email","memberships","createdAt"],"additionalProperties":false},"UserOrganization":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"},"domain":{"nullable":true,"type":"string"},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]}},"required":["id","name","slug","domain","role"],"additionalProperties":false},"UserOrganizationList":{"type":"array","items":{"$ref":"#/components/schemas/UserOrganization"}},"CreateOrganizationInput":{"type":"object","properties":{"name":{"type":"string","minLength":3,"maxLength":100},"domain":{"type":"string","minLength":3,"maxLength":20},"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["name","domain"],"additionalProperties":false},"UpdateOrganizationInput":{"type":"object","properties":{"name":{"type":"string","minLength":3,"maxLength":100},"domain":{"type":"string","minLength":3,"maxLength":20},"slug":{"type":"string","minLength":3,"maxLength":50}},"additionalProperties":false},"CreateInvitationInput":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([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":["OWNER","ADMIN","MEMBER"]}},"required":["email","role"],"additionalProperties":false},"AcceptInvitationInput":{"type":"object","properties":{"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"additionalProperties":false},"UpdateMemberRoleInput":{"type":"object","properties":{"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]}},"required":["role"],"additionalProperties":false},"Organization":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"},"domain":{"nullable":true,"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","slug","domain","createdAt","updatedAt"],"additionalProperties":false},"OrganizationFull":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"},"domain":{"nullable":true,"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"orgProjects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"projectDestination":{"nullable":true,"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"destUuid":{"type":"string"},"serverId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","destUuid","serverId","createdAt","updatedAt"],"additionalProperties":false},"resources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"fqdn":{"nullable":true,"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","type","kind","status","fqdn","createdAt","updatedAt"],"additionalProperties":false}}},"required":["id","name","slug","organizationId","serverId","createdAt","updatedAt","projectDestination","resources"],"additionalProperties":false}}},"required":["id","name","slug","domain","createdAt","updatedAt","orgProjects"],"additionalProperties":false},"Invitation":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"token":{"type":"string"},"expiresAt":{"type":"string"},"createdAt":{"type":"string"},"organization":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"}},"required":["id","name","slug"],"additionalProperties":false}},"required":["email","role","token","organization"],"additionalProperties":false},"InvitationCreateResult":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"token":{"type":"string"},"expiresAt":{"type":"string"},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]}},"required":["email","token","expiresAt","role"],"additionalProperties":false},"MyInvitationsList":{"type":"object","properties":{"invitations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"token":{"type":"string"},"status":{"type":"string","enum":["PENDING","ACCEPTED","EXPIRED","REVOKED"]},"expiresAt":{"type":"string"},"createdAt":{"type":"string"},"organization":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"}},"required":["id","name","slug"],"additionalProperties":false},"invitedBy":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"required":["id","email"],"additionalProperties":false}},"required":["id","email","role","token","status","expiresAt","createdAt","organization","invitedBy"],"additionalProperties":false}}},"required":["invitations"],"additionalProperties":false},"InvitationDeclined":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["REVOKED"]}},"required":["id","status"],"additionalProperties":false},"MembershipList":{"type":"object","properties":{"members":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"platformRole":{"nullable":true,"type":"string","enum":["SUPER","MEMBER"]}},"required":["id","email","platformRole"],"additionalProperties":false}},"required":["id","userId","role","createdAt","updatedAt","user"],"additionalProperties":false}}},"required":["members"],"additionalProperties":false},"Membership":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"updatedAt":{"type":"string"}},"required":["id","userId","role","updatedAt"],"additionalProperties":false},"CreateProjectInput":{"type":"object","properties":{"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":3},"slug":{"type":"string"},"destinationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["organizationId","name"],"additionalProperties":false},"UpdateProjectInput":{"type":"object","properties":{"name":{"type":"string","minLength":3}},"required":["name"],"additionalProperties":false},"Project":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"},"organizationId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"serverId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"destinationId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name"],"additionalProperties":false},"ProjectList":{"type":"array","items":{"$ref":"#/components/schemas/Project"}},"ProjectWithDestination":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"serverId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"destination":{"nullable":true,"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","slug","organizationId","serverId","destination","createdAt","updatedAt"],"additionalProperties":false},"ProjectToolList":{"type":"array","items":{"type":"object","properties":{"tool":{"type":"string"},"available":{"type":"boolean"}},"required":["tool","available"],"additionalProperties":false}},"ProjectWithResourcesList":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"resources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string"},"status":{"type":"string"},"fqdn":{"nullable":true,"type":"string"}},"required":["id","kind","status","fqdn"],"additionalProperties":false}}},"required":["id","name","slug","organizationId","resources"],"additionalProperties":false}},"CreateDockerImageInput":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":2,"maxLength":30,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$"},"slug":{"type":"string","minLength":2,"maxLength":30,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$"},"description":{"type":"string"},"dockerImage":{"type":"string","minLength":1},"dockerTag":{"default":"latest","type":"string"},"port":{"default":80,"type":"integer","minimum":1,"maximum":65535},"portsMappings":{"type":"string"},"fqdn":{"type":"string","format":"uri"},"generateDomain":{"default":true,"type":"boolean"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"}},"limits":{"default":{"cpus":"1","memory":"1024M","memorySwap":"1536M"},"type":"object","properties":{"cpus":{"default":"1","type":"string"},"memory":{"default":"1024M","type":"string"},"memorySwap":{"default":"1536M","type":"string"}},"required":["cpus","memory","memorySwap"],"additionalProperties":false},"instantDeploy":{"default":false,"type":"boolean"},"connectToDockerNetwork":{"default":true,"type":"boolean"},"environment":{"type":"string","enum":["PRODUCTION","STAGING","DEVELOPMENT"]}},"required":["projectId","name","slug","dockerImage","dockerTag","port","generateDomain","limits","instantDeploy","connectToDockerNetwork"],"additionalProperties":false},"CreatePublicGithubInput":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":2,"maxLength":30,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$"},"slug":{"type":"string","minLength":2,"maxLength":30,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$"},"gitRepository":{"type":"string","minLength":1},"gitBranch":{"default":"main","type":"string","minLength":1},"buildMode":{"type":"string","enum":["nixpacks","dockerfile","static"]},"fqdn":{"type":"string","format":"uri"},"generateDomain":{"default":true,"type":"boolean"},"instantDeploy":{"default":false,"type":"boolean"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"}},"limits":{"default":{"cpus":"1","memory":"512M","memorySwap":"512M"},"type":"object","properties":{"cpus":{"default":"1","type":"string"},"memory":{"default":"512M","type":"string"},"memorySwap":{"default":"512M","type":"string"}},"required":["cpus","memory","memorySwap"],"additionalProperties":false},"buildConfig":{"type":"object","properties":{"baseDirectory":{"type":"string"},"publishDirectory":{"type":"string"},"installCommand":{"type":"string"},"buildCommand":{"type":"string"},"startCommand":{"type":"string"},"dockerfileLocation":{"type":"string"},"staticImage":{"type":"string"},"isSpa":{"type":"boolean"},"portsExposes":{"type":"string"},"portsMappings":{"type":"string"},"isAutoDeployEnabled":{"type":"boolean"},"watchPaths":{"type":"string"},"isForceHttpsEnabled":{"type":"boolean"},"autogenerateDomain":{"type":"boolean"},"isContainerLabelEscapeEnabled":{"type":"boolean"},"preDeploymentCommand":{"type":"string"},"preDeploymentCommandContainer":{"type":"string"},"postDeploymentCommand":{"type":"string"},"postDeploymentCommandContainer":{"type":"string"},"redirect":{"type":"string"},"healthCheckEnabled":{"type":"boolean"},"healthCheckPath":{"type":"string"},"healthCheckPort":{"type":"string"},"healthCheckHost":{"type":"string"},"healthCheckMethod":{"type":"string"},"healthCheckReturnCode":{"type":"number"},"healthCheckScheme":{"type":"string"},"healthCheckResponseText":{"type":"string"},"healthCheckInterval":{"type":"number"},"healthCheckTimeout":{"type":"number"},"healthCheckRetries":{"type":"number"},"healthCheckStartPeriod":{"type":"number"}},"additionalProperties":false},"environment":{"type":"string","enum":["PRODUCTION","STAGING","DEVELOPMENT"]}},"required":["projectId","name","gitRepository","gitBranch","buildMode","generateDomain","instantDeploy","limits"],"additionalProperties":false},"UpdateResourceInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"slug":{"type":"string","minLength":2,"maxLength":50,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$"},"description":{"type":"string"},"git_repository":{"type":"string"},"git_branch":{"type":"string"},"build_pack":{"type":"string","enum":["nixpacks","dockerfile","dockercompose","dockerimage","static"]},"install_command":{"type":"string"},"build_command":{"type":"string"},"start_command":{"type":"string"},"base_directory":{"type":"string"},"publish_directory":{"type":"string"},"is_static":{"type":"boolean"},"is_spa":{"type":"boolean"},"static_image":{"type":"string"},"dockerfile":{"type":"string"},"dockerfile_location":{"type":"string"},"docker_registry_image_name":{"type":"string"},"docker_registry_image_tag":{"type":"string"},"docker_compose_location":{"type":"string"},"docker_compose_raw":{"type":"string"},"docker_compose_custom_start_command":{"type":"string"},"docker_compose_custom_build_command":{"type":"string"},"docker_compose_domains":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"domain":{"type":"string"}},"required":["name","domain"],"additionalProperties":false}},"ports_exposes":{"type":"string"},"ports_mappings":{"type":"string"},"domains":{"type":"string"},"health_check_enabled":{"type":"boolean"},"health_check_path":{"type":"string"},"health_check_port":{"type":"string"},"health_check_host":{"type":"string"},"health_check_method":{"type":"string"},"health_check_return_code":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"health_check_scheme":{"type":"string"},"health_check_response_text":{"type":"string"},"health_check_interval":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"health_check_timeout":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"health_check_retries":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"health_check_start_period":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_cpus":{"type":"string"},"limits_memory":{"type":"string"},"limits_memory_swap":{"type":"string"},"limits_memory_swappiness":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_memory_reservation":{"type":"string"},"limits_cpuset":{"type":"string"},"limits_cpu_shares":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"watch_paths":{"type":"string"},"is_auto_deploy_enabled":{"type":"boolean"},"is_force_https_enabled":{"type":"boolean"},"use_build_server":{"type":"boolean"},"instant_deploy":{"type":"boolean"},"redirect":{"type":"string"},"pre_deployment_command":{"type":"string"},"pre_deployment_command_container":{"type":"string"},"post_deployment_command":{"type":"string"},"post_deployment_command_container":{"type":"string"},"custom_nginx_configuration":{"type":"string"},"is_http_basic_auth_enabled":{"type":"boolean"},"http_basic_auth_username":{"type":"string"},"http_basic_auth_password":{"type":"string"},"custom_labels":{"type":"string"},"custom_docker_run_options":{"type":"string"},"connect_to_docker_network":{"type":"boolean"},"force_domain_override":{"type":"boolean"},"is_container_label_escape_enabled":{"type":"boolean"},"manual_webhook_secret_github":{"type":"string"},"manual_webhook_secret_gitlab":{"type":"string"},"manual_webhook_secret_bitbucket":{"type":"string"},"manual_webhook_secret_gitea":{"type":"string"},"environment":{"type":"string","enum":["PRODUCTION","STAGING","DEVELOPMENT"]}},"additionalProperties":false},"UpdateResourceDomainInput":{"type":"object","properties":{"fqdn":{"type":"string","minLength":1},"domains":{"type":"array","items":{"type":"string","minLength":1}}},"additionalProperties":false},"CreateEnvInput":{"type":"object","properties":{"key":{"type":"string","minLength":1},"value":{"type":"string"},"is_preview":{"type":"boolean"},"is_literal":{"type":"boolean"},"is_multiline":{"type":"boolean"},"is_shown_once":{"type":"boolean"},"is_buildtime":{"type":"boolean"},"is_runtime":{"type":"boolean"}},"required":["key","value"],"additionalProperties":false},"UpdateEnvInput":{"type":"object","properties":{"key":{"type":"string","minLength":1},"value":{"type":"string"},"is_preview":{"type":"boolean"},"is_literal":{"type":"boolean"},"is_multiline":{"type":"boolean"},"is_shown_once":{"type":"boolean"},"is_buildtime":{"type":"boolean"},"is_runtime":{"type":"boolean"}},"required":["key","value"],"additionalProperties":false},"BulkUpdateEnvInput":{"anyOf":[{"type":"object","properties":{"set":{"type":"object","additionalProperties":{"type":"string"}},"unset":{"type":"array","items":{"type":"string","minLength":1}}},"additionalProperties":false},{"type":"object","properties":{"data":{"minItems":1,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","minLength":1},"value":{"type":"string"},"is_preview":{"type":"boolean"},"is_literal":{"type":"boolean"},"is_multiline":{"type":"boolean"},"is_shown_once":{"type":"boolean"},"is_buildtime":{"type":"boolean"},"is_runtime":{"type":"boolean"}},"required":["key","value"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}]},"EnvResponse":{"type":"object","properties":{"uuid":{"type":"string"},"key":{"type":"string"},"value":{"type":"string"},"isPreview":{"type":"boolean"},"isLiteral":{"type":"boolean"},"isMultiline":{"type":"boolean"},"isBuildtime":{"type":"boolean"},"isRuntime":{"type":"boolean"}},"required":["uuid","key","value"],"additionalProperties":false},"ProvisionInput":{"type":"object","properties":{"resources":{"minItems":1,"type":"array","items":{"type":"object","properties":{"tool":{"type":"string"},"version":{"type":"string"},"template":{"type":"string"},"name":{"type":"string","minLength":2,"maxLength":50,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9 -]*[a-zA-Z0-9]$"},"slug":{"type":"string","minLength":2,"maxLength":50,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"description":{"type":"string"},"fqdn":{"type":"string","format":"uri"},"databaseAccountId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"}},"limits":{"type":"object","properties":{"cpus":{"type":"string"},"memory":{"type":"string"}},"additionalProperties":false}},"required":["tool","name","slug"],"additionalProperties":false}}},"required":["resources"],"additionalProperties":false},"ProvisionResponse":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"tool":{"type":"string"},"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"appUuid":{"nullable":true,"type":"string"}},"required":["tool","resourceId","appUuid"],"additionalProperties":false}}},"required":["results"],"additionalProperties":false},"Resource":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"category":{"type":"string","enum":["application","service"]},"status":{"type":"string"},"environment":{"type":"string","enum":["PRODUCTION","STAGING","DEVELOPMENT"]},"isShared":{"type":"boolean"},"isWorker":{"type":"boolean"},"fqdn":{"nullable":true,"type":"string"},"domains":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"serviceName":{"type":"string"}},"required":["url","serviceName"],"additionalProperties":false}},"totalDomains":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"services":{"type":"array","items":{"type":"string"}},"sourceId":{"nullable":true,"type":"string"},"gitRepository":{"nullable":true,"type":"string"},"gitBranch":{"nullable":true,"type":"string"},"activity":{"nullable":true,"type":"object","properties":{"activity":{"nullable":true,"type":"string"},"activityPhase":{"nullable":true,"type":"string"},"activityStatus":{"nullable":true,"type":"string"},"activityStartedAt":{"nullable":true,"type":"string"},"activityUpdatedAt":{"nullable":true,"type":"string"},"activityPhases":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"status":{"type":"string","enum":["pending","running","completed","failed"]},"startedAt":{"type":"string"},"completedAt":{"type":"string"},"durationMs":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"error":{"type":"string"},"meta":{"type":"object","additionalProperties":{}}},"required":["key","status"],"additionalProperties":false}}},"required":["activity","activityPhase","activityStatus","activityStartedAt","activityUpdatedAt","activityPhases"],"additionalProperties":false},"config":{"nullable":true,"type":"object","properties":{"buildPack":{"nullable":true,"type":"string"},"installCommand":{"nullable":true,"type":"string"},"buildCommand":{"nullable":true,"type":"string"},"startCommand":{"nullable":true,"type":"string"},"baseDirectory":{"nullable":true,"type":"string"},"publishDirectory":{"nullable":true,"type":"string"},"isStatic":{"nullable":true,"type":"boolean"},"isSpa":{"nullable":true,"type":"boolean"},"staticImage":{"nullable":true,"type":"string"},"dockerfile":{"nullable":true,"type":"string"},"dockerfileLocation":{"nullable":true,"type":"string"},"dockerRegistryImageName":{"nullable":true,"type":"string"},"dockerRegistryImageTag":{"nullable":true,"type":"string"},"dockerComposeLocation":{"nullable":true,"type":"string"},"dockerComposeCustomStartCommand":{"nullable":true,"type":"string"},"dockerComposeCustomBuildCommand":{"nullable":true,"type":"string"},"dockerComposeDomains":{"nullable":true,"type":"string"},"portsExposes":{"nullable":true,"type":"string"},"portsMappings":{"nullable":true,"type":"string"},"healthCheckEnabled":{"nullable":true,"type":"boolean"},"healthCheckPath":{"nullable":true,"type":"string"},"healthCheckPort":{"nullable":true,"type":"string"},"healthCheckHost":{"nullable":true,"type":"string"},"healthCheckMethod":{"nullable":true,"type":"string"},"healthCheckReturnCode":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"healthCheckScheme":{"nullable":true,"type":"string"},"healthCheckResponseText":{"nullable":true,"type":"string"},"healthCheckInterval":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"healthCheckTimeout":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"healthCheckRetries":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"healthCheckStartPeriod":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limitsCpus":{"nullable":true,"type":"string"},"limitsMemory":{"nullable":true,"type":"string"},"limitsMemorySwap":{"nullable":true,"type":"string"},"limitsMemorySwappiness":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limitsMemoryReservation":{"nullable":true,"type":"string"},"limitsCpuset":{"nullable":true,"type":"string"},"limitsCpuShares":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"watchPaths":{"nullable":true,"type":"string"},"isAutoDeployEnabled":{"nullable":true,"type":"boolean"},"isForceHttpsEnabled":{"nullable":true,"type":"boolean"},"useBuildServer":{"nullable":true,"type":"boolean"},"instantDeploy":{"nullable":true,"type":"boolean"},"redirect":{"nullable":true,"type":"string"},"preDeploymentCommand":{"nullable":true,"type":"string"},"preDeploymentCommandContainer":{"nullable":true,"type":"string"},"postDeploymentCommand":{"nullable":true,"type":"string"},"postDeploymentCommandContainer":{"nullable":true,"type":"string"},"customNginxConfiguration":{"nullable":true,"type":"string"},"isHttpBasicAuthEnabled":{"nullable":true,"type":"boolean"},"httpBasicAuthUsername":{"nullable":true,"type":"string"},"httpBasicAuthPassword":{"nullable":true,"type":"string"},"customLabels":{"nullable":true,"type":"string"},"customDockerRunOptions":{"nullable":true,"type":"string"},"connectToDockerNetwork":{"nullable":true,"type":"boolean"},"forceDomainOverride":{"nullable":true,"type":"boolean"},"isContainerLabelEscapeEnabled":{"nullable":true,"type":"boolean"},"manualWebhookSecretGithub":{"nullable":true,"type":"string"},"manualWebhookSecretGitlab":{"nullable":true,"type":"string"},"manualWebhookSecretBitbucket":{"nullable":true,"type":"string"},"manualWebhookSecretGitea":{"nullable":true,"type":"string"}},"additionalProperties":false},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","projectId","type","kind","name","slug","category","status","environment","isShared","isWorker","fqdn","domains","totalDomains","services","sourceId","gitRepository","gitBranch","createdAt","updatedAt"],"additionalProperties":false},"ResourceAdmin":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"category":{"type":"string","enum":["application","service"]},"status":{"type":"string"},"environment":{"type":"string","enum":["PRODUCTION","STAGING","DEVELOPMENT"]},"isShared":{"type":"boolean"},"isWorker":{"type":"boolean"},"fqdn":{"nullable":true,"type":"string"},"domains":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"serviceName":{"type":"string"}},"required":["url","serviceName"],"additionalProperties":false}},"totalDomains":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"services":{"type":"array","items":{"type":"string"}},"sourceId":{"nullable":true,"type":"string"},"gitRepository":{"nullable":true,"type":"string"},"gitBranch":{"nullable":true,"type":"string"},"activity":{"nullable":true,"type":"object","properties":{"activity":{"nullable":true,"type":"string"},"activityPhase":{"nullable":true,"type":"string"},"activityStatus":{"nullable":true,"type":"string"},"activityStartedAt":{"nullable":true,"type":"string"},"activityUpdatedAt":{"nullable":true,"type":"string"},"activityPhases":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"status":{"type":"string","enum":["pending","running","completed","failed"]},"startedAt":{"type":"string"},"completedAt":{"type":"string"},"durationMs":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"error":{"type":"string"},"meta":{"type":"object","additionalProperties":{}}},"required":["key","status"],"additionalProperties":false}}},"required":["activity","activityPhase","activityStatus","activityStartedAt","activityUpdatedAt","activityPhases"],"additionalProperties":false},"image":{"type":"string"},"version":{"type":"string"},"cpuLimit":{"nullable":true,"type":"string"},"memLimit":{"nullable":true,"type":"string"},"memswapLimit":{"nullable":true,"type":"string"},"meta":{"nullable":true,"type":"object","additionalProperties":{}},"config":{"nullable":true,"type":"object","properties":{"buildPack":{"nullable":true,"type":"string"},"installCommand":{"nullable":true,"type":"string"},"buildCommand":{"nullable":true,"type":"string"},"startCommand":{"nullable":true,"type":"string"},"baseDirectory":{"nullable":true,"type":"string"},"publishDirectory":{"nullable":true,"type":"string"},"isStatic":{"nullable":true,"type":"boolean"},"isSpa":{"nullable":true,"type":"boolean"},"staticImage":{"nullable":true,"type":"string"},"dockerfile":{"nullable":true,"type":"string"},"dockerfileLocation":{"nullable":true,"type":"string"},"dockerRegistryImageName":{"nullable":true,"type":"string"},"dockerRegistryImageTag":{"nullable":true,"type":"string"},"dockerComposeLocation":{"nullable":true,"type":"string"},"dockerComposeCustomStartCommand":{"nullable":true,"type":"string"},"dockerComposeCustomBuildCommand":{"nullable":true,"type":"string"},"dockerComposeDomains":{"nullable":true,"type":"string"},"portsExposes":{"nullable":true,"type":"string"},"portsMappings":{"nullable":true,"type":"string"},"healthCheckEnabled":{"nullable":true,"type":"boolean"},"healthCheckPath":{"nullable":true,"type":"string"},"healthCheckPort":{"nullable":true,"type":"string"},"healthCheckHost":{"nullable":true,"type":"string"},"healthCheckMethod":{"nullable":true,"type":"string"},"healthCheckReturnCode":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"healthCheckScheme":{"nullable":true,"type":"string"},"healthCheckResponseText":{"nullable":true,"type":"string"},"healthCheckInterval":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"healthCheckTimeout":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"healthCheckRetries":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"healthCheckStartPeriod":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limitsCpus":{"nullable":true,"type":"string"},"limitsMemory":{"nullable":true,"type":"string"},"limitsMemorySwap":{"nullable":true,"type":"string"},"limitsMemorySwappiness":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limitsMemoryReservation":{"nullable":true,"type":"string"},"limitsCpuset":{"nullable":true,"type":"string"},"limitsCpuShares":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"watchPaths":{"nullable":true,"type":"string"},"isAutoDeployEnabled":{"nullable":true,"type":"boolean"},"isForceHttpsEnabled":{"nullable":true,"type":"boolean"},"useBuildServer":{"nullable":true,"type":"boolean"},"instantDeploy":{"nullable":true,"type":"boolean"},"redirect":{"nullable":true,"type":"string"},"preDeploymentCommand":{"nullable":true,"type":"string"},"preDeploymentCommandContainer":{"nullable":true,"type":"string"},"postDeploymentCommand":{"nullable":true,"type":"string"},"postDeploymentCommandContainer":{"nullable":true,"type":"string"},"customNginxConfiguration":{"nullable":true,"type":"string"},"isHttpBasicAuthEnabled":{"nullable":true,"type":"boolean"},"httpBasicAuthUsername":{"nullable":true,"type":"string"},"httpBasicAuthPassword":{"nullable":true,"type":"string"},"customLabels":{"nullable":true,"type":"string"},"customDockerRunOptions":{"nullable":true,"type":"string"},"connectToDockerNetwork":{"nullable":true,"type":"boolean"},"forceDomainOverride":{"nullable":true,"type":"boolean"},"isContainerLabelEscapeEnabled":{"nullable":true,"type":"boolean"},"manualWebhookSecretGithub":{"nullable":true,"type":"string"},"manualWebhookSecretGitlab":{"nullable":true,"type":"string"},"manualWebhookSecretBitbucket":{"nullable":true,"type":"string"},"manualWebhookSecretGitea":{"nullable":true,"type":"string"}},"additionalProperties":false},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","projectId","type","kind","name","slug","category","status","environment","isShared","isWorker","fqdn","domains","totalDomains","services","sourceId","gitRepository","gitBranch","createdAt","updatedAt"],"additionalProperties":false},"TriggerDeployInput":{"type":"object","properties":{"force":{"default":false,"type":"boolean"}},"required":["force"],"additionalProperties":false},"Deployment":{"type":"object","properties":{"id":{"type":"number"},"deploymentUuid":{"type":"string"},"applicationId":{"type":"string"},"status":{"type":"string"},"commit":{"nullable":true,"type":"string"},"commitMessage":{"nullable":true,"type":"string"},"commitUrl":{"nullable":true,"type":"string"},"forceRebuild":{"type":"boolean"},"isWebhook":{"type":"boolean"},"isApi":{"type":"boolean"},"restartOnly":{"type":"boolean"},"rollback":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"applicationName":{"nullable":true,"type":"string"},"author":{"nullable":true,"type":"object","properties":{"login":{"nullable":true,"type":"string"},"name":{"nullable":true,"type":"string"},"avatarUrl":{"nullable":true,"type":"string"}},"required":["login","name","avatarUrl"],"additionalProperties":false}},"required":["id","deploymentUuid","applicationId","status","commit","commitMessage","commitUrl","forceRebuild","isWebhook","isApi","restartOnly","rollback","createdAt","updatedAt","applicationName","author"],"additionalProperties":false},"TriggerDeployResult":{"type":"object","properties":{"message":{"type":"string"},"resourceUuid":{"type":"string"},"deploymentUuid":{"type":"string"}},"required":["message","resourceUuid","deploymentUuid"],"additionalProperties":false},"Tool":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"category":{"type":"string","enum":["automation","crm","chat","monitoring","database","other"]},"logo":{"type":"string"},"website":{"type":"string"},"documentation":{"type":"string"},"dbType":{"type":"string","enum":["postgres","mariadb","redis","sqlite","none"]},"auxiliaryDBs":{"type":"array","items":{"type":"string"}},"dependentServices":{"type":"array","items":{"type":"string"}},"versions":{"type":"object","additionalProperties":{"type":"object","properties":{"version":{"type":"string"},"image":{"type":"string"},"releaseDate":{"type":"string"},"deprecated":{"type":"boolean"},"minResources":{"type":"object","properties":{"cpu":{"type":"string"},"memory":{"type":"string"}},"required":["cpu","memory"],"additionalProperties":false},"templates":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"}},"required":["name","description"],"additionalProperties":false}}},"required":["version","image","templates"],"additionalProperties":false}},"defaultVersion":{"type":"string"},"enabled":{"type":"boolean"},"beta":{"type":"boolean"},"superOnly":{"type":"boolean"}},"required":["id","name","description","category","dbType","auxiliaryDBs","dependentServices","versions","defaultVersion","enabled"],"additionalProperties":false},"ToolList":{"type":"array","items":{"$ref":"#/components/schemas/Tool"}},"CreateDatabaseInput":{"oneOf":[{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":3},"description":{"type":"string"},"image":{"type":"string"},"is_public":{"default":false,"type":"boolean"},"public_port":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"wevy_lb_rule_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"limits_memory":{"type":"string"},"limits_memory_swap":{"type":"string"},"limits_memory_swappiness":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_memory_reservation":{"type":"string"},"limits_cpus":{"type":"string"},"limits_cpuset":{"type":"string"},"limits_cpu_shares":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"instant_deploy":{"type":"boolean"},"kind":{"type":"string","enum":["postgres"]},"postgres_user":{"default":"postgres","type":"string","minLength":1,"maxLength":50},"postgres_db":{"default":"postgres","type":"string"},"postgres_initdb_args":{"type":"string"},"postgres_host_auth_method":{"type":"string"},"postgres_conf":{"type":"string"}},"required":["projectId","name","kind","postgres_user","postgres_db"],"additionalProperties":false},{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":3},"description":{"type":"string"},"image":{"type":"string"},"is_public":{"default":false,"type":"boolean"},"public_port":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"wevy_lb_rule_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"limits_memory":{"type":"string"},"limits_memory_swap":{"type":"string"},"limits_memory_swappiness":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_memory_reservation":{"type":"string"},"limits_cpus":{"type":"string"},"limits_cpuset":{"type":"string"},"limits_cpu_shares":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"instant_deploy":{"type":"boolean"},"kind":{"type":"string","enum":["mariadb"]},"mariadb_user":{"default":"mariadb","type":"string","minLength":1,"maxLength":32},"mariadb_database":{"default":"mariadb","type":"string","minLength":1,"maxLength":64}},"required":["projectId","name","kind","mariadb_user","mariadb_database"],"additionalProperties":false},{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":3},"description":{"type":"string"},"image":{"type":"string"},"is_public":{"default":false,"type":"boolean"},"public_port":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"wevy_lb_rule_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"limits_memory":{"type":"string"},"limits_memory_swap":{"type":"string"},"limits_memory_swappiness":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_memory_reservation":{"type":"string"},"limits_cpus":{"type":"string"},"limits_cpuset":{"type":"string"},"limits_cpu_shares":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"instant_deploy":{"type":"boolean"},"kind":{"type":"string","enum":["redis"]}},"required":["projectId","name","kind"],"additionalProperties":false},{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":3},"description":{"type":"string"},"image":{"type":"string"},"is_public":{"default":false,"type":"boolean"},"public_port":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"wevy_lb_rule_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"limits_memory":{"type":"string"},"limits_memory_swap":{"type":"string"},"limits_memory_swappiness":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_memory_reservation":{"type":"string"},"limits_cpus":{"type":"string"},"limits_cpuset":{"type":"string"},"limits_cpu_shares":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"instant_deploy":{"type":"boolean"},"kind":{"type":"string","enum":["mysql"]},"mysql_user":{"default":"mysql","type":"string","minLength":1,"maxLength":32},"mysql_database":{"default":"mysql","type":"string","minLength":1,"maxLength":64},"mysql_conf":{"type":"string"}},"required":["projectId","name","kind","mysql_user","mysql_database"],"additionalProperties":false},{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":3},"description":{"type":"string"},"image":{"type":"string"},"is_public":{"default":false,"type":"boolean"},"public_port":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"wevy_lb_rule_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"limits_memory":{"type":"string"},"limits_memory_swap":{"type":"string"},"limits_memory_swappiness":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_memory_reservation":{"type":"string"},"limits_cpus":{"type":"string"},"limits_cpuset":{"type":"string"},"limits_cpu_shares":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"instant_deploy":{"type":"boolean"},"kind":{"type":"string","enum":["mongodb"]},"mongo_initdb_root_username":{"default":"mongodb","type":"string","minLength":1,"maxLength":64},"mongo_initdb_database":{"default":"mongodb","type":"string","minLength":1,"maxLength":64},"mongo_conf":{"type":"string"}},"required":["projectId","name","kind","mongo_initdb_root_username","mongo_initdb_database"],"additionalProperties":false},{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":3},"description":{"type":"string"},"image":{"type":"string"},"is_public":{"default":false,"type":"boolean"},"public_port":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"wevy_lb_rule_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"limits_memory":{"type":"string"},"limits_memory_swap":{"type":"string"},"limits_memory_swappiness":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_memory_reservation":{"type":"string"},"limits_cpus":{"type":"string"},"limits_cpuset":{"type":"string"},"limits_cpu_shares":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"instant_deploy":{"type":"boolean"},"kind":{"type":"string","enum":["keydb"]},"keydb_conf":{"type":"string"}},"required":["projectId","name","kind"],"additionalProperties":false},{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":3},"description":{"type":"string"},"image":{"type":"string"},"is_public":{"default":false,"type":"boolean"},"public_port":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"wevy_lb_rule_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"limits_memory":{"type":"string"},"limits_memory_swap":{"type":"string"},"limits_memory_swappiness":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_memory_reservation":{"type":"string"},"limits_cpus":{"type":"string"},"limits_cpuset":{"type":"string"},"limits_cpu_shares":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"instant_deploy":{"type":"boolean"},"kind":{"type":"string","enum":["dragonfly"]}},"required":["projectId","name","kind"],"additionalProperties":false},{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":3},"description":{"type":"string"},"image":{"type":"string"},"is_public":{"default":false,"type":"boolean"},"public_port":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"wevy_lb_rule_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"limits_memory":{"type":"string"},"limits_memory_swap":{"type":"string"},"limits_memory_swappiness":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_memory_reservation":{"type":"string"},"limits_cpus":{"type":"string"},"limits_cpuset":{"type":"string"},"limits_cpu_shares":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"instant_deploy":{"type":"boolean"},"kind":{"type":"string","enum":["clickhouse"]},"clickhouse_admin_user":{"default":"default","type":"string","minLength":1,"maxLength":64}},"required":["projectId","name","kind","clickhouse_admin_user"],"additionalProperties":false}]},"UpdateDatabaseInput":{"type":"object","properties":{"name":{"type":"string","minLength":3},"description":{"type":"string"},"image":{"type":"string"},"is_public":{"type":"boolean"},"public_port":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"wevy_lb_rule_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"limits_memory":{"type":"string"},"limits_memory_swap":{"type":"string"},"limits_memory_swappiness":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limits_memory_reservation":{"type":"string"},"limits_cpus":{"type":"string"},"limits_cpuset":{"type":"string"},"limits_cpu_shares":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"instant_deploy":{"type":"boolean"}},"additionalProperties":false},"Database":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"image":{"nullable":true,"type":"string"},"version":{"nullable":true,"type":"string"},"status":{"type":"string"},"isShared":{"type":"boolean"},"isPublic":{"type":"boolean"},"publicPort":{"nullable":true,"type":"number"},"publicHost":{"nullable":true,"type":"string"},"connection":{"nullable":true,"type":"object","properties":{"host":{"type":"string"},"port":{"type":"number"},"publicHost":{"nullable":true,"type":"string"},"publicPort":{"nullable":true,"type":"number"},"password":{"type":"string"},"uri":{"type":"string"}},"required":["host","port","publicHost","publicPort","password","uri"],"additionalProperties":false},"cpuLimit":{"nullable":true,"type":"string"},"memLimit":{"nullable":true,"type":"string"},"memswapLimit":{"nullable":true,"type":"string"},"limitsMemorySwappiness":{"nullable":true,"type":"number"},"limitsCpuset":{"nullable":true,"type":"string"},"limitsCpuShares":{"nullable":true,"type":"number"},"limitsMemoryReservation":{"nullable":true,"type":"string"},"meta":{"nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","projectId","type","kind","name","slug","image","version","status","isShared","isPublic","publicPort","publicHost","cpuLimit","memLimit","memswapLimit","createdAt","updatedAt"],"additionalProperties":false},"DatabaseList":{"type":"array","items":{"$ref":"#/components/schemas/Database"}},"CreateBackupInput":{"type":"object","properties":{"frequency":{"type":"string"},"enabled":{"type":"boolean"},"databasesToBackup":{"type":"string"},"dumpAll":{"type":"boolean"},"saveS3":{"type":"boolean"},"s3StorageUuid":{"type":"string"},"retentionAmountLocally":{"type":"integer","minimum":0,"maximum":9007199254740991},"retentionDaysLocally":{"type":"integer","minimum":0,"maximum":9007199254740991},"retentionMaxStorageLocally":{"type":"integer","minimum":0,"maximum":9007199254740991},"retentionAmountS3":{"type":"integer","minimum":0,"maximum":9007199254740991},"retentionDaysS3":{"type":"integer","minimum":0,"maximum":9007199254740991},"retentionMaxStorageS3":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"RestoreBackupInput":{"type":"object","properties":{"executionId":{"type":"string","minLength":1},"confirm":{"type":"boolean","enum":[true]}},"required":["executionId","confirm"],"additionalProperties":false},"BackupConfig":{"type":"object","properties":{"id":{"type":"number"},"uuid":{"type":"string"},"databaseId":{"type":"number"},"saveS3":{"type":"boolean"},"s3StorageUuid":{"nullable":true,"type":"string"},"enabled":{"type":"boolean"},"databasesToBackup":{"type":"string"},"dumpAll":{"type":"boolean"},"frequency":{"type":"string"},"retentionAmountLocally":{"type":"number"},"retentionDaysLocally":{"type":"number"},"retentionMaxStorageLocally":{"type":"number"},"retentionAmountS3":{"type":"number"},"retentionDaysS3":{"type":"number"},"retentionMaxStorageS3":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","uuid","databaseId","saveS3","s3StorageUuid","enabled","databasesToBackup","dumpAll","frequency","retentionAmountLocally","retentionDaysLocally","retentionMaxStorageLocally","retentionAmountS3","retentionDaysS3","retentionMaxStorageS3","createdAt","updatedAt"],"additionalProperties":false},"BackupExecution":{"type":"object","properties":{"uuid":{"type":"string"},"filename":{"type":"string"},"size":{"type":"number"},"createdAt":{"type":"string"},"message":{"type":"string"},"status":{"type":"string"}},"required":["uuid","filename","size","createdAt","message","status"],"additionalProperties":false},"BackupCreateResult":{"type":"object","properties":{"uuid":{"type":"string"}},"required":["uuid"],"additionalProperties":false},"BackupTriggerResult":{"type":"object","properties":{"status":{"type":"string","enum":["triggered"]},"backupId":{"type":"string"}},"required":["status","backupId"],"additionalProperties":false},"BackupRestoreResult":{"type":"object","properties":{"status":{"type":"string","enum":["restored"]},"executionId":{"type":"string"},"filename":{"type":"string"},"restoredAt":{"type":"string"}},"required":["status","executionId","filename","restoredAt"],"additionalProperties":false},"CreateAccountInput":{"type":"object","properties":{"username":{"type":"string","pattern":"^[a-zA-Z0-9_]{1,32}$"},"password":{"type":"string","minLength":12,"maxLength":128},"dbName":{"type":"string","pattern":"^[a-zA-Z0-9_]+$"},"provision":{"default":true,"type":"boolean"}},"required":["username","password","dbName","provision"],"additionalProperties":false},"ResetPasswordInput":{"type":"object","properties":{"password":{"type":"string","minLength":12,"maxLength":128}},"required":["password"],"additionalProperties":false},"EnableExtensionsInput":{"type":"object","properties":{"extensions":{"minItems":1,"type":"array","items":{"type":"string","enum":["pg_stat_statements","pg_trgm","vector"]}}},"required":["extensions"],"additionalProperties":false},"ExecuteQueryInput":{"type":"object","properties":{"sql":{"type":"string","minLength":1,"maxLength":10000},"limit":{"default":500,"type":"integer","minimum":1,"maximum":500},"timeout":{"default":30000,"type":"integer","minimum":1000,"maximum":60000}},"required":["sql","limit","timeout"],"additionalProperties":false},"DatabaseAccount":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"password":{"type":"string"},"dbName":{"type":"string"},"isDefault":{"type":"boolean"},"provisioned":{"type":"boolean"},"enabledExtensions":{"type":"array","items":{"type":"string"}},"host":{"type":"string"},"publicPort":{"nullable":true,"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","resourceId","username","password","dbName","isDefault","provisioned","enabledExtensions","host","publicPort","createdAt","updatedAt"],"additionalProperties":false},"DatabaseAccountList":{"type":"array","items":{"$ref":"#/components/schemas/DatabaseAccount"}},"QueryResult":{"type":"object","properties":{"columns":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}},"rows":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"rowCount":{"type":"number"},"raw":{"type":"string"}},"required":["columns","rows","rowCount"],"additionalProperties":false},"DatabaseSchema":{"type":"object","properties":{"tables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"schema":{"type":"string"},"columns":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"nullable":{"type":"boolean"},"defaultValue":{"nullable":true,"type":"string"},"isPrimaryKey":{"type":"boolean"},"isUnique":{"type":"boolean"}},"required":["name","type","nullable","defaultValue","isPrimaryKey","isUnique"],"additionalProperties":false}},"primaryKey":{"type":"array","items":{"type":"string"}},"indexes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"columns":{"type":"array","items":{"type":"string"}},"isUnique":{"type":"boolean"}},"required":["name","columns","isUnique"],"additionalProperties":false}}},"required":["name","schema","columns","primaryKey","indexes"],"additionalProperties":false}},"relationships":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"sourceTable":{"type":"string"},"sourceColumns":{"type":"array","items":{"type":"string"}},"targetTable":{"type":"string"},"targetColumns":{"type":"array","items":{"type":"string"}}},"required":["name","sourceTable","sourceColumns","targetTable","targetColumns"],"additionalProperties":false}}},"required":["tables","relationships"],"additionalProperties":false},"CreateServerInput":{"type":"object","properties":{"name":{"type":"string","minLength":3,"maxLength":100},"location":{"type":"string","minLength":2,"maxLength":50},"hostname":{"type":"string","minLength":1},"ip":{"type":"string","pattern":"^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$"},"sshAdminIp":{"nullable":true,"type":"string","pattern":"^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$"},"sshPort":{"default":22,"type":"integer","minimum":1,"maximum":65535},"sshKeyId":{"type":"string","minLength":1},"sshUsername":{"default":"opsbot","type":"string","enum":["root","ubuntu","opsbot"]},"serverTimezone":{"default":"America/Sao_Paulo","type":"string"},"cpuCores":{"type":"integer","minimum":1,"maximum":9007199254740991},"ramGB":{"type":"integer","minimum":1,"maximum":9007199254740991},"diskGB":{"type":"integer","minimum":1,"maximum":9007199254740991},"healthStatus":{"default":"unknown","type":"string","enum":["online","offline","maintenance","unknown"]},"isActive":{"default":true,"type":"boolean"},"sharedMariadbContainerName":{"nullable":true,"type":"string"},"sharedMariadbNetwork":{"nullable":true,"type":"string"},"type":{"default":"WORKER","type":"string","enum":["EDGE","BASTION","WORKER","COOLIFY_HOST"]},"category":{"default":"PROD","type":"string","enum":["PROD","DEV"]},"networkLocation":{"default":"INTERNAL","type":"string","enum":["INTERNAL","REMOTE"]},"bastionServerId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"snatOutboundIp":{"nullable":true,"type":"string","pattern":"^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$"}},"required":["name","location","hostname","ip","sshPort","sshKeyId","sshUsername","serverTimezone","cpuCores","ramGB","diskGB","healthStatus","isActive","type","category","networkLocation"],"additionalProperties":false},"UpdateServerInput":{"type":"object","properties":{"name":{"type":"string","minLength":3,"maxLength":100},"location":{"type":"string","minLength":2,"maxLength":50},"hostname":{"type":"string","minLength":1},"ip":{"type":"string","pattern":"^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$"},"sshAdminIp":{"nullable":true,"type":"string","pattern":"^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$"},"sshPort":{"default":22,"type":"integer","minimum":1,"maximum":65535},"sshKeyId":{"type":"string","minLength":1},"sshUsername":{"default":"opsbot","type":"string","enum":["root","ubuntu","opsbot"]},"serverTimezone":{"default":"America/Sao_Paulo","type":"string"},"cpuCores":{"type":"integer","minimum":1,"maximum":9007199254740991},"ramGB":{"type":"integer","minimum":1,"maximum":9007199254740991},"diskGB":{"type":"integer","minimum":1,"maximum":9007199254740991},"healthStatus":{"default":"unknown","type":"string","enum":["online","offline","maintenance","unknown"]},"isActive":{"default":true,"type":"boolean"},"sharedMariadbContainerName":{"nullable":true,"type":"string"},"sharedMariadbNetwork":{"nullable":true,"type":"string"},"type":{"default":"WORKER","type":"string","enum":["EDGE","BASTION","WORKER","COOLIFY_HOST"]},"category":{"default":"PROD","type":"string","enum":["PROD","DEV"]},"networkLocation":{"default":"INTERNAL","type":"string","enum":["INTERNAL","REMOTE"]},"bastionServerId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"snatOutboundIp":{"nullable":true,"type":"string","pattern":"^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$"}},"additionalProperties":false},"Server":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"location":{"type":"string"},"hostname":{"type":"string"},"ip":{"type":"string"},"sshAdminIp":{"nullable":true,"type":"string"},"sshPort":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sshKeyId":{"type":"string","minLength":1},"sshUsername":{"type":"string"},"serverUuid":{"nullable":true,"type":"string"},"serverTimezone":{"type":"string"},"cpuCores":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"ramGB":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"diskGB":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"healthStatus":{"type":"string","enum":["online","offline","maintenance","unknown"]},"isActive":{"type":"boolean"},"sharedMariadbContainerName":{"nullable":true,"type":"string"},"sharedMariadbNetwork":{"nullable":true,"type":"string"},"type":{"type":"string","enum":["EDGE","BASTION","WORKER","COOLIFY_HOST"]},"category":{"type":"string","enum":["PROD","DEV"]},"networkLocation":{"type":"string","enum":["INTERNAL","REMOTE"]},"bastionServerId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"opsctlVersion":{"nullable":true,"type":"string"},"wgAdmIp":{"nullable":true,"type":"string"},"wgPublicIp":{"nullable":true,"type":"string"},"snatOutboundIp":{"nullable":true,"type":"string"},"adminFqdn":{"nullable":true,"type":"string"},"onboarding":{"type":"object","properties":{"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"completed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"completedWithWarnings":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"failed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pending":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"running":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"notApplicable":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"startedAt":{"nullable":true,"type":"string"},"completedAt":{"nullable":true,"type":"string"}},"required":["total","completed","completedWithWarnings","failed","pending","running","notApplicable","startedAt","completedAt"],"additionalProperties":false},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","location","hostname","ip","sshAdminIp","sshPort","sshKeyId","sshUsername","serverUuid","serverTimezone","cpuCores","ramGB","diskGB","healthStatus","isActive","type","category","networkLocation","bastionServerId","opsctlVersion","wgAdmIp","wgPublicIp","snatOutboundIp","adminFqdn","onboarding","createdAt","updatedAt"],"additionalProperties":false},"ServerList":{"type":"array","items":{"$ref":"#/components/schemas/Server"}},"CreateDestinationInput":{"type":"object","properties":{"name":{"type":"string","minLength":3},"destUuid":{"type":"string"},"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["name","destUuid","serverId"],"additionalProperties":false},"Destination":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"destUuid":{"type":"string"},"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","destUuid","serverId","createdAt"],"additionalProperties":false},"DestinationList":{"type":"array","items":{"$ref":"#/components/schemas/Destination"}},"PgListUsersInput":{"type":"object","properties":{"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"container":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$"}},"required":["serverId","container"],"additionalProperties":false},"PgCreateUserInput":{"type":"object","properties":{"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"container":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$"},"db":{"type":"string","pattern":"^[a-zA-Z0-9_]+$"},"username":{"type":"string","pattern":"^[a-zA-Z0-9_]{1,32}$"},"password":{"type":"string","minLength":12,"maxLength":128}},"required":["serverId","container","db","username","password"],"additionalProperties":false},"PgListTablesInput":{"type":"object","properties":{"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"container":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$"},"db":{"type":"string","pattern":"^[a-zA-Z0-9_]+$"}},"required":["serverId","container","db"],"additionalProperties":false},"PgEnableExtensionsInput":{"type":"object","properties":{"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"container":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$"},"db":{"type":"string","pattern":"^[a-zA-Z0-9_]+$"},"extensions":{"minItems":1,"type":"array","items":{"type":"string","pattern":"^[a-zA-Z_][a-zA-Z0-9_-]*$"}}},"required":["serverId","container","db","extensions"],"additionalProperties":false},"PgDropUserInput":{"type":"object","properties":{"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"container":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$"},"username":{"type":"string","pattern":"^[a-zA-Z0-9_]{1,32}$"}},"required":["serverId","container","username"],"additionalProperties":false},"MysqlCreateUserInput":{"type":"object","properties":{"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"container":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$"},"db":{"type":"string","pattern":"^[a-zA-Z0-9_]{1,64}$"},"username":{"type":"string","pattern":"^[a-zA-Z0-9_]{1,32}$"},"password":{"type":"string","minLength":12,"maxLength":128}},"required":["serverId","container","db","username","password"],"additionalProperties":false},"MysqlDropUserInput":{"type":"object","properties":{"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"container":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$"},"username":{"type":"string","pattern":"^[a-zA-Z0-9_]{1,32}$"}},"required":["serverId","container","username"],"additionalProperties":false},"MysqlDropDatabaseInput":{"type":"object","properties":{"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"container":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$"},"db":{"type":"string","pattern":"^[a-zA-Z0-9_]{1,64}$"}},"required":["serverId","container","db"],"additionalProperties":false},"MysqlListTablesInput":{"type":"object","properties":{"serverId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"container":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$"},"db":{"type":"string","pattern":"^[a-zA-Z0-9_]{1,64}$"}},"required":["serverId","container","db"],"additionalProperties":false},"PgListUsersResult":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"}}},"required":["users"],"additionalProperties":false},"PgCreateUserResult":{"type":"object","properties":{"created":{"type":"boolean"}},"required":["created"],"additionalProperties":false},"PgListTablesResult":{"type":"object","properties":{"tables":{"type":"array","items":{"type":"string"}}},"required":["tables"],"additionalProperties":false},"PgEnableExtensionsResult":{"type":"object","properties":{"enabled":{"type":"array","items":{"type":"string"}}},"required":["enabled"],"additionalProperties":false},"PgDropUserResult":{"type":"object","properties":{"dropped":{"type":"boolean"}},"required":["dropped"],"additionalProperties":false},"MysqlCreateUserResult":{"type":"object","properties":{"created":{"type":"boolean"}},"required":["created"],"additionalProperties":false},"MysqlDropUserResult":{"type":"object","properties":{"dropped":{"type":"boolean"}},"required":["dropped"],"additionalProperties":false},"MysqlDropDatabaseResult":{"type":"object","properties":{"dropped":{"type":"boolean"}},"required":["dropped"],"additionalProperties":false},"MysqlListTablesResult":{"type":"object","properties":{"tables":{"type":"array","items":{"type":"string"}}},"required":["tables"],"additionalProperties":false},"CreateGithubResourceInput":{"type":"object","properties":{"sourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"installationId":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":9007199254740991},"name":{"type":"string","minLength":1},"kind":{"type":"string","minLength":1},"repoFullName":{"type":"string","pattern":"^[\\w.-]+\\/[\\w.-]+$"},"branch":{"type":"string","minLength":1},"buildMode":{"type":"string","enum":["nixpacks","dockerfile","static"]},"fqdn":{"type":"string","format":"uri"},"generateDomain":{"default":true,"type":"boolean"},"instantDeploy":{"default":false,"type":"boolean"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"}},"limits":{"default":{"cpus":"1","memory":"512M","memorySwap":"512M"},"type":"object","properties":{"cpus":{"default":"1","type":"string"},"memory":{"default":"512M","type":"string"},"memorySwap":{"default":"512M","type":"string"}},"required":["cpus","memory","memorySwap"],"additionalProperties":false},"buildConfig":{"type":"object","properties":{"baseDirectory":{"type":"string"},"publishDirectory":{"type":"string"},"installCommand":{"type":"string"},"buildCommand":{"type":"string"},"startCommand":{"type":"string"},"dockerfileLocation":{"type":"string"},"staticImage":{"type":"string"},"isSpa":{"type":"boolean"},"portsExposes":{"type":"string"},"portsMappings":{"type":"string"},"isAutoDeployEnabled":{"type":"boolean"},"watchPaths":{"type":"string"},"isForceHttpsEnabled":{"type":"boolean"},"autogenerateDomain":{"type":"boolean"},"isContainerLabelEscapeEnabled":{"type":"boolean"},"preDeploymentCommand":{"type":"string"},"preDeploymentCommandContainer":{"type":"string"},"postDeploymentCommand":{"type":"string"},"postDeploymentCommandContainer":{"type":"string"},"redirect":{"type":"string"},"healthCheckEnabled":{"type":"boolean"},"healthCheckPath":{"type":"string"},"healthCheckPort":{"type":"string"},"healthCheckHost":{"type":"string"},"healthCheckMethod":{"type":"string"},"healthCheckReturnCode":{"type":"number"},"healthCheckScheme":{"type":"string"},"healthCheckResponseText":{"type":"string"},"healthCheckInterval":{"type":"number"},"healthCheckTimeout":{"type":"number"},"healthCheckRetries":{"type":"number"},"healthCheckStartPeriod":{"type":"number"}},"additionalProperties":false}},"required":["repoFullName","branch","buildMode","generateDomain","instantDeploy","limits"],"additionalProperties":false},"DeployGithubInput":{"type":"object","properties":{"sourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"installationId":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":9007199254740991},"repoFullName":{"type":"string","pattern":"^[\\w.-]+\\/[\\w.-]+$"},"branch":{"type":"string","minLength":1},"buildMode":{"type":"string","enum":["nixpacks","dockerfile"]},"fqdn":{"type":"string","format":"uri"},"instantDeploy":{"default":false,"type":"boolean"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"}},"buildConfig":{"type":"object","properties":{"baseDirectory":{"type":"string"},"publishDirectory":{"type":"string"},"installCommand":{"type":"string"},"buildCommand":{"type":"string"},"startCommand":{"type":"string"},"dockerfileLocation":{"type":"string"},"staticImage":{"type":"string"},"isSpa":{"type":"boolean"},"portsExposes":{"type":"string"},"portsMappings":{"type":"string"},"isAutoDeployEnabled":{"type":"boolean"},"watchPaths":{"type":"string"},"isForceHttpsEnabled":{"type":"boolean"},"autogenerateDomain":{"type":"boolean"},"isContainerLabelEscapeEnabled":{"type":"boolean"},"preDeploymentCommand":{"type":"string"},"preDeploymentCommandContainer":{"type":"string"},"postDeploymentCommand":{"type":"string"},"postDeploymentCommandContainer":{"type":"string"},"redirect":{"type":"string"},"healthCheckEnabled":{"type":"boolean"},"healthCheckPath":{"type":"string"},"healthCheckPort":{"type":"string"},"healthCheckHost":{"type":"string"},"healthCheckMethod":{"type":"string"},"healthCheckReturnCode":{"type":"number"},"healthCheckScheme":{"type":"string"},"healthCheckResponseText":{"type":"string"},"healthCheckInterval":{"type":"number"},"healthCheckTimeout":{"type":"number"},"healthCheckRetries":{"type":"number"},"healthCheckStartPeriod":{"type":"number"}},"additionalProperties":false}},"required":["repoFullName","branch","buildMode","instantDeploy"],"additionalProperties":false},"GithubConnect":{"type":"object","properties":{"installUrl":{"type":"string"},"expiresAt":{"type":"string"},"message":{"type":"string"}},"required":["installUrl","expiresAt","message"],"additionalProperties":false},"GithubSourceList":{"type":"object","properties":{"source":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"installationId":{"type":"number"},"githubAccountLogin":{"nullable":true,"type":"string"},"isActive":{"type":"boolean"},"createdAt":{"type":"string"}},"required":["id","installationId","githubAccountLogin","isActive","createdAt"],"additionalProperties":false},"message":{"type":"string"}},"required":["source"],"additionalProperties":false},"GithubRepositoryList":{"type":"object","properties":{"repositories":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"},"full_name":{"type":"string"},"description":{"nullable":true,"type":"string"},"private":{"type":"boolean"},"html_url":{"type":"string"},"sourceId":{"type":"string"},"created_at":{"nullable":true,"type":"string"},"default_branch":{"nullable":true,"type":"string"}},"required":["id","name","full_name","description","private","html_url","sourceId"],"additionalProperties":false}},"total_count":{"type":"number"},"page":{"type":"number"},"per_page":{"type":"number"}},"required":["repositories"],"additionalProperties":false},"GithubBranchList":{"type":"object","properties":{"branches":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"commit":{"type":"object","properties":{"sha":{"type":"string"},"url":{"type":"string"}},"required":["sha","url"],"additionalProperties":false},"protected":{"type":"boolean"}},"required":["name","commit","protected"],"additionalProperties":false}}},"required":["branches"],"additionalProperties":false},"GithubResourceCreateResponse":{"type":"object","properties":{"resource":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string"},"kind":{"type":"string"},"gitRepository":{"type":"string"},"gitBranch":{"type":"string"},"buildMode":{"type":"string","enum":["nixpacks","dockerfile","static"]},"port":{"nullable":true,"type":"number"},"autoDeploy":{"type":"boolean"},"status":{"type":"string"},"fqdn":{"nullable":true,"type":"string"},"coolifySourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string"},"createdAt":{"type":"string"}},"required":["id","type","kind","gitRepository","gitBranch","buildMode","port","autoDeploy","status","fqdn","coolifySourceId","projectId","createdAt"],"additionalProperties":false},"deployment":{"type":"object","properties":{"coolifyAppId":{"type":"string"},"deploymentUuid":{"nullable":true,"type":"string"}},"required":["coolifyAppId"],"additionalProperties":false},"message":{"type":"string"}},"required":["resource","deployment","message"],"additionalProperties":false},"GithubDeployResponse":{"type":"object","properties":{"resource":{"type":"object","properties":{"id":{"type":"string"},"gitRepository":{"type":"string"},"gitBranch":{"type":"string"},"buildMode":{"type":"string","enum":["nixpacks","dockerfile"]},"port":{"nullable":true,"type":"number"},"autoDeploy":{"type":"boolean"},"status":{"type":"string"},"fqdn":{"nullable":true,"type":"string"},"coolifySourceId":{"type":"string"}},"required":["id","gitRepository","gitBranch","buildMode","port","autoDeploy","status","fqdn","coolifySourceId"],"additionalProperties":false},"deployment":{"type":"object","properties":{"coolifyAppId":{"type":"string"},"deploymentUuid":{"nullable":true,"type":"string"}},"required":["coolifyAppId"],"additionalProperties":false},"message":{"type":"string"}},"required":["resource","deployment","message"],"additionalProperties":false},"GithubWebhookResponse":{"type":"object","properties":{"message":{"type":"string"},"resourcesAffected":{"type":"number"},"results":{"type":"array","items":{"type":"object","properties":{"resourceId":{"type":"string"},"status":{"type":"string","enum":["success","error"]},"error":{"type":"string"}},"required":["resourceId","status"],"additionalProperties":false}}},"required":["message"],"additionalProperties":false},"AuditLog":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"action":{"type":"string","enum":["CREATE","UPDATE","DELETE","DEPLOY","LOGIN","LOGOUT","ATTACH","DETACH","CONNECT","DISCONNECT","START","STOP","RESTART","MIGRATE","BACKUP_CREATE","BACKUP_RESTORE","BACKUP_DOWNLOAD","BACKUP_CONFIG_CREATE","BACKUP_CONFIG_UPDATE","BACKUP_CONFIG_DELETE"]},"actorId":{"nullable":true,"type":"string"},"actorKind":{"nullable":true,"type":"string"},"actorRole":{"nullable":true,"type":"string"},"actor":{"nullable":true,"type":"object","properties":{"email":{"type":"string"}},"required":["email"],"additionalProperties":false},"organizationId":{"nullable":true,"type":"string"},"organization":{"nullable":true,"type":"object","properties":{"name":{"type":"string"}},"required":["name"],"additionalProperties":false},"projectId":{"nullable":true,"type":"string"},"project":{"nullable":true,"type":"object","properties":{"name":{"type":"string"}},"required":["name"],"additionalProperties":false},"resourceId":{"nullable":true,"type":"string"},"resource":{"nullable":true,"type":"object","properties":{"kind":{"type":"string"},"type":{"type":"string"}},"required":["kind","type"],"additionalProperties":false},"targetType":{"nullable":true,"type":"string"},"targetId":{"nullable":true,"type":"string"},"ip":{"nullable":true,"type":"string"},"userAgent":{"nullable":true,"type":"string"},"requestId":{"nullable":true,"type":"string"},"meta":{"nullable":true},"diff":{"nullable":true},"apiResp":{"nullable":true},"createdAt":{"type":"string"}},"required":["id","action","actorId","actorKind","actorRole","actor","organizationId","organization","projectId","project","resourceId","resource","targetType","targetId","ip","userAgent","requestId","meta","diff","apiResp","createdAt"],"additionalProperties":false},"CreateDomainInput":{"type":"object","properties":{"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fqdn":{"type":"string","minLength":3,"pattern":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,}$"},"resourceId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"makePrimary":{"type":"boolean"},"keepPlatformDomain":{"type":"boolean"},"dnsProvider":{"type":"string","enum":["CLOUDFLARE"]},"cfAccountId":{"type":"string"},"cfManaged":{"type":"boolean"},"cloudflareIntegrationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["organizationId","fqdn"],"additionalProperties":false},"UpdateDomainInput":{"type":"object","properties":{"fqdn":{"type":"string","minLength":3,"pattern":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,}$"},"serviceName":{"type":"string","minLength":1},"keepPlatformDomain":{"type":"boolean"}},"additionalProperties":false},"AttachDomainInput":{"type":"object","properties":{"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"makePrimary":{"type":"boolean"},"serviceName":{"type":"string","minLength":1},"keepPlatformDomain":{"type":"boolean"}},"required":["resourceId"],"additionalProperties":false},"Domain":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"resourceId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fqdn":{"type":"string"},"type":{"type":"string","enum":["PLATFORM","CUSTOM","TENANT"]},"status":{"type":"string","enum":["PENDING","VERIFYING","ACTIVE","ERROR","DISABLED"]},"cnameTarget":{"nullable":true,"type":"string"},"dnsInstructions":{"nullable":true,"oneOf":[{"type":"object","properties":{"recordType":{"type":"string","enum":["CNAME"]},"host":{"type":"string"},"value":{"type":"string"}},"required":["recordType","host","value"],"additionalProperties":false},{"type":"object","properties":{"recordType":{"type":"string","enum":["A"]},"host":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}},"required":["recordType","host","values"],"additionalProperties":false}]},"serviceName":{"nullable":true,"type":"string"},"keepPlatformDomain":{"type":"boolean"},"verifiedAt":{"nullable":true,"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"authoritativeZone":{"nullable":true,"type":"string"},"authoritativeNs":{"nullable":true,"type":"array","items":{"type":"string"}},"lastCheckedAt":{"nullable":true,"type":"string"},"errorMessage":{"nullable":true,"type":"string"}},"required":["id","organizationId","resourceId","fqdn","type","status","cnameTarget","dnsInstructions","serviceName","keepPlatformDomain","verifiedAt","createdAt","updatedAt","authoritativeZone","authoritativeNs","lastCheckedAt","errorMessage"],"additionalProperties":false},"DomainPaginatedList":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"resourceId":{"nullable":true,"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fqdn":{"type":"string"},"type":{"type":"string","enum":["PLATFORM","CUSTOM","TENANT"]},"status":{"type":"string","enum":["PENDING","VERIFYING","ACTIVE","ERROR","DISABLED"]},"cnameTarget":{"nullable":true,"type":"string"},"dnsInstructions":{"nullable":true,"oneOf":[{"type":"object","properties":{"recordType":{"type":"string","enum":["CNAME"]},"host":{"type":"string"},"value":{"type":"string"}},"required":["recordType","host","value"],"additionalProperties":false},{"type":"object","properties":{"recordType":{"type":"string","enum":["A"]},"host":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}},"required":["recordType","host","values"],"additionalProperties":false}]},"serviceName":{"nullable":true,"type":"string"},"keepPlatformDomain":{"type":"boolean"},"verifiedAt":{"nullable":true,"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","resourceId","fqdn","type","status","cnameTarget","dnsInstructions","serviceName","keepPlatformDomain","verifiedAt","createdAt","updatedAt"],"additionalProperties":false}},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"perPage":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalPages":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["data","total","page","perPage","totalPages"],"additionalProperties":false},"DomainAttachResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"cnameTarget":{"type":"string"},"status":{"type":"string","enum":["PENDING","VERIFYING","ACTIVE","ERROR","DISABLED"]}},"required":["id","resourceId","cnameTarget","status"],"additionalProperties":false},"DomainDetachResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"resourceId":{"type":"string","nullable":true,"enum":[null]},"cnameTarget":{"nullable":true,"type":"string"},"status":{"type":"string"}},"required":["id","resourceId","cnameTarget","status"],"additionalProperties":false},"DomainSetPrimaryResponse":{"type":"object","properties":{"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"primaryDomainId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fqdn":{"type":"string"}},"required":["resourceId","primaryDomainId","fqdn"],"additionalProperties":false},"DomainVerifyResponse":{"type":"object","properties":{"status":{"type":"string","enum":["PENDING","VERIFYING","ACTIVE","ERROR","DISABLED"]},"fqdn":{"type":"string"},"verification":{"nullable":true,"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["CNAME"]},"expectedTarget":{"type":"string"},"actualCname":{"nullable":true,"type":"string"},"isCorrect":{"type":"boolean"}},"required":["mode","expectedTarget","actualCname","isCorrect"],"additionalProperties":false},{"type":"object","properties":{"mode":{"type":"string","enum":["APEX_AAAA"]},"expectedTarget":{"type":"string"},"expectedIps":{"type":"array","items":{"type":"string"}},"actualIps":{"type":"array","items":{"type":"string"}},"isCorrect":{"type":"boolean"}},"required":["mode","expectedTarget","expectedIps","actualIps","isCorrect"],"additionalProperties":false}]},"verifiedAt":{"nullable":true,"type":"string"},"authoritativeZone":{"nullable":true,"type":"string"},"authoritativeNs":{"nullable":true,"type":"array","items":{"type":"string"}}},"required":["status","fqdn","verification"],"additionalProperties":false},"CreateDnsRecordInput":{"type":"object","properties":{"type":{"type":"string","enum":["A","AAAA","CNAME","MX","TXT","NS","SRV","CAA"]},"name":{"type":"string","minLength":1},"content":{"type":"string","minLength":1},"ttl":{"type":"integer","minimum":1,"maximum":9007199254740991},"proxied":{"type":"boolean"},"priority":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"object","additionalProperties":{}}},"required":["type","name","content"],"additionalProperties":false},"UpdateDnsRecordInput":{"type":"object","properties":{"type":{"type":"string","enum":["A","AAAA","CNAME","MX","TXT","NS","SRV","CAA"]},"name":{"type":"string","minLength":1},"content":{"type":"string","minLength":1},"ttl":{"type":"integer","minimum":1,"maximum":9007199254740991},"proxied":{"type":"boolean"},"priority":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"object","additionalProperties":{}}},"required":["type","name","content"],"additionalProperties":false},"CreateApiTokenInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"allowedOrigins":{"default":[],"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":253}},"expiresInDays":{"default":90,"nullable":true,"type":"integer","minimum":1,"maximum":365}},"required":["name","allowedOrigins"],"additionalProperties":false},"ApiTokenCreateResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"token":{"type":"string"},"name":{"type":"string"},"audience":{"type":"string","enum":["PUBLIC","PRIVATE"]},"allowedOrigins":{"type":"array","items":{"type":"string"}},"expiresAt":{"nullable":true,"type":"string"},"createdAt":{"type":"string"}},"required":["id","token","name","audience","allowedOrigins","expiresAt","createdAt"],"additionalProperties":false},"ApiTokenListResponse":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"tokenPrefix":{"type":"string"},"name":{"type":"string"},"audience":{"type":"string","enum":["PUBLIC","PRIVATE"]},"allowedOrigins":{"type":"array","items":{"type":"string"}},"expiresAt":{"nullable":true,"type":"string"},"lastUsedAt":{"nullable":true,"type":"string"},"revokedAt":{"nullable":true,"type":"string"},"createdAt":{"type":"string"}},"required":["id","tokenPrefix","name","audience","allowedOrigins","expiresAt","lastUsedAt","revokedAt","createdAt"],"additionalProperties":false}},"CreateBucketInput":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]$"},"displayName":{"type":"string","minLength":1,"maxLength":100},"quotaGB":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991},"policy":{"default":"readwrite","type":"string","enum":["readonly","writeonly","readwrite"]},"environment":{"type":"string","enum":["PRODUCTION","STAGING","DEVELOPMENT"]},"isPublic":{"default":false,"type":"boolean"}},"required":["projectId","name","quotaGB","policy","isPublic"],"additionalProperties":false},"UpdateBucketInput":{"type":"object","properties":{"displayName":{"type":"string","minLength":1,"maxLength":100},"quotaGB":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"StorageBucket":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"displayName":{"nullable":true,"type":"string"},"status":{"type":"string","enum":["CREATING","ACTIVE","ERROR","DELETING"]},"environment":{"type":"string","enum":["PRODUCTION","STAGING","DEVELOPMENT"]},"quotaGB":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"policy":{"type":"string"},"region":{"type":"string"},"sizeBytes":{"type":"number"},"objectCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"isDefault":{"type":"boolean"},"isPublic":{"type":"boolean"},"customDomain":{"nullable":true,"type":"string"},"publicUrl":{"nullable":true,"type":"string"},"corsRules":{"nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","projectId","name","displayName","status","environment","quotaGB","policy","region","sizeBytes","objectCount","isDefault","isPublic","customDomain","publicUrl","corsRules","createdAt","updatedAt"],"additionalProperties":false},"StorageBucketList":{"type":"array","items":{"$ref":"#/components/schemas/StorageBucket"}},"FinanceAsaasDashboard":{"type":"object","properties":{"mrr":{"type":"number"},"arr":{"type":"number"},"projectedAnnualRevenue":{"type":"number"},"activeSubscriptions":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"newSubscriptions":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"newCustomers":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"ticketMedio":{"type":"number"},"received":{"type":"object","properties":{"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"value":{"type":"number"},"netValue":{"type":"number"}},"required":["quantity","value","netValue"],"additionalProperties":false},"confirmed":{"type":"object","properties":{"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"value":{"type":"number"},"netValue":{"type":"number"}},"required":["quantity","value","netValue"],"additionalProperties":false},"pending":{"type":"object","properties":{"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"value":{"type":"number"},"netValue":{"type":"number"}},"required":["quantity","value","netValue"],"additionalProperties":false},"overdue":{"type":"object","properties":{"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"value":{"type":"number"},"netValue":{"type":"number"}},"required":["quantity","value","netValue"],"additionalProperties":false}},"required":["mrr","arr","projectedAnnualRevenue","activeSubscriptions","newSubscriptions","newCustomers","ticketMedio","received","confirmed","pending","overdue"],"additionalProperties":false},"FinanceAsaasSubscriptionsList":{"type":"object","properties":{"totalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"hasMore":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"customer":{"type":"string"},"customerName":{"type":"string"},"value":{"type":"number"},"cycle":{"nullable":true,"type":"string"},"status":{"type":"string"},"nextDueDate":{"nullable":true,"type":"string"},"billingType":{"nullable":true,"type":"string"},"description":{"nullable":true,"type":"string"},"dateCreated":{"nullable":true,"type":"string"}},"required":["id","customer","customerName","value","cycle","status","nextDueDate","billingType","description","dateCreated"],"additionalProperties":false}}},"required":["totalCount","hasMore","data"],"additionalProperties":false},"FinanceAsaasSubscriptionTotals":{"type":"object","properties":{"totalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalValue":{"type":"number"}},"required":["totalCount","totalValue"],"additionalProperties":false},"FinanceAsaasPaymentsList":{"type":"object","properties":{"totalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"hasMore":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"customer":{"type":"string"},"customerName":{"type":"string"},"subscription":{"nullable":true,"type":"string"},"value":{"type":"number"},"netValue":{"nullable":true,"type":"number"},"status":{"type":"string"},"billingType":{"nullable":true,"type":"string"},"description":{"nullable":true,"type":"string"},"dueDate":{"nullable":true,"type":"string"},"paymentDate":{"nullable":true,"type":"string"},"dateCreated":{"nullable":true,"type":"string"},"invoiceUrl":{"nullable":true,"type":"string"}},"required":["id","customer","customerName","subscription","value","netValue","status","billingType","description","dueDate","paymentDate","dateCreated","invoiceUrl"],"additionalProperties":false}}},"required":["totalCount","hasMore","data"],"additionalProperties":false},"FinanceAsaasPaymentTotals":{"type":"object","properties":{"totalValue":{"type":"number"},"totalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totalValue","totalCount"],"additionalProperties":false},"FinanceAsaasCustomersList":{"type":"object","properties":{"totalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"hasMore":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"nullable":true,"type":"string"},"phone":{"nullable":true,"type":"string"},"mobilePhone":{"nullable":true,"type":"string"},"cpfCnpj":{"nullable":true,"type":"string"},"personType":{"nullable":true,"type":"string"},"dateCreated":{"nullable":true,"type":"string"},"ltv":{"type":"number"},"monthlyTotal":{"type":"number"},"annualTotal":{"type":"number"},"subscriptionCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mergedCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mergedIds":{"type":"array","items":{"type":"string"}}},"required":["id","name","email","phone","mobilePhone","cpfCnpj","personType","dateCreated","mergedCount"],"additionalProperties":false}}},"required":["totalCount","hasMore","data"],"additionalProperties":false},"FinanceAsaasCustomersWithSubs":{"type":"object","properties":{"customers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"nullable":true,"type":"string"},"phone":{"nullable":true,"type":"string"},"mobilePhone":{"nullable":true,"type":"string"},"cpfCnpj":{"nullable":true,"type":"string"},"personType":{"nullable":true,"type":"string"},"dateCreated":{"nullable":true,"type":"string"},"ltv":{"type":"number"},"monthlyTotal":{"type":"number"},"annualTotal":{"type":"number"},"subscriptionCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mergedCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mergedIds":{"type":"array","items":{"type":"string"}}},"required":["id","name","email","phone","mobilePhone","cpfCnpj","personType","dateCreated","mergedCount"],"additionalProperties":false}},"totalMonthly":{"type":"number"},"totalAnnual":{"type":"number"},"totalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["customers","totalMonthly","totalAnnual","totalCount"],"additionalProperties":false},"FinanceAsaasContactSubscriptions":{"type":"object","properties":{"subscriptions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string"},"value":{"type":"number"},"nextDueDate":{"nullable":true,"type":"string"},"cycle":{"nullable":true,"type":"string"},"description":{"nullable":true,"type":"string"}},"required":["id","status","value","nextDueDate","cycle","description"],"additionalProperties":false}},"customer":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false}},"required":["subscriptions","customer"],"additionalProperties":false},"MonitoringHttpRequests":{"type":"object","properties":{"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"range":{"type":"string"},"step":{"type":"string"},"groupBy":{"type":"string","enum":["class","code"]},"buckets":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"string"},"counts":{"type":"object","additionalProperties":{"type":"number"}}},"required":["timestamp","counts"],"additionalProperties":false}},"totals":{"type":"object","properties":{"byKey":{"type":"object","additionalProperties":{"type":"number"}},"total":{"type":"number"}},"required":["byKey","total"],"additionalProperties":false},"fqdns":{"type":"array","items":{"type":"object","properties":{"fqdn":{"type":"string"},"total":{"type":"number"},"byKey":{"type":"object","additionalProperties":{"type":"number"}},"buckets":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"string"},"counts":{"type":"object","additionalProperties":{"type":"number"}}},"required":["timestamp","counts"],"additionalProperties":false}}},"required":["fqdn","total","byKey","buckets"],"additionalProperties":false}}},"required":["resourceId","range","step","groupBy","buckets","totals"],"additionalProperties":false}}},"paths":{"/ping":{"get":{"operationId":"healthPing","tags":["Status & Health"],"description":"Health check simples (retorna pong)","responses":{"200":{"description":"Default Response"}}}},"/v1/auth/login":{"post":{"operationId":"authLogin","tags":["Auth"],"description":"Realiza autenticação de usuário com email e senha","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginInputInput"}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/auth/logout":{"post":{"operationId":"authLogout","tags":["Auth"],"description":"Realiza logout do usuário (limpa cookie de autenticação)","responses":{"204":{"description":"No content","content":{"application/json":{"schema":{"type":"string","nullable":true,"enum":[null],"description":"No content"}}}}}}},"/v1/auth/reset-password/token":{"post":{"operationId":"authGenerateResetToken","tags":["Auth"],"description":"Gera token one-time para reset de senha (SUPER ou OWNER/ADMIN de uma org do usuário alvo)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["userId"]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string"},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["token","expiresAt"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/auth/reset-password/confirm":{"post":{"operationId":"authConfirmResetPassword","tags":["Auth"],"description":"Valida token e atualiza senha do usuário","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","minLength":1},"newPassword":{"type":"string","minLength":8}},"required":["token","newPassword"]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/projects/":{"get":{"operationId":"projectList","tags":["Projects"],"description":"Lista projetos filtrados por email, orgId e/ou userId (requer autenticação).","parameters":[{"schema":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"in":"query","name":"email","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"orgId","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"userId","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectList"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"projectCreate","tags":["Projects"],"description":"Cria um novo projeto vinculado a uma organização (requer autenticação e role OWNER na org)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProjectInputInput"}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/projects/resources":{"get":{"operationId":"projectResourceList","tags":["Projects"],"description":"Lista projetos e seus resources, filtrados por userId, projectId e/ou orgId (requer autenticação).","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"userId","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"projectId","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"orgId","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectWithResourcesList"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/projects/{id}":{"get":{"operationId":"projectGetById","tags":["Projects"],"description":"Busca projeto por ID com destination (requer autenticação e membership na organização)","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectWithDestination"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"put":{"operationId":"projectUpdate","tags":["Projects"],"description":"Atualiza nome de um projeto (requer autenticação e role OWNER/ADMIN)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProjectInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"projectDelete","tags":["Projects"],"description":"Deleta um projeto e seus recursos associados na plataforma (requer autenticação e role OWNER)","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"204":{"description":"No content","content":{"application/json":{"schema":{"type":"string","nullable":true,"enum":[null],"description":"No content"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/resources/":{"get":{"operationId":"resourceList","tags":["Resources"],"description":"Lista resources filtrados por projectId, orgId e/ou userId (requer autenticação).","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"projectId","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"orgId","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"userId","required":false},{"schema":{"type":"string","enum":["PRODUCTION","STAGING","DEVELOPMENT"]},"in":"query","name":"environment","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Resource"}}}}}}}},"/v1/resources/docker-image":{"post":{"operationId":"resourceCreateDockerImage","tags":["Resources"],"description":"Deploy a Docker image as a new resource (Application)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDockerImageInputInput"}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceAdmin"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/resources/public-github":{"post":{"operationId":"resourceCreatePublicGithub","tags":["Resources"],"description":"Deploy a public GitHub repository as a new resource (Application)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePublicGithubInputInput"}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceAdmin"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/resources/{id}":{"get":{"operationId":"resourceGet","tags":["Resources"],"description":"Get a resource by ID","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceAdmin"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"resourceDelete","tags":["Resources"],"description":"Delete a resource","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"204":{"description":"No content","content":{"application/json":{"schema":{"type":"string","nullable":true,"enum":[null],"description":"No content"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"patch":{"operationId":"resourceUpdate","tags":["Resources"],"description":"Update resource configuration (build commands, deploy settings, git config)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResourceInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/resources/{id}/activity":{"get":{"operationId":"resourceGetActivity","tags":["Resources"],"description":"Get fine-grained deploy/provision activity for a resource","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"activity":{"nullable":true,"type":"string"},"activityPhase":{"nullable":true,"type":"string"},"activityStatus":{"nullable":true,"type":"string"},"activityStartedAt":{"nullable":true,"type":"string"},"activityUpdatedAt":{"nullable":true,"type":"string"},"activityPhases":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"status":{"type":"string","enum":["pending","running","completed","failed"]},"startedAt":{"type":"string"},"completedAt":{"type":"string"},"durationMs":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"error":{"type":"string"},"meta":{"type":"object","additionalProperties":{}}},"required":["key","status"],"additionalProperties":false}}},"required":["id","activity","activityPhase","activityStatus","activityStartedAt","activityUpdatedAt","activityPhases"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/resources/{id}/start":{"post":{"operationId":"resourceStart","tags":["Resources"],"description":"Start a resource","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/resources/{id}/stop":{"post":{"operationId":"resourceStop","tags":["Resources"],"description":"Stop a resource","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/resources/{id}/restart":{"post":{"operationId":"resourceRestart","tags":["Resources"],"description":"Restart a resource","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/resources/provision":{"post":{"operationId":"resourceProvision","tags":["Resources"],"description":"Provision multiple resources for a project (creates databases if needed, deploys applications)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisionInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"projectId","required":true}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisionResponse"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/resources/{id}/domain":{"patch":{"operationId":"resourceUpdateDomain","tags":["Resources"],"description":"Update resource domain (fqdn or domains)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResourceDomainInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/resources/{id}/envs":{"get":{"operationId":"resourceEnvList","tags":["Resources"],"description":"Get all environment variables for a resource. Values are masked by default; pass ?raw=true for plaintext.","parameters":[{"schema":{"type":"string"},"in":"query","name":"raw","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EnvResponse"}}}}}}},"post":{"operationId":"resourceEnvCreate","tags":["Resources"],"description":"Create a new environment variable for a resource","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEnvInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"uuid":{"type":"string"}},"required":["uuid"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"patch":{"operationId":"resourceEnvUpdate","tags":["Resources"],"description":"Update a single environment variable","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEnvInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}}}}},"/v1/resources/{id}/envs/{envId}":{"get":{"operationId":"resourceEnvGet","tags":["Resources"],"description":"Get a specific environment variable (value in plaintext)","parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"in":"path","name":"envId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/EnvResponse"}]}}}}}},"delete":{"operationId":"resourceEnvDelete","tags":["Resources"],"description":"Delete a specific environment variable","parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"in":"path","name":"envId","required":true}],"responses":{"204":{"description":"No content","content":{"application/json":{"schema":{"type":"string","nullable":true,"enum":[null],"description":"No content"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/resources/{id}/envs/bulk":{"patch":{"operationId":"resourceEnvBulkUpdate","tags":["Resources"],"description":"Bulk update environment variables (set/unset or data array)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkUpdateEnvInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}}}}},"/v1/resources/{id}/logs":{"get":{"operationId":"resourceLogList","tags":["Resources"],"description":"Get resource logs from the underlying orchestrator","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{}}}}}}},"/v1/resources/{id}/deployments/":{"get":{"operationId":"resourceDeploymentList","tags":["Deployments"],"description":"List deployments for a resource (Application only)","parameters":[{"schema":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991},"in":"query","name":"skip","required":false},{"schema":{"default":10,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"take","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Deployment"}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"resourceDeploymentTrigger","tags":["Deployments"],"description":"Trigger a new deployment (with optional force rebuild)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerDeployInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"202":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerDeployResult"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/resources/{id}/deployments/{deploymentId}":{"get":{"operationId":"resourceDeploymentGet","tags":["Deployments"],"description":"Get deployment details by deployment UUID","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"in":"path","name":"deploymentId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"number"},"deploymentUuid":{"type":"string"},"applicationId":{"type":"string"},"status":{"type":"string"},"commit":{"nullable":true,"type":"string"},"commitMessage":{"nullable":true,"type":"string"},"commitUrl":{"nullable":true,"type":"string"},"forceRebuild":{"type":"boolean"},"isWebhook":{"type":"boolean"},"isApi":{"type":"boolean"},"restartOnly":{"type":"boolean"},"rollback":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"applicationName":{"nullable":true,"type":"string"},"author":{"nullable":true,"type":"object","properties":{"login":{"nullable":true,"type":"string"},"name":{"nullable":true,"type":"string"},"avatarUrl":{"nullable":true,"type":"string"}},"required":["login","name","avatarUrl"],"additionalProperties":false},"pullRequestId":{"type":"number"},"logs":{"nullable":true,"type":"string"},"currentProcessId":{"nullable":true,"type":"string"},"gitType":{"nullable":true,"type":"string"},"serverId":{"type":"number"},"serverName":{"nullable":true,"type":"string"},"deploymentUrl":{"nullable":true,"type":"string"},"destinationId":{"nullable":true,"type":"string"},"onlyThisServer":{"type":"boolean"},"buildServerId":{"nullable":true,"type":"number"},"finishedAt":{"nullable":true,"type":"string"}},"required":["id","deploymentUuid","applicationId","status","commit","commitMessage","commitUrl","forceRebuild","isWebhook","isApi","restartOnly","rollback","createdAt","updatedAt","applicationName","author","pullRequestId","logs","currentProcessId","gitType","serverId","serverName","deploymentUrl","destinationId","onlyThisServer","buildServerId","finishedAt"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/resources/{id}/ftp/":{"post":{"operationId":"resourceFtpCreate","tags":["FTP"],"description":"Create FTP credentials for a WordPress resource (mount volume + opsctl + persist)","requestBody":{"required":true,"content":{"application/json":{"schema":{"default":{},"nullable":true,"type":"object","properties":{"container":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$"}}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"credential":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"protocol":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"},"host":{"type":"string"},"siteId":{"type":"string"},"container":{"nullable":true,"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","resourceId","protocol","username","password","host","siteId","container","createdAt","updatedAt"],"additionalProperties":false},"created":{"type":"boolean"}},"required":["credential","created"],"additionalProperties":false}}}},"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"credential":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"protocol":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"},"host":{"type":"string"},"siteId":{"type":"string"},"container":{"nullable":true,"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","resourceId","protocol","username","password","host","siteId","container","createdAt","updatedAt"],"additionalProperties":false},"created":{"type":"boolean"}},"required":["credential","created"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"get":{"operationId":"resourceFtpGet","tags":["FTP"],"description":"Get FTP credentials for a resource","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"protocol":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"},"host":{"type":"string"},"siteId":{"type":"string"},"container":{"nullable":true,"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","resourceId","protocol","username","password","host","siteId","container","createdAt","updatedAt"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/resources/{id}/proxy/":{"get":{"operationId":"resourceProxyGet","tags":["Proxy"],"description":"Get proxy configuration for a resource (CORS, headers, basic auth)","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/resources/{id}/proxy/basic-auth":{"put":{"operationId":"resourceProxyBasicAuth","tags":["Proxy"],"description":"Enable/disable HTTP Basic Auth for a resource","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"username":{"type":"string","minLength":1,"pattern":"^[\\x20-\\x7E]+$"},"password":{"type":"string","minLength":1,"pattern":"^[\\x20-\\x7E]+$"}},"required":["enabled"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/resources/{id}/proxy/cors":{"put":{"operationId":"resourceProxyCors","tags":["Proxy"],"description":"Enable/disable CORS for a resource","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"allowOrigins":{"type":"array","items":{"type":"string"}},"allowMethods":{"type":"string"},"allowHeaders":{"type":"string"},"maxAge":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["enabled"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/resources/{id}/proxy/custom-headers":{"put":{"operationId":"resourceProxyCustomHeaders","tags":["Proxy"],"description":"Enable/disable custom request headers for a resource","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"headers":{"type":"object","additionalProperties":{"type":"string"}}},"required":["enabled"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/resources/{id}/proxy/response-headers":{"put":{"operationId":"resourceProxyResponseHeaders","tags":["Proxy"],"description":"Enable/disable custom response headers for a resource","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"headers":{"type":"object","additionalProperties":{"type":"string"}}},"required":["enabled"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/resources/{id}/proxy/ip-allow-list":{"put":{"operationId":"resourceProxyIpAllowList","tags":["Proxy"],"description":"Enable/disable IP allow list (whitelist) for a resource","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"sourceRange":{"type":"array","items":{"type":"string","pattern":"^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\/(?:3[0-2]|[12]?\\d))?$"}}},"required":["enabled"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/resources/{id}/proxy/rate-limit":{"put":{"operationId":"resourceProxyRateLimit","tags":["Proxy"],"description":"Enable/disable rate limiting for a resource","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"average":{"type":"integer","minimum":1,"maximum":9007199254740991},"burst":{"type":"integer","minimum":1,"maximum":9007199254740991},"period":{"type":"string","pattern":"^\\d+[smh]$"}},"required":["enabled"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/tools/":{"get":{"operationId":"toolList","tags":["Tools"],"description":"Lista todas as ferramentas disponíveis para provisioning","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolList"}}}}}}},"/v1/tools/{tool}":{"get":{"operationId":"toolGet","tags":["Tools"],"description":"Busca informações de uma ferramenta específica","parameters":[{"schema":{"type":"string","enum":["n8n","evolution","mautic","chatwoot","typebot","openwebui","nocodb","metabase","odoo","flowise","meilisearch","openclaw","wordpress","filebrowser","rabbitmq","beszel","netdata","strapi"]},"in":"path","name":"tool","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Tool"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/":{"post":{"operationId":"organizationCreate","tags":["Organizations"],"description":"Cria uma nova organização. Self-service: o usuário autenticado vira OWNER. Apenas SUPER pode criar org para outro usuário (body.userId).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationInputInput"}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"get":{"operationId":"organizationList","tags":["Organizations"],"description":"Lista organizações com filtros (userId, name, slug, domain).","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"userId","required":false},{"schema":{"type":"string"},"in":"query","name":"name","required":false},{"schema":{"type":"string"},"in":"query","name":"slug","required":false},{"schema":{"type":"string"},"in":"query","name":"domain","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Organization"}}}}}}}},"/v1/organizations/{id}":{"get":{"operationId":"organizationGet","tags":["Organizations"],"description":"Busca organização por ID","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"patch":{"operationId":"organizationUpdate","tags":["Organizations"],"description":"Atualiza uma organização (requer role OWNER)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{id}/invitations":{"post":{"operationId":"organizationInvitationCreate","tags":["Organizations","Invitations"],"description":"Cria um convite para a organização (requer role OWNER)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInvitationInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvitationCreateResult"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"get":{"operationId":"organizationInvitationList","tags":["Organizations","Invitations"],"description":"Lista todos os convites de uma organização","parameters":[{"schema":{"default":"PENDING","type":"string","enum":["PENDING","ACCEPTED","EXPIRED","REVOKED","all"]},"in":"query","name":"status","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"invitations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"token":{"type":"string"},"status":{"type":"string","enum":["PENDING","ACCEPTED","EXPIRED","REVOKED"]},"expiresAt":{"type":"string"},"createdAt":{"type":"string"},"invitedBy":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"required":["id","email"],"additionalProperties":false}},"required":["id","email","role","token","status","expiresAt","createdAt","invitedBy"],"additionalProperties":false}}},"required":["invitations"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{id}/members":{"get":{"operationId":"organizationMemberList","tags":["Organizations","Members"],"description":"Lista todos os membros de uma organização","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MembershipList"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{id}/members/{membershipId}":{"patch":{"operationId":"organizationMemberUpdateRole","tags":["Organizations","Members"],"description":"Atualiza a role de um membro (apenas OWNER)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMemberRoleInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"membershipId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Membership"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"organizationMemberRemove","tags":["Organizations","Members"],"description":"Remove um membro da organização (OWNER ou self-removal)","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"membershipId","required":true}],"responses":{"204":{"description":"No content","content":{"application/json":{"schema":{"type":"string","nullable":true,"enum":[null],"description":"No content"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/invitations/my":{"get":{"operationId":"invitationListMy","tags":["Invitations"],"description":"Lista os convites recebidos pelo usuário autenticado","parameters":[{"schema":{"default":"PENDING","type":"string","enum":["PENDING","ACCEPTED","EXPIRED","REVOKED","all"]},"in":"query","name":"status","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyInvitationsList"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/invitations/{token}":{"get":{"operationId":"invitationGet","tags":["Organizations","Invitations"],"description":"Busca informações de um convite por token","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"token","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Invitation"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/invitations/{token}/accept":{"post":{"operationId":"invitationAccept","tags":["Organizations","Invitations"],"description":"Aceita um convite e adiciona o usuário à organização","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptInvitationInputInput"}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"token","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["role","organizationId"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/invitations/{token}/decline":{"post":{"operationId":"invitationDecline","tags":["Invitations"],"description":"Recusa um convite pendente pelo token","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"token","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvitationDeclined"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/databases/":{"get":{"operationId":"databaseList","tags":["Database"],"description":"Lista bancos de dados com filtros opcionais","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"projectId","required":false},{"schema":{"type":"string","enum":["postgres","mariadb","redis","mysql","mongodb","keydb","dragonfly","clickhouse"]},"in":"query","name":"kind","required":false},{"schema":{"type":"string"},"in":"query","name":"status","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatabaseList"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"databaseCreate","tags":["Database"],"description":"Cria um banco de dados (postgres, mariadb ou redis)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDatabaseInputInput"}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Database"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/databases/{id}":{"get":{"operationId":"databaseGet","tags":["Database"],"description":"Detalhes de um banco de dados","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Database"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"patch":{"operationId":"databaseUpdate","tags":["Database"],"description":"Atualiza configurações de um banco de dados","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDatabaseInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Database"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"databaseDelete","tags":["Database"],"description":"Remove um banco de dados","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"204":{"description":"No content","content":{"application/json":{"schema":{"type":"string","nullable":true,"enum":[null],"description":"No content"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/databases/{id}/backups/":{"post":{"operationId":"databaseBackupCreate","tags":["Database Backups"],"description":"Create a backup configuration for a database (max 1 per database)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBackupInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackupCreateResult"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"get":{"operationId":"databaseBackupList","tags":["Database Backups"],"description":"List all backup configurations for a database","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BackupConfig"}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/databases/{id}/backups/{backupId}":{"get":{"operationId":"databaseBackupGetExecutions","tags":["Database Backups"],"description":"List executions for a specific backup configuration","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"in":"path","name":"backupId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BackupExecution"}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"patch":{"operationId":"databaseBackupUpdate","tags":["Database Backups"],"description":"Update a backup configuration. Non-SUPER users can only update databasesToBackup.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"frequency":{"type":"string"},"enabled":{"type":"boolean"},"databasesToBackup":{"type":"string"},"dumpAll":{"type":"boolean"},"saveS3":{"type":"boolean"},"s3StorageUuid":{"type":"string"},"retentionAmountLocally":{"type":"integer","minimum":0,"maximum":9007199254740991},"retentionDaysLocally":{"type":"integer","minimum":0,"maximum":9007199254740991},"retentionMaxStorageLocally":{"type":"integer","minimum":0,"maximum":9007199254740991},"retentionAmountS3":{"type":"integer","minimum":0,"maximum":9007199254740991},"retentionDaysS3":{"type":"integer","minimum":0,"maximum":9007199254740991},"retentionMaxStorageS3":{"type":"integer","minimum":0,"maximum":9007199254740991}}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"in":"path","name":"backupId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"uuid":{"type":"string"}},"required":["uuid"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/databases/{id}/backups/{backupId}/trigger":{"post":{"operationId":"databaseBackupTrigger","tags":["Database Backups"],"description":"Trigger a manual backup execution","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"in":"path","name":"backupId","required":true}],"responses":{"202":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackupTriggerResult"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/databases/{id}/backups/{backupId}/executions/{executionId}/download":{"get":{"operationId":"databaseBackupDownload","tags":["Database Backups"],"description":"Returns a presigned S3 URL to download a whole-database backup execution file.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"in":"path","name":"backupId","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"executionId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"filename":{"type":"string"},"expiresIn":{"type":"number"}},"required":["url","filename","expiresIn"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/databases/{id}/backups/{backupId}/restore":{"post":{"operationId":"databaseBackupRestore","tags":["Database Backups"],"description":"Restore a database from a backup execution. Destructive operation — requires confirm: true.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreBackupInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"in":"path","name":"backupId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackupRestoreResult"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/databases/{id}/accounts/":{"post":{"operationId":"databaseAccountCreate","tags":["Database Accounts"],"description":"Cria uma conta de database (user + database lógico)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAccountInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatabaseAccount"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"get":{"operationId":"databaseAccountList","tags":["Database Accounts"],"description":"Lista contas de um database","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatabaseAccountList"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/databases/{id}/accounts/{accountId}":{"get":{"operationId":"databaseAccountGet","tags":["Database Accounts"],"description":"Detalhes de uma conta de database","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"accountId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatabaseAccount"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"databaseAccountDelete","tags":["Database Accounts"],"description":"Remove uma conta de database","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"accountId","required":true}],"responses":{"204":{"description":"No content","content":{"application/json":{"schema":{"type":"string","nullable":true,"enum":[null],"description":"No content"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/databases/{id}/accounts/{accountId}/password":{"patch":{"operationId":"databaseAccountResetPassword","tags":["Database Accounts"],"description":"Redefine a senha de uma conta de database","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"accountId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"updated":{"type":"boolean","enum":[true]}},"required":["updated"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/databases/{id}/accounts/{accountId}/restore":{"post":{"operationId":"databaseAccountRestore","tags":["Database Accounts"],"description":"Restore a specific account database from a backup execution. Destructive — requires confirm: true.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"executionId":{"type":"string","minLength":1},"confirm":{"type":"boolean","enum":[true]}},"required":["executionId","confirm"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"accountId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["restored"]},"executionId":{"type":"string"},"filename":{"type":"string"},"database":{"type":"string"},"restoredAt":{"type":"string"}},"required":["status","executionId","filename","database","restoredAt"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/databases/{id}/accounts/{accountId}/backups/{executionId}/download":{"get":{"operationId":"databaseAccountBackupDownload","tags":["Database Accounts"],"description":"Extrai a seção do database desta conta de uma execução de backup full e retorna o arquivo gzip (download).","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"accountId","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"executionId","required":true}],"responses":{"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/databases/{id}/accounts/{accountId}/tables":{"get":{"operationId":"databaseAccountListTables","tags":["Database Accounts"],"description":"Lista tabelas do database de uma conta","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"accountId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"tables":{"type":"array","items":{"type":"string"}}},"required":["tables"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/databases/{id}/accounts/{accountId}/extensions":{"post":{"operationId":"databaseAccountEnableExtensions","tags":["Database Accounts"],"description":"Habilita extensões no database de uma conta (PostgreSQL only)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnableExtensionsInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"accountId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"array","items":{"type":"string"}}},"required":["enabled"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/databases/{id}/accounts/{accountId}/schema":{"get":{"operationId":"databaseAccountGetSchema","tags":["Database Accounts"],"description":"Retorna schema completo do database para ER diagram","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"accountId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatabaseSchema"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/databases/{id}/accounts/{accountId}/query":{"post":{"operationId":"databaseAccountQuery","tags":["Database Accounts"],"description":"Executa uma query SQL no contexto de um account","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecuteQueryInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"accountId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryResult"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/databases/{id}/start":{"post":{"operationId":"databaseStart","tags":["Database"],"description":"Iniciar um banco de dados","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/databases/{id}/stop":{"post":{"operationId":"databaseStop","tags":["Database"],"description":"Parar um banco de dados","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/databases/{id}/restart":{"post":{"operationId":"databaseRestart","tags":["Database"],"description":"Reiniciar um banco de dados","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/databases/{id}/size":{"get":{"operationId":"databaseSizeGet","tags":["Database"],"description":"Consumo de armazenamento do banco: total e por database/conta (SQL) ou used_memory + keyspace (Redis). Valores incluem 10% de overhead de disco.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string"},"totalBytes":{"type":"number"},"totalRawBytes":{"type":"number"},"byDatabase":{"type":"array","items":{"type":"object","properties":{"dbName":{"type":"string"},"bytes":{"type":"number"},"rawBytes":{"type":"number"}},"required":["dbName","bytes","rawBytes"],"additionalProperties":false}},"byAccount":{"type":"array","items":{"type":"object","properties":{"accountId":{"type":"string"},"username":{"type":"string"},"dbName":{"type":"string"},"bytes":{"type":"number"},"rawBytes":{"type":"number"}},"required":["accountId","username","dbName","bytes","rawBytes"],"additionalProperties":false}},"byKeyspace":{"type":"array","items":{"type":"object","properties":{"db":{"type":"string"},"keys":{"type":"number"}},"required":["db","keys"],"additionalProperties":false}}},"required":["kind","totalBytes","totalRawBytes","byDatabase","byAccount","byKeyspace"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/users/":{"post":{"operationId":"userCreate","tags":["Users"],"description":"Cria um novo usuário","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserInputInput"}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"get":{"operationId":"userList","tags":["Users"],"description":"Lista usuários por email e/ou orgId (requer autenticação).","parameters":[{"schema":{"type":"string"},"in":"query","name":"email","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"orgId","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserWithMemberships"}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/users/{id}":{"get":{"operationId":"userGet","tags":["Users"],"description":"Busca usuário por ID (requer autenticação)","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/users/{id}/avatar":{"get":{"operationId":"userGetAvatar","tags":["Users"],"description":"Serve avatar image proxied from S3. No auth required (public, for <img> tags).","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/users/me/organizations":{"get":{"operationId":"userListMyOrganizations","tags":["Users"],"description":"Lista organizações do usuário autenticado","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOrganizationList"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/users/me/":{"patch":{"operationId":"userUpdateProfile","tags":["Users"],"description":"Atualiza o perfil do usuário autenticado (name, whatsapp, avatarUrl)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100},"whatsapp":{"type":"string","maxLength":20},"avatarUrl":{"type":"string","format":"uri"}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/users/me/avatar":{"post":{"operationId":"userUploadAvatar","tags":["Users"],"description":"Upload avatar image (JPEG, PNG, WebP, GIF). Max 2 MB. Send raw binary body with Content-Type header.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"avatarUrl":{"type":"string"}},"required":["avatarUrl"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/users/me/password":{"patch":{"operationId":"userChangePassword","tags":["Users"],"description":"Troca a senha do usuário autenticado","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"currentPassword":{"type":"string","minLength":1},"newPassword":{"type":"string","minLength":8}},"required":["currentPassword","newPassword"]}}}},"responses":{"204":{"description":"No content","content":{"application/json":{"schema":{"type":"string","nullable":true,"enum":[null],"description":"No content"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/integrations/github/connect":{"post":{"operationId":"githubConnect","tags":["GitHub Integration"],"description":"Gera URL de instalação do GitHub App para conectar à organização","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GithubConnect"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/integrations/github/sources/sync":{"post":{"operationId":"githubSourcesSync","tags":["GitHub Integration"],"description":"Replica o GitHub App registrado na org em todas as instâncias ativas da plataforma (auto-sync retroativo)","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/organizations/{orgId}/integrations/github/sources/{sourceId}/repositories":{"get":{"operationId":"githubRepositoryList","tags":["GitHub Integration"],"description":"Lista repositórios acessíveis pelo GitHub App instalado","parameters":[{"schema":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":9007199254740991},"in":"query","name":"page","required":false},{"schema":{"default":5,"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":10},"in":"query","name":"per_page","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"sourceId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GithubRepositoryList"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/integrations/github/sources/{sourceId}/repositories/{owner}/{repo}/branches":{"get":{"operationId":"githubBranchList","tags":["GitHub Integration"],"description":"Lista branches de um repositório GitHub específico","parameters":[{"schema":{"type":"string","minLength":1},"in":"query","name":"search","required":false},{"schema":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":9007199254740991},"in":"query","name":"page","required":false},{"schema":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":100},"in":"query","name":"per_page","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"sourceId","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"owner","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"repo","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GithubBranchList"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/integrations/github/sources/{sourceId}/repositories/{owner}/{repo}/tree":{"get":{"operationId":"githubRepoTree","tags":["GitHub Integration"],"description":"Lista a árvore de arquivos/pastas de um repositório numa ref (branch/tag/sha) via GitHub API direto","parameters":[{"schema":{"type":"string","minLength":1},"in":"query","name":"ref","required":true},{"schema":{"type":"boolean"},"in":"query","name":"recursive","required":false},{"schema":{"type":"boolean"},"in":"query","name":"dirsOnly","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"sourceId","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"owner","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"repo","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"entries":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"type":{"type":"string","enum":["tree","blob"]},"sha":{"type":"string"},"size":{"type":"number"}},"required":["path","type","sha"],"additionalProperties":false}},"truncated":{"type":"boolean"},"ref":{"type":"string"}},"required":["entries","truncated","ref"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/projects/{projectId}/resources/github":{"post":{"operationId":"githubResourceCreate","tags":["GitHub Integration"],"description":"Cria um novo resource a partir de um repositório GitHub","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGithubResourceInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"projectId","required":true}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GithubResourceCreateResponse"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/resources/{resourceId}/deploy/github":{"post":{"operationId":"githubDeploy","tags":["GitHub Integration"],"description":"Faz deploy de um repositório GitHub em um resource já existente.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeployGithubInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"resourceId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GithubDeployResponse"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/audit-logs/":{"get":{"operationId":"auditLogList","tags":["Audit Logs"],"description":"Lista audit logs com filtros e paginação. Users precisam de organizationId e ter membership na organization.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"organizationId","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"projectId","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"resourceId","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"actorId","required":false},{"schema":{"type":"string","enum":["CREATE","UPDATE","DELETE","DEPLOY","LOGIN","LOGOUT","ATTACH","DETACH","CONNECT","DISCONNECT","START","STOP","RESTART","MIGRATE","BACKUP_CREATE","BACKUP_RESTORE","BACKUP_DOWNLOAD","BACKUP_CONFIG_CREATE","BACKUP_CONFIG_UPDATE","BACKUP_CONFIG_DELETE"]},"in":"query","name":"action","required":false},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"in":"query","name":"startDate","required":false},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"in":"query","name":"endDate","required":false},{"schema":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991},"in":"query","name":"skip","required":false},{"schema":{"default":50,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"take","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AuditLog"}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/audit-logs/{id}":{"get":{"operationId":"auditLogGet","tags":["Audit Logs"],"description":"Busca um audit log por ID. Retorna relações resolvidas (actor, organization, project, resource).","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditLog"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/domains/":{"get":{"operationId":"domainList","tags":["Domains"],"description":"List domains with pagination. Supports filtering by organization, project, resource, status, or type.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"organizationId","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"projectId","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"resourceId","required":false},{"schema":{"type":"string","enum":["PENDING","VERIFYING","ACTIVE","ERROR","DISABLED"]},"in":"query","name":"status","required":false},{"schema":{"type":"string","enum":["PLATFORM","CUSTOM","TENANT"]},"in":"query","name":"type","required":false},{"schema":{"type":"string","enum":["true","false"]},"in":"query","name":"includeDisabled","required":false},{"schema":{"default":1,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"page","required":false},{"schema":{"default":50,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"perPage","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainPaginatedList"}}}}}},"post":{"operationId":"domainCreate","tags":["Domains"],"description":"Create a new custom domain within an organization","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDomainInputInput"}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Domain"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/domains/{id}":{"get":{"operationId":"domainGet","tags":["Domains"],"description":"Get a domain by ID","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Domain"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"patch":{"operationId":"domainUpdate","tags":["Domains"],"description":"Update a domain. If fqdn changes, DNS status resets to PENDING and routing is re-synced.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDomainInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Domain"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"domainDelete","tags":["Domains"],"description":"Permanently remove a domain. PLATFORM domains cannot be removed while linked to a resource.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"204":{"description":"Default Response","content":{"application/json":{"schema":{"type":"string","nullable":true,"enum":[null]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/domains/{id}/attach":{"post":{"operationId":"domainAttach","tags":["Domains"],"description":"Attach a domain to a resource, calculating cnameTarget from server wildcardDomain","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttachDomainInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainAttachResponse"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/domains/{id}/detach":{"post":{"operationId":"domainDetach","tags":["Domains"],"description":"Detach a domain from its resource. PLATFORM domains cannot be detached while linked.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainDetachResponse"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/domains/{id}/set-primary":{"post":{"operationId":"domainSetPrimary","tags":["Domains"],"description":"Set a domain as the primary domain for its resource. Updates Resource.fqdn cache.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainSetPrimaryResponse"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/domains/{id}/verify":{"post":{"operationId":"domainVerify","tags":["Domains"],"description":"Manually trigger DNS verification. Checks CNAME (subdomain) or A/AAAA (apex domain).","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainVerifyResponse"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/api-tokens/{orgId}":{"post":{"operationId":"apiTokenCreate","tags":["API Tokens"],"description":"Cria um API token para a organização (apenas OWNER)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiTokenInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTokenCreateResponse"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"get":{"operationId":"apiTokenList","tags":["API Tokens"],"description":"Lista API tokens da organização (apenas OWNER)","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTokenListResponse"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/api-tokens/{orgId}/{tokenId}":{"delete":{"operationId":"apiTokenRevoke","tags":["API Tokens"],"description":"Revoga um API token (soft delete, apenas OWNER)","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"tokenId","required":true}],"responses":{"204":{"description":"No content","content":{"application/json":{"schema":{"type":"string","nullable":true,"enum":[null],"description":"No content"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/integrations/cloudflare":{"get":{"operationId":"cloudflareIntegrationList","tags":["Integrations"],"description":"Lista as integrações Cloudflare da organização.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"provider":{"type":"string","enum":["CLOUDFLARE"]},"cfAccountId":{"nullable":true,"type":"string"},"cfTokenSet":{"type":"boolean"}},"required":["id","organizationId","name","isActive","createdAt","updatedAt","provider","cfAccountId","cfTokenSet"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"provider":{"type":"string","enum":["GITHUB"]},"installationId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"githubAccountLogin":{"nullable":true,"type":"string"},"coolifySources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"isActive":{"type":"boolean"}},"required":["id","isActive"],"additionalProperties":false}}},"required":["id","organizationId","name","isActive","createdAt","updatedAt","provider","installationId","githubAccountLogin","coolifySources"],"additionalProperties":false}]}}},"required":["items"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"cloudflareIntegrationCreate","tags":["Integrations"],"description":"Cria uma integração Cloudflare. Valida o token contra a API e busca o cfAccountId.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64}},"required":["name"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"provider":{"type":"string","enum":["CLOUDFLARE"]},"cfAccountId":{"nullable":true,"type":"string"},"cfTokenSet":{"type":"boolean"}},"required":["id","organizationId","name","isActive","createdAt","updatedAt","provider","cfAccountId","cfTokenSet"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"provider":{"type":"string","enum":["GITHUB"]},"installationId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"githubAccountLogin":{"nullable":true,"type":"string"},"coolifySources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"isActive":{"type":"boolean"}},"required":["id","isActive"],"additionalProperties":false}}},"required":["id","organizationId","name","isActive","createdAt","updatedAt","provider","installationId","githubAccountLogin","coolifySources"],"additionalProperties":false}]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/integrations/cloudflare/{integrationId}/rotate-token":{"post":{"operationId":"cloudflareIntegrationRotateToken","tags":["Integrations"],"description":"Substitui o cfToken da integração. Re-valida via API e atualiza cfAccountId.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"integrationId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"provider":{"type":"string","enum":["CLOUDFLARE"]},"cfAccountId":{"nullable":true,"type":"string"},"cfTokenSet":{"type":"boolean"}},"required":["id","organizationId","name","isActive","createdAt","updatedAt","provider","cfAccountId","cfTokenSet"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"provider":{"type":"string","enum":["GITHUB"]},"installationId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"githubAccountLogin":{"nullable":true,"type":"string"},"coolifySources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"isActive":{"type":"boolean"}},"required":["id","isActive"],"additionalProperties":false}}},"required":["id","organizationId","name","isActive","createdAt","updatedAt","provider","installationId","githubAccountLogin","coolifySources"],"additionalProperties":false}]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/integrations/cloudflare/resolve-zone":{"get":{"operationId":"cloudflareIntegrationResolveZone","tags":["Integrations"],"description":"Preview: para um FQDN, retorna qual integração CF da org possui a zone autoritativa.","parameters":[{"schema":{"type":"string","minLength":3,"maxLength":253},"in":"query","name":"fqdn","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"integrationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"integrationName":{"type":"string"},"zoneId":{"type":"string"},"zoneName":{"type":"string"}},"required":["integrationId","integrationName","zoneId","zoneName"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/integrations/cloudflare/{integrationId}/zones":{"get":{"operationId":"cloudflareIntegrationListZones","tags":["Integrations"],"description":"Lista as zones Cloudflare acessíveis pelo token da integração.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"integrationId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/organizations/{orgId}/integrations/cloudflare/{integrationId}/zones/{zoneId}/records":{"get":{"operationId":"cloudflareIntegrationListRecords","tags":["Integrations"],"description":"Lista DNS records de uma zone.","parameters":[{"schema":{"type":"string","enum":["A","AAAA","CNAME","MX","TXT","NS","SRV","CAA"]},"in":"query","name":"type","required":false},{"schema":{"type":"string"},"in":"query","name":"name","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"integrationId","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"zoneId","required":true}],"responses":{"200":{"description":"Default Response"}}},"post":{"operationId":"cloudflareIntegrationCreateRecord","tags":["Integrations"],"description":"Cria um DNS record na zone.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDnsRecordInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"integrationId","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"zoneId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/organizations/{orgId}/integrations/cloudflare/{integrationId}/zones/{zoneId}/records/{recordId}":{"put":{"operationId":"cloudflareIntegrationUpdateRecord","tags":["Integrations"],"description":"Atualiza um DNS record existente.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDnsRecordInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"integrationId","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"zoneId","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"recordId","required":true}],"responses":{"200":{"description":"Default Response"}}},"delete":{"operationId":"cloudflareIntegrationDeleteRecord","tags":["Integrations"],"description":"Deleta um DNS record.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"integrationId","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"zoneId","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"recordId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/organizations/{orgId}/integrations/github":{"get":{"operationId":"githubIntegrationList","tags":["Integrations"],"description":"Lista as integrações GitHub da organização, com per-instance Coolify sources aninhados.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"provider":{"type":"string","enum":["CLOUDFLARE"]},"cfAccountId":{"nullable":true,"type":"string"},"cfTokenSet":{"type":"boolean"}},"required":["id","organizationId","name","isActive","createdAt","updatedAt","provider","cfAccountId","cfTokenSet"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"provider":{"type":"string","enum":["GITHUB"]},"installationId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"githubAccountLogin":{"nullable":true,"type":"string"},"coolifySources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"isActive":{"type":"boolean"}},"required":["id","isActive"],"additionalProperties":false}}},"required":["id","organizationId","name","isActive","createdAt","updatedAt","provider","installationId","githubAccountLogin","coolifySources"],"additionalProperties":false}]}}},"required":["items"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/integrations":{"get":{"operationId":"integrationListAll","tags":["Integrations"],"description":"Lista todas as integrações da organização (CF + GH misturadas).","parameters":[{"schema":{"type":"string","enum":["CLOUDFLARE","GITHUB"]},"in":"query","name":"provider","required":false},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"isActive","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"provider":{"type":"string","enum":["CLOUDFLARE"]},"cfAccountId":{"nullable":true,"type":"string"},"cfTokenSet":{"type":"boolean"}},"required":["id","organizationId","name","isActive","createdAt","updatedAt","provider","cfAccountId","cfTokenSet"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"provider":{"type":"string","enum":["GITHUB"]},"installationId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"githubAccountLogin":{"nullable":true,"type":"string"},"coolifySources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"isActive":{"type":"boolean"}},"required":["id","isActive"],"additionalProperties":false}}},"required":["id","organizationId","name","isActive","createdAt","updatedAt","provider","installationId","githubAccountLogin","coolifySources"],"additionalProperties":false}]}}},"required":["items"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/integrations/{integrationId}":{"get":{"operationId":"integrationGet","tags":["Integrations"],"description":"Detalha uma integração específica.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"integrationId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"provider":{"type":"string","enum":["CLOUDFLARE"]},"cfAccountId":{"nullable":true,"type":"string"},"cfTokenSet":{"type":"boolean"}},"required":["id","organizationId","name","isActive","createdAt","updatedAt","provider","cfAccountId","cfTokenSet"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"provider":{"type":"string","enum":["GITHUB"]},"installationId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"githubAccountLogin":{"nullable":true,"type":"string"},"coolifySources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"isActive":{"type":"boolean"}},"required":["id","isActive"],"additionalProperties":false}}},"required":["id","organizationId","name","isActive","createdAt","updatedAt","provider","installationId","githubAccountLogin","coolifySources"],"additionalProperties":false}]}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"patch":{"operationId":"integrationUpdate","tags":["Integrations"],"description":"Atualiza `name` e/ou `isActive` da integração.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64},"isActive":{"type":"boolean"}}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"integrationId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"provider":{"type":"string","enum":["CLOUDFLARE"]},"cfAccountId":{"nullable":true,"type":"string"},"cfTokenSet":{"type":"boolean"}},"required":["id","organizationId","name","isActive","createdAt","updatedAt","provider","cfAccountId","cfTokenSet"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"provider":{"type":"string","enum":["GITHUB"]},"installationId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"githubAccountLogin":{"nullable":true,"type":"string"},"coolifySources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"isActive":{"type":"boolean"}},"required":["id","isActive"],"additionalProperties":false}}},"required":["id","organizationId","name","isActive","createdAt","updatedAt","provider","installationId","githubAccountLogin","coolifySources"],"additionalProperties":false}]}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"integrationRemove","tags":["Integrations"],"description":"Remove uma integração. Refusa se houver Domains/Resources dependentes.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"integrationId","required":true}],"responses":{"204":{"description":"No content","content":{"application/json":{"schema":{"type":"string","nullable":true,"enum":[null],"description":"No content"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/storage/buckets/":{"post":{"operationId":"storageBucketCreate","tags":["Storage"],"description":"Create a new storage bucket with custom domain and dedicated S3-compatible credentials","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBucketInputInput"}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageBucket"}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"get":{"operationId":"storageBucketList","tags":["Storage"],"description":"List storage buckets with optional filters (projectId, organizationId, status)","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"projectId","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"organizationId","required":false},{"schema":{"type":"string","enum":["CREATING","ACTIVE","ERROR","DELETING"]},"in":"query","name":"status","required":false},{"schema":{"type":"string","enum":["PRODUCTION","STAGING","DEVELOPMENT"]},"in":"query","name":"environment","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageBucketList"}}}}}}},"/v1/storage/buckets/{id}":{"get":{"operationId":"storageBucketGet","tags":["Storage"],"description":"Get storage bucket details enriched with live metrics","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageBucket"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"patch":{"operationId":"storageBucketUpdate","tags":["Storage"],"description":"Update storage bucket quota (soft limit) and/or display name","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBucketInputInput"}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageBucket"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"storageBucketDelete","tags":["Storage"],"description":"Delete a storage bucket (must be empty, cannot be default)","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"204":{"description":"Default Response","content":{"application/json":{"schema":{"type":"string","nullable":true,"enum":[null]}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/storage/buckets/{id}/info":{"get":{"operationId":"storageBucketGetInfo","tags":["Storage - Credentials"],"description":"Get bucket usage metrics (live via S3-compatible API, cached fallback)","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"displayName":{"nullable":true,"type":"string"},"quotaGB":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"usageBytes":{"type":"number"},"usageFormatted":{"type":"string"},"quotaBytes":{"type":"number"},"quotaFormatted":{"type":"string"},"quotaUsedPercent":{"type":"number"},"objectCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string"},"lastSyncedAt":{"type":"string"},"fromCache":{"type":"boolean"}},"required":["id","name","displayName","quotaGB","usageBytes","usageFormatted","quotaBytes","quotaFormatted","quotaUsedPercent","objectCount","status","lastSyncedAt"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/storage/buckets/{id}/credentials":{"get":{"operationId":"storageBucketGetCredentials","tags":["Storage - Credentials"],"description":"View bucket access credentials. secretKey is full for SUPER/OWNER/ADMIN and API tokens, masked (last 4 chars) for MEMBER.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"bucketId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"bucketName":{"type":"string"},"endpoint":{"type":"string"},"accessKey":{"type":"string"},"secretKey":{"type":"string"},"policy":{"type":"string"},"createdAt":{"type":"string"},"tokenId":{"type":"string"}},"required":["bucketId","bucketName","endpoint","accessKey","secretKey","policy","createdAt"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/storage/buckets/{id}/credentials/regenerate":{"post":{"operationId":"storageBucketRegenerateCredentials","tags":["Storage - Credentials"],"description":"Regenerate bucket credentials (OWNER+ required, old token invalidated immediately)","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"bucketId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"bucketName":{"type":"string"},"endpoint":{"type":"string"},"accessKey":{"type":"string"},"secretKey":{"type":"string"},"policy":{"type":"string"},"regeneratedAt":{"type":"string"},"warning":{"type":"string"}},"required":["bucketId","bucketName","endpoint","accessKey","secretKey","policy","regeneratedAt","warning"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/storage/buckets/{id}/visibility":{"get":{"operationId":"storageBucketGetVisibility","tags":["Storage"],"description":"Check whether a bucket is public (custom domain enabled) or private","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"bucketId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"isPublic":{"type":"boolean"},"publicUrl":{"nullable":true,"type":"string"},"customDomain":{"nullable":true,"type":"string"}},"required":["bucketId","isPublic","publicUrl","customDomain"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"patch":{"operationId":"storageBucketSetVisibility","tags":["Storage"],"description":"Toggle bucket visibility public/private (custom domain enabled/disabled; OWNER/ADMIN required)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"isPublic":{"type":"boolean"}},"required":["isPublic"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageBucket"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/storage/buckets/{id}/cors":{"get":{"operationId":"storageBucketGetCors","tags":["Storage"],"description":"Get CORS rules configured on the bucket","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"rules":{"type":"array","items":{"type":"object","properties":{"allowed":{"type":"object","properties":{"origins":{"minItems":1,"type":"array","items":{"type":"string"}},"methods":{"minItems":1,"type":"array","items":{"type":"string","enum":["GET","PUT","POST","DELETE","HEAD"]}},"headers":{"type":"array","items":{"type":"string"}}},"required":["origins","methods"],"additionalProperties":false},"exposeHeaders":{"type":"array","items":{"type":"string"}},"maxAgeSeconds":{"type":"integer","minimum":0,"maximum":86400}},"required":["allowed"],"additionalProperties":false}}},"required":["rules"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"put":{"operationId":"storageBucketSetCors","tags":["Storage"],"description":"Replace CORS rules on the bucket (OWNER/ADMIN required)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rules":{"minItems":1,"type":"array","items":{"type":"object","properties":{"allowed":{"type":"object","properties":{"origins":{"minItems":1,"type":"array","items":{"type":"string"}},"methods":{"minItems":1,"type":"array","items":{"type":"string","enum":["GET","PUT","POST","DELETE","HEAD"]}},"headers":{"type":"array","items":{"type":"string"}}},"required":["origins","methods"]},"exposeHeaders":{"type":"array","items":{"type":"string"}},"maxAgeSeconds":{"type":"integer","minimum":0,"maximum":86400}},"required":["allowed"]}}},"required":["rules"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"rules":{"type":"array","items":{"type":"object","properties":{"allowed":{"type":"object","properties":{"origins":{"minItems":1,"type":"array","items":{"type":"string"}},"methods":{"minItems":1,"type":"array","items":{"type":"string","enum":["GET","PUT","POST","DELETE","HEAD"]}},"headers":{"type":"array","items":{"type":"string"}}},"required":["origins","methods"],"additionalProperties":false},"exposeHeaders":{"type":"array","items":{"type":"string"}},"maxAgeSeconds":{"type":"integer","minimum":0,"maximum":86400}},"required":["allowed"],"additionalProperties":false}}},"required":["rules"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"storageBucketDeleteCors","tags":["Storage"],"description":"Delete all CORS rules on the bucket (OWNER/ADMIN required)","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"204":{"description":"Default Response","content":{"application/json":{"schema":{"type":"string","nullable":true,"enum":[null]}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/storage/buckets/{id}/objects/":{"get":{"operationId":"storageObjectList","tags":["Storage - Objects"],"description":"List objects and directories in a bucket with prefix/delimiter navigation","parameters":[{"schema":{"default":"","type":"string"},"in":"query","name":"prefix","required":false},{"schema":{"default":"/","type":"string"},"in":"query","name":"delimiter","required":false},{"schema":{"default":100,"type":"integer","minimum":1,"maximum":1000},"in":"query","name":"maxKeys","required":false},{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"bucket":{"type":"string"},"prefixes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"isDirectory":{"type":"boolean"}},"required":["name","isDirectory"],"additionalProperties":false}},"objects":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"size":{"type":"number"},"lastModified":{"type":"string"}},"required":["name","size","lastModified"],"additionalProperties":false}}},"required":["bucket","prefixes","objects"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/storage/buckets/{id}/objects/search":{"get":{"operationId":"storageObjectSearch","tags":["Storage - Objects"],"description":"Search objects and folders by native name prefix (begins-with, case-sensitive), recursive, optionally scoped by prefix","parameters":[{"schema":{"type":"string","minLength":1},"in":"query","name":"q","required":true},{"schema":{"default":"","type":"string"},"in":"query","name":"prefix","required":false},{"schema":{"default":"all","type":"string","enum":["all","file","folder"]},"in":"query","name":"type","required":false},{"schema":{"default":100,"type":"integer","minimum":1,"maximum":1000},"in":"query","name":"limit","required":false},{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"bucket":{"type":"string"},"query":{"type":"string"},"prefix":{"type":"string"},"truncated":{"type":"boolean"},"prefixes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"isDirectory":{"type":"boolean"}},"required":["name","isDirectory"],"additionalProperties":false}},"objects":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"size":{"type":"number"},"lastModified":{"type":"string"}},"required":["name","size","lastModified"],"additionalProperties":false}}},"required":["bucket","query","prefix","truncated","prefixes","objects"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/storage/buckets/{id}/objects/{*}":{"get":{"operationId":"storageObjectGet","tags":["Storage - Objects"],"description":"Download or preview an object from a bucket","parameters":[{"schema":{"default":"false","type":"string","enum":["0","1","true","false"]},"in":"query","name":"download","required":false},{"schema":{"type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"in":"path","name":"*","required":true}],"responses":{"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"storageObjectDelete","tags":["Storage - Objects"],"description":"Delete an object from a bucket (ADMIN+ required)","parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"in":"path","name":"*","required":true}],"responses":{"204":{"description":"Default Response","content":{"application/json":{"schema":{"type":"string","nullable":true,"enum":[null]}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/storage/buckets/{id}/objects/presign/{*}":{"post":{"operationId":"storageObjectPresign","tags":["Storage - Objects"],"description":"Generate a presigned URL for download, view, or upload (expires 60–604800s)","parameters":[{"schema":{"default":"download","type":"string","enum":["download","view","upload"]},"in":"query","name":"type","required":false},{"schema":{"type":"integer","minimum":60,"maximum":604800},"in":"query","name":"expires","required":false},{"schema":{"type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"in":"path","name":"*","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string","enum":["GET","PUT"]},"expires":{"type":"string"},"expiresIn":{"type":"number"},"bucket":{"type":"string"},"key":{"type":"string"},"type":{"type":"string","enum":["download","view","upload"]}},"required":["url","method","expires","expiresIn","bucket","key","type"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/monitoring/resources/{id}/metrics":{"get":{"operationId":"monitoringResourceMetrics","tags":["Monitoring"],"description":"Get resource container metrics (CPU, memory, network, disk)","parameters":[{"schema":{"default":"24h","type":"string","enum":["1h","6h","24h","7d","30d"]},"in":"query","name":"range","required":false},{"schema":{"type":"string","enum":["cpu","memory","networkIn","networkOut","disk","storage"]},"in":"query","name":"metric","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"range":{"type":"string"},"metrics":{"type":"object","properties":{"cpu":{"type":"object","properties":{"mean":{"nullable":true,"type":"number"},"max":{"nullable":true,"type":"number"},"min":{"nullable":true,"type":"number"},"unit":{"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"container":{"type":"object","properties":{"id":{"type":"string"},"rawValue":{"type":"number"},"container":{"type":"number"},"resource":{"type":"number"},"value":{"type":"number"}},"required":["id","rawValue","container","resource","value"],"additionalProperties":false}},"required":["timestamp","container"],"additionalProperties":false}}},"required":["mean","max","min","unit","series"],"additionalProperties":false},"memory":{"type":"object","properties":{"mean":{"nullable":true,"type":"number"},"max":{"nullable":true,"type":"number"},"min":{"nullable":true,"type":"number"},"unit":{"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"container":{"type":"object","properties":{"id":{"type":"string"},"rawValue":{"type":"number"},"container":{"type":"number"},"resource":{"type":"number"},"value":{"type":"number"}},"required":["id","rawValue","container","resource","value"],"additionalProperties":false}},"required":["timestamp","container"],"additionalProperties":false}}},"required":["mean","max","min","unit","series"],"additionalProperties":false},"networkIn":{"type":"object","properties":{"mean":{"nullable":true,"type":"number"},"max":{"nullable":true,"type":"number"},"min":{"nullable":true,"type":"number"},"unit":{"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"container":{"type":"object","properties":{"id":{"type":"string"},"rawValue":{"type":"number"},"container":{"type":"number"},"resource":{"type":"number"},"value":{"type":"number"}},"required":["id","rawValue","container","resource","value"],"additionalProperties":false}},"required":["timestamp","container"],"additionalProperties":false}}},"required":["mean","max","min","unit","series"],"additionalProperties":false},"networkOut":{"type":"object","properties":{"mean":{"nullable":true,"type":"number"},"max":{"nullable":true,"type":"number"},"min":{"nullable":true,"type":"number"},"unit":{"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"container":{"type":"object","properties":{"id":{"type":"string"},"rawValue":{"type":"number"},"container":{"type":"number"},"resource":{"type":"number"},"value":{"type":"number"}},"required":["id","rawValue","container","resource","value"],"additionalProperties":false}},"required":["timestamp","container"],"additionalProperties":false}}},"required":["mean","max","min","unit","series"],"additionalProperties":false},"disk":{"type":"object","properties":{"mean":{"nullable":true,"type":"number"},"max":{"nullable":true,"type":"number"},"min":{"nullable":true,"type":"number"},"unit":{"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"container":{"type":"object","properties":{"id":{"type":"string"},"rawValue":{"type":"number"},"container":{"type":"number"},"resource":{"type":"number"},"value":{"type":"number"}},"required":["id","rawValue","container","resource","value"],"additionalProperties":false}},"required":["timestamp","container"],"additionalProperties":false}}},"required":["mean","max","min","unit","series"],"additionalProperties":false},"storage":{"type":"object","properties":{"mean":{"nullable":true,"type":"number"},"max":{"nullable":true,"type":"number"},"min":{"nullable":true,"type":"number"},"unit":{"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"container":{"type":"object","properties":{"id":{"type":"string"},"rawValue":{"type":"number"},"container":{"type":"number"},"resource":{"type":"number"},"value":{"type":"number"}},"required":["id","rawValue","container","resource","value"],"additionalProperties":false}},"required":["timestamp","container"],"additionalProperties":false}}},"required":["mean","max","min","unit","series"],"additionalProperties":false}},"additionalProperties":false}},"required":["resourceId","range","metrics"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/monitoring/resources/{id}/health":{"get":{"operationId":"monitoringResourceHealth","tags":["Monitoring"],"description":"Saúde de uma aplicação nos últimos 30 dias (buckets diários + uptime%), por resource-id, via Prometheus","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"applicationId":{"nullable":true,"type":"string"},"currentStatus":{"type":"string","enum":["up","down","unknown"]},"overallStatus":{"type":"string","enum":["operational","degraded","outage","unknown"]},"uptimePercent":{"type":"object","properties":{"last24h":{"nullable":true,"type":"number"},"last7d":{"nullable":true,"type":"number"},"last30d":{"nullable":true,"type":"number"}},"required":["last24h","last7d","last30d"],"additionalProperties":false},"windowStart":{"type":"string"},"since":{"nullable":true,"type":"string"},"incidents":{"type":"array","items":{"type":"object","properties":{"startsAt":{"type":"string"},"endsAt":{"nullable":true,"type":"string"},"class":{"type":"string","enum":["incident","notification"]},"type":{"nullable":true,"type":"string"},"alertname":{"nullable":true,"type":"string"},"failureStage":{"nullable":true,"type":"string"},"probeStatusCode":{"nullable":true,"type":"number"}},"required":["startsAt","endsAt","class","type","alertname","failureStage","probeStatusCode"],"additionalProperties":false}},"lastChecked":{"type":"string"}},"required":["resourceId","applicationId","currentStatus","overallStatus","uptimePercent","windowStart","since","incidents","lastChecked"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/monitoring/resources/{id}/http-requests":{"get":{"operationId":"monitoringResourceHttpRequests","tags":["Monitoring"],"description":"Requisições HTTP ao longo do tempo por status code (série do Traefik do worker), com breakdown opcional por fqdn","parameters":[{"schema":{"default":"24h","type":"string","enum":["1h","6h","24h","7d","30d"]},"in":"query","name":"range","required":false},{"schema":{"default":"class","type":"string","enum":["class","code"]},"in":"query","name":"groupBy","required":false},{"schema":{"type":"boolean"},"in":"query","name":"byFqdn","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitoringHttpRequests"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/monitoring/resources/{id}/logs":{"get":{"operationId":"monitoringResourceLogs","tags":["Monitoring"],"description":"Get container logs for a resource via Loki (search, filter by level, time range)","parameters":[{"schema":{"default":"1h","type":"string","enum":["1h","6h","24h","7d"]},"in":"query","name":"range","required":false},{"schema":{"default":100,"type":"integer","minimum":1,"maximum":1000},"in":"query","name":"limit","required":false},{"schema":{"type":"string","maxLength":200},"in":"query","name":"search","required":false},{"schema":{"type":"string","enum":["error","warn","info","debug"]},"in":"query","name":"level","required":false},{"schema":{"default":"backward","type":"string","enum":["backward","forward"]},"in":"query","name":"direction","required":false},{"schema":{"type":"string","maxLength":100},"in":"query","name":"containerName","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"containerName":{"type":"string"},"range":{"type":"string"},"totalEntries":{"type":"number"},"entries":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"string"},"line":{"type":"string"},"level":{"type":"string"},"containerName":{"type":"string"}},"required":["timestamp","line","level","containerName"],"additionalProperties":false}}},"required":["resourceId","containerName","range","totalEntries","entries"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/monitoring/resources/{id}/logs/volume":{"get":{"operationId":"monitoringResourceLogVolume","tags":["Monitoring"],"description":"Get log volume bucketed by level over time (stacked column chart) via Loki","parameters":[{"schema":{"default":"1h","type":"string","enum":["1h","6h","24h","7d"]},"in":"query","name":"range","required":false},{"schema":{"type":"string","maxLength":200},"in":"query","name":"search","required":false},{"schema":{"type":"string","enum":["error","warn","info","debug"]},"in":"query","name":"level","required":false},{"schema":{"type":"string","maxLength":100},"in":"query","name":"containerName","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"containerName":{"type":"string"},"range":{"type":"string"},"step":{"type":"string"},"buckets":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"string"},"counts":{"type":"object","properties":{"error":{"type":"number"},"warn":{"type":"number"},"info":{"type":"number"},"debug":{"type":"number"},"unknown":{"type":"number"}},"required":["error","warn","info","debug","unknown"],"additionalProperties":false},"total":{"type":"number"}},"required":["timestamp","counts","total"],"additionalProperties":false}},"truncated":{"type":"boolean"}},"required":["resourceId","containerName","range","step","buckets","truncated"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/monitoring/resources/{id}/containers":{"get":{"operationId":"monitoringResourceContainers","tags":["Monitoring"],"description":"List all containers (active and historical) for a resource, from Prometheus and Loki","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"coolifyUuid":{"type":"string"},"containers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"hasMetrics":{"type":"boolean"},"hasLogs":{"type":"boolean"}},"required":["name","hasMetrics","hasLogs"],"additionalProperties":false}}},"required":["resourceId","coolifyUuid","containers"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/monitoring/projects/{id}/metrics":{"get":{"operationId":"monitoringProjectMetrics","tags":["Monitoring"],"description":"Get aggregated metrics for all resources in a project","parameters":[{"schema":{"default":"24h","type":"string","enum":["1h","6h","24h","7d","30d"]},"in":"query","name":"range","required":false},{"schema":{"type":"string","enum":["cpu","memory","networkIn","networkOut","disk","storage"]},"in":"query","name":"metric","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"range":{"type":"string"},"resourceCount":{"type":"number"},"metrics":{"type":"object","properties":{"cpu":{"type":"object","properties":{"mean":{"nullable":true,"type":"number"},"max":{"nullable":true,"type":"number"},"min":{"nullable":true,"type":"number"},"unit":{"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"container":{"type":"object","properties":{"id":{"type":"string"},"rawValue":{"type":"number"},"container":{"type":"number"},"resource":{"type":"number"},"value":{"type":"number"}},"required":["id","rawValue","container","resource","value"],"additionalProperties":false}},"required":["timestamp","container"],"additionalProperties":false}}},"required":["mean","max","min","unit","series"],"additionalProperties":false},"memory":{"type":"object","properties":{"mean":{"nullable":true,"type":"number"},"max":{"nullable":true,"type":"number"},"min":{"nullable":true,"type":"number"},"unit":{"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"container":{"type":"object","properties":{"id":{"type":"string"},"rawValue":{"type":"number"},"container":{"type":"number"},"resource":{"type":"number"},"value":{"type":"number"}},"required":["id","rawValue","container","resource","value"],"additionalProperties":false}},"required":["timestamp","container"],"additionalProperties":false}}},"required":["mean","max","min","unit","series"],"additionalProperties":false},"networkIn":{"type":"object","properties":{"mean":{"nullable":true,"type":"number"},"max":{"nullable":true,"type":"number"},"min":{"nullable":true,"type":"number"},"unit":{"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"container":{"type":"object","properties":{"id":{"type":"string"},"rawValue":{"type":"number"},"container":{"type":"number"},"resource":{"type":"number"},"value":{"type":"number"}},"required":["id","rawValue","container","resource","value"],"additionalProperties":false}},"required":["timestamp","container"],"additionalProperties":false}}},"required":["mean","max","min","unit","series"],"additionalProperties":false},"networkOut":{"type":"object","properties":{"mean":{"nullable":true,"type":"number"},"max":{"nullable":true,"type":"number"},"min":{"nullable":true,"type":"number"},"unit":{"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"container":{"type":"object","properties":{"id":{"type":"string"},"rawValue":{"type":"number"},"container":{"type":"number"},"resource":{"type":"number"},"value":{"type":"number"}},"required":["id","rawValue","container","resource","value"],"additionalProperties":false}},"required":["timestamp","container"],"additionalProperties":false}}},"required":["mean","max","min","unit","series"],"additionalProperties":false},"disk":{"type":"object","properties":{"mean":{"nullable":true,"type":"number"},"max":{"nullable":true,"type":"number"},"min":{"nullable":true,"type":"number"},"unit":{"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"container":{"type":"object","properties":{"id":{"type":"string"},"rawValue":{"type":"number"},"container":{"type":"number"},"resource":{"type":"number"},"value":{"type":"number"}},"required":["id","rawValue","container","resource","value"],"additionalProperties":false}},"required":["timestamp","container"],"additionalProperties":false}}},"required":["mean","max","min","unit","series"],"additionalProperties":false},"storage":{"type":"object","properties":{"mean":{"nullable":true,"type":"number"},"max":{"nullable":true,"type":"number"},"min":{"nullable":true,"type":"number"},"unit":{"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"container":{"type":"object","properties":{"id":{"type":"string"},"rawValue":{"type":"number"},"container":{"type":"number"},"resource":{"type":"number"},"value":{"type":"number"}},"required":["id","rawValue","container","resource","value"],"additionalProperties":false}},"required":["timestamp","container"],"additionalProperties":false}}},"required":["mean","max","min","unit","series"],"additionalProperties":false}},"additionalProperties":false}},"required":["projectId","range","resourceCount","metrics"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/monitoring/organizations/{id}/metrics":{"get":{"operationId":"monitoringOrgMetrics","tags":["Monitoring"],"description":"Get aggregated metrics for all resources in an organization","parameters":[{"schema":{"default":"24h","type":"string","enum":["1h","6h","24h","7d","30d"]},"in":"query","name":"range","required":false},{"schema":{"type":"string","enum":["cpu","memory","networkIn","networkOut","disk","storage"]},"in":"query","name":"metric","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"range":{"type":"string"},"resourceCount":{"type":"number"},"metrics":{"type":"object","properties":{"cpu":{"type":"object","properties":{"mean":{"nullable":true,"type":"number"},"max":{"nullable":true,"type":"number"},"min":{"nullable":true,"type":"number"},"unit":{"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"container":{"type":"object","properties":{"id":{"type":"string"},"rawValue":{"type":"number"},"container":{"type":"number"},"resource":{"type":"number"},"value":{"type":"number"}},"required":["id","rawValue","container","resource","value"],"additionalProperties":false}},"required":["timestamp","container"],"additionalProperties":false}}},"required":["mean","max","min","unit","series"],"additionalProperties":false},"memory":{"type":"object","properties":{"mean":{"nullable":true,"type":"number"},"max":{"nullable":true,"type":"number"},"min":{"nullable":true,"type":"number"},"unit":{"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"container":{"type":"object","properties":{"id":{"type":"string"},"rawValue":{"type":"number"},"container":{"type":"number"},"resource":{"type":"number"},"value":{"type":"number"}},"required":["id","rawValue","container","resource","value"],"additionalProperties":false}},"required":["timestamp","container"],"additionalProperties":false}}},"required":["mean","max","min","unit","series"],"additionalProperties":false},"networkIn":{"type":"object","properties":{"mean":{"nullable":true,"type":"number"},"max":{"nullable":true,"type":"number"},"min":{"nullable":true,"type":"number"},"unit":{"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"container":{"type":"object","properties":{"id":{"type":"string"},"rawValue":{"type":"number"},"container":{"type":"number"},"resource":{"type":"number"},"value":{"type":"number"}},"required":["id","rawValue","container","resource","value"],"additionalProperties":false}},"required":["timestamp","container"],"additionalProperties":false}}},"required":["mean","max","min","unit","series"],"additionalProperties":false},"networkOut":{"type":"object","properties":{"mean":{"nullable":true,"type":"number"},"max":{"nullable":true,"type":"number"},"min":{"nullable":true,"type":"number"},"unit":{"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"container":{"type":"object","properties":{"id":{"type":"string"},"rawValue":{"type":"number"},"container":{"type":"number"},"resource":{"type":"number"},"value":{"type":"number"}},"required":["id","rawValue","container","resource","value"],"additionalProperties":false}},"required":["timestamp","container"],"additionalProperties":false}}},"required":["mean","max","min","unit","series"],"additionalProperties":false},"disk":{"type":"object","properties":{"mean":{"nullable":true,"type":"number"},"max":{"nullable":true,"type":"number"},"min":{"nullable":true,"type":"number"},"unit":{"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"container":{"type":"object","properties":{"id":{"type":"string"},"rawValue":{"type":"number"},"container":{"type":"number"},"resource":{"type":"number"},"value":{"type":"number"}},"required":["id","rawValue","container","resource","value"],"additionalProperties":false}},"required":["timestamp","container"],"additionalProperties":false}}},"required":["mean","max","min","unit","series"],"additionalProperties":false},"storage":{"type":"object","properties":{"mean":{"nullable":true,"type":"number"},"max":{"nullable":true,"type":"number"},"min":{"nullable":true,"type":"number"},"unit":{"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"container":{"type":"object","properties":{"id":{"type":"string"},"rawValue":{"type":"number"},"container":{"type":"number"},"resource":{"type":"number"},"value":{"type":"number"}},"required":["id","rawValue","container","resource","value"],"additionalProperties":false}},"required":["timestamp","container"],"additionalProperties":false}}},"required":["mean","max","min","unit","series"],"additionalProperties":false}},"additionalProperties":false}},"required":["organizationId","range","resourceCount","metrics"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/monitoring/orgs/{orgId}/status-page/config":{"get":{"operationId":"monitoringGetStatusPageConfig","tags":["Monitoring"],"description":"Get status page configuration for the organization","parameters":[{"schema":{"type":"string"},"in":"path","name":"orgId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"isPublic":{"type":"boolean"},"title":{"nullable":true,"type":"string"},"description":{"nullable":true,"type":"string"},"logoUrl":{"nullable":true,"type":"string"},"includedResourceIds":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","organizationId","isPublic","title","description","logoUrl","includedResourceIds","createdAt","updatedAt"],"additionalProperties":false}}}}}},"put":{"operationId":"monitoringUpdateStatusPageConfig","tags":["Monitoring"],"description":"Update status page configuration for the organization","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"isPublic":{"type":"boolean"},"title":{"nullable":true,"type":"string","maxLength":200},"description":{"nullable":true,"type":"string","maxLength":2000},"logoUrl":{"nullable":true,"type":"string","format":"uri"},"includedResourceIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"orgId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"isPublic":{"type":"boolean"},"title":{"nullable":true,"type":"string"},"description":{"nullable":true,"type":"string"},"logoUrl":{"nullable":true,"type":"string"},"includedResourceIds":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","organizationId","isPublic","title","description","logoUrl","includedResourceIds","createdAt","updatedAt"],"additionalProperties":false}}}}}}},"/v1/monitoring/status-page/{orgSlug}":{"get":{"operationId":"monitoringPublicStatusPage","tags":["Monitoring"],"description":"Public status page for an organization (no authentication required)","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"orgSlug","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"organization":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"}},"required":["name","slug"],"additionalProperties":false},"config":{"type":"object","properties":{"title":{"nullable":true,"type":"string"},"description":{"nullable":true,"type":"string"},"logoUrl":{"nullable":true,"type":"string"}},"required":["title","description","logoUrl"],"additionalProperties":false},"resources":{"type":"array","items":{"type":"object","properties":{"resourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"currentStatus":{"type":"string","enum":["up","down","unknown"]},"overallStatus":{"type":"string","enum":["operational","degraded","outage","unknown"]},"uptimePercent":{"type":"object","properties":{"last24h":{"nullable":true,"type":"number"},"last7d":{"nullable":true,"type":"number"},"last30d":{"nullable":true,"type":"number"}},"required":["last24h","last7d","last30d"],"additionalProperties":false},"since":{"nullable":true,"type":"string"},"incidents":{"type":"array","items":{"type":"object","properties":{"startsAt":{"type":"string"},"endsAt":{"nullable":true,"type":"string"},"class":{"type":"string","enum":["incident","notification"]},"type":{"nullable":true,"type":"string"},"alertname":{"nullable":true,"type":"string"},"failureStage":{"nullable":true,"type":"string"},"probeStatusCode":{"nullable":true,"type":"number"}},"required":["startsAt","endsAt","class","type","alertname","failureStage","probeStatusCode"],"additionalProperties":false}}},"required":["resourceId","name","currentStatus","overallStatus","uptimePercent","since","incidents"],"additionalProperties":false}},"overallStatus":{"type":"string","enum":["operational","degraded","outage"]},"windowStart":{"type":"string"},"lastChecked":{"type":"string"}},"required":["organization","config","resources","overallStatus","windowStart","lastChecked"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/alerts/catalog":{"get":{"operationId":"alertCatalog","tags":["Alerts"],"description":"Catálogo de tipos de alerta disponíveis (passthrough da tenant-rules-api)","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"audience":{"type":"string","enum":["w8","client"]},"category":{"type":"string"},"default_severity":{"type":"string","enum":["info","warning","critical"]},"needs_threshold":{"type":"boolean"},"needs_extra":{"type":"boolean"},"target_kind":{"type":"string","enum":["container","application_id","server_id"]},"description":{"type":"string"}},"required":["type","audience","category","default_severity","needs_threshold","needs_extra","target_kind","description"],"additionalProperties":false}}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/alerts":{"get":{"operationId":"listClientAlerts","tags":["Alerts"],"description":"Lista alert configs (audience=client) da organização","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"organizationId":{"nullable":true,"type":"string"},"type":{"type":"string"},"audience":{"type":"string","enum":["w8","client"]},"targetKind":{"type":"string","enum":["container","application_id","server_id"]},"target":{"type":"string"},"resourceId":{"nullable":true,"type":"string"},"serverId":{"nullable":true,"type":"string"},"threshold":{"nullable":true,"type":"number"},"duration":{"type":"string"},"severity":{"nullable":true,"type":"string","enum":["info","warning","critical"]},"extra":{"nullable":true,"type":"string"},"enabled":{"type":"boolean"},"syncedAt":{"nullable":true,"type":"string","format":"date-time"},"syncError":{"nullable":true,"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","tenantId","organizationId","type","audience","targetKind","target","resourceId","serverId","threshold","duration","severity","extra","enabled","syncedAt","syncError","createdAt","updatedAt"],"additionalProperties":false}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createClientAlert","tags":["Alerts"],"description":"Cria um alert config para um app do org e sincroniza na stack","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","minLength":1,"maxLength":64},"target":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"threshold":{"type":"number"},"duration":{"default":"5m","type":"string","pattern":"^\\d+[smh]$"},"severity":{"type":"string","enum":["info","warning","critical"]}},"required":["type","target"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"organizationId":{"nullable":true,"type":"string"},"type":{"type":"string"},"audience":{"type":"string","enum":["w8","client"]},"targetKind":{"type":"string","enum":["container","application_id","server_id"]},"target":{"type":"string"},"resourceId":{"nullable":true,"type":"string"},"serverId":{"nullable":true,"type":"string"},"threshold":{"nullable":true,"type":"number"},"duration":{"type":"string"},"severity":{"nullable":true,"type":"string","enum":["info","warning","critical"]},"extra":{"nullable":true,"type":"string"},"enabled":{"type":"boolean"},"syncedAt":{"nullable":true,"type":"string","format":"date-time"},"syncError":{"nullable":true,"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","tenantId","organizationId","type","audience","targetKind","target","resourceId","serverId","threshold","duration","severity","extra","enabled","syncedAt","syncError","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/alerts/{id}":{"patch":{"operationId":"updateClientAlert","tags":["Alerts"],"description":"Edita um alert config do org e re-sincroniza","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"threshold":{"nullable":true,"type":"number"},"duration":{"type":"string","pattern":"^\\d+[smh]$"},"severity":{"nullable":true,"type":"string","enum":["info","warning","critical"]},"extra":{"nullable":true,"type":"string","minLength":1,"maxLength":128},"enabled":{"type":"boolean"}}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"organizationId":{"nullable":true,"type":"string"},"type":{"type":"string"},"audience":{"type":"string","enum":["w8","client"]},"targetKind":{"type":"string","enum":["container","application_id","server_id"]},"target":{"type":"string"},"resourceId":{"nullable":true,"type":"string"},"serverId":{"nullable":true,"type":"string"},"threshold":{"nullable":true,"type":"number"},"duration":{"type":"string"},"severity":{"nullable":true,"type":"string","enum":["info","warning","critical"]},"extra":{"nullable":true,"type":"string"},"enabled":{"type":"boolean"},"syncedAt":{"nullable":true,"type":"string","format":"date-time"},"syncError":{"nullable":true,"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","tenantId","organizationId","type","audience","targetKind","target","resourceId","serverId","threshold","duration","severity","extra","enabled","syncedAt","syncError","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"removeClientAlert","tags":["Alerts"],"description":"Remove um alert config do org (e da stack)","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"204":{"description":"Default Response","content":{"application/json":{"schema":{"type":"string","nullable":true,"enum":[null]}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/webhooks":{"get":{"operationId":"listWebhooks","tags":["Webhooks"],"description":"Lista os webhooks de saída da organização.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"},"secretMasked":{"type":"string"},"status":{"type":"string","enum":["ENABLED","PAUSED","SUSPENDED"]},"eventTypes":{"type":"array","items":{"type":"string"}},"severities":{"type":"array","items":{"type":"string"}},"alertClasses":{"type":"array","items":{"type":"string"}},"projectIds":{"type":"array","items":{"type":"string"}},"consecutiveFailures":{"type":"number"},"suspendedAt":{"nullable":true,"type":"string","format":"date-time"},"suspendedReason":{"nullable":true,"type":"string"},"lastDeliveryAt":{"nullable":true,"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","organizationId","name","url","secretMasked","status","eventTypes","severities","alertClasses","projectIds","consecutiveFailures","suspendedAt","suspendedReason","lastDeliveryAt","createdAt","updatedAt"],"additionalProperties":false}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createWebhook","tags":["Webhooks"],"description":"Cria um webhook (OWNER/ADMIN). Retorna o secret em texto UMA vez.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"url":{"type":"string","minLength":1,"maxLength":2000},"eventTypes":{"default":[],"maxItems":50,"type":"array","items":{"type":"string","maxLength":100}},"severities":{"default":[],"maxItems":10,"type":"array","items":{"type":"string","enum":["critical","warning","info"]}},"alertClasses":{"default":[],"maxItems":10,"type":"array","items":{"type":"string","enum":["incident","notification"]}},"projectIds":{"default":[],"maxItems":200,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["name","url"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"},"secretMasked":{"type":"string"},"status":{"type":"string","enum":["ENABLED","PAUSED","SUSPENDED"]},"eventTypes":{"type":"array","items":{"type":"string"}},"severities":{"type":"array","items":{"type":"string"}},"alertClasses":{"type":"array","items":{"type":"string"}},"projectIds":{"type":"array","items":{"type":"string"}},"consecutiveFailures":{"type":"number"},"suspendedAt":{"nullable":true,"type":"string","format":"date-time"},"suspendedReason":{"nullable":true,"type":"string"},"lastDeliveryAt":{"nullable":true,"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"secret":{"type":"string"}},"required":["id","organizationId","name","url","secretMasked","status","eventTypes","severities","alertClasses","projectIds","consecutiveFailures","suspendedAt","suspendedReason","lastDeliveryAt","createdAt","updatedAt","secret"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/webhooks/{id}":{"get":{"operationId":"getWebhook","tags":["Webhooks"],"description":"Detalhe de um webhook (secret mascarado).","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"},"secretMasked":{"type":"string"},"status":{"type":"string","enum":["ENABLED","PAUSED","SUSPENDED"]},"eventTypes":{"type":"array","items":{"type":"string"}},"severities":{"type":"array","items":{"type":"string"}},"alertClasses":{"type":"array","items":{"type":"string"}},"projectIds":{"type":"array","items":{"type":"string"}},"consecutiveFailures":{"type":"number"},"suspendedAt":{"nullable":true,"type":"string","format":"date-time"},"suspendedReason":{"nullable":true,"type":"string"},"lastDeliveryAt":{"nullable":true,"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","organizationId","name","url","secretMasked","status","eventTypes","severities","alertClasses","projectIds","consecutiveFailures","suspendedAt","suspendedReason","lastDeliveryAt","createdAt","updatedAt"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"patch":{"operationId":"updateWebhook","tags":["Webhooks"],"description":"Edita um webhook (OWNER/ADMIN): url, filtros, projetos, pausar/retomar.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"url":{"type":"string","minLength":1,"maxLength":2000},"eventTypes":{"maxItems":50,"type":"array","items":{"type":"string","maxLength":100}},"severities":{"maxItems":10,"type":"array","items":{"type":"string","enum":["critical","warning","info"]}},"alertClasses":{"maxItems":10,"type":"array","items":{"type":"string","enum":["incident","notification"]}},"projectIds":{"maxItems":200,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"status":{"type":"string","enum":["ENABLED","PAUSED"]}}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"},"secretMasked":{"type":"string"},"status":{"type":"string","enum":["ENABLED","PAUSED","SUSPENDED"]},"eventTypes":{"type":"array","items":{"type":"string"}},"severities":{"type":"array","items":{"type":"string"}},"alertClasses":{"type":"array","items":{"type":"string"}},"projectIds":{"type":"array","items":{"type":"string"}},"consecutiveFailures":{"type":"number"},"suspendedAt":{"nullable":true,"type":"string","format":"date-time"},"suspendedReason":{"nullable":true,"type":"string"},"lastDeliveryAt":{"nullable":true,"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","organizationId","name","url","secretMasked","status","eventTypes","severities","alertClasses","projectIds","consecutiveFailures","suspendedAt","suspendedReason","lastDeliveryAt","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"deleteWebhook","tags":["Webhooks"],"description":"Remove um webhook (OWNER/ADMIN).","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"204":{"description":"Default Response","content":{"application/json":{"schema":{"type":"string","nullable":true,"enum":[null]}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/webhooks/{id}/rotate-secret":{"post":{"operationId":"rotateWebhookSecret","tags":["Webhooks"],"description":"Gera um novo secret (OWNER/ADMIN). Retorna em texto UMA vez.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"},"secretMasked":{"type":"string"},"status":{"type":"string","enum":["ENABLED","PAUSED","SUSPENDED"]},"eventTypes":{"type":"array","items":{"type":"string"}},"severities":{"type":"array","items":{"type":"string"}},"alertClasses":{"type":"array","items":{"type":"string"}},"projectIds":{"type":"array","items":{"type":"string"}},"consecutiveFailures":{"type":"number"},"suspendedAt":{"nullable":true,"type":"string","format":"date-time"},"suspendedReason":{"nullable":true,"type":"string"},"lastDeliveryAt":{"nullable":true,"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"secret":{"type":"string"}},"required":["id","organizationId","name","url","secretMasked","status","eventTypes","severities","alertClasses","projectIds","consecutiveFailures","suspendedAt","suspendedReason","lastDeliveryAt","createdAt","updatedAt","secret"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/webhooks/{id}/test":{"post":{"operationId":"testWebhook","tags":["Webhooks"],"description":"Dispara um evento de teste no endpoint (OWNER/ADMIN). Diagnóstico.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"statusCode":{"nullable":true,"type":"number"},"durationMs":{"type":"number"},"error":{"nullable":true,"type":"string"}},"required":["ok","statusCode","durationMs","error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/webhooks/{id}/reactivate":{"post":{"operationId":"reactivateWebhook","tags":["Webhooks"],"description":"Reativa um webhook suspenso (OWNER/ADMIN). Zera o circuit breaker.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"},"secretMasked":{"type":"string"},"status":{"type":"string","enum":["ENABLED","PAUSED","SUSPENDED"]},"eventTypes":{"type":"array","items":{"type":"string"}},"severities":{"type":"array","items":{"type":"string"}},"alertClasses":{"type":"array","items":{"type":"string"}},"projectIds":{"type":"array","items":{"type":"string"}},"consecutiveFailures":{"type":"number"},"suspendedAt":{"nullable":true,"type":"string","format":"date-time"},"suspendedReason":{"nullable":true,"type":"string"},"lastDeliveryAt":{"nullable":true,"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","organizationId","name","url","secretMasked","status","eventTypes","severities","alertClasses","projectIds","consecutiveFailures","suspendedAt","suspendedReason","lastDeliveryAt","createdAt","updatedAt"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/webhooks/{id}/deliveries":{"get":{"operationId":"listWebhookDeliveries","tags":["Webhooks"],"description":"Histórico de entregas do webhook (filtro por status + paginação).","parameters":[{"schema":{"type":"string","enum":["PENDING","SUCCESS","FAILED","EXHAUSTED"]},"in":"query","name":"status","required":false},{"schema":{"default":20,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false},{"schema":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991},"in":"query","name":"offset","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"webhookId":{"type":"string"},"eventId":{"type":"string"},"status":{"type":"string","enum":["PENDING","SUCCESS","FAILED","EXHAUSTED"]},"attemptCount":{"type":"number"},"maxAttempts":{"type":"number"},"nextAttemptAt":{"nullable":true,"type":"string","format":"date-time"},"lastAttemptAt":{"nullable":true,"type":"string","format":"date-time"},"lastStatusCode":{"nullable":true,"type":"number"},"lastError":{"nullable":true,"type":"string"},"responseSnippet":{"nullable":true,"type":"string"},"durationMs":{"nullable":true,"type":"number"},"createdAt":{"type":"string","format":"date-time"},"completedAt":{"nullable":true,"type":"string","format":"date-time"}},"required":["id","webhookId","eventId","status","attemptCount","maxAttempts","nextAttemptAt","lastAttemptAt","lastStatusCode","lastError","responseSnippet","durationMs","createdAt","completedAt"],"additionalProperties":false}},"total":{"type":"number"},"limit":{"type":"number"},"offset":{"type":"number"}},"required":["items","total","limit","offset"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/webhooks/{id}/deliveries/{deliveryId}":{"get":{"operationId":"getWebhookDelivery","tags":["Webhooks"],"description":"Detalhe de uma entrega (inclui o evento enviado).","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"deliveryId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"webhookId":{"type":"string"},"eventId":{"type":"string"},"status":{"type":"string","enum":["PENDING","SUCCESS","FAILED","EXHAUSTED"]},"attemptCount":{"type":"number"},"maxAttempts":{"type":"number"},"nextAttemptAt":{"nullable":true,"type":"string","format":"date-time"},"lastAttemptAt":{"nullable":true,"type":"string","format":"date-time"},"lastStatusCode":{"nullable":true,"type":"number"},"lastError":{"nullable":true,"type":"string"},"responseSnippet":{"nullable":true,"type":"string"},"durationMs":{"nullable":true,"type":"number"},"createdAt":{"type":"string","format":"date-time"},"completedAt":{"nullable":true,"type":"string","format":"date-time"},"event":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"specVersion":{"type":"string"},"occurredAt":{"type":"string","format":"date-time"},"payload":{}},"required":["id","type","specVersion","occurredAt","payload"],"additionalProperties":false}},"required":["id","webhookId","eventId","status","attemptCount","maxAttempts","nextAttemptAt","lastAttemptAt","lastStatusCode","lastError","responseSnippet","durationMs","createdAt","completedAt","event"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/webhooks/{id}/deliveries/{deliveryId}/redeliver":{"post":{"operationId":"redeliverWebhookDelivery","tags":["Webhooks"],"description":"Reenvia uma entrega (OWNER/ADMIN) — nova delivery do mesmo evento.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"deliveryId","required":true}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"webhookId":{"type":"string"},"eventId":{"type":"string"},"status":{"type":"string","enum":["PENDING","SUCCESS","FAILED","EXHAUSTED"]},"attemptCount":{"type":"number"},"maxAttempts":{"type":"number"},"nextAttemptAt":{"nullable":true,"type":"string","format":"date-time"},"lastAttemptAt":{"nullable":true,"type":"string","format":"date-time"},"lastStatusCode":{"nullable":true,"type":"number"},"lastError":{"nullable":true,"type":"string"},"responseSnippet":{"nullable":true,"type":"string"},"durationMs":{"nullable":true,"type":"number"},"createdAt":{"type":"string","format":"date-time"},"completedAt":{"nullable":true,"type":"string","format":"date-time"},"event":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"specVersion":{"type":"string"},"occurredAt":{"type":"string","format":"date-time"},"payload":{}},"required":["id","type","specVersion","occurredAt","payload"],"additionalProperties":false}},"required":["id","webhookId","eventId","status","attemptCount","maxAttempts","nextAttemptAt","lastAttemptAt","lastStatusCode","lastError","responseSnippet","durationMs","createdAt","completedAt","event"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/webhooks/catalog":{"get":{"operationId":"webhookCatalog","tags":["Webhooks"],"description":"Lista os tipos de evento disponíveis para assinatura via webhook.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"specVersion":{"type":"string"},"family":{"type":"string"},"description":{"type":"string"}},"required":["type","specVersion","family","description"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organizations/{orgId}/incidents":{"get":{"operationId":"listClientIncidents","tags":["Incidents"],"description":"Lista os incidentes (alertas recebidos) da organização","parameters":[{"schema":{"type":"string","enum":["FIRING","RESOLVED"]},"in":"query","name":"status","required":false},{"schema":{"type":"string","maxLength":32},"in":"query","name":"severity","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"resourceId","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"alertConfigId","required":false},{"schema":{"type":"string"},"in":"query","name":"startDate","required":false},{"schema":{"type":"string"},"in":"query","name":"endDate","required":false},{"schema":{"default":0,"type":"number","minimum":0},"in":"query","name":"skip","required":false},{"schema":{"default":50,"type":"number","minimum":1,"maximum":100},"in":"query","name":"take","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"orgId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["FIRING","RESOLVED"]},"type":{"nullable":true,"type":"string"},"severity":{"nullable":true,"type":"string"},"audience":{"nullable":true,"type":"string"},"organizationId":{"nullable":true,"type":"string"},"alertConfigId":{"nullable":true,"type":"string"},"resourceId":{"nullable":true,"type":"string"},"applicationId":{"nullable":true,"type":"string"},"startsAt":{"type":"string","format":"date-time"},"endsAt":{"nullable":true,"type":"string","format":"date-time"},"firstReceivedAt":{"type":"string","format":"date-time"},"lastReceivedAt":{"type":"string","format":"date-time"},"occurrences":{"type":"number"},"source":{"type":"string","enum":["ALERTMANAGER","BESZEL","NETDATA"]},"alertname":{"nullable":true,"type":"string"},"serverId":{"nullable":true,"type":"string"},"serverSlug":{"nullable":true,"type":"string"},"summary":{"nullable":true,"type":"string"},"description":{"nullable":true,"type":"string"},"labels":{},"annotations":{},"generatorURL":{"nullable":true,"type":"string"},"rawPayload":{}},"required":["id","status","type","severity","audience","organizationId","alertConfigId","resourceId","applicationId","startsAt","endsAt","firstReceivedAt","lastReceivedAt","occurrences"],"additionalProperties":false}},"total":{"type":"number"}},"required":["items","total"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/resources/{id}/incidents":{"get":{"operationId":"listResourceIncidents","tags":["Incidents"],"description":"Lista os incidentes de um resource (app)","parameters":[{"schema":{"type":"string","enum":["FIRING","RESOLVED"]},"in":"query","name":"status","required":false},{"schema":{"type":"string","maxLength":32},"in":"query","name":"severity","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"resourceId","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"alertConfigId","required":false},{"schema":{"type":"string"},"in":"query","name":"startDate","required":false},{"schema":{"type":"string"},"in":"query","name":"endDate","required":false},{"schema":{"default":0,"type":"number","minimum":0},"in":"query","name":"skip","required":false},{"schema":{"default":50,"type":"number","minimum":1,"maximum":100},"in":"query","name":"take","required":false},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["FIRING","RESOLVED"]},"type":{"nullable":true,"type":"string"},"severity":{"nullable":true,"type":"string"},"audience":{"nullable":true,"type":"string"},"organizationId":{"nullable":true,"type":"string"},"alertConfigId":{"nullable":true,"type":"string"},"resourceId":{"nullable":true,"type":"string"},"applicationId":{"nullable":true,"type":"string"},"startsAt":{"type":"string","format":"date-time"},"endsAt":{"nullable":true,"type":"string","format":"date-time"},"firstReceivedAt":{"type":"string","format":"date-time"},"lastReceivedAt":{"type":"string","format":"date-time"},"occurrences":{"type":"number"},"source":{"type":"string","enum":["ALERTMANAGER","BESZEL","NETDATA"]},"alertname":{"nullable":true,"type":"string"},"serverId":{"nullable":true,"type":"string"},"serverSlug":{"nullable":true,"type":"string"},"summary":{"nullable":true,"type":"string"},"description":{"nullable":true,"type":"string"},"labels":{},"annotations":{},"generatorURL":{"nullable":true,"type":"string"},"rawPayload":{}},"required":["id","status","type","severity","audience","organizationId","alertConfigId","resourceId","applicationId","startsAt","endsAt","firstReceivedAt","lastReceivedAt","occurrences"],"additionalProperties":false}},"total":{"type":"number"}},"required":["items","total"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/search/":{"get":{"operationId":"searchGlobal","tags":["Search"],"description":"Busca global por nome, slug ou id em organizações, projetos, instalações, bancos de dados, contas e domínios (requer autenticação; org-scoped).","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":200},"in":"query","name":"q","required":true},{"schema":{"type":"string"},"in":"query","name":"types","required":false},{"schema":{"default":10,"type":"integer","minimum":1,"maximum":50},"in":"query","name":"limit","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["organization","project","resource","database","account","domain","bucket"]},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"},"status":{"nullable":true,"type":"string"},"organization":{"nullable":true,"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"}},"required":["id","name","slug"],"additionalProperties":false},"project":{"nullable":true,"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"nullable":true,"type":"string"}},"required":["id","name","slug"],"additionalProperties":false},"resource":{"nullable":true,"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"type":{"type":"string"},"kind":{"type":"string"}},"required":["id","name","type","kind"],"additionalProperties":false},"meta":{"nullable":true,"type":"object","additionalProperties":{"type":"string"}}},"required":["type","id","name","slug","status","organization","project","resource","meta"],"additionalProperties":false}},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["results","total"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}}}}