{"openapi":"3.0.0","paths":{"/v1/branches/{branch_id_or_ref}":{"get":{"description":"Fetches configurations of the specified database branch","operationId":"v1-get-a-branch-config","parameters":[{"name":"branch_id_or_ref","required":true,"in":"path","description":"Branch ref or deprecated branch ID","schema":{"example":"abcdefghijklmnopqrst","oneOf":[{"type":"string","minLength":20,"maxLength":20,"pattern":"^[a-z]+$","description":"Project ref","example":"abcdefghijklmnopqrst"},{"type":"string","format":"uuid","deprecated":true}]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchDetailResponse"}}}},"500":{"description":"Failed to retrieve database branch"}},"security":[{"bearer":[]},{"fga_permissions":["branching_production_read"]},{"fga_permissions":["branching_development_read"]}],"summary":"Get database branch config","tags":["Environments"],"x-badges":[{"name":"OAuth scope: environment:read","position":"after"}],"x-endpoint-owners":["dev-workflows"],"x-oauth-scope":"environment:read"},"patch":{"description":"Updates the configuration of the specified database branch","operationId":"v1-update-a-branch-config","parameters":[{"name":"branch_id_or_ref","required":true,"in":"path","description":"Branch ref or deprecated branch ID","schema":{"example":"abcdefghijklmnopqrst","oneOf":[{"type":"string","minLength":20,"maxLength":20,"pattern":"^[a-z]+$","description":"Project ref","example":"abcdefghijklmnopqrst"},{"type":"string","format":"uuid","deprecated":true}]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBranchBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchResponse"}}}},"500":{"description":"Failed to update database branch"}},"security":[{"bearer":[]},{"fga_permissions":["branching_production_write"]},{"fga_permissions":["branching_development_write"]}],"summary":"Update database branch config","tags":["Environments"],"x-badges":[{"name":"OAuth scope: environment:write","position":"after"}],"x-endpoint-owners":["dev-workflows"],"x-oauth-scope":"environment:write"},"delete":{"description":"Deletes the specified database branch. By default, deletes immediately. Use force=false to schedule deletion with 1-hour grace period (only when soft deletion is enabled).","operationId":"v1-delete-a-branch","parameters":[{"name":"branch_id_or_ref","required":true,"in":"path","description":"Branch ref or deprecated branch ID","schema":{"example":"abcdefghijklmnopqrst","oneOf":[{"type":"string","minLength":20,"maxLength":20,"pattern":"^[a-z]+$","description":"Project ref","example":"abcdefghijklmnopqrst"},{"type":"string","format":"uuid","deprecated":true}]}},{"name":"force","required":false,"in":"query","description":"If set to false, schedule deletion with 1-hour grace period (only when soft deletion is enabled).","schema":{"default":"true","example":false,"type":"boolean"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchDeleteResponse"}}}},"500":{"description":"Failed to delete database branch"}},"security":[{"bearer":[]},{"fga_permissions":["branching_production_delete"]},{"fga_permissions":["branching_development_delete"]}],"summary":"Delete a database branch","tags":["Environments"],"x-badges":[{"name":"OAuth scope: environment:write","position":"after"}],"x-endpoint-owners":["dev-workflows"],"x-oauth-scope":"environment:write"}},"/v1/branches/{branch_id_or_ref}/push":{"post":{"description":"Pushes the specified database branch","operationId":"v1-push-a-branch","parameters":[{"name":"branch_id_or_ref","required":true,"in":"path","description":"Branch ref or deprecated branch ID","schema":{"example":"abcdefghijklmnopqrst","oneOf":[{"type":"string","minLength":20,"maxLength":20,"pattern":"^[a-z]+$","description":"Project ref","example":"abcdefghijklmnopqrst"},{"type":"string","format":"uuid","deprecated":true}]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchActionBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchUpdateResponse"}}}},"500":{"description":"Failed to push database branch"}},"security":[{"bearer":[]},{"fga_permissions":["branching_production_write"]},{"fga_permissions":["branching_development_write"]}],"summary":"Pushes a database branch","tags":["Environments"],"x-badges":[{"name":"OAuth scope: environment:write","position":"after"}],"x-endpoint-owners":["dev-workflows"],"x-oauth-scope":"environment:write"}},"/v1/branches/{branch_id_or_ref}/merge":{"post":{"description":"Merges the specified database branch","operationId":"v1-merge-a-branch","parameters":[{"name":"branch_id_or_ref","required":true,"in":"path","description":"Branch ref or deprecated branch ID","schema":{"example":"abcdefghijklmnopqrst","oneOf":[{"type":"string","minLength":20,"maxLength":20,"pattern":"^[a-z]+$","description":"Project ref","example":"abcdefghijklmnopqrst"},{"type":"string","format":"uuid","deprecated":true}]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchActionBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchUpdateResponse"}}}},"500":{"description":"Failed to merge database branch"}},"security":[{"bearer":[]},{"fga_permissions":["branching_production_write"]},{"fga_permissions":["branching_development_write"]}],"summary":"Merges a database branch","tags":["Environments"],"x-badges":[{"name":"OAuth scope: environment:write","position":"after"}],"x-endpoint-owners":["dev-workflows"],"x-oauth-scope":"environment:write"}},"/v1/branches/{branch_id_or_ref}/reset":{"post":{"description":"Resets the specified database branch","operationId":"v1-reset-a-branch","parameters":[{"name":"branch_id_or_ref","required":true,"in":"path","description":"Branch ref or deprecated branch ID","schema":{"example":"abcdefghijklmnopqrst","oneOf":[{"type":"string","minLength":20,"maxLength":20,"pattern":"^[a-z]+$","description":"Project ref","example":"abcdefghijklmnopqrst"},{"type":"string","format":"uuid","deprecated":true}]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchActionBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchUpdateResponse"}}}},"500":{"description":"Failed to reset database branch"}},"security":[{"bearer":[]},{"fga_permissions":["branching_production_write"]},{"fga_permissions":["branching_development_write"]}],"summary":"Resets a database branch","tags":["Environments"],"x-badges":[{"name":"OAuth scope: environment:write","position":"after"}],"x-endpoint-owners":["dev-workflows"],"x-oauth-scope":"environment:write"}},"/v1/branches/{branch_id_or_ref}/restore":{"post":{"description":"Cancels scheduled deletion and restores the branch to active state","operationId":"v1-restore-a-branch","parameters":[{"name":"branch_id_or_ref","required":true,"in":"path","description":"Branch ref or deprecated branch ID","schema":{"example":"abcdefghijklmnopqrst","oneOf":[{"type":"string","minLength":20,"maxLength":20,"pattern":"^[a-z]+$","description":"Project ref","example":"abcdefghijklmnopqrst"},{"type":"string","format":"uuid","deprecated":true}]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchRestoreResponse"}}}},"500":{"description":"Failed to restore database branch"}},"security":[{"bearer":[]},{"fga_permissions":["branching_production_write"]},{"fga_permissions":["branching_development_write"]}],"summary":"Restore a scheduled branch deletion","tags":["Environments"],"x-badges":[{"name":"OAuth scope: environment:write","position":"after"}],"x-endpoint-owners":["dev-workflows"],"x-oauth-scope":"environment:write"}},"/v1/branches/{branch_id_or_ref}/diff":{"get":{"description":"Diffs the specified database branch","operationId":"v1-diff-a-branch","parameters":[{"name":"branch_id_or_ref","required":true,"in":"path","description":"Branch ref or deprecated branch ID","schema":{"example":"abcdefghijklmnopqrst","oneOf":[{"type":"string","minLength":20,"maxLength":20,"pattern":"^[a-z]+$","description":"Project ref","example":"abcdefghijklmnopqrst"},{"type":"string","format":"uuid","deprecated":true}]}},{"name":"included_schemas","required":false,"in":"query","schema":{"example":"public,auth","type":"string"}},{"name":"pgdelta","required":false,"in":"query","description":"Use pg-delta instead of Migra for diffing when true","schema":{"example":false,"type":"boolean"}}],"responses":{"200":{"content":{"text/plain":{"schema":{"type":"string"}}},"description":""},"500":{"description":"Failed to diff database branch"}},"security":[{"bearer":[]},{"fga_permissions":["branching_production_write"]},{"fga_permissions":["branching_development_write"]}],"summary":"[Beta] Diffs a database branch","tags":["Environments"],"x-badges":[{"name":"OAuth scope: environment:write","position":"after"}],"x-endpoint-owners":["dev-workflows"],"x-oauth-scope":"environment:write"}},"/v1/projects":{"get":{"description":"Returns a list of all projects you've previously created.","operationId":"v1-list-all-projects","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/V1ProjectWithDatabaseResponse"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["projects_read"]}],"summary":"List all projects","tags":["Projects"],"x-badges":[{"name":"OAuth scope: projects:read","position":"after"}],"x-endpoint-owners":["management-api"],"x-oauth-scope":"projects:read"},"post":{"operationId":"v1-create-a-project","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1CreateProjectBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ProjectResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["organization_projects_create"]}],"summary":"Create a project","tags":["Projects"],"x-badges":[{"name":"OAuth scope: projects:write","position":"after"}],"x-endpoint-owners":["management-api","infra"],"x-oauth-scope":"projects:write"}},"/v1/projects/available-regions":{"get":{"operationId":"v1-get-available-regions","parameters":[{"name":"organization_slug","required":true,"in":"query","description":"Slug of your organization","schema":{"example":"tsrqponmlkjihgfedcba","type":"string"}},{"name":"continent","required":false,"in":"query","description":"Continent code to determine regional recommendations: NA (North America), SA (South America), EU (Europe), AF (Africa), AS (Asia), OC (Oceania), AN (Antarctica)","schema":{"example":"NA","type":"string","enum":["NA","SA","EU","AF","AS","OC","AN"]}},{"name":"desired_instance_size","required":false,"in":"query","description":"Desired instance size. Omit this field to always default to the smallest possible size.","schema":{"type":"string","enum":["nano","micro","small","medium","large","xlarge","2xlarge","4xlarge","8xlarge","12xlarge","16xlarge","24xlarge","24xlarge_optimized_memory","24xlarge_optimized_cpu","24xlarge_high_memory","48xlarge","48xlarge_optimized_memory","48xlarge_optimized_cpu","48xlarge_high_memory"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegionsInfo"}}}}},"security":[{"bearer":[]}],"summary":"[Beta] Gets the list of available regions that can be used for a new project","tags":["Projects"],"x-badges":[{"name":"OAuth scope: organizations:read","position":"after"}],"x-endpoint-owners":["infra"],"x-oauth-scope":"organizations:read"}},"/v1/organizations":{"get":{"description":"Returns a list of organizations that you currently belong to.","operationId":"v1-list-all-organizations","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationResponseV1"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Unexpected error listing organizations"}},"security":[{"bearer":[]},{"fga_permissions":["organizations_read"]}],"summary":"List all organizations","tags":["Organizations"],"x-badges":[{"name":"OAuth scope: organizations:read","position":"after"}],"x-endpoint-owners":["management-api"],"x-oauth-scope":"organizations:read"},"post":{"operationId":"v1-create-an-organization","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationV1"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationResponseV1"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Unexpected error creating an organization"}},"security":[{"bearer":[]},{"fga_permissions":["organizations_create"]}],"summary":"Create an organization","tags":["Organizations"],"x-endpoint-owners":["management-api","billing"]}},"/v1/oauth/authorize":{"get":{"operationId":"v1-authorize-user","parameters":[{"name":"client_id","required":true,"in":"query","schema":{"format":"uuid","example":"66666666-6666-4666-8666-666666666666","type":"string"}},{"name":"response_type","required":true,"in":"query","schema":{"example":"code","type":"string","enum":["code","token","id_token token"]}},{"name":"redirect_uri","required":true,"in":"query","schema":{"example":"https://app.acme.com/auth/callback","type":"string"}},{"name":"scope","required":false,"in":"query","schema":{"example":"projects:read projects:write","type":"string"}},{"name":"state","required":false,"in":"query","schema":{"example":"st_9f4d3a206b2e4a7e8c91","type":"string"}},{"name":"response_mode","required":false,"in":"query","schema":{"example":"query","type":"string"}},{"name":"code_challenge","required":false,"in":"query","schema":{"example":"Z_P4EKbGwIkA01e3Y5fp4tMCvn_Ae5nUw7qY7XwkTrQ","type":"string"}},{"name":"code_challenge_method","required":false,"in":"query","schema":{"example":"S256","type":"string","enum":["plain","sha256","S256"]}},{"name":"organization_slug","required":false,"in":"query","description":"Organization slug","schema":{"pattern":"^[\\w-]+$","example":"tsrqponmlkjihgfedcba","type":"string"}},{"name":"resource","required":false,"in":"query","description":"Resource indicator for MCP (Model Context Protocol) clients","schema":{"format":"uri","type":"string"}}],"responses":{"204":{"description":""}},"security":[{"oauth2":["read"]}],"summary":"[Beta] Authorize user through oauth","tags":["OAuth"],"x-endpoint-owners":["auth","management-api"]}},"/v1/oauth/token":{"post":{"operationId":"v1-exchange-oauth-token","parameters":[],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/OAuthTokenBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthTokenResponse"}}}}},"security":[{"oauth2":["write"]}],"summary":"[Beta] Exchange auth code for user's access and refresh token","tags":["OAuth"],"x-endpoint-owners":["auth","management-api"]}},"/v1/oauth/revoke":{"post":{"operationId":"v1-revoke-token","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthRevokeTokenBody"}}}},"responses":{"204":{"description":""}},"security":[{"oauth2":["write"]}],"summary":"[Beta] Revoke oauth app authorization and it's corresponding tokens","tags":["OAuth"],"x-endpoint-owners":["auth","management-api"]}},"/v1/oauth/authorize/project-claim":{"get":{"description":"Initiates the OAuth authorization flow for the specified provider. After successful authentication, the user can claim ownership of the specified project.","operationId":"v1-oauth-authorize-project-claim","parameters":[{"name":"project_ref","required":true,"in":"query","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"client_id","required":true,"in":"query","schema":{"format":"uuid","example":"66666666-6666-4666-8666-666666666666","type":"string"}},{"name":"response_type","required":true,"in":"query","schema":{"example":"code","type":"string","enum":["code","token","id_token token"]}},{"name":"redirect_uri","required":true,"in":"query","schema":{"example":"https://app.acme.com/auth/callback","type":"string"}},{"name":"state","required":false,"in":"query","schema":{"example":"st_9f4d3a206b2e4a7e8c91","type":"string"}},{"name":"response_mode","required":false,"in":"query","schema":{"example":"query","type":"string"}},{"name":"code_challenge","required":false,"in":"query","schema":{"example":"Z_P4EKbGwIkA01e3Y5fp4tMCvn_Ae5nUw7qY7XwkTrQ","type":"string"}},{"name":"code_challenge_method","required":false,"in":"query","schema":{"example":"S256","type":"string","enum":["plain","sha256","S256"]}}],"responses":{"204":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["organization_admin_write","project_admin_write"]}],"summary":"Authorize user through oauth and claim a project","tags":["OAuth"],"x-endpoint-owners":["management-api"]}},"/v1/snippets":{"get":{"operationId":"v1-list-all-snippets","parameters":[{"name":"project_ref","required":false,"in":"query","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"cursor","required":false,"in":"query","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"type":"string","minimum":1,"maximum":100}},{"name":"sort_by","required":false,"in":"query","schema":{"enum":["name","inserted_at"],"type":"string"}},{"name":"sort_order","required":false,"in":"query","schema":{"enum":["asc","desc"],"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnippetList"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to list user's SQL snippets"}},"security":[{"bearer":[]},{"fga_permissions":["snippets_read"]}],"summary":"Lists SQL snippets for the logged in user","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:read","position":"after"}],"x-endpoint-owners":["management-api"],"x-oauth-scope":"database:read"}},"/v1/snippets/{id}":{"get":{"operationId":"v1-get-a-snippet","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","example":"44444444-4444-4444-8444-444444444444","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnippetResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve SQL snippet"}},"security":[{"bearer":[]},{"fga_permissions":["snippets_read"]}],"summary":"Gets a specific SQL snippet","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:read","position":"after"}],"x-endpoint-owners":["management-api"],"x-oauth-scope":"database:read"}},"/v1/profile":{"get":{"operationId":"v1-get-profile","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ProfileResponse"}}}}},"security":[{"bearer":[]}],"summary":"Gets the user's profile","tags":["Profile"],"x-endpoint-owners":["management-api"]}},"/v1/projects/{ref}/actions":{"get":{"description":"Returns a paginated list of action runs of the specified project.","operationId":"v1-list-action-runs","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"offset","required":false,"in":"query","schema":{"minimum":0,"example":0,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"minimum":10,"example":20,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListActionRunResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to list action runs"}},"security":[{"bearer":[]},{"fga_permissions":["action_runs_read"]}],"summary":"List all action runs","tags":["Environments"],"x-badges":[{"name":"OAuth scope: environment:read","position":"after"}],"x-endpoint-owners":["dev-workflows"],"x-oauth-scope":"environment:read"},"head":{"description":"Returns the total number of action runs of the specified project.","operationId":"v1-count-action-runs","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"headers":{"X-Total-Count":{"schema":{"type":"integer","format":"int64","minimum":0},"description":"total count value"}},"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to count action runs"}},"security":[{"bearer":[]},{"fga_permissions":["action_runs_read"]}],"summary":"Count the number of action runs","tags":["Environments"],"x-badges":[{"name":"OAuth scope: environment:read","position":"after"}],"x-oauth-scope":"environment:read"}},"/v1/projects/{ref}/actions/{run_id}":{"get":{"description":"Returns the current status of the specified action run.","operationId":"v1-get-action-run","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"run_id","required":true,"in":"path","description":"Action Run ID","schema":{"example":"run_01hq3q9m7y5q7e4a7x2c8m1p4n","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionRunResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to get action run status"}},"security":[{"bearer":[]},{"fga_permissions":["action_runs_read"]}],"summary":"Get the status of an action run","tags":["Environments"],"x-badges":[{"name":"OAuth scope: environment:read","position":"after"}],"x-endpoint-owners":["dev-workflows"],"x-oauth-scope":"environment:read"}},"/v1/projects/{ref}/actions/{run_id}/status":{"patch":{"description":"Updates the status of an ongoing action run.","operationId":"v1-update-action-run-status","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"run_id","required":true,"in":"path","description":"Action Run ID","schema":{"example":"run_01hq3q9m7y5q7e4a7x2c8m1p4n","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRunStatusBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRunStatusResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to update action run status"}},"security":[{"bearer":[]},{"fga_permissions":["action_runs_write"]}],"summary":"Update the status of an action run","tags":["Environments"],"x-badges":[{"name":"OAuth scope: environment:write","position":"after"}],"x-endpoint-owners":["dev-workflows"],"x-oauth-scope":"environment:write"}},"/v1/projects/{ref}/actions/{run_id}/logs":{"get":{"description":"Returns the logs from the specified action run.","operationId":"v1-get-action-run-logs","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"run_id","required":true,"in":"path","description":"Action Run ID","schema":{"example":"run_01hq3q9m7y5q7e4a7x2c8m1p4n","type":"string"}}],"responses":{"200":{"content":{"text/plain":{"schema":{"type":"string"}}},"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to get action run logs"}},"security":[{"bearer":[]},{"fga_permissions":["action_runs_read"]}],"summary":"Get the logs of an action run","tags":["Environments"],"x-badges":[{"name":"OAuth scope: environment:read","position":"after"}],"x-endpoint-owners":["dev-workflows"],"x-oauth-scope":"environment:read"}},"/v1/projects/{ref}/api-keys":{"get":{"operationId":"v1-get-project-api-keys","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"reveal","required":false,"in":"query","description":"Boolean string, true or false","schema":{"example":true,"type":"boolean"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiKeyResponse"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["api_gateway_keys_read"]}],"summary":"Get project api keys","tags":["Secrets"],"x-badges":[{"name":"OAuth scope: secrets:read","position":"after"}],"x-endpoint-owners":["auth","management-api"],"x-oauth-scope":"secrets:read"},"post":{"operationId":"v1-create-project-api-key","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"reveal","required":false,"in":"query","description":"Boolean string, true or false","schema":{"example":true,"type":"boolean"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["api_gateway_keys_write"]}],"summary":"Creates a new API key for the project","tags":["Secrets"],"x-badges":[{"name":"OAuth scope: secrets:write","position":"after"}],"x-endpoint-owners":["auth","management-api"],"x-oauth-scope":"secrets:write"}},"/v1/projects/{ref}/api-keys/legacy":{"get":{"operationId":"v1-get-project-legacy-api-keys","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegacyApiKeysResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["api_gateway_keys_read"]}],"summary":"Check whether JWT based legacy (anon, service_role) API keys are enabled. This API endpoint will be removed in the future, check for HTTP 404 Not Found.","tags":["Secrets"],"x-badges":[{"name":"OAuth scope: secrets:read","position":"after"}],"x-endpoint-owners":["auth","management-api"],"x-oauth-scope":"secrets:read"},"put":{"operationId":"v1-update-project-legacy-api-keys","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"enabled","required":true,"in":"query","description":"Boolean string, true or false","schema":{"example":true,"type":"boolean"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegacyApiKeysResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["api_gateway_keys_write"]}],"summary":"Disable or re-enable JWT based legacy (anon, service_role) API keys. This API endpoint will be removed in the future, check for HTTP 404 Not Found.","tags":["Secrets"],"x-badges":[{"name":"OAuth scope: secrets:write","position":"after"}],"x-endpoint-owners":["auth","management-api"],"x-oauth-scope":"secrets:write"}},"/v1/projects/{ref}/api-keys/{id}":{"patch":{"operationId":"v1-update-project-api-key","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"id","required":true,"in":"path","schema":{"format":"uuid","example":"22222222-2222-4222-8222-222222222222","type":"string"}},{"name":"reveal","required":false,"in":"query","description":"Boolean string, true or false","schema":{"example":true,"type":"boolean"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApiKeyBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["api_gateway_keys_write"]}],"summary":"Updates an API key for the project","tags":["Secrets"],"x-badges":[{"name":"OAuth scope: secrets:write","position":"after"}],"x-endpoint-owners":["auth","management-api"],"x-oauth-scope":"secrets:write"},"get":{"operationId":"v1-get-project-api-key","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"id","required":true,"in":"path","schema":{"format":"uuid","example":"22222222-2222-4222-8222-222222222222","type":"string"}},{"name":"reveal","required":false,"in":"query","description":"Boolean string, true or false","schema":{"example":true,"type":"boolean"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["api_gateway_keys_read"]}],"summary":"Get API key","tags":["Secrets"],"x-badges":[{"name":"OAuth scope: secrets:read","position":"after"}],"x-endpoint-owners":["auth","management-api"],"x-oauth-scope":"secrets:read"},"delete":{"operationId":"v1-delete-project-api-key","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"id","required":true,"in":"path","schema":{"format":"uuid","example":"22222222-2222-4222-8222-222222222222","type":"string"}},{"name":"reveal","required":false,"in":"query","description":"Boolean string, true or false","schema":{"example":true,"type":"boolean"}},{"name":"was_compromised","required":false,"in":"query","description":"Boolean string, true or false","schema":{"example":false,"type":"boolean"}},{"name":"reason","required":false,"in":"query","schema":{"example":"rotating_key","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["api_gateway_keys_write"]}],"summary":"Deletes an API key for the project","tags":["Secrets"],"x-badges":[{"name":"OAuth scope: secrets:write","position":"after"}],"x-endpoint-owners":["auth","management-api"],"x-oauth-scope":"secrets:write"}},"/v1/projects/{ref}/branches":{"get":{"description":"Returns all database branches of the specified project.","operationId":"v1-list-all-branches","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BranchResponse"}}}}},"500":{"description":"Failed to retrieve database branches"}},"security":[{"bearer":[]},{"fga_permissions":["branching_production_read"]},{"fga_permissions":["branching_development_read"]}],"summary":"List all database branches","tags":["Environments"],"x-badges":[{"name":"OAuth scope: environment:read","position":"after"}],"x-endpoint-owners":["dev-workflows"],"x-oauth-scope":"environment:read"},"post":{"description":"Creates a database branch from the specified project.","operationId":"v1-create-a-branch","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBranchBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchResponse"}}}},"500":{"description":"Failed to create database branch"}},"security":[{"bearer":[]},{"fga_permissions":["branching_production_create"]},{"fga_permissions":["branching_development_create"]}],"summary":"Create a database branch","tags":["Environments"],"x-badges":[{"name":"OAuth scope: environment:write","position":"after"}],"x-endpoint-owners":["dev-workflows"],"x-oauth-scope":"environment:write"},"delete":{"description":"Disables preview branching for the specified project","operationId":"v1-disable-preview-branching","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to disable preview branching"}},"security":[{"bearer":[]},{"fga_permissions":["branching_production_delete"]}],"summary":"Disables preview branching","tags":["Environments"],"x-badges":[{"name":"OAuth scope: environment:write","position":"after"}],"x-endpoint-owners":["dev-workflows"],"x-oauth-scope":"environment:write"}},"/v1/projects/{ref}/branches/{name}":{"get":{"description":"Fetches the specified database branch by its name.","operationId":"v1-get-a-branch","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"name","required":true,"in":"path","schema":{"example":"preview-login-page","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchResponse"}}}},"500":{"description":"Failed to fetch database branch"}},"security":[{"bearer":[]},{"fga_permissions":["branching_production_read"]},{"fga_permissions":["branching_development_read"]}],"summary":"Get a database branch","tags":["Environments"],"x-badges":[{"name":"OAuth scope: environment:read","position":"after"}],"x-endpoint-owners":["dev-workflows"],"x-oauth-scope":"environment:read"}},"/v1/projects/{ref}/custom-hostname":{"get":{"operationId":"v1-get-hostname-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomHostnameResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve project's custom hostname config"}},"security":[{"bearer":[]},{"fga_permissions":["custom_domain_read"]}],"summary":"[Beta] Gets project's custom hostname config","tags":["Domains"],"x-badges":[{"name":"OAuth scope: domains:read","position":"after"}],"x-endpoint-owners":["infra","management-api"],"x-oauth-scope":"domains:read"},"delete":{"operationId":"v1-Delete hostname config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"remove_addon","required":false,"in":"query","description":"If true, also removes the custom domain add-on from the project subscription.","schema":{"default":"false","type":"boolean"}}],"responses":{"200":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to delete project custom hostname configuration"}},"security":[{"bearer":[]},{"fga_permissions":["custom_domain_write"]}],"summary":"[Beta] Deletes a project's custom hostname configuration","tags":["Domains"],"x-badges":[{"name":"OAuth scope: domains:write","position":"after"}],"x-endpoint-owners":["infra","management-api"],"x-oauth-scope":"domains:write"}},"/v1/projects/{ref}/custom-hostname/initialize":{"post":{"operationId":"v1-update-hostname-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomHostnameBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomHostnameResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to update project custom hostname configuration"}},"security":[{"bearer":[]},{"fga_permissions":["custom_domain_write"]}],"summary":"[Beta] Updates project's custom hostname configuration","tags":["Domains"],"x-badges":[{"name":"OAuth scope: domains:write","position":"after"}],"x-endpoint-owners":["infra","management-api"],"x-oauth-scope":"domains:write"}},"/v1/projects/{ref}/custom-hostname/reverify":{"post":{"operationId":"v1-verify-dns-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomHostnameResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to verify project custom hostname configuration"}},"security":[{"bearer":[]},{"fga_permissions":["custom_domain_write"]}],"summary":"[Beta] Attempts to verify the DNS configuration for project's custom hostname configuration","tags":["Domains"],"x-badges":[{"name":"OAuth scope: domains:write","position":"after"}],"x-endpoint-owners":["infra","management-api"],"x-oauth-scope":"domains:write"}},"/v1/projects/{ref}/custom-hostname/activate":{"post":{"operationId":"v1-activate-custom-hostname","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomHostnameResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to activate project custom hostname configuration"}},"security":[{"bearer":[]},{"fga_permissions":["custom_domain_write"]}],"summary":"[Beta] Activates a custom hostname for a project.","tags":["Domains"],"x-badges":[{"name":"OAuth scope: domains:write","position":"after"}],"x-endpoint-owners":["infra","management-api"],"x-oauth-scope":"domains:write"}},"/v1/projects/{ref}/jit-access":{"get":{"operationId":"v1-get-jit-access-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JitStateResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve project's temporary access configuration."}},"security":[{"bearer":[]},{"fga_permissions":["project_admin_read"]}],"summary":"[Beta] Get project's temporary access configuration.","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:read","position":"after"}],"x-endpoint-owners":["security","management-api"],"x-oauth-scope":"database:read"},"put":{"operationId":"v1-update-jit-access-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JitAccessRequestRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JitStateResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to update project's temporary access configuration."}},"security":[{"bearer":[]},{"fga_permissions":["project_admin_write"]}],"summary":"[Beta] Update project's temporary access configuration.","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:write","position":"after"}],"x-endpoint-owners":["security","management-api"],"x-oauth-scope":"database:write"}},"/v1/projects/{ref}/network-bans/retrieve":{"post":{"operationId":"v1-list-all-network-bans","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkBanResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve project's network bans"}},"security":[{"bearer":[]},{"fga_permissions":["database_network_bans_read"]}],"summary":"[Beta] Gets project's network bans","tags":["Projects"],"x-badges":[{"name":"OAuth scope: projects:read","position":"after"}],"x-endpoint-owners":["management-api","infra"],"x-oauth-scope":"projects:read"}},"/v1/projects/{ref}/network-bans/retrieve/enriched":{"post":{"operationId":"v1-list-all-network-bans-enriched","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkBanResponseEnriched"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve project's enriched network bans"}},"security":[{"bearer":[]},{"fga_permissions":["database_network_bans_read"]}],"summary":"[Beta] Gets project's network bans with additional information about which databases they affect","tags":["Projects"],"x-badges":[{"name":"OAuth scope: projects:read","position":"after"}],"x-endpoint-owners":["management-api","infra"],"x-oauth-scope":"projects:read"}},"/v1/projects/{ref}/network-bans":{"delete":{"operationId":"v1-delete-network-bans","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveNetworkBanRequest"}}}},"responses":{"200":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to remove network bans."}},"security":[{"bearer":[]},{"fga_permissions":["database_network_bans_write"]}],"summary":"[Beta] Remove network bans.","tags":["Projects"],"x-badges":[{"name":"OAuth scope: projects:write","position":"after"}],"x-endpoint-owners":["management-api","infra"],"x-oauth-scope":"projects:write"}},"/v1/projects/{ref}/network-restrictions":{"get":{"operationId":"v1-get-network-restrictions","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkRestrictionsResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve project's network restrictions"}},"security":[{"bearer":[]},{"fga_permissions":["database_network_restrictions_read"]}],"summary":"[Beta] Gets project's network restrictions","tags":["Projects"],"x-badges":[{"name":"OAuth scope: projects:read","position":"after"}],"x-endpoint-owners":["infra","management-api"],"x-oauth-scope":"projects:read"},"patch":{"operationId":"v1-patch-network-restrictions","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkRestrictionsPatchRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkRestrictionsV2Response"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to update project network restrictions"}},"security":[{"bearer":[]},{"fga_permissions":["database_network_restrictions_write"]}],"summary":"[Alpha] Updates project's network restrictions by adding or removing CIDRs","tags":["Projects"],"x-badges":[{"name":"OAuth scope: projects:write","position":"after"}],"x-endpoint-owners":["infra","management-api"],"x-oauth-scope":"projects:write"}},"/v1/projects/{ref}/network-restrictions/apply":{"post":{"operationId":"v1-update-network-restrictions","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkRestrictionsRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkRestrictionsResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to update project network restrictions"}},"security":[{"bearer":[]},{"fga_permissions":["database_network_restrictions_write"]}],"summary":"[Beta] Updates project's network restrictions","tags":["Projects"],"x-badges":[{"name":"OAuth scope: projects:write","position":"after"}],"x-endpoint-owners":["infra","management-api"],"x-oauth-scope":"projects:write"}},"/v1/projects/{ref}/pgsodium":{"get":{"operationId":"v1-get-pgsodium-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PgsodiumConfigResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve project's pgsodium config"}},"security":[{"bearer":[]},{"fga_permissions":["project_admin_write"]}],"summary":"[Beta] Gets project's pgsodium config","tags":["Secrets"],"x-badges":[{"name":"OAuth scope: secrets:read","position":"after"}],"x-endpoint-owners":["infra"],"x-oauth-scope":"secrets:read"},"put":{"operationId":"v1-update-pgsodium-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePgsodiumConfigBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PgsodiumConfigResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to update project's pgsodium config"}},"security":[{"bearer":[]},{"fga_permissions":["project_admin_write"]}],"summary":"[Beta] Updates project's pgsodium config. Updating the root_key can cause all data encrypted with the older key to become inaccessible.","tags":["Secrets"],"x-badges":[{"name":"OAuth scope: secrets:write","position":"after"}],"x-endpoint-owners":["infra"],"x-oauth-scope":"secrets:write"}},"/v1/projects/{ref}/postgrest":{"get":{"operationId":"v1-get-postgrest-service-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostgrestConfigWithJWTSecretResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve project's postgrest config"}},"security":[{"bearer":[]},{"fga_permissions":["data_api_config_read"]}],"summary":"Gets project's postgrest config","tags":["Rest"],"x-badges":[{"name":"OAuth scope: rest:read","position":"after"}],"x-endpoint-owners":["management-api","infra"],"x-oauth-scope":"rest:read"},"patch":{"operationId":"v1-update-postgrest-service-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1UpdatePostgrestConfigBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1PostgrestConfigResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to update project's postgrest config"}},"security":[{"bearer":[]},{"fga_permissions":["data_api_config_write"]}],"summary":"Updates project's postgrest config","tags":["Rest"],"x-badges":[{"name":"OAuth scope: rest:write","position":"after"}],"x-endpoint-owners":["management-api","infra"],"x-oauth-scope":"rest:write"}},"/v1/projects/{ref}":{"get":{"operationId":"v1-get-project","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ProjectWithDatabaseResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve project"}},"security":[{"bearer":[]},{"fga_permissions":["project_admin_read"]}],"summary":"Gets a specific project that belongs to the authenticated user","tags":["Projects"],"x-badges":[{"name":"OAuth scope: projects:read","position":"after"}],"x-endpoint-owners":["management-api"],"x-oauth-scope":"projects:read"},"delete":{"operationId":"v1-delete-a-project","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ProjectRefResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["project_admin_write"]}],"summary":"Deletes the given project","tags":["Projects"],"x-badges":[{"name":"OAuth scope: projects:write","position":"after"}],"x-endpoint-owners":["management-api","infra","dev-workflows"],"x-oauth-scope":"projects:write"},"patch":{"operationId":"v1-update-a-project","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1UpdateProjectBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ProjectRefResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to update project"}},"security":[{"bearer":[]},{"fga_permissions":["project_admin_write"]}],"summary":"Updates the given project","tags":["Projects"],"x-badges":[{"name":"OAuth scope: projects:write","position":"after"}],"x-endpoint-owners":["management-api"],"x-oauth-scope":"projects:write"}},"/v1/projects/{ref}/secrets":{"get":{"description":"Returns all secrets you've previously added to the specified project.","operationId":"v1-list-all-secrets","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SecretResponse"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve project's secrets"}},"security":[{"bearer":[]},{"fga_permissions":["edge_functions_secrets_read"]}],"summary":"List all secrets","tags":["Secrets"],"x-badges":[{"name":"OAuth scope: secrets:read","position":"after"}],"x-endpoint-owners":["functions"],"x-oauth-scope":"secrets:read"},"post":{"description":"Creates multiple secrets and adds them to the specified project.","operationId":"v1-bulk-create-secrets","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSecretBody"}}}},"responses":{"201":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to create project's secrets"}},"security":[{"bearer":[]},{"fga_permissions":["edge_functions_secrets_write"]}],"summary":"Bulk create secrets","tags":["Secrets"],"x-badges":[{"name":"OAuth scope: secrets:write","position":"after"}],"x-endpoint-owners":["functions"],"x-oauth-scope":"secrets:write"},"delete":{"description":"Deletes all secrets with the given names from the specified project","operationId":"v1-bulk-delete-secrets","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSecretsBody"}}}},"responses":{"200":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to delete secrets with given names"}},"security":[{"bearer":[]},{"fga_permissions":["edge_functions_secrets_write"]}],"summary":"Bulk delete secrets","tags":["Secrets"],"x-badges":[{"name":"OAuth scope: secrets:write","position":"after"}],"x-endpoint-owners":["functions"],"x-oauth-scope":"secrets:write"}},"/v1/projects/{ref}/ssl-enforcement":{"get":{"operationId":"v1-get-ssl-enforcement-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SslEnforcementResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve project's SSL enforcement config"}},"security":[{"bearer":[]},{"fga_permissions":["database_ssl_config_read"]}],"summary":"[Beta] Get project's SSL enforcement configuration.","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:read","position":"after"}],"x-endpoint-owners":["infra","management-api"],"x-oauth-scope":"database:read"},"put":{"operationId":"v1-update-ssl-enforcement-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SslEnforcementRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SslEnforcementResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to update project's SSL enforcement configuration."}},"security":[{"bearer":[]},{"fga_permissions":["database_ssl_config_write"]}],"summary":"[Beta] Update project's SSL enforcement configuration.","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:write","position":"after"}],"x-endpoint-owners":["infra","management-api"],"x-oauth-scope":"database:write"}},"/v1/projects/{ref}/types/typescript":{"get":{"description":"Returns the TypeScript types of your schema for use with supabase-js.","operationId":"v1-generate-typescript-types","parameters":[{"name":"included_schemas","required":false,"in":"query","schema":{"default":"public","example":"public,auth","type":"string"}},{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TypescriptResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to generate TypeScript types"}},"security":[{"bearer":[]},{"fga_permissions":["database_read"]}],"summary":"Generate TypeScript types","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:read","position":"after"}],"x-endpoint-owners":["dev-workflows"],"x-oauth-scope":"database:read"}},"/v1/projects/{ref}/vanity-subdomain":{"get":{"operationId":"v1-get-vanity-subdomain-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VanitySubdomainConfigResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to get project vanity subdomain configuration"}},"security":[{"bearer":[]},{"fga_permissions":["vanity_subdomain_read"]}],"summary":"[Beta] Gets current vanity subdomain config","tags":["Domains"],"x-badges":[{"name":"OAuth scope: domains:read","position":"after"}],"x-endpoint-owners":["infra","management-api"],"x-oauth-scope":"domains:read"},"delete":{"operationId":"v1-deactivate-vanity-subdomain-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to delete project vanity subdomain configuration"}},"security":[{"bearer":[]},{"fga_permissions":["vanity_subdomain_write"]}],"summary":"[Beta] Deletes a project's vanity subdomain configuration","tags":["Domains"],"x-badges":[{"name":"OAuth scope: domains:write","position":"after"}],"x-endpoint-owners":["infra","management-api"],"x-oauth-scope":"domains:write"}},"/v1/projects/{ref}/vanity-subdomain/check-availability":{"post":{"operationId":"v1-check-vanity-subdomain-availability","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VanitySubdomainBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubdomainAvailabilityResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to check project vanity subdomain configuration"}},"security":[{"bearer":[]},{"fga_permissions":["vanity_subdomain_write"]}],"summary":"[Beta] Checks vanity subdomain availability","tags":["Domains"],"x-badges":[{"name":"OAuth scope: domains:write","position":"after"}],"x-endpoint-owners":["infra","management-api"],"x-oauth-scope":"domains:write"}},"/v1/projects/{ref}/vanity-subdomain/activate":{"post":{"operationId":"v1-activate-vanity-subdomain-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VanitySubdomainBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateVanitySubdomainResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to activate project vanity subdomain configuration"}},"security":[{"bearer":[]},{"fga_permissions":["vanity_subdomain_write"]}],"summary":"[Beta] Activates a vanity subdomain for a project.","tags":["Domains"],"x-badges":[{"name":"OAuth scope: domains:write","position":"after"}],"x-endpoint-owners":["infra","management-api"],"x-oauth-scope":"domains:write"}},"/v1/projects/{ref}/upgrade":{"post":{"operationId":"v1-upgrade-postgres-version","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpgradeDatabaseBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectUpgradeInitiateResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to initiate project upgrade"}},"security":[{"bearer":[]},{"fga_permissions":["project_admin_write","database_write"]}],"summary":"[Beta] Upgrades the project's Postgres version","tags":["Projects"],"x-badges":[{"name":"OAuth scope: projects:write","position":"after"}],"x-endpoint-owners":["management-api","infra"],"x-oauth-scope":"projects:write"}},"/v1/projects/{ref}/upgrade/eligibility":{"get":{"operationId":"v1-get-postgres-upgrade-eligibility","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectUpgradeEligibilityResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to determine project upgrade eligibility"}},"security":[{"bearer":[]},{"fga_permissions":["project_admin_read","database_read"]}],"summary":"[Beta] Returns the project's eligibility for upgrades","tags":["Projects"],"x-badges":[{"name":"OAuth scope: projects:read","position":"after"}],"x-endpoint-owners":["management-api","infra"],"x-oauth-scope":"projects:read"}},"/v1/projects/{ref}/upgrade/status":{"get":{"operationId":"v1-get-postgres-upgrade-status","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"tracking_id","required":false,"in":"query","schema":{"example":"9f4d3a20-6b2e-4a7e-8c91-1d5f3e7a2b4c","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatabaseUpgradeStatusResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve project upgrade status"}},"security":[{"bearer":[]},{"fga_permissions":["project_admin_read","database_read"]}],"summary":"[Beta] Gets the latest status of the project's upgrade","tags":["Projects"],"x-badges":[{"name":"OAuth scope: projects:read","position":"after"}],"x-endpoint-owners":["management-api","infra"],"x-oauth-scope":"projects:read"}},"/v1/projects/{ref}/readonly":{"get":{"operationId":"v1-get-readonly-mode-status","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadOnlyStatusResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to get project readonly mode status"}},"security":[{"bearer":[]},{"fga_permissions":["database_readonly_config_read"]}],"summary":"Returns project's readonly mode status","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:read","position":"after"}],"x-endpoint-owners":["management-api","infra","support-tooling"],"x-oauth-scope":"database:read"}},"/v1/projects/{ref}/readonly/temporary-disable":{"post":{"operationId":"v1-disable-readonly-mode-temporarily","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"201":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to disable project's readonly mode"}},"security":[{"bearer":[]},{"fga_permissions":["database_readonly_config_write"]}],"summary":"Disables project's readonly mode for the next 15 minutes","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:write","position":"after"}],"x-endpoint-owners":["management-api","infra","support-tooling"],"x-oauth-scope":"database:write"}},"/v1/projects/{ref}/read-replicas/setup":{"post":{"operationId":"v1-setup-a-read-replica","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetUpReadReplicaBody"}}}},"responses":{"201":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to set up read replica"}},"security":[{"bearer":[]},{"fga_permissions":["infra_read_replicas_write"]}],"summary":"[Beta] Set up a read replica","tags":["Database"],"x-endpoint-owners":["management-api","infra"]}},"/v1/projects/{ref}/read-replicas/remove":{"post":{"operationId":"v1-remove-a-read-replica","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveReadReplicaBody"}}}},"responses":{"201":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to remove read replica"}},"security":[{"bearer":[]},{"fga_permissions":["infra_read_replicas_write"]}],"summary":"[Beta] Remove a read replica","tags":["Database"],"x-endpoint-owners":["management-api","infra"]}},"/v1/projects/{ref}/health":{"get":{"operationId":"v1-get-services-health","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"services","required":true,"in":"query","schema":{"example":["auth","rest"],"type":"array","items":{"type":"string","enum":["auth","db","db_postgres_user","pooler","realtime","rest","storage","pg_bouncer"]}}},{"name":"timeout_ms","required":false,"in":"query","schema":{"minimum":0,"maximum":10000,"example":2000,"type":"integer"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/V1ServiceHealthResponse"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve project's service health status"}},"security":[{"bearer":[]},{"fga_permissions":["project_admin_read"]}],"summary":"Gets project's service health status","tags":["Projects"],"x-badges":[{"name":"OAuth scope: projects:read","position":"after"}],"x-endpoint-owners":["management-api","infra"],"x-oauth-scope":"projects:read"}},"/v1/projects/{ref}/config/auth/signing-keys/legacy":{"post":{"operationId":"v1-create-legacy-signing-key","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningKeyResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["auth_signing_keys_write"]}],"summary":"Set up the project's existing JWT secret as an in_use JWT signing key. This endpoint will be removed in the future always check for HTTP 404 Not Found.","tags":["Auth"],"x-badges":[{"name":"OAuth scope: secrets:write","position":"after"}],"x-endpoint-owners":["auth"],"x-oauth-scope":"secrets:write"},"get":{"operationId":"v1-get-legacy-signing-key","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningKeyResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["auth_signing_keys_read"]}],"summary":"Get the signing key information for the JWT secret imported as signing key for this project. This endpoint will be removed in the future, check for HTTP 404 Not Found.","tags":["Auth"],"x-badges":[{"name":"OAuth scope: secrets:read","position":"after"}],"x-endpoint-owners":["auth"],"x-oauth-scope":"secrets:read"}},"/v1/projects/{ref}/config/auth/signing-keys":{"post":{"operationId":"v1-create-project-signing-key","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSigningKeyBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningKeyResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["auth_signing_keys_write"]}],"summary":"Create a new signing key for the project in standby status","tags":["Auth"],"x-badges":[{"name":"OAuth scope: secrets:write","position":"after"}],"x-endpoint-owners":["auth"],"x-oauth-scope":"secrets:write"},"get":{"operationId":"v1-get-project-signing-keys","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningKeysResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["auth_signing_keys_read"]}],"summary":"List all signing keys for the project","tags":["Auth"],"x-badges":[{"name":"OAuth scope: secrets:read","position":"after"}],"x-endpoint-owners":["auth"],"x-oauth-scope":"secrets:read"}},"/v1/projects/{ref}/config/auth/signing-keys/{id}":{"get":{"operationId":"v1-get-project-signing-key","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","example":"33333333-3333-4333-8333-333333333333","type":"string"}},{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningKeyResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["auth_signing_keys_read"]}],"summary":"Get information about a signing key","tags":["Auth"],"x-endpoint-owners":["auth"]},"delete":{"operationId":"v1-remove-project-signing-key","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","example":"33333333-3333-4333-8333-333333333333","type":"string"}},{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningKeyResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["auth_signing_keys_write"]}],"summary":"Remove a signing key from a project. Only possible if the key has been in revoked status for a while.","tags":["Auth"],"x-badges":[{"name":"OAuth scope: secrets:write","position":"after"}],"x-endpoint-owners":["auth"],"x-oauth-scope":"secrets:write"},"patch":{"operationId":"v1-update-project-signing-key","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","example":"33333333-3333-4333-8333-333333333333","type":"string"}},{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSigningKeyBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningKeyResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["auth_signing_keys_write"]}],"summary":"Update a signing key, mainly its status","tags":["Auth"],"x-badges":[{"name":"OAuth scope: secrets:write","position":"after"}],"x-endpoint-owners":["auth"],"x-oauth-scope":"secrets:write"}},"/v1/projects/{ref}/config/auth":{"get":{"operationId":"v1-get-auth-service-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthConfigResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve project's auth config"}},"security":[{"bearer":[]},{"fga_permissions":["auth_config_read"]}],"summary":"Gets project's auth config","tags":["Auth"],"x-badges":[{"name":"OAuth scope: auth:read","position":"after"}],"x-endpoint-owners":["auth"],"x-oauth-scope":"auth:read"},"patch":{"operationId":"v1-update-auth-service-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAuthConfigBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthConfigResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to update project's auth config"}},"security":[{"bearer":[]},{"fga_permissions":["auth_config_write","project_admin_write"]}],"summary":"Updates a project's auth config","tags":["Auth"],"x-badges":[{"name":"OAuth scope: auth:write","position":"after"}],"x-endpoint-owners":["auth"],"x-oauth-scope":"auth:write"}},"/v1/projects/{ref}/config/auth/third-party-auth":{"post":{"operationId":"v1-create-project-tpa-integration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateThirdPartyAuthBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThirdPartyAuth"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["auth_config_write"]}],"summary":"Creates a new third-party auth integration","tags":["Auth"],"x-badges":[{"name":"OAuth scope: auth:write","position":"after"}],"x-endpoint-owners":["auth"],"x-oauth-scope":"auth:write"},"get":{"operationId":"v1-list-project-tpa-integrations","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ThirdPartyAuth"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["auth_config_read"]}],"summary":"Lists all third-party auth integrations","tags":["Auth"],"x-badges":[{"name":"OAuth scope: auth:read","position":"after"}],"x-endpoint-owners":["auth"],"x-oauth-scope":"auth:read"}},"/v1/projects/{ref}/config/auth/third-party-auth/{tpa_id}":{"delete":{"operationId":"v1-delete-project-tpa-integration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"tpa_id","required":true,"in":"path","schema":{"format":"uuid","example":"88888888-8888-4888-8888-888888888888","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThirdPartyAuth"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["auth_config_write"]}],"summary":"Removes a third-party auth integration","tags":["Auth"],"x-badges":[{"name":"OAuth scope: auth:write","position":"after"}],"x-endpoint-owners":["auth"],"x-oauth-scope":"auth:write"},"get":{"operationId":"v1-get-project-tpa-integration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"tpa_id","required":true,"in":"path","schema":{"format":"uuid","example":"88888888-8888-4888-8888-888888888888","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThirdPartyAuth"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["auth_config_read"]}],"summary":"Get a third-party integration","tags":["Auth"],"x-badges":[{"name":"OAuth scope: auth:read","position":"after"}],"x-endpoint-owners":["auth"],"x-oauth-scope":"auth:read"}},"/v1/projects/{ref}/pause":{"post":{"operationId":"v1-pause-a-project","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["project_admin_write"]}],"summary":"Pauses the given project","tags":["Projects"],"x-badges":[{"name":"OAuth scope: projects:write","position":"after"}],"x-endpoint-owners":["infra","management-api"],"x-oauth-scope":"projects:write"}},"/v1/projects/{ref}/restore":{"get":{"operationId":"v1-list-available-restore-versions","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProjectAvailableRestoreVersionsResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["project_admin_read"]}],"summary":"Lists available restore versions for the given project","tags":["Projects"],"x-badges":[{"name":"OAuth scope: projects:read","position":"after"}],"x-endpoint-owners":["management-api","infra"],"x-oauth-scope":"projects:read"},"post":{"operationId":"v1-restore-a-project","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["project_admin_write"]}],"summary":"Restores the given project","tags":["Projects"],"x-badges":[{"name":"OAuth scope: projects:write","position":"after"}],"x-endpoint-owners":["management-api","infra"],"x-oauth-scope":"projects:write"}},"/v1/projects/{ref}/restore/cancel":{"post":{"operationId":"v1-cancel-a-project-restoration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["project_admin_write"]}],"summary":"Cancels the given project restoration","tags":["Projects"],"x-badges":[{"name":"OAuth scope: projects:write","position":"after"}],"x-endpoint-owners":["management-api","infra"],"x-oauth-scope":"projects:write"}},"/v1/projects/{ref}/billing/addons":{"get":{"description":"Returns the billing addons that are currently applied, including the active compute instance size, and lists every addon option that can be provisioned with pricing metadata.","operationId":"v1-list-project-addons","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListProjectAddonsResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to list project addons"}},"security":[{"bearer":[]},{"fga_permissions":["infra_add_ons_read"]}],"summary":"List billing addons and compute instance selections","tags":["Billing"],"x-endpoint-owners":["billing"]},"patch":{"description":"Selects an addon variant, for example scaling the project’s compute instance up or down, and applies it to the project.","operationId":"v1-apply-project-addon","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyProjectAddonBody"}}}},"responses":{"200":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to apply project addon"}},"security":[{"bearer":[]},{"fga_permissions":["infra_add_ons_write"]}],"summary":"Apply or update billing addons, including compute instance size","tags":["Billing"],"x-endpoint-owners":["billing"]}},"/v1/projects/{ref}/billing/addons/{addon_variant}":{"delete":{"description":"Disables the selected addon variant, including rolling the compute instance back to its previous size.","operationId":"v1-remove-project-addon","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"addon_variant","required":true,"in":"path","schema":{"example":"pitr_7","oneOf":[{"type":"string","enum":["ci_micro","ci_small","ci_medium","ci_large","ci_xlarge","ci_2xlarge","ci_4xlarge","ci_8xlarge","ci_12xlarge","ci_16xlarge","ci_24xlarge","ci_24xlarge_optimized_cpu","ci_24xlarge_optimized_memory","ci_24xlarge_high_memory","ci_48xlarge","ci_48xlarge_optimized_cpu","ci_48xlarge_optimized_memory","ci_48xlarge_high_memory"]},{"type":"string","enum":["cd_default"]},{"type":"string","enum":["pitr_7","pitr_14","pitr_28"]},{"type":"string","enum":["ipv4_default"]}]}}],"responses":{"200":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to remove project addon"}},"security":[{"bearer":[]},{"fga_permissions":["infra_add_ons_write"]}],"summary":"Remove billing addons or revert compute instance sizing","tags":["Billing"],"x-endpoint-owners":["billing"]}},"/v1/projects/{ref}/claim-token":{"get":{"operationId":"v1-get-project-claim-token","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectClaimTokenResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["project_admin_read"]}],"summary":"Gets project claim token","tags":["Projects"],"x-endpoint-owners":["management-api"],"x-internal":true},"post":{"operationId":"v1-create-project-claim-token","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProjectClaimTokenResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["organization_admin_write","project_admin_write"]}],"summary":"Creates project claim token","tags":["Projects"],"x-endpoint-owners":["management-api"],"x-internal":true},"delete":{"operationId":"v1-delete-project-claim-token","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"204":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["organization_admin_write","project_admin_write"]}],"summary":"Revokes project claim token","tags":["Projects"],"x-endpoint-owners":["management-api"],"x-internal":true}},"/v1/projects/{ref}/advisors/performance":{"get":{"deprecated":true,"description":"This is an **experimental** endpoint. It is subject to change or removal in future versions. Use it with caution, as it may not remain supported or stable.","operationId":"v1-get-performance-advisors","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ProjectAdvisorsResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["advisors_read"]}],"summary":"Gets project performance advisors.","tags":["Advisors"],"x-badges":[{"name":"OAuth scope: database:read","position":"after"}],"x-endpoint-owners":["management-api"],"x-oauth-scope":"database:read"}},"/v1/projects/{ref}/advisors/security":{"get":{"deprecated":true,"description":"This is an **experimental** endpoint. It is subject to change or removal in future versions. Use it with caution, as it may not remain supported or stable.","operationId":"v1-get-security-advisors","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"lint_type","required":false,"in":"query","schema":{"example":"sql","type":"string","enum":["sql"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ProjectAdvisorsResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["advisors_read"]}],"summary":"Gets project security advisors.","tags":["Advisors"],"x-badges":[{"name":"OAuth scope: database:read","position":"after"}],"x-endpoint-owners":["management-api"],"x-oauth-scope":"database:read"}},"/v1/projects/{ref}/analytics/endpoints/logs.all":{"get":{"description":"Executes a SQL query on the project's logs.\n\nEither the `iso_timestamp_start` and `iso_timestamp_end` parameters must be provided.\nIf both are not provided, only the last 1 minute of logs will be queried.\nThe timestamp range must be no more than 24 hours and is rounded to the nearest minute. If the range is more than 24 hours, a validation error will be thrown.\n\nNote: Unless the `sql` parameter is provided, only edge_logs will be queried. See the [log query docs](/docs/guides/telemetry/logs?queryGroups=product&product=postgres&queryGroups=source&source=edge_logs#querying-with-the-logs-explorer:~:text=logs%20from%20the-,Sources,-drop%2Ddown%3A) for all available sources. \n","operationId":"v1-get-project-logs","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"sql","required":false,"in":"query","description":"Custom SQL query to execute on the logs. See [querying logs](/docs/guides/telemetry/logs?queryGroups=product&product=postgres&queryGroups=source&source=edge_logs#querying-with-the-logs-explorer) for more details.","schema":{"type":"string"}},{"name":"iso_timestamp_start","required":false,"in":"query","schema":{"format":"date-time","example":"2025-03-01T00:00:00Z","type":"string"}},{"name":"iso_timestamp_end","required":false,"in":"query","schema":{"format":"date-time","example":"2025-03-01T23:59:59Z","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["analytics_logs_read"]}],"summary":"Gets project's logs","tags":["Analytics"],"x-badges":[{"name":"OAuth scope: analytics:read","position":"after"}],"x-endpoint-owners":["analytics"],"x-oauth-scope":"analytics:read"}},"/v1/projects/{ref}/analytics/endpoints/usage.api-counts":{"get":{"operationId":"v1-get-project-usage-api-count","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"interval","required":false,"in":"query","schema":{"example":"1day","type":"string","enum":["15min","30min","1hr","3hr","1day","3day","7day"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1GetUsageApiCountResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to get project's usage api counts"}},"security":[{"bearer":[]},{"fga_permissions":["analytics_usage_read"]}],"summary":"Gets project's usage api counts","tags":["Analytics"],"x-endpoint-owners":["analytics"]}},"/v1/projects/{ref}/analytics/endpoints/usage.api-requests-count":{"get":{"operationId":"v1-get-project-usage-request-count","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1GetUsageApiRequestsCountResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to get project's usage api requests count"}},"security":[{"bearer":[]},{"fga_permissions":["analytics_usage_read"]}],"summary":"Gets project's usage api requests count","tags":["Analytics"],"x-endpoint-owners":["analytics"]}},"/v1/projects/{ref}/analytics/endpoints/functions.combined-stats":{"get":{"operationId":"v1-get-project-function-combined-stats","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"interval","required":true,"in":"query","schema":{"example":"1hr","type":"string","enum":["15min","1hr","3hr","1day"]}},{"name":"function_id","required":true,"in":"query","schema":{"example":"3c078cce-ad70-4148-9f37-4da362789053","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to get project's function combined statistics"}},"security":[{"bearer":[]},{"fga_permissions":["analytics_usage_read"]}],"summary":"Gets a project's function combined statistics","tags":["Analytics"],"x-endpoint-owners":["analytics"]}},"/v1/projects/{ref}/cli/login-role":{"post":{"operationId":"v1-create-login-role","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRoleBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRoleResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to create login role"}},"security":[{"bearer":[]},{"fga_permissions":["database_write"]}],"summary":"[Beta] Create a login role for CLI with temporary password","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:write","position":"after"}],"x-endpoint-owners":["dev-workflows"],"x-oauth-scope":"database:write"},"delete":{"operationId":"v1-delete-login-roles","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRolesResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to delete login roles"}},"security":[{"bearer":[]},{"fga_permissions":["database_write"]}],"summary":"[Beta] Delete existing login roles used by CLI","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:write","position":"after"}],"x-endpoint-owners":["dev-workflows"],"x-oauth-scope":"database:write"}},"/v1/projects/{ref}/database/migrations":{"get":{"description":"Only available to selected partner OAuth apps","operationId":"v1-list-migration-history","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ListMigrationsResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to list database migrations"}},"security":[{"bearer":[]},{"fga_permissions":["database_migrations_read"]}],"summary":"List applied migration versions","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:read","position":"after"}],"x-endpoint-owners":["infra"],"x-oauth-scope":"database:read"},"post":{"description":"Only available to selected partner OAuth apps","operationId":"v1-apply-a-migration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"Idempotency-Key","required":false,"in":"header","description":"A unique key to ensure the same migration is tracked only once.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1CreateMigrationBody"}}}},"responses":{"200":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to apply database migration"}},"security":[{"bearer":[]},{"fga_permissions":["database_migrations_write"]}],"summary":"Apply a database migration","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:write","position":"after"}],"x-endpoint-owners":["infra"],"x-oauth-scope":"database:write"},"put":{"description":"Only available to selected partner OAuth apps","operationId":"v1-upsert-a-migration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"Idempotency-Key","required":false,"in":"header","description":"A unique key to ensure the same migration is tracked only once.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1UpsertMigrationBody"}}}},"responses":{"200":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to upsert database migration"}},"security":[{"bearer":[]},{"fga_permissions":["database_migrations_write"]}],"summary":"Upsert a database migration without applying","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:write","position":"after"}],"x-endpoint-owners":["infra"],"x-oauth-scope":"database:write"},"delete":{"description":"Only available to selected partner OAuth apps","operationId":"v1-rollback-migrations","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"gte","required":true,"in":"query","description":"Rollback migrations greater or equal to this version","schema":{"pattern":"^\\d+$","example":"20250312000000","type":"string"}}],"responses":{"200":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to rollback database migration"}},"security":[{"bearer":[]},{"fga_permissions":["database_migrations_write"]}],"summary":"Rollback database migrations and remove them from history table","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:write","position":"after"}],"x-endpoint-owners":["infra"],"x-oauth-scope":"database:write"}},"/v1/projects/{ref}/database/migrations/{version}":{"get":{"description":"Only available to selected partner OAuth apps","operationId":"v1-get-a-migration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"version","required":true,"in":"path","schema":{"pattern":"^\\d+$","example":"20250312000000","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1GetMigrationResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to get database migration"}},"security":[{"bearer":[]},{"fga_permissions":["database_migrations_read"]}],"summary":"Fetch an existing entry from migration history","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:read","position":"after"}],"x-endpoint-owners":["infra"],"x-oauth-scope":"database:read"},"patch":{"description":"Only available to selected partner OAuth apps","operationId":"v1-patch-a-migration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"version","required":true,"in":"path","schema":{"pattern":"^\\d+$","example":"20250312000000","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1PatchMigrationBody"}}}},"responses":{"200":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to patch database migration"}},"security":[{"bearer":[]},{"fga_permissions":["database_migrations_write"]}],"summary":"Patch an existing entry in migration history","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:write","position":"after"}],"x-endpoint-owners":["infra"],"x-oauth-scope":"database:write"}},"/v1/projects/{ref}/database/query":{"post":{"operationId":"v1-run-a-query","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1RunQueryBody"}}}},"responses":{"201":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to run sql query"}},"security":[{"bearer":[]},{"fga_permissions":["database_write"]},{"fga_permissions":["database_read"]}],"summary":"[Beta] Run sql query","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:write","position":"after"}],"x-endpoint-owners":["management-api"],"x-oauth-scope":"database:write"}},"/v1/projects/{ref}/database/query/read-only":{"post":{"description":"All entity references must be schema qualified.","operationId":"v1-read-only-query","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ReadOnlyQueryBody"}}}},"responses":{"201":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to run read-only sql query"}},"security":[{"bearer":[]},{"fga_permissions":["database_read"]}],"summary":"[Beta] Run a sql query as supabase_read_only_user","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:read","position":"after"}],"x-endpoint-owners":["management-api"],"x-oauth-scope":"database:read"}},"/v1/projects/{ref}/database/webhooks/enable":{"post":{"operationId":"v1-enable-database-webhook","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"201":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to enable Database Webhooks on the project"}},"security":[{"bearer":[]},{"fga_permissions":["database_webhooks_config_write"]}],"summary":"[Beta] Enables Database Webhooks on the project","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:write","position":"after"}],"x-endpoint-owners":["management-api","infra"],"x-oauth-scope":"database:write"}},"/v1/projects/{ref}/database/context":{"get":{"deprecated":true,"description":"This is an **experimental** endpoint. It is subject to change or removal in future versions. Use it with caution, as it may not remain supported or stable.","operationId":"v1-get-database-metadata","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProjectDbMetadataResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["database_read"]}],"summary":"Gets database metadata for the given project.","tags":["Database"],"x-badges":[{"name":"OAuth scope: projects:read","position":"after"}],"x-endpoint-owners":["management-api"],"x-oauth-scope":"projects:read"}},"/v1/projects/{ref}/database/password":{"patch":{"operationId":"v1-update-database-password","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1UpdatePasswordBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1UpdatePasswordResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to update database password"}},"security":[{"bearer":[]},{"fga_permissions":["database_config_write"]}],"summary":"Updates the database password","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:write","position":"after"}],"x-endpoint-owners":["management-api","infra"],"x-oauth-scope":"database:write"}},"/v1/projects/{ref}/database/jit":{"get":{"description":"Mappings of roles a user can assume in the project database","operationId":"v1-get-jit-access","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JitAccessResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to list database jit access"}},"security":[{"bearer":[]},{"fga_permissions":["database_jit_read"]}],"summary":"Get user-id to role mappings for JIT access","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:read","position":"after"}],"x-endpoint-owners":["security"],"x-oauth-scope":"database:read"},"post":{"description":"Authorizes the request to assume a role in the project database","operationId":"v1-authorize-jit-access","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorizeJitAccessBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JitAuthorizeAccessResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to authorize database jit access"}},"security":[{"bearer":[]},{"fga_permissions":["database_jit_read"]}],"summary":"Authorize user-id to role mappings for JIT access","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:read","position":"after"}],"x-endpoint-owners":["security"],"x-oauth-scope":"database:read"},"put":{"description":"Modifies the roles that can be assumed and for how long","operationId":"v1-update-jit-access","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJitAccessBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JitAccessResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to upsert database migration"}},"security":[{"bearer":[]},{"fga_permissions":["database_jit_write"]}],"summary":"Updates a user mapping for JIT access","tags":["Database"],"x-endpoint-owners":["security"]}},"/v1/projects/{ref}/database/jit/list":{"get":{"description":"Mappings of roles a user can assume in the project database","operationId":"v1-list-jit-access","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JitListAccessResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to list database jit access"}},"security":[{"bearer":[]},{"fga_permissions":["database_jit_read"]}],"summary":"List all user-id to role mappings for JIT access","tags":["Database"],"x-endpoint-owners":["security"]}},"/v1/projects/{ref}/database/jit/{user_id}":{"delete":{"description":"Remove JIT mappings of a user, revoking all JIT database access","operationId":"v1-delete-jit-access","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"user_id","required":true,"in":"path","schema":{"format":"uuid","example":"55555555-5555-4555-8555-555555555555","type":"string"}}],"responses":{"200":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to remove JIT access"}},"security":[{"bearer":[]},{"fga_permissions":["database_jit_write"]}],"summary":"Delete JIT access by user-id","tags":["Database"],"x-endpoint-owners":["security"]}},"/v1/projects/{ref}/database/openapi":{"get":{"description":"Returns the PostgREST OpenAPI specification for the project. This is the replacement for querying `/rest/v1/` directly with the anon key.","operationId":"v1-get-database-openapi","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"schema","required":false,"in":"query","description":"The database schema to generate the OpenAPI spec for","schema":{"default":"public","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to fetch PostgREST OpenAPI spec"}},"security":[{"bearer":[]},{"fga_permissions":["database_read"]}],"summary":"Get PostgREST OpenAPI spec","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:read","position":"after"}],"x-endpoint-owners":["management-api"],"x-oauth-scope":"database:read"}},"/v1/projects/{ref}/functions":{"get":{"description":"Returns all functions you've previously added to the specified project.","operationId":"v1-list-all-functions","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FunctionResponse"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve project's functions"}},"security":[{"bearer":[]},{"fga_permissions":["edge_functions_read"]}],"summary":"List all functions","tags":["Edge Functions"],"x-badges":[{"name":"OAuth scope: edge_functions:read","position":"after"}],"x-endpoint-owners":["functions"],"x-oauth-scope":"edge_functions:read"},"post":{"deprecated":true,"description":"This endpoint is deprecated - use the deploy endpoint. Creates a function and adds it to the specified project.","operationId":"v1-create-a-function","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"slug","required":false,"in":"query","schema":{"pattern":"^[A-Za-z0-9_-]+$","example":"hello-world","type":"string"}},{"name":"name","required":false,"in":"query","schema":{"example":"Hello World","type":"string"}},{"name":"verify_jwt","required":false,"in":"query","description":"Boolean string, true or false","schema":{"example":true,"type":"boolean"}},{"name":"import_map","required":false,"in":"query","description":"Boolean string, true or false","schema":{"example":false,"type":"boolean"}},{"name":"entrypoint_path","required":false,"in":"query","schema":{"example":"index.ts","type":"string"}},{"name":"import_map_path","required":false,"in":"query","schema":{"example":"import_map.json","type":"string"}},{"name":"ezbr_sha256","required":false,"in":"query","schema":{"example":"44c691990518d25498f0fd80cf6631ecf2b58eb9c5eb2a087dd1688f2904dac7","type":"string"}}],"requestBody":{"required":true,"content":{"application/vnd.denoland.eszip":{"schema":{"type":"string","format":"binary"}},"application/json":{"schema":{"$ref":"#/components/schemas/V1CreateFunctionBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FunctionResponse"}}}},"401":{"description":"Unauthorized"},"402":{"description":"Maximum number of functions reached for Plan"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to create project's function"}},"security":[{"bearer":[]},{"fga_permissions":["edge_functions_write"]}],"summary":"Create a function","tags":["Edge Functions"],"x-badges":[{"name":"OAuth scope: edge_functions:write","position":"after"}],"x-endpoint-owners":["functions"],"x-oauth-scope":"edge_functions:write"},"put":{"description":"Bulk update functions. It will create a new function or replace existing. The operation is idempotent. NOTE: You will need to manually bump the version.","operationId":"v1-bulk-update-functions","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkUpdateFunctionBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkUpdateFunctionResponse"}}}},"401":{"description":"Unauthorized"},"402":{"description":"Maximum number of functions reached for Plan"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to update functions"}},"security":[{"bearer":[]},{"fga_permissions":["edge_functions_write"]}],"summary":"Bulk update functions","tags":["Edge Functions"],"x-badges":[{"name":"OAuth scope: edge_functions:write","position":"after"}],"x-endpoint-owners":["functions"],"x-oauth-scope":"edge_functions:write"}},"/v1/projects/{ref}/functions/deploy":{"post":{"description":"A new endpoint to deploy functions. It will create if function does not exist.","operationId":"v1-deploy-a-function","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"slug","required":false,"in":"query","schema":{"pattern":"^[A-Za-z][A-Za-z0-9_-]*$","example":"hello-world","type":"string"}},{"name":"bundleOnly","required":false,"in":"query","description":"Boolean string, true or false","schema":{"example":false,"type":"boolean"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/FunctionDeployBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeployFunctionResponse"}}}},"401":{"description":"Unauthorized"},"402":{"description":"Maximum number of functions reached for Plan"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to deploy function"}},"security":[{"bearer":[]},{"fga_permissions":["edge_functions_write"]}],"summary":"Deploy a function","tags":["Edge Functions"],"x-badges":[{"name":"OAuth scope: edge_functions:write","position":"after"}],"x-endpoint-owners":["functions"],"x-oauth-scope":"edge_functions:write"}},"/v1/projects/{ref}/functions/{function_slug}":{"get":{"description":"Retrieves a function with the specified slug and project.","operationId":"v1-get-a-function","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"function_slug","required":true,"in":"path","description":"Function slug","schema":{"pattern":"^[A-Za-z0-9_-]+$","example":"hello-world","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FunctionSlugResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve function with given slug"}},"security":[{"bearer":[]},{"fga_permissions":["edge_functions_read"]}],"summary":"Retrieve a function","tags":["Edge Functions"],"x-badges":[{"name":"OAuth scope: edge_functions:read","position":"after"}],"x-endpoint-owners":["functions"],"x-oauth-scope":"edge_functions:read"},"patch":{"description":"Updates a function with the specified slug and project.","operationId":"v1-update-a-function","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"function_slug","required":true,"in":"path","description":"Function slug","schema":{"pattern":"^[A-Za-z0-9_-]+$","example":"hello-world","type":"string"}},{"name":"slug","required":false,"in":"query","schema":{"pattern":"^[A-Za-z0-9_-]+$","example":"hello-world","type":"string"}},{"name":"name","required":false,"in":"query","schema":{"example":"Hello World","type":"string"}},{"name":"verify_jwt","required":false,"in":"query","description":"Boolean string, true or false","schema":{"example":true,"type":"boolean"}},{"name":"import_map","required":false,"in":"query","description":"Boolean string, true or false","schema":{"example":false,"type":"boolean"}},{"name":"entrypoint_path","required":false,"in":"query","schema":{"example":"index.ts","type":"string"}},{"name":"import_map_path","required":false,"in":"query","schema":{"example":"import_map.json","type":"string"}},{"name":"ezbr_sha256","required":false,"in":"query","schema":{"example":"44c691990518d25498f0fd80cf6631ecf2b58eb9c5eb2a087dd1688f2904dac7","type":"string"}}],"requestBody":{"required":true,"content":{"application/vnd.denoland.eszip":{"schema":{"type":"string","format":"binary"}},"application/json":{"schema":{"$ref":"#/components/schemas/V1UpdateFunctionBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FunctionResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to update function with given slug"}},"security":[{"bearer":[]},{"fga_permissions":["edge_functions_write"]}],"summary":"Update a function","tags":["Edge Functions"],"x-badges":[{"name":"OAuth scope: edge_functions:write","position":"after"}],"x-endpoint-owners":["functions"],"x-oauth-scope":"edge_functions:write"},"delete":{"description":"Deletes a function with the specified slug from the specified project.","operationId":"v1-delete-a-function","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"function_slug","required":true,"in":"path","description":"Function slug","schema":{"pattern":"^[A-Za-z0-9_-]+$","example":"hello-world","type":"string"}}],"responses":{"200":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to delete function with given slug"}},"security":[{"bearer":[]},{"fga_permissions":["edge_functions_write"]}],"summary":"Delete a function","tags":["Edge Functions"],"x-badges":[{"name":"OAuth scope: edge_functions:write","position":"after"}],"x-endpoint-owners":["functions"],"x-oauth-scope":"edge_functions:write"}},"/v1/projects/{ref}/functions/{function_slug}/body":{"get":{"description":"Retrieves a function body for the specified slug and project.","operationId":"v1-get-a-function-body","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"function_slug","required":true,"in":"path","description":"Function slug","schema":{"pattern":"^[A-Za-z0-9_-]+$","example":"hello-world","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StreamableFile"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve function body with given slug"}},"security":[{"bearer":[]},{"fga_permissions":["edge_functions_read"]}],"summary":"Retrieve a function body","tags":["Edge Functions"],"x-badges":[{"name":"OAuth scope: edge_functions:read","position":"after"}],"x-endpoint-owners":["functions"],"x-oauth-scope":"edge_functions:read"}},"/v1/projects/{ref}/storage/buckets":{"get":{"operationId":"v1-list-all-buckets","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/V1StorageBucketResponse"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to get list of buckets"}},"security":[{"bearer":[]},{"fga_permissions":["storage_read"]}],"summary":"Lists all buckets","tags":["Storage"],"x-badges":[{"name":"OAuth scope: storage:read","position":"after"}],"x-endpoint-owners":["storage"],"x-oauth-scope":"storage:read"}},"/v1/projects/{ref}/config/disk":{"get":{"operationId":"v1-get-database-disk","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiskResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to get database disk attributes"}},"security":[{"bearer":[]},{"fga_permissions":["infra_disk_config_read"]}],"summary":"Get database disk attributes","tags":["Projects"],"x-endpoint-owners":["management-api","infra"]},"post":{"operationId":"v1-modify-database-disk","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiskRequestBody"}}}},"responses":{"201":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to modify database disk"}},"security":[{"bearer":[]},{"fga_permissions":["infra_disk_config_write"]}],"summary":"Modify database disk","tags":["Projects"],"x-endpoint-owners":["management-api","infra"]}},"/v1/projects/{ref}/config/disk/util":{"get":{"operationId":"v1-get-disk-utilization","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiskUtilMetricsResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to get disk utilization"}},"security":[{"bearer":[]},{"fga_permissions":["infra_disk_config_read"]}],"summary":"Get disk utilization","tags":["Projects"],"x-endpoint-owners":["management-api","infra"]}},"/v1/projects/{ref}/config/disk/autoscale":{"get":{"operationId":"v1-get-project-disk-autoscale-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiskAutoscaleConfig"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to get project disk autoscale config"}},"security":[{"bearer":[]},{"fga_permissions":["infra_disk_config_read"]}],"summary":"Gets project disk autoscale config","tags":["Projects"],"x-endpoint-owners":["management-api","infra"]}},"/v1/projects/{ref}/config/storage":{"get":{"operationId":"v1-get-storage-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageConfigResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve project's storage config"}},"security":[{"bearer":[]},{"fga_permissions":["storage_config_read"]}],"summary":"Gets project's storage config","tags":["Storage"],"x-endpoint-owners":["storage"]},"patch":{"operationId":"v1-update-storage-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateStorageConfigBody"}}}},"responses":{"200":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to update project's storage config"}},"security":[{"bearer":[]},{"fga_permissions":["storage_config_write"]}],"summary":"Updates project's storage config","tags":["Storage"],"x-endpoint-owners":["storage"]}},"/v1/projects/{ref}/config/database/pgbouncer":{"get":{"operationId":"v1-get-project-pgbouncer-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1PgbouncerConfigResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve project's pgbouncer config"}},"security":[{"fga_permissions":["database_read"]}],"summary":"Get project's pgbouncer config","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:read","position":"after"}],"x-endpoint-owners":["infra","management-api"],"x-oauth-scope":"database:read"}},"/v1/projects/{ref}/config/database/pooler":{"get":{"operationId":"v1-get-pooler-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SupavisorConfigResponse"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve project's supavisor config"}},"security":[{"bearer":[]},{"fga_permissions":["database_pooling_config_read"]}],"summary":"Gets project's supavisor config","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:read","position":"after"}],"x-endpoint-owners":["infra"],"x-oauth-scope":"database:read"},"patch":{"operationId":"v1-update-pooler-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSupavisorConfigBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSupavisorConfigResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to update project's supavisor config"}},"security":[{"bearer":[]},{"fga_permissions":["database_pooling_config_write"]}],"summary":"Updates project's supavisor config","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:write","position":"after"}],"x-endpoint-owners":["infra"],"x-oauth-scope":"database:write"}},"/v1/projects/{ref}/config/database/postgres":{"get":{"operationId":"v1-get-postgres-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostgresConfigResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve project's Postgres config"}},"security":[{"bearer":[]},{"fga_permissions":["database_config_read"]}],"summary":"Gets project's Postgres config","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:read","position":"after"}],"x-endpoint-owners":["infra","management-api"],"x-oauth-scope":"database:read"},"put":{"operationId":"v1-update-postgres-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePostgresConfigBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostgresConfigResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to update project's Postgres config"}},"security":[{"bearer":[]},{"fga_permissions":["database_config_write"]}],"summary":"Updates project's Postgres config","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:write","position":"after"}],"x-endpoint-owners":["infra","management-api"],"x-oauth-scope":"database:write"}},"/v1/projects/{ref}/config/realtime":{"get":{"operationId":"v1-get-realtime-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"Gets project's realtime configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RealtimeConfigResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["realtime_config_read"]}],"summary":"Gets realtime configuration","tags":["Realtime"],"x-endpoint-owners":["realtime"]},"patch":{"operationId":"v1-update-realtime-config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRealtimeConfigBody"}}}},"responses":{"204":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["realtime_config_write"]}],"summary":"Updates realtime configuration","tags":["Realtime"],"x-endpoint-owners":["realtime"]}},"/v1/projects/{ref}/config/realtime/shutdown":{"post":{"operationId":"v1-shutdown-realtime","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"204":{"description":"Realtime connections shutdown successfully"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"404":{"description":"Tenant not found"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["realtime_config_write"]}],"summary":"Shutdowns realtime connections for a project","tags":["Realtime"],"x-endpoint-owners":["realtime"]}},"/v1/projects/{ref}/config/auth/sso/providers":{"post":{"operationId":"v1-create-a-sso-provider","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProviderBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProviderResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"404":{"description":"SAML 2.0 support is not enabled for this project"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["auth_config_write"]}],"summary":"Creates a new SSO provider","tags":["Auth"],"x-badges":[{"name":"OAuth scope: auth:write","position":"after"}],"x-endpoint-owners":["auth"],"x-oauth-scope":"auth:write"},"get":{"operationId":"v1-list-all-sso-provider","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListProvidersResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"404":{"description":"SAML 2.0 support is not enabled for this project"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["auth_config_read"]}],"summary":"Lists all SSO providers","tags":["Auth"],"x-badges":[{"name":"OAuth scope: auth:read","position":"after"}],"x-endpoint-owners":["auth"],"x-oauth-scope":"auth:read"}},"/v1/projects/{ref}/config/auth/sso/providers/{provider_id}":{"get":{"operationId":"v1-get-a-sso-provider","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"provider_id","required":true,"in":"path","schema":{"format":"uuid","example":"77777777-7777-4777-8777-777777777777","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProviderResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"404":{"description":"Either SAML 2.0 was not enabled for this project, or the provider does not exist"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["auth_config_read"]}],"summary":"Gets a SSO provider by its UUID","tags":["Auth"],"x-badges":[{"name":"OAuth scope: auth:read","position":"after"}],"x-endpoint-owners":["auth"],"x-oauth-scope":"auth:read"},"put":{"operationId":"v1-update-a-sso-provider","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"provider_id","required":true,"in":"path","schema":{"format":"uuid","example":"77777777-7777-4777-8777-777777777777","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProviderBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProviderResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"404":{"description":"Either SAML 2.0 was not enabled for this project, or the provider does not exist"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["auth_config_write"]}],"summary":"Updates a SSO provider by its UUID","tags":["Auth"],"x-badges":[{"name":"OAuth scope: auth:write","position":"after"}],"x-endpoint-owners":["auth"],"x-oauth-scope":"auth:write"},"delete":{"operationId":"v1-delete-a-sso-provider","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"provider_id","required":true,"in":"path","schema":{"format":"uuid","example":"77777777-7777-4777-8777-777777777777","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteProviderResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"404":{"description":"Either SAML 2.0 was not enabled for this project, or the provider does not exist"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["auth_config_write"]}],"summary":"Removes a SSO provider by its UUID","tags":["Auth"],"x-badges":[{"name":"OAuth scope: auth:write","position":"after"}],"x-endpoint-owners":["auth"],"x-oauth-scope":"auth:write"}},"/v1/projects/{ref}/database/backups":{"get":{"operationId":"v1-list-all-backups","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1BackupsResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to get backups"}},"security":[{"bearer":[]},{"fga_permissions":["backups_read"]}],"summary":"Lists all backups","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:read","position":"after"}],"x-endpoint-owners":["infra"],"x-oauth-scope":"database:read"}},"/v1/projects/{ref}/database/backups/restore-pitr":{"post":{"operationId":"v1-restore-pitr-backup","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1RestorePitrBody"}}}},"responses":{"201":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["backups_write"]}],"summary":"Restores a PITR backup for a database","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:write","position":"after"}],"x-endpoint-owners":["infra"],"x-oauth-scope":"database:write"}},"/v1/projects/{ref}/database/backups/restore-point":{"post":{"operationId":"v1-create-restore-point","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1RestorePointPostBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1RestorePointResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["backups_write"]}],"summary":"Initiates a creation of a restore point for a database","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:write","position":"after"}],"x-endpoint-owners":["infra"],"x-internal":true,"x-oauth-scope":"database:write"},"get":{"operationId":"v1-get-restore-point","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}},{"name":"name","required":false,"in":"query","schema":{"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1RestorePointResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to get requested restore points"}},"security":[{"bearer":[]},{"fga_permissions":["backups_read"]}],"summary":"Get restore points for project","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:read","position":"after"}],"x-endpoint-owners":["infra"],"x-internal":true,"x-oauth-scope":"database:read"}},"/v1/projects/{ref}/database/backups/restore":{"post":{"operationId":"v1-restore-physical-backup","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1RestoreBackupBody"}}}},"responses":{"201":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["backups_write"]}],"summary":"Restores a physical backup for a database","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:write","position":"after"}],"x-endpoint-owners":["infra"],"x-internal":true,"x-oauth-scope":"database:write"}},"/v1/projects/{ref}/database/backups/schedule":{"get":{"operationId":"v1-get-backup-schedule","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1BackupScheduleResponse"}}}},"401":{"description":"Unauthorized"},"402":{"description":"Feature requires a higher plan"},"403":{"description":"Forbidden action"},"404":{"description":"Project or backup schedule not found"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve backup schedule"}},"security":[{"bearer":[]},{"fga_permissions":["backups_read"]}],"summary":"Gets the backup schedule for a project","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:read","position":"after"}],"x-endpoint-owners":["infra"],"x-oauth-scope":"database:read"},"patch":{"description":"Sets the time at which the daily backup runs. The change takes effect on the next backup window that includes the new time. If the new time has already passed for today, the first backup at the new time will occur the following day. It can only be updated 3 times per 24 hours.","operationId":"v1-update-backup-schedule","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1UpdateBackupScheduleBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1BackupScheduleResponse"}}}},"400":{"description":"Invalid schedule_for format"},"401":{"description":"Unauthorized"},"402":{"description":"Feature requires a higher plan"},"403":{"description":"Forbidden action"},"404":{"description":"Project or backup schedule not found"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to update backup schedule"}},"security":[{"bearer":[]},{"fga_permissions":["backups_write"]}],"summary":"Updates the backup schedule time for a project","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:write","position":"after"}],"x-endpoint-owners":["infra"],"x-oauth-scope":"database:write"}},"/v1/projects/{ref}/database/backups/undo":{"post":{"operationId":"v1-undo","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"pattern":"^[a-z]+$","example":"abcdefghijklmnopqrst","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1UndoBody"}}}},"responses":{"201":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["backups_write"]}],"summary":"Initiates an undo to a given restore point","tags":["Database"],"x-badges":[{"name":"OAuth scope: database:write","position":"after"}],"x-endpoint-owners":["infra"],"x-internal":true,"x-oauth-scope":"database:write"}},"/v1/organizations/{slug}/entitlements":{"get":{"description":"Returns the entitlements available to the organization based on their plan and any overrides.","operationId":"v1-get-organization-entitlements","parameters":[{"name":"slug","required":true,"in":"path","description":"Organization slug","schema":{"pattern":"^[\\w-]+$","example":"tsrqponmlkjihgfedcba","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ListEntitlementsResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["organization_admin_read"]}],"summary":"Get entitlements for an organization","tags":["Organizations"],"x-badges":[{"name":"OAuth scope: organizations:read","position":"after"}],"x-endpoint-owners":["billing"],"x-oauth-scope":"organizations:read"}},"/v1/organizations/{slug}/members":{"get":{"operationId":"v1-list-organization-members","parameters":[{"name":"slug","required":true,"in":"path","description":"Organization slug","schema":{"pattern":"^[\\w-]+$","example":"tsrqponmlkjihgfedcba","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/V1OrganizationMemberResponse"}}}}}},"security":[{"bearer":[]},{"fga_permissions":["members_read"]}],"summary":"List members of an organization","tags":["Organizations"],"x-badges":[{"name":"OAuth scope: organizations:read","position":"after"}],"x-endpoint-owners":["management-api"],"x-oauth-scope":"organizations:read"}},"/v1/organizations/{slug}":{"get":{"operationId":"v1-get-an-organization","parameters":[{"name":"slug","required":true,"in":"path","description":"Organization slug","schema":{"pattern":"^[\\w-]+$","example":"tsrqponmlkjihgfedcba","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1OrganizationSlugResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["organization_admin_read"]}],"summary":"Gets information about the organization","tags":["Organizations"],"x-badges":[{"name":"OAuth scope: organizations:read","position":"after"}],"x-endpoint-owners":["management-api"],"x-oauth-scope":"organizations:read"}},"/v1/organizations/{slug}/project-claim/{token}":{"get":{"operationId":"v1-get-organization-project-claim","parameters":[{"name":"slug","required":true,"in":"path","description":"Organization slug","schema":{"pattern":"^[\\w-]+$","example":"tsrqponmlkjihgfedcba","type":"string"}},{"name":"token","required":true,"in":"path","schema":{"example":"0123456789abcdef0123456789abcdef01234567","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationProjectClaimResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["organization_admin_write"]}],"summary":"Gets project details for the specified organization and claim token","tags":["Organizations"],"x-endpoint-owners":["management-api"],"x-internal":true},"post":{"operationId":"v1-claim-project-for-organization","parameters":[{"name":"slug","required":true,"in":"path","description":"Organization slug","schema":{"pattern":"^[\\w-]+$","example":"tsrqponmlkjihgfedcba","type":"string"}},{"name":"token","required":true,"in":"path","schema":{"example":"0123456789abcdef0123456789abcdef01234567","type":"string"}}],"responses":{"204":{"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"}},"security":[{"bearer":[]},{"fga_permissions":["organization_admin_write"]}],"summary":"Claims project for the specified organization","tags":["Organizations"],"x-endpoint-owners":["management-api"],"x-internal":true}},"/v1/organizations/{slug}/projects":{"get":{"description":"Returns a paginated list of projects for the specified organization.\n\nThis endpoint uses offset-based pagination. Use the `offset` parameter to skip a number of projects and the `limit` parameter to control the number of projects returned per page.","operationId":"v1-get-all-projects-for-organization","parameters":[{"name":"slug","required":true,"in":"path","description":"Organization slug","schema":{"pattern":"^[\\w-]+$","example":"tsrqponmlkjihgfedcba","type":"string"}},{"name":"offset","required":false,"in":"query","description":"Number of projects to skip","schema":{"minimum":0,"default":0,"example":0,"type":"integer"}},{"name":"limit","required":false,"in":"query","description":"Number of projects to return per page","schema":{"minimum":1,"maximum":100,"default":100,"example":20,"type":"integer"}},{"name":"search","required":false,"in":"query","description":"Search projects by name","schema":{"example":"acme","type":"string"}},{"name":"sort","required":false,"in":"query","description":"Sort order for projects","schema":{"default":"name_asc","example":"created_desc","type":"string","enum":["name_asc","name_desc","created_asc","created_desc"]}},{"name":"statuses","required":false,"in":"query","description":"A comma-separated list of project statuses to filter by.\n\nThe following values are supported: `ACTIVE_HEALTHY`, `INACTIVE`.","schema":{"example":"ACTIVE_HEALTHY,INACTIVE","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationProjectsResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve projects"}},"security":[{"bearer":[]},{"fga_permissions":["organization_projects_read"]}],"summary":"Gets all projects for the given organization","tags":["Projects"],"x-badges":[{"name":"OAuth scope: projects:read","position":"after"}],"x-endpoint-owners":["management-api"],"x-oauth-scope":"projects:read"}}},"info":{"title":"Supabase API (v1)","description":"Supabase API generated from the OpenAPI specification.<br>Visit [https://supabase.com/docs](https://supabase.com/docs) for a complete documentation.","version":"1.0.0","contact":{}},"tags":[{"name":"Advisors","description":"Advisors related endpoints"},{"name":"Analytics","description":"Analytics related endpoints"},{"name":"Auth","description":"Auth related endpoints"},{"name":"Billing","description":"Billing related endpoints"},{"name":"Database","description":"Database related endpoints"},{"name":"Domains","description":"Domains related endpoints"},{"name":"Edge Functions","description":"Edge related endpoints"},{"name":"Environments","description":"Environments related endpoints"},{"name":"OAuth","description":"OAuth related endpoints"},{"name":"Organizations","description":"Organizations related endpoints"},{"name":"Projects","description":"Projects related endpoints"},{"name":"Rest","description":"Rest related endpoints"},{"name":"Secrets","description":"Secrets related endpoints"},{"name":"Storage","description":"Visit [https://supabase.github.io/storage/](https://supabase.github.io/storage/) for complete documentation."}],"servers":[],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"BranchDetailResponse":{"type":"object","properties":{"ref":{"type":"string"},"postgres_version":{"type":"string"},"postgres_engine":{"type":"string"},"release_channel":{"type":"string"},"status":{"type":"string","enum":["INACTIVE","ACTIVE_HEALTHY","ACTIVE_UNHEALTHY","COMING_UP","UNKNOWN","GOING_DOWN","INIT_FAILED","REMOVED","RESTORING","UPGRADING","PAUSING","RESTORE_FAILED","RESTARTING","PAUSE_FAILED","RESIZING"]},"db_host":{"type":"string"},"db_port":{"type":"integer","minimum":0,"exclusiveMinimum":true},"db_user":{"type":"string"},"db_pass":{"type":"string"},"jwt_secret":{"type":"string"}},"required":["ref","postgres_version","postgres_engine","release_channel","status","db_host","db_port"]},"UpdateBranchBody":{"type":"object","properties":{"branch_name":{"type":"string"},"git_branch":{"type":"string"},"reset_on_push":{"type":"boolean","description":"This field is deprecated and will be ignored. Use v1-reset-a-branch endpoint directly instead.","deprecated":true},"persistent":{"type":"boolean"},"status":{"type":"string","enum":["CREATING_PROJECT","RUNNING_MIGRATIONS","MIGRATIONS_PASSED","MIGRATIONS_FAILED","FUNCTIONS_DEPLOYED","FUNCTIONS_FAILED"]},"request_review":{"type":"boolean"},"notify_url":{"type":"string","format":"uri","description":"HTTP endpoint to receive branch status updates."}},"example":{"branch_name":"preview-login-page","git_branch":"feature/login-page","persistent":true,"request_review":true,"notify_url":"https://example.com/webhooks/branches"}},"BranchResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"project_ref":{"type":"string"},"parent_project_ref":{"type":"string"},"is_default":{"type":"boolean"},"git_branch":{"type":"string"},"pr_number":{"type":"integer","format":"int32"},"latest_check_run_id":{"type":"number","description":"This field is deprecated and will not be populated.","deprecated":true},"persistent":{"type":"boolean"},"status":{"type":"string","enum":["CREATING_PROJECT","RUNNING_MIGRATIONS","MIGRATIONS_PASSED","MIGRATIONS_FAILED","FUNCTIONS_DEPLOYED","FUNCTIONS_FAILED"],"description":"This field is deprecated. List action runs to get branch status instead.","deprecated":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"review_requested_at":{"type":"string","format":"date-time"},"with_data":{"type":"boolean"},"notify_url":{"type":"string","format":"uri"},"deletion_scheduled_at":{"type":"string","format":"date-time"},"preview_project_status":{"type":"string","enum":["INACTIVE","ACTIVE_HEALTHY","ACTIVE_UNHEALTHY","COMING_UP","UNKNOWN","GOING_DOWN","INIT_FAILED","REMOVED","RESTORING","UPGRADING","PAUSING","RESTORE_FAILED","RESTARTING","PAUSE_FAILED","RESIZING"]}},"required":["id","name","project_ref","parent_project_ref","is_default","persistent","status","created_at","updated_at","with_data"]},"BranchDeleteResponse":{"type":"object","properties":{"message":{"type":"string","enum":["ok"]}},"required":["message"]},"BranchActionBody":{"type":"object","properties":{"migration_version":{"type":"string"}},"example":{"migration_version":"20250312000000"}},"BranchUpdateResponse":{"type":"object","properties":{"workflow_run_id":{"type":"string"},"message":{"type":"string","enum":["ok"]}},"required":["workflow_run_id","message"]},"BranchRestoreResponse":{"type":"object","properties":{"message":{"type":"string","enum":["Branch restoration initiated"]}},"required":["message"]},"V1ProjectWithDatabaseResponse":{"type":"object","properties":{"id":{"type":"string","deprecated":true,"description":"Deprecated: Use `ref` instead."},"ref":{"type":"string","minLength":20,"maxLength":20,"pattern":"^[a-z]+$","description":"Project ref","example":"abcdefghijklmnopqrst"},"organization_id":{"type":"string","description":"Deprecated: Use `organization_slug` instead.","deprecated":true},"organization_slug":{"type":"string","pattern":"^[\\w-]+$","description":"Organization slug","example":"tsrqponmlkjihgfedcba"},"name":{"type":"string","description":"Name of your project"},"region":{"type":"string","description":"Region of your project"},"created_at":{"type":"string","description":"Creation timestamp"},"status":{"type":"string","enum":["INACTIVE","ACTIVE_HEALTHY","ACTIVE_UNHEALTHY","COMING_UP","UNKNOWN","GOING_DOWN","INIT_FAILED","REMOVED","RESTORING","UPGRADING","PAUSING","RESTORE_FAILED","RESTARTING","PAUSE_FAILED","RESIZING"]},"database":{"type":"object","properties":{"host":{"type":"string","description":"Database host"},"version":{"type":"string","description":"Database version"},"postgres_engine":{"type":"string","description":"Database engine"},"release_channel":{"type":"string","description":"Release channel"}},"required":["host","version","postgres_engine","release_channel"]}},"required":["id","ref","organization_id","organization_slug","name","region","created_at","status","database"]},"V1CreateProjectBody":{"type":"object","properties":{"db_pass":{"type":"string","description":"Database password"},"name":{"type":"string","maxLength":256,"description":"Name of your project"},"organization_id":{"type":"string","description":"Deprecated: Use `organization_slug` instead.","deprecated":true},"organization_slug":{"type":"string","pattern":"^[\\w-]+$","description":"Organization slug","example":"tsrqponmlkjihgfedcba"},"plan":{"type":"string","enum":["free","pro"],"deprecated":true,"description":"Subscription Plan is now set on organization level and is ignored in this request"},"region":{"type":"string","description":"Region you want your server to reside in. Use region_selection instead.","deprecated":true,"enum":["us-east-1","us-east-2","us-west-1","us-west-2","ap-east-1","ap-southeast-1","ap-northeast-1","ap-northeast-2","ap-southeast-2","eu-west-1","eu-west-2","eu-west-3","eu-north-1","eu-central-1","eu-central-2","ca-central-1","ap-south-1","sa-east-1"]},"region_selection":{"discriminator":{"propertyName":"type"},"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["specific"]},"code":{"type":"string","minLength":1,"description":"Specific region code. The codes supported are not a stable API, and should be retrieved from the /available-regions endpoint.","enum":["us-east-1","us-east-2","us-west-1","us-west-2","ap-east-1","ap-southeast-1","ap-northeast-1","ap-northeast-2","ap-southeast-2","eu-west-1","eu-west-2","eu-west-3","eu-north-1","eu-central-1","eu-central-2","ca-central-1","ap-south-1","sa-east-1"]}},"required":["type","code"]},{"type":"object","properties":{"type":{"type":"string","enum":["smartGroup"]},"code":{"type":"string","enum":["americas","emea","apac"],"description":"The Smart Region Group's code. The codes supported are not a stable API, and should be retrieved from the /available-regions endpoint."}},"required":["type","code"]}],"description":"Region selection. Only one of region or region_selection can be specified."},"kps_enabled":{"type":"boolean","deprecated":true,"description":"This field is deprecated and is ignored in this request"},"desired_instance_size":{"description":"Desired instance size. Omit this field to always default to the smallest possible size.","type":"string","enum":["nano","micro","small","medium","large","xlarge","2xlarge","4xlarge","8xlarge","12xlarge","16xlarge","24xlarge","24xlarge_optimized_memory","24xlarge_optimized_cpu","24xlarge_high_memory","48xlarge","48xlarge_optimized_memory","48xlarge_optimized_cpu","48xlarge_high_memory"]},"template_url":{"type":"string","format":"uri","description":"Template URL used to create the project from the CLI."}},"required":["db_pass","name","organization_slug"],"additionalProperties":false,"hideDefinitions":["release_channel","postgres_engine"],"example":{"db_pass":"correct-horse-battery-staple","name":"acme-prod","organization_slug":"tsrqponmlkjihgfedcba","region":"us-east-1"}},"V1ProjectResponse":{"type":"object","properties":{"id":{"type":"string","deprecated":true,"description":"Deprecated: Use `ref` instead."},"ref":{"type":"string","minLength":20,"maxLength":20,"pattern":"^[a-z]+$","description":"Project ref","example":"abcdefghijklmnopqrst"},"organization_id":{"type":"string","description":"Deprecated: Use `organization_slug` instead.","deprecated":true},"organization_slug":{"type":"string","pattern":"^[\\w-]+$","description":"Organization slug","example":"tsrqponmlkjihgfedcba"},"name":{"type":"string","description":"Name of your project"},"region":{"type":"string","description":"Region of your project"},"created_at":{"type":"string","description":"Creation timestamp"},"status":{"type":"string","enum":["INACTIVE","ACTIVE_HEALTHY","ACTIVE_UNHEALTHY","COMING_UP","UNKNOWN","GOING_DOWN","INIT_FAILED","REMOVED","RESTORING","UPGRADING","PAUSING","RESTORE_FAILED","RESTARTING","PAUSE_FAILED","RESIZING"]}},"required":["id","ref","organization_id","organization_slug","name","region","created_at","status"]},"RegionsInfo":{"type":"object","properties":{"recommendations":{"type":"object","properties":{"smartGroup":{"type":"object","properties":{"name":{"type":"string"},"code":{"type":"string","enum":["americas","emea","apac"]},"type":{"type":"string","enum":["smartGroup"]}},"required":["name","code","type"]},"specific":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"code":{"type":"string","enum":["us-east-1","us-east-2","us-west-1","us-west-2","ap-southeast-1","ap-northeast-1","ap-northeast-2","ap-east-1","ap-southeast-2","eu-west-1","eu-west-2","eu-west-3","eu-north-1","eu-central-1","eu-central-2","ca-central-1","ap-south-1","sa-east-1"]},"type":{"type":"string","enum":["specific"]},"provider":{"type":"string","enum":["AWS","FLY","AWS_K8S","AWS_NIMBUS"]},"status":{"type":"string","enum":["capacity","other"]}},"required":["name","code","type","provider"]}}},"required":["smartGroup","specific"]},"all":{"type":"object","properties":{"smartGroup":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"code":{"type":"string","enum":["americas","emea","apac"]},"type":{"type":"string","enum":["smartGroup"]}},"required":["name","code","type"]}},"specific":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"code":{"type":"string","enum":["us-east-1","us-east-2","us-west-1","us-west-2","ap-southeast-1","ap-northeast-1","ap-northeast-2","ap-east-1","ap-southeast-2","eu-west-1","eu-west-2","eu-west-3","eu-north-1","eu-central-1","eu-central-2","ca-central-1","ap-south-1","sa-east-1"]},"type":{"type":"string","enum":["specific"]},"provider":{"type":"string","enum":["AWS","FLY","AWS_K8S","AWS_NIMBUS"]},"status":{"type":"string","enum":["capacity","other"]}},"required":["name","code","type","provider"]}}},"required":["smartGroup","specific"]}},"required":["recommendations","all"]},"OrganizationResponseV1":{"type":"object","properties":{"id":{"type":"string","description":"Deprecated: Use `slug` instead.","deprecated":true},"slug":{"type":"string","pattern":"^[\\w-]+$","description":"Organization slug","example":"tsrqponmlkjihgfedcba"},"name":{"type":"string"}},"required":["id","slug","name"]},"CreateOrganizationV1":{"type":"object","properties":{"name":{"type":"string","maxLength":256}},"required":["name"],"additionalProperties":false,"example":{"name":"Acme"}},"OAuthTokenBody":{"type":"object","properties":{"grant_type":{"type":"string","enum":["authorization_code","refresh_token"]},"client_id":{"type":"string","format":"uuid"},"client_secret":{"type":"string"},"code":{"type":"string"},"code_verifier":{"type":"string"},"redirect_uri":{"type":"string"},"refresh_token":{"type":"string"},"resource":{"type":"string","format":"uri","description":"Resource indicator for MCP (Model Context Protocol) clients"},"scope":{"type":"string"}},"additionalProperties":false,"example":{"grant_type":"authorization_code","client_id":"66666666-6666-4666-8666-666666666666","client_secret":"sb_secret_live_example_9f4d3a206b2e4a7e8c91","code":"oauth_code_9f4d3a206b2e4a7e8c91","code_verifier":"qW0Z6d9pQnW0mL1dK1q9wFq6Yz2nV5rA8jT3mP7sH4c","redirect_uri":"https://app.acme.com/auth/callback","scope":"projects:read projects:write"}},"OAuthTokenResponse":{"type":"object","properties":{"access_token":{"type":"string"},"refresh_token":{"type":"string"},"expires_in":{"type":"integer"},"token_type":{"type":"string","enum":["Bearer"]}},"required":["access_token","refresh_token","expires_in","token_type"],"additionalProperties":false},"OAuthRevokeTokenBody":{"type":"object","properties":{"client_id":{"type":"string","format":"uuid"},"client_secret":{"type":"string"},"refresh_token":{"type":"string"}},"required":["client_id","client_secret","refresh_token"],"additionalProperties":false,"example":{"client_id":"66666666-6666-4666-8666-666666666666","client_secret":"sb_secret_live_example_9f4d3a206b2e4a7e8c91","refresh_token":"oauth_refresh_9f4d3a206b2e4a7e8c91"}},"SnippetList":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"inserted_at":{"type":"string"},"updated_at":{"type":"string"},"type":{"type":"string","enum":["sql"]},"visibility":{"type":"string","enum":["user","project","org","public"]},"name":{"type":"string"},"description":{"type":"string","nullable":true},"project":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"}},"required":["id","name"]},"owner":{"type":"object","properties":{"id":{"type":"number"},"username":{"type":"string"}},"required":["id","username"]},"updated_by":{"type":"object","properties":{"id":{"type":"number"},"username":{"type":"string"}},"required":["id","username"]},"favorite":{"type":"boolean"}},"required":["id","inserted_at","updated_at","type","visibility","name","description","project","owner","updated_by","favorite"]}},"cursor":{"type":"string"}},"required":["data"]},"SnippetResponse":{"type":"object","properties":{"id":{"type":"string"},"inserted_at":{"type":"string"},"updated_at":{"type":"string"},"type":{"type":"string","enum":["sql"]},"visibility":{"type":"string","enum":["user","project","org","public"]},"name":{"type":"string"},"description":{"type":"string","nullable":true},"project":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"}},"required":["id","name"]},"owner":{"type":"object","properties":{"id":{"type":"number"},"username":{"type":"string"}},"required":["id","username"]},"updated_by":{"type":"object","properties":{"id":{"type":"number"},"username":{"type":"string"}},"required":["id","username"]},"favorite":{"type":"boolean"},"content":{"type":"object","properties":{"favorite":{"type":"boolean","deprecated":true,"description":"Deprecated: Rely on root-level favorite property instead."},"schema_version":{"type":"string"},"sql":{"type":"string"}},"required":["schema_version","sql"]}},"required":["id","inserted_at","updated_at","type","visibility","name","description","project","owner","updated_by","favorite","content"]},"V1ProfileResponse":{"type":"object","properties":{"gotrue_id":{"type":"string"},"primary_email":{"type":"string"},"username":{"type":"string"}},"required":["gotrue_id","primary_email","username"]},"ListActionRunResponse":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"branch_id":{"type":"string"},"run_steps":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["clone","pull","health","configure","migrate","seed","deploy"]},"status":{"type":"string","enum":["CREATED","DEAD","EXITED","PAUSED","REMOVING","RESTARTING","RUNNING"]},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["name","status","created_at","updated_at"]}},"git_config":{"nullable":true},"workdir":{"type":"string","nullable":true},"check_run_id":{"type":"number","nullable":true},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","branch_id","run_steps","workdir","check_run_id","created_at","updated_at"]}},"ActionRunResponse":{"type":"object","properties":{"id":{"type":"string"},"branch_id":{"type":"string"},"run_steps":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["clone","pull","health","configure","migrate","seed","deploy"]},"status":{"type":"string","enum":["CREATED","DEAD","EXITED","PAUSED","REMOVING","RESTARTING","RUNNING"]},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["name","status","created_at","updated_at"]}},"git_config":{"nullable":true},"workdir":{"type":"string","nullable":true},"check_run_id":{"type":"number","nullable":true},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","branch_id","run_steps","workdir","check_run_id","created_at","updated_at"]},"UpdateRunStatusBody":{"type":"object","properties":{"clone":{"type":"string","enum":["CREATED","DEAD","EXITED","PAUSED","REMOVING","RESTARTING","RUNNING"]},"pull":{"type":"string","enum":["CREATED","DEAD","EXITED","PAUSED","REMOVING","RESTARTING","RUNNING"]},"health":{"type":"string","enum":["CREATED","DEAD","EXITED","PAUSED","REMOVING","RESTARTING","RUNNING"]},"configure":{"type":"string","enum":["CREATED","DEAD","EXITED","PAUSED","REMOVING","RESTARTING","RUNNING"]},"migrate":{"type":"string","enum":["CREATED","DEAD","EXITED","PAUSED","REMOVING","RESTARTING","RUNNING"]},"seed":{"type":"string","enum":["CREATED","DEAD","EXITED","PAUSED","REMOVING","RESTARTING","RUNNING"]},"deploy":{"type":"string","enum":["CREATED","DEAD","EXITED","PAUSED","REMOVING","RESTARTING","RUNNING"]}},"example":{"clone":"RUNNING","configure":"RUNNING","migrate":"RUNNING","deploy":"CREATED"}},"UpdateRunStatusResponse":{"type":"object","properties":{"message":{"type":"string","enum":["ok"]}},"required":["message"]},"ApiKeyResponse":{"type":"object","properties":{"api_key":{"type":"string","nullable":true},"id":{"type":"string","nullable":true},"type":{"type":"string","enum":["legacy","publishable","secret"],"nullable":true},"prefix":{"type":"string","nullable":true},"name":{"type":"string"},"description":{"type":"string","nullable":true},"hash":{"type":"string","nullable":true},"secret_jwt_template":{"type":"object","additionalProperties":{},"nullable":true},"inserted_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}},"required":["name"]},"LegacyApiKeysResponse":{"type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"]},"CreateApiKeyBody":{"type":"object","properties":{"type":{"type":"string","enum":["publishable","secret"]},"name":{"type":"string","minLength":4,"maxLength":64,"pattern":"^[a-z_][a-z0-9_]+$"},"description":{"type":"string","nullable":true},"secret_jwt_template":{"type":"object","additionalProperties":{},"nullable":true}},"required":["type","name"],"example":{"type":"secret","name":"ci_secret_key","description":"CI deploy key"}},"UpdateApiKeyBody":{"type":"object","properties":{"name":{"type":"string","minLength":4,"maxLength":64,"pattern":"^[a-z_][a-z0-9_]+$"},"description":{"type":"string","nullable":true},"secret_jwt_template":{"type":"object","additionalProperties":{},"nullable":true}},"example":{"name":"ci_secret_key_rotated","description":"Rotated after March release"}},"CreateBranchBody":{"type":"object","properties":{"branch_name":{"type":"string","minLength":1},"git_branch":{"type":"string"},"is_default":{"type":"boolean"},"persistent":{"type":"boolean"},"region":{"type":"string"},"desired_instance_size":{"type":"string","enum":["pico","nano","micro","small","medium","large","xlarge","2xlarge","4xlarge","8xlarge","12xlarge","16xlarge","24xlarge","24xlarge_optimized_memory","24xlarge_optimized_cpu","24xlarge_high_memory","48xlarge","48xlarge_optimized_memory","48xlarge_optimized_cpu","48xlarge_high_memory"]},"release_channel":{"type":"string","enum":["internal","alpha","beta","ga","withdrawn","preview"],"description":"Release channel. If not provided, GA will be used."},"postgres_engine":{"type":"string","enum":["15","17","17-oriole"],"description":"Postgres engine version. If not provided, the latest version will be used."},"secrets":{"type":"object","additionalProperties":{"type":"string"}},"with_data":{"type":"boolean"},"notify_url":{"type":"string","format":"uri","description":"HTTP endpoint to receive branch status updates."}},"required":["branch_name"],"example":{"branch_name":"preview-login-page","git_branch":"feature/login-page","persistent":true,"with_data":false,"notify_url":"https://example.com/webhooks/branches"}},"UpdateCustomHostnameResponse":{"type":"object","properties":{"status":{"type":"string","enum":["1_not_started","2_initiated","3_challenge_verified","4_origin_setup_completed","5_services_reconfigured"]},"custom_hostname":{"type":"string"},"data":{"type":"object","properties":{"success":{"type":"boolean"},"errors":{"type":"array","items":{"description":"Any JSON-serializable value"}},"messages":{"type":"array","items":{"description":"Any JSON-serializable value"}},"result":{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"ssl":{"type":"object","properties":{"status":{"type":"string"},"validation_records":{"type":"array","items":{"type":"object","properties":{"txt_name":{"type":"string"},"txt_value":{"type":"string"}},"required":["txt_name","txt_value"]}},"validation_errors":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"required":["status","validation_records"]},"ownership_verification":{"type":"object","properties":{"type":{"type":"string"},"name":{"type":"string"},"value":{"type":"string"}},"required":["type","name","value"]},"custom_origin_server":{"type":"string"},"verification_errors":{"type":"array","items":{"type":"string"}},"status":{"type":"string"}},"required":["id","hostname","ssl","ownership_verification","custom_origin_server","status"]}},"required":["success","errors","messages","result"]}},"required":["status","custom_hostname","data"]},"UpdateCustomHostnameBody":{"type":"object","properties":{"custom_hostname":{"type":"string","maxLength":253,"minLength":1}},"required":["custom_hostname"],"example":{"custom_hostname":"docs.example.com"}},"JitStateResponse":{"discriminator":{"propertyName":"state"},"oneOf":[{"type":"object","properties":{"state":{"type":"string","enum":["enabled","disabled"]},"appliedSuccessfully":{"type":"boolean"}},"required":["state"]},{"type":"object","properties":{"state":{"type":"string","enum":["unavailable"]},"unavailableReason":{"type":"string","enum":["manual_migration_required","postgres_upgrade_required","temporarily_unavailable"]}},"required":["state","unavailableReason"]}]},"JitAccessRequestRequest":{"type":"object","properties":{"state":{"type":"string","enum":["enabled","disabled"]}},"required":["state"],"example":{"state":"enabled"}},"NetworkBanResponse":{"type":"object","properties":{"banned_ipv4_addresses":{"type":"array","items":{"type":"string"}}},"required":["banned_ipv4_addresses"]},"NetworkBanResponseEnriched":{"type":"object","properties":{"banned_ipv4_addresses":{"type":"array","items":{"type":"object","properties":{"banned_address":{"type":"string"},"identifier":{"type":"string"},"type":{"type":"string"}},"required":["banned_address","identifier","type"]}}},"required":["banned_ipv4_addresses"]},"RemoveNetworkBanRequest":{"type":"object","properties":{"ipv4_addresses":{"type":"array","items":{"type":"string"},"description":"List of IP addresses to unban."},"requester_ip":{"default":false,"type":"boolean","description":"Include requester's public IP in the list of addresses to unban."},"identifier":{"type":"string"}},"required":["ipv4_addresses"],"example":{"ipv4_addresses":["203.0.113.10"],"requester_ip":false}},"NetworkRestrictionsResponse":{"type":"object","properties":{"entitlement":{"type":"string","enum":["disallowed","allowed"]},"config":{"type":"object","properties":{"dbAllowedCidrs":{"type":"array","items":{"type":"string"}},"dbAllowedCidrsV6":{"type":"array","items":{"type":"string"}}},"description":"At any given point in time, this is the config that the user has requested be applied to their project. The `status` field indicates if it has been applied to the project, or is pending. When an updated config is received, the applied config is moved to `old_config`."},"old_config":{"type":"object","properties":{"dbAllowedCidrs":{"type":"array","items":{"type":"string"}},"dbAllowedCidrsV6":{"type":"array","items":{"type":"string"}}},"example":{"dbAllowedCidrs":["203.0.113.0/24"],"dbAllowedCidrsV6":["2001:db8::/32"]},"description":"Populated when a new config has been received, but not registered as successfully applied to a project."},"status":{"type":"string","enum":["stored","applied"]},"updated_at":{"type":"string","format":"date-time"},"applied_at":{"type":"string","format":"date-time"}},"required":["entitlement","config","status"]},"NetworkRestrictionsRequest":{"type":"object","properties":{"dbAllowedCidrs":{"type":"array","items":{"type":"string"}},"dbAllowedCidrsV6":{"type":"array","items":{"type":"string"}}},"example":{"dbAllowedCidrs":["203.0.113.0/24"],"dbAllowedCidrsV6":["2001:db8::/32"]}},"NetworkRestrictionsPatchRequest":{"type":"object","properties":{"add":{"type":"object","properties":{"dbAllowedCidrs":{"type":"array","items":{"type":"string"}},"dbAllowedCidrsV6":{"type":"array","items":{"type":"string"}}}},"remove":{"type":"object","properties":{"dbAllowedCidrs":{"type":"array","items":{"type":"string"}},"dbAllowedCidrsV6":{"type":"array","items":{"type":"string"}}}}},"example":{"add":{"dbAllowedCidrs":["203.0.113.0/24"]},"remove":{"dbAllowedCidrs":["198.51.100.0/24"]}}},"NetworkRestrictionsV2Response":{"type":"object","properties":{"entitlement":{"type":"string","enum":["disallowed","allowed"]},"config":{"type":"object","properties":{"dbAllowedCidrs":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string"},"type":{"type":"string","enum":["v4","v6"]}},"required":["address","type"]}}},"description":"At any given point in time, this is the config that the user has requested be applied to their project. The `status` field indicates if it has been applied to the project, or is pending. When an updated config is received, the applied config is moved to `old_config`."},"old_config":{"type":"object","properties":{"dbAllowedCidrs":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string"},"type":{"type":"string","enum":["v4","v6"]}},"required":["address","type"]}}},"description":"Populated when a new config has been received, but not registered as successfully applied to a project."},"updated_at":{"type":"string","format":"date-time"},"applied_at":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["stored","applied"]}},"required":["entitlement","config","status"]},"PgsodiumConfigResponse":{"type":"object","properties":{"root_key":{"type":"string"}},"required":["root_key"]},"UpdatePgsodiumConfigBody":{"type":"object","properties":{"root_key":{"type":"string"}},"required":["root_key"],"example":{"root_key":"MDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWY="}},"PostgrestConfigWithJWTSecretResponse":{"type":"object","properties":{"db_schema":{"type":"string"},"max_rows":{"type":"integer"},"db_extra_search_path":{"type":"string"},"db_pool":{"type":"integer","nullable":true,"description":"If `null`, the value is automatically configured based on compute size."},"jwt_secret":{"type":"string"}},"required":["db_schema","max_rows","db_extra_search_path","db_pool"]},"V1UpdatePostgrestConfigBody":{"type":"object","properties":{"db_extra_search_path":{"type":"string"},"db_schema":{"type":"string"},"max_rows":{"type":"integer","minimum":0,"maximum":1000000},"db_pool":{"type":"integer","minimum":0,"maximum":1000}},"example":{"db_schema":"public,storage","db_pool":20,"max_rows":1000}},"V1PostgrestConfigResponse":{"type":"object","properties":{"db_schema":{"type":"string"},"max_rows":{"type":"integer"},"db_extra_search_path":{"type":"string"},"db_pool":{"type":"integer","nullable":true,"description":"If `null`, the value is automatically configured based on compute size."}},"required":["db_schema","max_rows","db_extra_search_path","db_pool"]},"V1ProjectRefResponse":{"type":"object","properties":{"id":{"type":"integer"},"ref":{"type":"string"},"name":{"type":"string"}},"required":["id","ref","name"]},"V1UpdateProjectBody":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":256}},"required":["name"],"example":{"name":"Acme Platform"}},"SecretResponse":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"updated_at":{"type":"string"}},"required":["name","value"]},"CreateSecretBody":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":256,"pattern":"^(?!SUPABASE_).*","description":"Secret name must not start with the SUPABASE_ prefix."},"value":{"type":"string","maxLength":24576}},"required":["name","value"]},"example":[{"name":"OPENAI_API_KEY","value":"sk-example-secret"},{"name":"STRIPE_WEBHOOK_SECRET","value":"whsec_example"}]},"DeleteSecretsBody":{"type":"array","items":{"type":"string"},"example":["OPENAI_API_KEY"]},"SslEnforcementResponse":{"type":"object","properties":{"currentConfig":{"type":"object","properties":{"database":{"type":"boolean"}},"required":["database"]},"appliedSuccessfully":{"type":"boolean"}},"required":["currentConfig","appliedSuccessfully"]},"SslEnforcementRequest":{"type":"object","properties":{"requestedConfig":{"type":"object","properties":{"database":{"type":"boolean"}},"required":["database"]}},"required":["requestedConfig"],"example":{"requestedConfig":{"database":true}}},"TypescriptResponse":{"type":"object","properties":{"types":{"type":"string"}},"required":["types"]},"VanitySubdomainConfigResponse":{"type":"object","properties":{"status":{"type":"string","enum":["not-used","custom-domain-used","active"]},"custom_domain":{"type":"string","minLength":1}},"required":["status"]},"VanitySubdomainBody":{"type":"object","properties":{"vanity_subdomain":{"type":"string","maxLength":63}},"required":["vanity_subdomain"],"example":{"vanity_subdomain":"acme-prod"}},"SubdomainAvailabilityResponse":{"type":"object","properties":{"available":{"type":"boolean"}},"required":["available"]},"ActivateVanitySubdomainResponse":{"type":"object","properties":{"custom_domain":{"type":"string"}},"required":["custom_domain"]},"UpgradeDatabaseBody":{"type":"object","properties":{"target_version":{"type":"string"},"release_channel":{"type":"string","enum":["internal","alpha","beta","ga","withdrawn","preview"]}},"required":["target_version"],"example":{"target_version":"17","release_channel":"ga"}},"ProjectUpgradeInitiateResponse":{"type":"object","properties":{"tracking_id":{"type":"string"}},"required":["tracking_id"]},"ProjectUpgradeEligibilityResponse":{"type":"object","properties":{"eligible":{"type":"boolean"},"current_app_version":{"type":"string"},"current_app_version_release_channel":{"type":"string","enum":["internal","alpha","beta","ga","withdrawn","preview"]},"latest_app_version":{"type":"string"},"target_upgrade_versions":{"type":"array","items":{"type":"object","properties":{"postgres_version":{"type":"string","enum":["13","14","15","17","17-oriole"]},"release_channel":{"type":"string","enum":["internal","alpha","beta","ga","withdrawn","preview"]},"app_version":{"type":"string"}},"required":["postgres_version","release_channel","app_version"]}},"duration_estimate_hours":{"type":"number"},"legacy_auth_custom_roles":{"type":"array","items":{"type":"string"}},"objects_to_be_dropped":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Use validation_errors instead."},"unsupported_extensions":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Use validation_errors instead."},"user_defined_objects_in_internal_schemas":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Use validation_errors instead."},"validation_errors":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["objects_depending_on_pg_cron"]},"dependents":{"type":"array","items":{"type":"string"}}},"required":["type","dependents"]},{"type":"object","properties":{"type":{"type":"string","enum":["indexes_referencing_ll_to_earth"]},"schema_name":{"type":"string"},"table_name":{"type":"string"},"index_name":{"type":"string"}},"required":["type","schema_name","table_name","index_name"]},{"type":"object","properties":{"type":{"type":"string","enum":["function_using_obsolete_lang"]},"schema_name":{"type":"string"},"function_name":{"type":"string"},"lang_name":{"type":"string"}},"required":["type","schema_name","function_name","lang_name"]},{"type":"object","properties":{"type":{"type":"string","enum":["unsupported_extension"]},"extension_name":{"type":"string"}},"required":["type","extension_name"]},{"type":"object","properties":{"type":{"type":"string","enum":["unsupported_fdw_handler"]},"fdw_name":{"type":"string"},"fdw_handler_name":{"type":"string"}},"required":["type","fdw_name","fdw_handler_name"]},{"type":"object","properties":{"type":{"type":"string","enum":["unlogged_table_with_persistent_sequence"]},"schema_name":{"type":"string"},"table_name":{"type":"string"},"sequence_name":{"type":"string"}},"required":["type","schema_name","table_name","sequence_name"]},{"type":"object","properties":{"type":{"type":"string","enum":["user_defined_objects_in_internal_schemas"]},"obj_type":{"type":"string","enum":["table","function"]},"schema_name":{"type":"string"},"obj_name":{"type":"string"}},"required":["type","obj_type","schema_name","obj_name"]},{"type":"object","properties":{"type":{"type":"string","enum":["active_replication_slot"]},"slot_name":{"type":"string"}},"required":["type","slot_name"]},{"type":"object","properties":{"type":{"type":"string","enum":["x86_architecture"]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["project_hibernating"]}},"required":["type"]}]}},"warnings":{"type":"array","items":{"discriminator":{"propertyName":"type"},"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["pg_graphql_introspection_change"]}},"required":["type"]}]}}},"required":["eligible","current_app_version","current_app_version_release_channel","latest_app_version","target_upgrade_versions","duration_estimate_hours","legacy_auth_custom_roles","objects_to_be_dropped","unsupported_extensions","user_defined_objects_in_internal_schemas","validation_errors","warnings"]},"DatabaseUpgradeStatusResponse":{"type":"object","properties":{"databaseUpgradeStatus":{"type":"object","properties":{"initiated_at":{"type":"string"},"latest_status_at":{"type":"string"},"target_version":{"type":"number"},"error":{"type":"string","enum":["1_upgraded_instance_launch_failed","2_volume_detachchment_from_upgraded_instance_failed","3_volume_attachment_to_original_instance_failed","4_data_upgrade_initiation_failed","5_data_upgrade_completion_failed","6_volume_detachchment_from_original_instance_failed","7_volume_attachment_to_upgraded_instance_failed","8_upgrade_completion_failed","9_post_physical_backup_failed"]},"progress":{"type":"string","enum":["0_requested","1_started","2_launched_upgraded_instance","3_detached_volume_from_upgraded_instance","4_attached_volume_to_original_instance","5_initiated_data_upgrade","6_completed_data_upgrade","7_detached_volume_from_original_instance","8_attached_volume_to_upgraded_instance","9_completed_upgrade","10_completed_post_physical_backup"]},"status":{"type":"number"}},"required":["initiated_at","latest_status_at","target_version","status"],"nullable":true}},"required":["databaseUpgradeStatus"]},"ReadOnlyStatusResponse":{"type":"object","properties":{"enabled":{"type":"boolean"},"override_enabled":{"type":"boolean"},"override_active_until":{"type":"string"}},"required":["enabled","override_enabled","override_active_until"]},"SetUpReadReplicaBody":{"type":"object","properties":{"read_replica_region":{"type":"string","enum":["us-east-1","us-east-2","us-west-1","us-west-2","ap-east-1","ap-southeast-1","ap-northeast-1","ap-northeast-2","ap-southeast-2","eu-west-1","eu-west-2","eu-west-3","eu-north-1","eu-central-1","eu-central-2","ca-central-1","ap-south-1","sa-east-1"],"description":"Region you want your read replica to reside in"}},"required":["read_replica_region"],"example":{"read_replica_region":"us-west-1"}},"RemoveReadReplicaBody":{"type":"object","properties":{"database_identifier":{"type":"string"}},"required":["database_identifier"],"example":{"database_identifier":"abcdefghijklmnopqrst-rr-us-west-1-abcde"}},"V1ServiceHealthResponse":{"type":"object","properties":{"name":{"type":"string","enum":["auth","db","db_postgres_user","pooler","realtime","rest","storage","pg_bouncer"]},"healthy":{"type":"boolean","deprecated":true,"description":"Deprecated. Use `status` instead."},"status":{"type":"string","enum":["COMING_UP","ACTIVE_HEALTHY","UNHEALTHY"]},"info":{"oneOf":[{"type":"object","properties":{"name":{"type":"string","enum":["GoTrue"]},"version":{"type":"string"},"description":{"type":"string"}},"required":["name","version","description"]},{"type":"object","properties":{"healthy":{"type":"boolean","deprecated":true,"description":"Deprecated. Use `status` instead."},"db_connected":{"type":"boolean"},"replication_connected":{"type":"boolean"},"connected_cluster":{"type":"integer"}},"required":["healthy","db_connected","replication_connected","connected_cluster"]},{"type":"object","properties":{"db_schema":{"type":"string"}},"required":["db_schema"]}]},"error":{"type":"string"}},"required":["name","healthy","status"]},"SigningKeyResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"algorithm":{"type":"string","enum":["EdDSA","ES256","RS256","HS256"]},"status":{"type":"string","enum":["in_use","previously_used","revoked","standby"]},"public_jwk":{"nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","algorithm","status","created_at","updated_at"],"additionalProperties":false},"CreateSigningKeyBody":{"type":"object","properties":{"algorithm":{"type":"string","enum":["EdDSA","ES256","RS256","HS256"]},"status":{"type":"string","enum":["in_use","standby"]},"private_jwk":{"discriminator":{"propertyName":"kty"},"oneOf":[{"type":"object","properties":{"kid":{"type":"string","format":"uuid"},"use":{"type":"string","enum":["sig"]},"key_ops":{"type":"array","items":{"type":"string","enum":["sign","verify"]},"minItems":2,"maxItems":2},"ext":{"type":"boolean","enum":[true]},"kty":{"type":"string","enum":["RSA"]},"alg":{"type":"string","enum":["RS256"]},"n":{"type":"string"},"e":{"type":"string","enum":["AQAB"]},"d":{"type":"string"},"p":{"type":"string"},"q":{"type":"string"},"dp":{"type":"string"},"dq":{"type":"string"},"qi":{"type":"string"}},"required":["kty","n","e","d","p","q","dp","dq","qi"],"additionalProperties":false},{"type":"object","properties":{"kid":{"type":"string","format":"uuid"},"use":{"type":"string","enum":["sig"]},"key_ops":{"type":"array","items":{"type":"string","enum":["sign","verify"]},"minItems":2,"maxItems":2},"ext":{"type":"boolean","enum":[true]},"kty":{"type":"string","enum":["EC"]},"alg":{"type":"string","enum":["ES256"]},"crv":{"type":"string","enum":["P-256"]},"x":{"type":"string"},"y":{"type":"string"},"d":{"type":"string"}},"required":["kty","crv","x","y","d"],"additionalProperties":false},{"type":"object","properties":{"kid":{"type":"string","format":"uuid"},"use":{"type":"string","enum":["sig"]},"key_ops":{"type":"array","items":{"type":"string","enum":["sign","verify"]},"minItems":2,"maxItems":2},"ext":{"type":"boolean","enum":[true]},"kty":{"type":"string","enum":["OKP"]},"alg":{"type":"string","enum":["EdDSA"]},"crv":{"type":"string","enum":["Ed25519"]},"x":{"type":"string"},"d":{"type":"string"}},"required":["kty","crv","x","d"],"additionalProperties":false},{"type":"object","properties":{"kid":{"type":"string","format":"uuid"},"use":{"type":"string","enum":["sig"]},"key_ops":{"type":"array","items":{"type":"string","enum":["sign","verify"]},"minItems":2,"maxItems":2},"ext":{"type":"boolean","enum":[true]},"kty":{"type":"string","enum":["oct"]},"alg":{"type":"string","enum":["HS256"]},"k":{"type":"string","minLength":16}},"required":["kty","k"],"additionalProperties":false}]}},"required":["algorithm"],"additionalProperties":false,"example":{"algorithm":"RS256","status":"standby"}},"SigningKeysResponse":{"type":"object","properties":{"keys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"algorithm":{"type":"string","enum":["EdDSA","ES256","RS256","HS256"]},"status":{"type":"string","enum":["in_use","previously_used","revoked","standby"]},"public_jwk":{"nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","algorithm","status","created_at","updated_at"],"additionalProperties":false}}},"required":["keys"],"additionalProperties":false},"UpdateSigningKeyBody":{"type":"object","properties":{"status":{"type":"string","enum":["in_use","previously_used","revoked","standby"]}},"required":["status"],"additionalProperties":false,"example":{"status":"standby"}},"AuthConfigResponse":{"type":"object","properties":{"api_max_request_duration":{"type":"integer","nullable":true},"db_max_pool_size":{"type":"integer","nullable":true},"db_max_pool_size_unit":{"type":"string","enum":["connections","percent"],"nullable":true},"disable_signup":{"type":"boolean","nullable":true},"external_anonymous_users_enabled":{"type":"boolean","nullable":true},"external_apple_additional_client_ids":{"type":"string","nullable":true},"external_apple_client_id":{"type":"string","nullable":true},"external_apple_email_optional":{"type":"boolean","nullable":true},"external_apple_enabled":{"type":"boolean","nullable":true},"external_apple_secret":{"type":"string","nullable":true},"external_azure_client_id":{"type":"string","nullable":true},"external_azure_email_optional":{"type":"boolean","nullable":true},"external_azure_enabled":{"type":"boolean","nullable":true},"external_azure_secret":{"type":"string","nullable":true},"external_azure_url":{"type":"string","nullable":true},"external_bitbucket_client_id":{"type":"string","nullable":true},"external_bitbucket_email_optional":{"type":"boolean","nullable":true},"external_bitbucket_enabled":{"type":"boolean","nullable":true},"external_bitbucket_secret":{"type":"string","nullable":true},"external_discord_client_id":{"type":"string","nullable":true},"external_discord_email_optional":{"type":"boolean","nullable":true},"external_discord_enabled":{"type":"boolean","nullable":true},"external_discord_secret":{"type":"string","nullable":true},"external_email_enabled":{"type":"boolean","nullable":true},"external_facebook_client_id":{"type":"string","nullable":true},"external_facebook_email_optional":{"type":"boolean","nullable":true},"external_facebook_enabled":{"type":"boolean","nullable":true},"external_facebook_secret":{"type":"string","nullable":true},"external_figma_client_id":{"type":"string","nullable":true},"external_figma_email_optional":{"type":"boolean","nullable":true},"external_figma_enabled":{"type":"boolean","nullable":true},"external_figma_secret":{"type":"string","nullable":true},"external_github_client_id":{"type":"string","nullable":true},"external_github_email_optional":{"type":"boolean","nullable":true},"external_github_enabled":{"type":"boolean","nullable":true},"external_github_secret":{"type":"string","nullable":true},"external_gitlab_client_id":{"type":"string","nullable":true},"external_gitlab_email_optional":{"type":"boolean","nullable":true},"external_gitlab_enabled":{"type":"boolean","nullable":true},"external_gitlab_secret":{"type":"string","nullable":true},"external_gitlab_url":{"type":"string","nullable":true},"external_google_additional_client_ids":{"type":"string","nullable":true},"external_google_client_id":{"type":"string","nullable":true},"external_google_email_optional":{"type":"boolean","nullable":true},"external_google_enabled":{"type":"boolean","nullable":true},"external_google_secret":{"type":"string","nullable":true},"external_google_skip_nonce_check":{"type":"boolean","nullable":true},"external_kakao_client_id":{"type":"string","nullable":true},"external_kakao_email_optional":{"type":"boolean","nullable":true},"external_kakao_enabled":{"type":"boolean","nullable":true},"external_kakao_secret":{"type":"string","nullable":true},"external_keycloak_client_id":{"type":"string","nullable":true},"external_keycloak_email_optional":{"type":"boolean","nullable":true},"external_keycloak_enabled":{"type":"boolean","nullable":true},"external_keycloak_secret":{"type":"string","nullable":true},"external_keycloak_url":{"type":"string","nullable":true},"external_linkedin_oidc_client_id":{"type":"string","nullable":true},"external_linkedin_oidc_email_optional":{"type":"boolean","nullable":true},"external_linkedin_oidc_enabled":{"type":"boolean","nullable":true},"external_linkedin_oidc_secret":{"type":"string","nullable":true},"external_slack_oidc_client_id":{"type":"string","nullable":true},"external_slack_oidc_email_optional":{"type":"boolean","nullable":true},"external_slack_oidc_enabled":{"type":"boolean","nullable":true},"external_slack_oidc_secret":{"type":"string","nullable":true},"external_notion_client_id":{"type":"string","nullable":true},"external_notion_email_optional":{"type":"boolean","nullable":true},"external_notion_enabled":{"type":"boolean","nullable":true},"external_notion_secret":{"type":"string","nullable":true},"external_phone_enabled":{"type":"boolean","nullable":true},"external_slack_client_id":{"type":"string","nullable":true},"external_slack_email_optional":{"type":"boolean","nullable":true},"external_slack_enabled":{"type":"boolean","nullable":true},"external_slack_secret":{"type":"string","nullable":true},"external_spotify_client_id":{"type":"string","nullable":true},"external_spotify_email_optional":{"type":"boolean","nullable":true},"external_spotify_enabled":{"type":"boolean","nullable":true},"external_spotify_secret":{"type":"string","nullable":true},"external_twitch_client_id":{"type":"string","nullable":true},"external_twitch_email_optional":{"type":"boolean","nullable":true},"external_twitch_enabled":{"type":"boolean","nullable":true},"external_twitch_secret":{"type":"string","nullable":true},"external_twitter_client_id":{"type":"string","nullable":true},"external_twitter_email_optional":{"type":"boolean","nullable":true},"external_twitter_enabled":{"type":"boolean","nullable":true},"external_twitter_secret":{"type":"string","nullable":true},"external_x_client_id":{"type":"string","nullable":true},"external_x_email_optional":{"type":"boolean","nullable":true},"external_x_enabled":{"type":"boolean","nullable":true},"external_x_secret":{"type":"string","nullable":true},"external_workos_client_id":{"type":"string","nullable":true},"external_workos_enabled":{"type":"boolean","nullable":true},"external_workos_secret":{"type":"string","nullable":true},"external_workos_url":{"type":"string","nullable":true},"external_web3_solana_enabled":{"type":"boolean","nullable":true},"external_web3_ethereum_enabled":{"type":"boolean","nullable":true},"external_zoom_client_id":{"type":"string","nullable":true},"external_zoom_email_optional":{"type":"boolean","nullable":true},"external_zoom_enabled":{"type":"boolean","nullable":true},"external_zoom_secret":{"type":"string","nullable":true},"hook_custom_access_token_enabled":{"type":"boolean","nullable":true},"hook_custom_access_token_uri":{"type":"string","nullable":true},"hook_custom_access_token_secrets":{"type":"string","nullable":true},"hook_mfa_verification_attempt_enabled":{"type":"boolean","nullable":true},"hook_mfa_verification_attempt_uri":{"type":"string","nullable":true},"hook_mfa_verification_attempt_secrets":{"type":"string","nullable":true},"hook_password_verification_attempt_enabled":{"type":"boolean","nullable":true},"hook_password_verification_attempt_uri":{"type":"string","nullable":true},"hook_password_verification_attempt_secrets":{"type":"string","nullable":true},"hook_send_sms_enabled":{"type":"boolean","nullable":true},"hook_send_sms_uri":{"type":"string","nullable":true},"hook_send_sms_secrets":{"type":"string","nullable":true},"hook_send_email_enabled":{"type":"boolean","nullable":true},"hook_send_email_uri":{"type":"string","nullable":true},"hook_send_email_secrets":{"type":"string","nullable":true},"hook_before_user_created_enabled":{"type":"boolean","nullable":true},"hook_before_user_created_uri":{"type":"string","nullable":true},"hook_before_user_created_secrets":{"type":"string","nullable":true},"hook_after_user_created_enabled":{"type":"boolean","nullable":true},"hook_after_user_created_uri":{"type":"string","nullable":true},"hook_after_user_created_secrets":{"type":"string","nullable":true},"jwt_exp":{"type":"integer","nullable":true},"mailer_allow_unverified_email_sign_ins":{"type":"boolean","nullable":true},"mailer_autoconfirm":{"type":"boolean","nullable":true},"mailer_otp_exp":{"type":"integer"},"mailer_otp_length":{"type":"integer","nullable":true},"mailer_secure_email_change_enabled":{"type":"boolean","nullable":true},"mailer_subjects_confirmation":{"type":"string","nullable":true},"mailer_subjects_email_change":{"type":"string","nullable":true},"mailer_subjects_invite":{"type":"string","nullable":true},"mailer_subjects_magic_link":{"type":"string","nullable":true},"mailer_subjects_reauthentication":{"type":"string","nullable":true},"mailer_subjects_recovery":{"type":"string","nullable":true},"mailer_subjects_password_changed_notification":{"type":"string","nullable":true},"mailer_subjects_email_changed_notification":{"type":"string","nullable":true},"mailer_subjects_phone_changed_notification":{"type":"string","nullable":true},"mailer_subjects_mfa_factor_enrolled_notification":{"type":"string","nullable":true},"mailer_subjects_mfa_factor_unenrolled_notification":{"type":"string","nullable":true},"mailer_subjects_identity_linked_notification":{"type":"string","nullable":true},"mailer_subjects_identity_unlinked_notification":{"type":"string","nullable":true},"mailer_templates_confirmation_content":{"type":"string","nullable":true},"mailer_templates_email_change_content":{"type":"string","nullable":true},"mailer_templates_invite_content":{"type":"string","nullable":true},"mailer_templates_magic_link_content":{"type":"string","nullable":true},"mailer_templates_reauthentication_content":{"type":"string","nullable":true},"mailer_templates_recovery_content":{"type":"string","nullable":true},"mailer_templates_password_changed_notification_content":{"type":"string","nullable":true},"mailer_templates_email_changed_notification_content":{"type":"string","nullable":true},"mailer_templates_phone_changed_notification_content":{"type":"string","nullable":true},"mailer_templates_mfa_factor_enrolled_notification_content":{"type":"string","nullable":true},"mailer_templates_mfa_factor_unenrolled_notification_content":{"type":"string","nullable":true},"mailer_templates_identity_linked_notification_content":{"type":"string","nullable":true},"mailer_templates_identity_unlinked_notification_content":{"type":"string","nullable":true},"mailer_notifications_password_changed_enabled":{"type":"boolean","nullable":true},"mailer_notifications_email_changed_enabled":{"type":"boolean","nullable":true},"mailer_notifications_phone_changed_enabled":{"type":"boolean","nullable":true},"mailer_notifications_mfa_factor_enrolled_enabled":{"type":"boolean","nullable":true},"mailer_notifications_mfa_factor_unenrolled_enabled":{"type":"boolean","nullable":true},"mailer_notifications_identity_linked_enabled":{"type":"boolean","nullable":true},"mailer_notifications_identity_unlinked_enabled":{"type":"boolean","nullable":true},"mfa_max_enrolled_factors":{"type":"integer","nullable":true},"mfa_totp_enroll_enabled":{"type":"boolean","nullable":true},"mfa_totp_verify_enabled":{"type":"boolean","nullable":true},"mfa_phone_enroll_enabled":{"type":"boolean","nullable":true},"mfa_phone_verify_enabled":{"type":"boolean","nullable":true},"mfa_web_authn_enroll_enabled":{"type":"boolean","nullable":true},"mfa_web_authn_verify_enabled":{"type":"boolean","nullable":true},"passkey_enabled":{"type":"boolean"},"webauthn_rp_display_name":{"type":"string","nullable":true},"webauthn_rp_id":{"type":"string","nullable":true},"webauthn_rp_origins":{"type":"string","nullable":true},"mfa_phone_otp_length":{"type":"integer"},"mfa_phone_template":{"type":"string","nullable":true},"mfa_phone_max_frequency":{"type":"integer","nullable":true},"nimbus_oauth_client_id":{"type":"string","nullable":true},"nimbus_oauth_email_optional":{"type":"boolean","nullable":true},"nimbus_oauth_client_secret":{"type":"string","nullable":true},"password_hibp_enabled":{"type":"boolean","nullable":true},"password_min_length":{"type":"integer","nullable":true},"password_required_characters":{"type":"string","enum":["abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789","abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789","abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789:!@#$%^&*()_+-=[]{};'\\\\:\"|<>?,./`~",""],"nullable":true},"rate_limit_anonymous_users":{"type":"integer","nullable":true},"rate_limit_email_sent":{"type":"integer","nullable":true},"rate_limit_sms_sent":{"type":"integer","nullable":true},"rate_limit_token_refresh":{"type":"integer","nullable":true},"rate_limit_verify":{"type":"integer","nullable":true},"rate_limit_otp":{"type":"integer","nullable":true},"rate_limit_web3":{"type":"integer","nullable":true},"refresh_token_rotation_enabled":{"type":"boolean","nullable":true},"saml_enabled":{"type":"boolean","nullable":true},"saml_external_url":{"type":"string","nullable":true},"saml_allow_encrypted_assertions":{"type":"boolean","nullable":true},"security_sb_forwarded_for_enabled":{"type":"boolean","nullable":true},"security_captcha_enabled":{"type":"boolean","nullable":true},"security_captcha_provider":{"type":"string","enum":["turnstile","hcaptcha"],"nullable":true},"security_captcha_secret":{"type":"string","nullable":true},"security_manual_linking_enabled":{"type":"boolean","nullable":true},"security_refresh_token_reuse_interval":{"type":"integer","nullable":true},"security_update_password_require_reauthentication":{"type":"boolean","nullable":true},"sessions_inactivity_timeout":{"type":"number","nullable":true},"sessions_single_per_user":{"type":"boolean","nullable":true},"sessions_tags":{"type":"string","nullable":true},"sessions_timebox":{"type":"number","nullable":true},"site_url":{"type":"string","nullable":true},"sms_autoconfirm":{"type":"boolean","nullable":true},"sms_max_frequency":{"type":"integer","nullable":true},"sms_messagebird_access_key":{"type":"string","nullable":true},"sms_messagebird_originator":{"type":"string","nullable":true},"sms_otp_exp":{"type":"integer","nullable":true},"sms_otp_length":{"type":"integer"},"sms_provider":{"type":"string","enum":["messagebird","textlocal","twilio","twilio_verify","vonage"],"nullable":true},"sms_template":{"type":"string","nullable":true},"sms_test_otp":{"type":"string","nullable":true},"sms_test_otp_valid_until":{"type":"string","format":"date-time","nullable":true},"sms_textlocal_api_key":{"type":"string","nullable":true},"sms_textlocal_sender":{"type":"string","nullable":true},"sms_twilio_account_sid":{"type":"string","nullable":true},"sms_twilio_auth_token":{"type":"string","nullable":true},"sms_twilio_content_sid":{"type":"string","nullable":true},"sms_twilio_message_service_sid":{"type":"string","nullable":true},"sms_twilio_verify_account_sid":{"type":"string","nullable":true},"sms_twilio_verify_auth_token":{"type":"string","nullable":true},"sms_twilio_verify_message_service_sid":{"type":"string","nullable":true},"sms_vonage_api_key":{"type":"string","nullable":true},"sms_vonage_api_secret":{"type":"string","nullable":true},"sms_vonage_from":{"type":"string","nullable":true},"smtp_admin_email":{"type":"string","format":"email","nullable":true},"smtp_host":{"type":"string","nullable":true},"smtp_max_frequency":{"type":"integer","nullable":true},"smtp_pass":{"type":"string","nullable":true},"smtp_port":{"type":"string","nullable":true},"smtp_sender_name":{"type":"string","nullable":true},"smtp_user":{"type":"string","nullable":true},"uri_allow_list":{"type":"string","nullable":true},"oauth_server_enabled":{"type":"boolean"},"oauth_server_allow_dynamic_registration":{"type":"boolean"},"oauth_server_authorization_path":{"type":"string","nullable":true},"custom_oauth_enabled":{"type":"boolean"},"custom_oauth_max_providers":{"type":"integer"}},"required":["api_max_request_duration","db_max_pool_size","db_max_pool_size_unit","disable_signup","external_anonymous_users_enabled","external_apple_additional_client_ids","external_apple_client_id","external_apple_email_optional","external_apple_enabled","external_apple_secret","external_azure_client_id","external_azure_email_optional","external_azure_enabled","external_azure_secret","external_azure_url","external_bitbucket_client_id","external_bitbucket_email_optional","external_bitbucket_enabled","external_bitbucket_secret","external_discord_client_id","external_discord_email_optional","external_discord_enabled","external_discord_secret","external_email_enabled","external_facebook_client_id","external_facebook_email_optional","external_facebook_enabled","external_facebook_secret","external_figma_client_id","external_figma_email_optional","external_figma_enabled","external_figma_secret","external_github_client_id","external_github_email_optional","external_github_enabled","external_github_secret","external_gitlab_client_id","external_gitlab_email_optional","external_gitlab_enabled","external_gitlab_secret","external_gitlab_url","external_google_additional_client_ids","external_google_client_id","external_google_email_optional","external_google_enabled","external_google_secret","external_google_skip_nonce_check","external_kakao_client_id","external_kakao_email_optional","external_kakao_enabled","external_kakao_secret","external_keycloak_client_id","external_keycloak_email_optional","external_keycloak_enabled","external_keycloak_secret","external_keycloak_url","external_linkedin_oidc_client_id","external_linkedin_oidc_email_optional","external_linkedin_oidc_enabled","external_linkedin_oidc_secret","external_slack_oidc_client_id","external_slack_oidc_email_optional","external_slack_oidc_enabled","external_slack_oidc_secret","external_notion_client_id","external_notion_email_optional","external_notion_enabled","external_notion_secret","external_phone_enabled","external_slack_client_id","external_slack_email_optional","external_slack_enabled","external_slack_secret","external_spotify_client_id","external_spotify_email_optional","external_spotify_enabled","external_spotify_secret","external_twitch_client_id","external_twitch_email_optional","external_twitch_enabled","external_twitch_secret","external_twitter_client_id","external_twitter_email_optional","external_twitter_enabled","external_twitter_secret","external_x_client_id","external_x_email_optional","external_x_enabled","external_x_secret","external_workos_client_id","external_workos_enabled","external_workos_secret","external_workos_url","external_web3_solana_enabled","external_web3_ethereum_enabled","external_zoom_client_id","external_zoom_email_optional","external_zoom_enabled","external_zoom_secret","hook_custom_access_token_enabled","hook_custom_access_token_uri","hook_custom_access_token_secrets","hook_mfa_verification_attempt_enabled","hook_mfa_verification_attempt_uri","hook_mfa_verification_attempt_secrets","hook_password_verification_attempt_enabled","hook_password_verification_attempt_uri","hook_password_verification_attempt_secrets","hook_send_sms_enabled","hook_send_sms_uri","hook_send_sms_secrets","hook_send_email_enabled","hook_send_email_uri","hook_send_email_secrets","hook_before_user_created_enabled","hook_before_user_created_uri","hook_before_user_created_secrets","hook_after_user_created_enabled","hook_after_user_created_uri","hook_after_user_created_secrets","jwt_exp","mailer_allow_unverified_email_sign_ins","mailer_autoconfirm","mailer_otp_exp","mailer_otp_length","mailer_secure_email_change_enabled","mailer_subjects_confirmation","mailer_subjects_email_change","mailer_subjects_invite","mailer_subjects_magic_link","mailer_subjects_reauthentication","mailer_subjects_recovery","mailer_subjects_password_changed_notification","mailer_subjects_email_changed_notification","mailer_subjects_phone_changed_notification","mailer_subjects_mfa_factor_enrolled_notification","mailer_subjects_mfa_factor_unenrolled_notification","mailer_subjects_identity_linked_notification","mailer_subjects_identity_unlinked_notification","mailer_templates_confirmation_content","mailer_templates_email_change_content","mailer_templates_invite_content","mailer_templates_magic_link_content","mailer_templates_reauthentication_content","mailer_templates_recovery_content","mailer_templates_password_changed_notification_content","mailer_templates_email_changed_notification_content","mailer_templates_phone_changed_notification_content","mailer_templates_mfa_factor_enrolled_notification_content","mailer_templates_mfa_factor_unenrolled_notification_content","mailer_templates_identity_linked_notification_content","mailer_templates_identity_unlinked_notification_content","mailer_notifications_password_changed_enabled","mailer_notifications_email_changed_enabled","mailer_notifications_phone_changed_enabled","mailer_notifications_mfa_factor_enrolled_enabled","mailer_notifications_mfa_factor_unenrolled_enabled","mailer_notifications_identity_linked_enabled","mailer_notifications_identity_unlinked_enabled","mfa_max_enrolled_factors","mfa_totp_enroll_enabled","mfa_totp_verify_enabled","mfa_phone_enroll_enabled","mfa_phone_verify_enabled","mfa_web_authn_enroll_enabled","mfa_web_authn_verify_enabled","passkey_enabled","webauthn_rp_display_name","webauthn_rp_id","webauthn_rp_origins","mfa_phone_otp_length","mfa_phone_template","mfa_phone_max_frequency","nimbus_oauth_client_id","nimbus_oauth_email_optional","nimbus_oauth_client_secret","password_hibp_enabled","password_min_length","password_required_characters","rate_limit_anonymous_users","rate_limit_email_sent","rate_limit_sms_sent","rate_limit_token_refresh","rate_limit_verify","rate_limit_otp","rate_limit_web3","refresh_token_rotation_enabled","saml_enabled","saml_external_url","saml_allow_encrypted_assertions","security_sb_forwarded_for_enabled","security_captcha_enabled","security_captcha_provider","security_captcha_secret","security_manual_linking_enabled","security_refresh_token_reuse_interval","security_update_password_require_reauthentication","sessions_inactivity_timeout","sessions_single_per_user","sessions_tags","sessions_timebox","site_url","sms_autoconfirm","sms_max_frequency","sms_messagebird_access_key","sms_messagebird_originator","sms_otp_exp","sms_otp_length","sms_provider","sms_template","sms_test_otp","sms_test_otp_valid_until","sms_textlocal_api_key","sms_textlocal_sender","sms_twilio_account_sid","sms_twilio_auth_token","sms_twilio_content_sid","sms_twilio_message_service_sid","sms_twilio_verify_account_sid","sms_twilio_verify_auth_token","sms_twilio_verify_message_service_sid","sms_vonage_api_key","sms_vonage_api_secret","sms_vonage_from","smtp_admin_email","smtp_host","smtp_max_frequency","smtp_pass","smtp_port","smtp_sender_name","smtp_user","uri_allow_list","oauth_server_enabled","oauth_server_allow_dynamic_registration","oauth_server_authorization_path","custom_oauth_enabled","custom_oauth_max_providers"]},"UpdateAuthConfigBody":{"type":"object","properties":{"site_url":{"type":"string","pattern":"^[^,]+$","nullable":true},"disable_signup":{"type":"boolean","nullable":true},"jwt_exp":{"type":"integer","minimum":0,"maximum":604800,"nullable":true},"smtp_admin_email":{"type":"string","format":"email","nullable":true},"smtp_host":{"type":"string","nullable":true},"smtp_port":{"type":"string","nullable":true},"smtp_user":{"type":"string","nullable":true},"smtp_pass":{"type":"string","nullable":true},"smtp_max_frequency":{"type":"integer","minimum":0,"maximum":32767,"nullable":true},"smtp_sender_name":{"type":"string","nullable":true},"mailer_allow_unverified_email_sign_ins":{"type":"boolean","nullable":true},"mailer_autoconfirm":{"type":"boolean","nullable":true},"mailer_subjects_invite":{"type":"string","nullable":true},"mailer_subjects_confirmation":{"type":"string","nullable":true},"mailer_subjects_recovery":{"type":"string","nullable":true},"mailer_subjects_email_change":{"type":"string","nullable":true},"mailer_subjects_magic_link":{"type":"string","nullable":true},"mailer_subjects_reauthentication":{"type":"string","nullable":true},"mailer_subjects_password_changed_notification":{"type":"string","nullable":true},"mailer_subjects_email_changed_notification":{"type":"string","nullable":true},"mailer_subjects_phone_changed_notification":{"type":"string","nullable":true},"mailer_subjects_mfa_factor_enrolled_notification":{"type":"string","nullable":true},"mailer_subjects_mfa_factor_unenrolled_notification":{"type":"string","nullable":true},"mailer_subjects_identity_linked_notification":{"type":"string","nullable":true},"mailer_subjects_identity_unlinked_notification":{"type":"string","nullable":true},"mailer_templates_invite_content":{"type":"string","nullable":true},"mailer_templates_confirmation_content":{"type":"string","nullable":true},"mailer_templates_recovery_content":{"type":"string","nullable":true},"mailer_templates_email_change_content":{"type":"string","nullable":true},"mailer_templates_magic_link_content":{"type":"string","nullable":true},"mailer_templates_reauthentication_content":{"type":"string","nullable":true},"mailer_templates_password_changed_notification_content":{"type":"string","nullable":true},"mailer_templates_email_changed_notification_content":{"type":"string","nullable":true},"mailer_templates_phone_changed_notification_content":{"type":"string","nullable":true},"mailer_templates_mfa_factor_enrolled_notification_content":{"type":"string","nullable":true},"mailer_templates_mfa_factor_unenrolled_notification_content":{"type":"string","nullable":true},"mailer_templates_identity_linked_notification_content":{"type":"string","nullable":true},"mailer_templates_identity_unlinked_notification_content":{"type":"string","nullable":true},"mailer_notifications_password_changed_enabled":{"type":"boolean","nullable":true},"mailer_notifications_email_changed_enabled":{"type":"boolean","nullable":true},"mailer_notifications_phone_changed_enabled":{"type":"boolean","nullable":true},"mailer_notifications_mfa_factor_enrolled_enabled":{"type":"boolean","nullable":true},"mailer_notifications_mfa_factor_unenrolled_enabled":{"type":"boolean","nullable":true},"mailer_notifications_identity_linked_enabled":{"type":"boolean","nullable":true},"mailer_notifications_identity_unlinked_enabled":{"type":"boolean","nullable":true},"mfa_max_enrolled_factors":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"uri_allow_list":{"type":"string","nullable":true},"external_anonymous_users_enabled":{"type":"boolean","nullable":true},"external_email_enabled":{"type":"boolean","nullable":true},"external_phone_enabled":{"type":"boolean","nullable":true},"saml_enabled":{"type":"boolean","nullable":true},"saml_external_url":{"type":"string","pattern":"^[^,]+$","nullable":true},"security_sb_forwarded_for_enabled":{"type":"boolean","nullable":true},"security_captcha_enabled":{"type":"boolean","nullable":true},"security_captcha_provider":{"type":"string","enum":["turnstile","hcaptcha"],"nullable":true},"security_captcha_secret":{"type":"string","nullable":true},"sessions_timebox":{"type":"number","minimum":0,"nullable":true},"sessions_inactivity_timeout":{"type":"number","minimum":0,"nullable":true},"sessions_single_per_user":{"type":"boolean","nullable":true},"sessions_tags":{"type":"string","pattern":"^\\s*([a-zA-Z0-9_-]+(\\s*,+\\s*)?)*\\s*$","nullable":true},"rate_limit_anonymous_users":{"type":"integer","minimum":1,"maximum":2147483647,"nullable":true},"rate_limit_email_sent":{"type":"integer","minimum":1,"maximum":2147483647,"nullable":true},"rate_limit_sms_sent":{"type":"integer","minimum":1,"maximum":2147483647,"nullable":true},"rate_limit_verify":{"type":"integer","minimum":1,"maximum":2147483647,"nullable":true},"rate_limit_token_refresh":{"type":"integer","minimum":1,"maximum":2147483647,"nullable":true},"rate_limit_otp":{"type":"integer","minimum":1,"maximum":2147483647,"nullable":true},"rate_limit_web3":{"type":"integer","minimum":1,"maximum":2147483647,"nullable":true},"mailer_secure_email_change_enabled":{"type":"boolean","nullable":true},"refresh_token_rotation_enabled":{"type":"boolean","nullable":true},"password_hibp_enabled":{"type":"boolean","nullable":true},"password_min_length":{"type":"integer","minimum":6,"maximum":32767,"nullable":true},"password_required_characters":{"type":"string","enum":["abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789","abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789","abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789:!@#$%^&*()_+-=[]{};'\\\\:\"|<>?,./`~",""],"nullable":true},"security_manual_linking_enabled":{"type":"boolean","nullable":true},"security_update_password_require_reauthentication":{"type":"boolean","nullable":true},"security_refresh_token_reuse_interval":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"mailer_otp_exp":{"type":"integer","minimum":0,"maximum":2147483647},"mailer_otp_length":{"type":"integer","minimum":6,"maximum":10,"nullable":true},"sms_autoconfirm":{"type":"boolean","nullable":true},"sms_max_frequency":{"type":"integer","minimum":0,"maximum":32767,"nullable":true},"sms_otp_exp":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"sms_otp_length":{"type":"integer","minimum":0,"maximum":32767},"sms_provider":{"type":"string","enum":["messagebird","textlocal","twilio","twilio_verify","vonage"],"nullable":true},"sms_messagebird_access_key":{"type":"string","nullable":true},"sms_messagebird_originator":{"type":"string","nullable":true},"sms_test_otp":{"type":"string","pattern":"^([0-9]{1,15}=[0-9]+,?)*$","nullable":true},"sms_test_otp_valid_until":{"type":"string","format":"date-time","nullable":true},"sms_textlocal_api_key":{"type":"string","nullable":true},"sms_textlocal_sender":{"type":"string","nullable":true},"sms_twilio_account_sid":{"type":"string","nullable":true},"sms_twilio_auth_token":{"type":"string","nullable":true},"sms_twilio_content_sid":{"type":"string","nullable":true},"sms_twilio_message_service_sid":{"type":"string","nullable":true},"sms_twilio_verify_account_sid":{"type":"string","nullable":true},"sms_twilio_verify_auth_token":{"type":"string","nullable":true},"sms_twilio_verify_message_service_sid":{"type":"string","nullable":true},"sms_vonage_api_key":{"type":"string","nullable":true},"sms_vonage_api_secret":{"type":"string","nullable":true},"sms_vonage_from":{"type":"string","nullable":true},"sms_template":{"type":"string","nullable":true},"hook_mfa_verification_attempt_enabled":{"type":"boolean","nullable":true},"hook_mfa_verification_attempt_uri":{"type":"string","nullable":true},"hook_mfa_verification_attempt_secrets":{"type":"string","nullable":true},"hook_password_verification_attempt_enabled":{"type":"boolean","nullable":true},"hook_password_verification_attempt_uri":{"type":"string","nullable":true},"hook_password_verification_attempt_secrets":{"type":"string","nullable":true},"hook_custom_access_token_enabled":{"type":"boolean","nullable":true},"hook_custom_access_token_uri":{"type":"string","nullable":true},"hook_custom_access_token_secrets":{"type":"string","nullable":true},"hook_send_sms_enabled":{"type":"boolean","nullable":true},"hook_send_sms_uri":{"type":"string","nullable":true},"hook_send_sms_secrets":{"type":"string","nullable":true},"hook_send_email_enabled":{"type":"boolean","nullable":true},"hook_send_email_uri":{"type":"string","nullable":true},"hook_send_email_secrets":{"type":"string","nullable":true},"hook_before_user_created_enabled":{"type":"boolean","nullable":true},"hook_before_user_created_uri":{"type":"string","nullable":true},"hook_before_user_created_secrets":{"type":"string","nullable":true},"hook_after_user_created_enabled":{"type":"boolean","nullable":true},"hook_after_user_created_uri":{"type":"string","nullable":true},"hook_after_user_created_secrets":{"type":"string","nullable":true},"external_apple_enabled":{"type":"boolean","nullable":true},"external_apple_client_id":{"type":"string","nullable":true},"external_apple_email_optional":{"type":"boolean","nullable":true},"external_apple_secret":{"type":"string","nullable":true},"external_apple_additional_client_ids":{"type":"string","nullable":true},"external_azure_enabled":{"type":"boolean","nullable":true},"external_azure_client_id":{"type":"string","nullable":true},"external_azure_email_optional":{"type":"boolean","nullable":true},"external_azure_secret":{"type":"string","nullable":true},"external_azure_url":{"type":"string","nullable":true},"external_bitbucket_enabled":{"type":"boolean","nullable":true},"external_bitbucket_client_id":{"type":"string","nullable":true},"external_bitbucket_email_optional":{"type":"boolean","nullable":true},"external_bitbucket_secret":{"type":"string","nullable":true},"external_discord_enabled":{"type":"boolean","nullable":true},"external_discord_client_id":{"type":"string","nullable":true},"external_discord_email_optional":{"type":"boolean","nullable":true},"external_discord_secret":{"type":"string","nullable":true},"external_facebook_enabled":{"type":"boolean","nullable":true},"external_facebook_client_id":{"type":"string","nullable":true},"external_facebook_email_optional":{"type":"boolean","nullable":true},"external_facebook_secret":{"type":"string","nullable":true},"external_figma_enabled":{"type":"boolean","nullable":true},"external_figma_client_id":{"type":"string","nullable":true},"external_figma_email_optional":{"type":"boolean","nullable":true},"external_figma_secret":{"type":"string","nullable":true},"external_github_enabled":{"type":"boolean","nullable":true},"external_github_client_id":{"type":"string","nullable":true},"external_github_email_optional":{"type":"boolean","nullable":true},"external_github_secret":{"type":"string","nullable":true},"external_gitlab_enabled":{"type":"boolean","nullable":true},"external_gitlab_client_id":{"type":"string","nullable":true},"external_gitlab_email_optional":{"type":"boolean","nullable":true},"external_gitlab_secret":{"type":"string","nullable":true},"external_gitlab_url":{"type":"string","nullable":true},"external_google_enabled":{"type":"boolean","nullable":true},"external_google_client_id":{"type":"string","nullable":true},"external_google_email_optional":{"type":"boolean","nullable":true},"external_google_secret":{"type":"string","nullable":true},"external_google_additional_client_ids":{"type":"string","nullable":true},"external_google_skip_nonce_check":{"type":"boolean","nullable":true},"external_kakao_enabled":{"type":"boolean","nullable":true},"external_kakao_client_id":{"type":"string","nullable":true},"external_kakao_email_optional":{"type":"boolean","nullable":true},"external_kakao_secret":{"type":"string","nullable":true},"external_keycloak_enabled":{"type":"boolean","nullable":true},"external_keycloak_client_id":{"type":"string","nullable":true},"external_keycloak_email_optional":{"type":"boolean","nullable":true},"external_keycloak_secret":{"type":"string","nullable":true},"external_keycloak_url":{"type":"string","nullable":true},"external_linkedin_oidc_enabled":{"type":"boolean","nullable":true},"external_linkedin_oidc_client_id":{"type":"string","nullable":true},"external_linkedin_oidc_email_optional":{"type":"boolean","nullable":true},"external_linkedin_oidc_secret":{"type":"string","nullable":true},"external_slack_oidc_enabled":{"type":"boolean","nullable":true},"external_slack_oidc_client_id":{"type":"string","nullable":true},"external_slack_oidc_email_optional":{"type":"boolean","nullable":true},"external_slack_oidc_secret":{"type":"string","nullable":true},"external_notion_enabled":{"type":"boolean","nullable":true},"external_notion_client_id":{"type":"string","nullable":true},"external_notion_email_optional":{"type":"boolean","nullable":true},"external_notion_secret":{"type":"string","nullable":true},"external_slack_enabled":{"type":"boolean","nullable":true},"external_slack_client_id":{"type":"string","nullable":true},"external_slack_email_optional":{"type":"boolean","nullable":true},"external_slack_secret":{"type":"string","nullable":true},"external_spotify_enabled":{"type":"boolean","nullable":true},"external_spotify_client_id":{"type":"string","nullable":true},"external_spotify_email_optional":{"type":"boolean","nullable":true},"external_spotify_secret":{"type":"string","nullable":true},"external_twitch_enabled":{"type":"boolean","nullable":true},"external_twitch_client_id":{"type":"string","nullable":true},"external_twitch_email_optional":{"type":"boolean","nullable":true},"external_twitch_secret":{"type":"string","nullable":true},"external_twitter_enabled":{"type":"boolean","nullable":true},"external_twitter_client_id":{"type":"string","nullable":true},"external_twitter_email_optional":{"type":"boolean","nullable":true},"external_twitter_secret":{"type":"string","nullable":true},"external_x_enabled":{"type":"boolean","nullable":true},"external_x_client_id":{"type":"string","nullable":true},"external_x_email_optional":{"type":"boolean","nullable":true},"external_x_secret":{"type":"string","nullable":true},"external_workos_enabled":{"type":"boolean","nullable":true},"external_workos_client_id":{"type":"string","nullable":true},"external_workos_secret":{"type":"string","nullable":true},"external_workos_url":{"type":"string","nullable":true},"external_web3_solana_enabled":{"type":"boolean","nullable":true},"external_web3_ethereum_enabled":{"type":"boolean","nullable":true},"external_zoom_enabled":{"type":"boolean","nullable":true},"external_zoom_client_id":{"type":"string","nullable":true},"external_zoom_email_optional":{"type":"boolean","nullable":true},"external_zoom_secret":{"type":"string","nullable":true},"db_max_pool_size":{"type":"integer","nullable":true},"db_max_pool_size_unit":{"type":"string","enum":["connections","percent"],"nullable":true},"api_max_request_duration":{"type":"integer","nullable":true},"mfa_totp_enroll_enabled":{"type":"boolean","nullable":true},"mfa_totp_verify_enabled":{"type":"boolean","nullable":true},"mfa_web_authn_enroll_enabled":{"type":"boolean","nullable":true},"mfa_web_authn_verify_enabled":{"type":"boolean","nullable":true},"passkey_enabled":{"type":"boolean"},"webauthn_rp_display_name":{"type":"string","nullable":true},"webauthn_rp_id":{"type":"string","nullable":true},"webauthn_rp_origins":{"type":"string","nullable":true},"mfa_phone_enroll_enabled":{"type":"boolean","nullable":true},"mfa_phone_verify_enabled":{"type":"boolean","nullable":true},"mfa_phone_max_frequency":{"type":"integer","minimum":0,"maximum":32767,"nullable":true},"mfa_phone_otp_length":{"type":"integer","minimum":0,"maximum":32767,"nullable":true},"mfa_phone_template":{"type":"string","nullable":true},"nimbus_oauth_client_id":{"type":"string","nullable":true},"nimbus_oauth_client_secret":{"type":"string","nullable":true},"oauth_server_enabled":{"type":"boolean","nullable":true},"oauth_server_allow_dynamic_registration":{"type":"boolean","nullable":true},"oauth_server_authorization_path":{"type":"string","nullable":true},"custom_oauth_enabled":{"type":"boolean"}},"example":{"site_url":"https://app.example.com","disable_signup":false,"jwt_exp":3600}},"CreateThirdPartyAuthBody":{"type":"object","properties":{"oidc_issuer_url":{"type":"string"},"jwks_url":{"type":"string"},"custom_jwks":{}},"example":{"oidc_issuer_url":"https://login.acme.com","jwks_url":"https://login.acme.com/.well-known/jwks.json"}},"ThirdPartyAuth":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string"},"oidc_issuer_url":{"type":"string","nullable":true},"jwks_url":{"type":"string","nullable":true},"custom_jwks":{"nullable":true},"resolved_jwks":{"nullable":true},"inserted_at":{"type":"string"},"updated_at":{"type":"string"},"resolved_at":{"type":"string","nullable":true}},"required":["id","type","inserted_at","updated_at"]},"GetProjectAvailableRestoreVersionsResponse":{"type":"object","properties":{"available_versions":{"type":"array","items":{"type":"object","properties":{"version":{"type":"string"},"release_channel":{"type":"string","enum":["internal","alpha","beta","ga","withdrawn","preview"]},"postgres_engine":{"type":"string","enum":["13","14","15","17","17-oriole"]}},"required":["version","release_channel","postgres_engine"]}}},"required":["available_versions"]},"ListProjectAddonsResponse":{"type":"object","properties":{"selected_addons":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["custom_domain","compute_instance","pitr","ipv4","auth_mfa_phone","auth_mfa_web_authn","log_drain"]},"variant":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","enum":["ci_micro","ci_small","ci_medium","ci_large","ci_xlarge","ci_2xlarge","ci_4xlarge","ci_8xlarge","ci_12xlarge","ci_16xlarge","ci_24xlarge","ci_24xlarge_optimized_cpu","ci_24xlarge_optimized_memory","ci_24xlarge_high_memory","ci_48xlarge","ci_48xlarge_optimized_cpu","ci_48xlarge_optimized_memory","ci_48xlarge_high_memory"]},{"type":"string","enum":["cd_default"]},{"type":"string","enum":["pitr_7","pitr_14","pitr_28"]},{"type":"string","enum":["ipv4_default"]},{"type":"string","enum":["auth_mfa_phone_default"]},{"type":"string","enum":["auth_mfa_web_authn_default"]},{"type":"string","enum":["log_drain_default"]}]},"name":{"type":"string"},"price":{"type":"object","properties":{"description":{"type":"string"},"type":{"type":"string","enum":["fixed","usage"]},"interval":{"type":"string","enum":["monthly","hourly"]},"amount":{"type":"number"}},"required":["description","type","interval","amount"]},"meta":{"description":"Any JSON-serializable value"}},"required":["id","name","price"]}},"required":["type","variant"]}},"available_addons":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["custom_domain","compute_instance","pitr","ipv4","auth_mfa_phone","auth_mfa_web_authn","log_drain"]},"name":{"type":"string"},"variants":{"type":"array","items":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","enum":["ci_micro","ci_small","ci_medium","ci_large","ci_xlarge","ci_2xlarge","ci_4xlarge","ci_8xlarge","ci_12xlarge","ci_16xlarge","ci_24xlarge","ci_24xlarge_optimized_cpu","ci_24xlarge_optimized_memory","ci_24xlarge_high_memory","ci_48xlarge","ci_48xlarge_optimized_cpu","ci_48xlarge_optimized_memory","ci_48xlarge_high_memory"]},{"type":"string","enum":["cd_default"]},{"type":"string","enum":["pitr_7","pitr_14","pitr_28"]},{"type":"string","enum":["ipv4_default"]},{"type":"string","enum":["auth_mfa_phone_default"]},{"type":"string","enum":["auth_mfa_web_authn_default"]},{"type":"string","enum":["log_drain_default"]}]},"name":{"type":"string"},"price":{"type":"object","properties":{"description":{"type":"string"},"type":{"type":"string","enum":["fixed","usage"]},"interval":{"type":"string","enum":["monthly","hourly"]},"amount":{"type":"number"}},"required":["description","type","interval","amount"]},"meta":{"description":"Any JSON-serializable value"}},"required":["id","name","price"]}}},"required":["type","name","variants"]}}},"required":["selected_addons","available_addons"]},"ApplyProjectAddonBody":{"type":"object","properties":{"addon_variant":{"oneOf":[{"type":"string","enum":["ci_micro","ci_small","ci_medium","ci_large","ci_xlarge","ci_2xlarge","ci_4xlarge","ci_8xlarge","ci_12xlarge","ci_16xlarge","ci_24xlarge","ci_24xlarge_optimized_cpu","ci_24xlarge_optimized_memory","ci_24xlarge_high_memory","ci_48xlarge","ci_48xlarge_optimized_cpu","ci_48xlarge_optimized_memory","ci_48xlarge_high_memory"]},{"type":"string","enum":["cd_default"]},{"type":"string","enum":["pitr_7","pitr_14","pitr_28"]},{"type":"string","enum":["ipv4_default"]}]},"addon_type":{"type":"string","enum":["custom_domain","compute_instance","pitr","ipv4","auth_mfa_phone","auth_mfa_web_authn","log_drain"]}},"required":["addon_variant","addon_type"],"example":{"addon_variant":"pitr_7","addon_type":"pitr"}},"ProjectClaimTokenResponse":{"type":"object","properties":{"token_alias":{"type":"string"},"expires_at":{"type":"string"},"created_at":{"type":"string"},"created_by":{"type":"string","format":"uuid"}},"required":["token_alias","expires_at","created_at","created_by"]},"CreateProjectClaimTokenResponse":{"type":"object","properties":{"token":{"type":"string"},"token_alias":{"type":"string"},"expires_at":{"type":"string"},"created_at":{"type":"string"},"created_by":{"type":"string","format":"uuid"}},"required":["token","token_alias","expires_at","created_at","created_by"]},"V1ProjectAdvisorsResponse":{"type":"object","properties":{"lints":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["unindexed_foreign_keys","auth_users_exposed","auth_rls_initplan","no_primary_key","unused_index","multiple_permissive_policies","policy_exists_rls_disabled","rls_enabled_no_policy","duplicate_index","security_definer_view","function_search_path_mutable","rls_disabled_in_public","extension_in_public","rls_references_user_metadata","materialized_view_in_api","foreign_table_in_api","unsupported_reg_types","auth_otp_long_expiry","auth_otp_short_length","ssl_not_enforced","network_restrictions_not_set","password_requirements_min_length","pitr_not_enabled","auth_leaked_password_protection","auth_insufficient_mfa_options","auth_password_policy_missing","leaked_service_key","no_backup_admin","vulnerable_postgres_version"]},"title":{"type":"string"},"level":{"type":"string","enum":["ERROR","WARN","INFO"]},"facing":{"type":"string","enum":["EXTERNAL"]},"categories":{"type":"array","items":{"type":"string","enum":["PERFORMANCE","SECURITY"]}},"description":{"type":"string"},"detail":{"type":"string"},"remediation":{"type":"string"},"metadata":{"type":"object","properties":{"schema":{"type":"string"},"name":{"type":"string"},"entity":{"type":"string"},"type":{"type":"string","enum":["table","view","auth","function","extension","compliance"]},"fkey_name":{"type":"string"},"fkey_columns":{"type":"array","items":{"type":"number"}}}},"cache_key":{"type":"string"}},"required":["name","title","level","facing","categories","description","detail","remediation","cache_key"]}}},"required":["lints"]},"AnalyticsResponse":{"type":"object","properties":{"result":{"type":"array","items":{}},"error":{"oneOf":[{"type":"string"},{"type":"object","properties":{"code":{"type":"number"},"errors":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string"},"location":{"type":"string"},"locationType":{"type":"string"},"message":{"type":"string"},"reason":{"type":"string"}},"required":["domain","location","locationType","message","reason"]}},"message":{"type":"string"},"status":{"type":"string"}},"required":["code","errors","message","status"]}]}}},"V1GetUsageApiCountResponse":{"type":"object","properties":{"result":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time"},"total_auth_requests":{"type":"number"},"total_realtime_requests":{"type":"number"},"total_rest_requests":{"type":"number"},"total_storage_requests":{"type":"number"}},"required":["timestamp","total_auth_requests","total_realtime_requests","total_rest_requests","total_storage_requests"]}},"error":{"oneOf":[{"type":"string"},{"type":"object","properties":{"code":{"type":"number"},"errors":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string"},"location":{"type":"string"},"locationType":{"type":"string"},"message":{"type":"string"},"reason":{"type":"string"}},"required":["domain","location","locationType","message","reason"]}},"message":{"type":"string"},"status":{"type":"string"}},"required":["code","errors","message","status"]}]}}},"V1GetUsageApiRequestsCountResponse":{"type":"object","properties":{"result":{"type":"array","items":{"type":"object","properties":{"count":{"type":"number"}},"required":["count"]}},"error":{"oneOf":[{"type":"string"},{"type":"object","properties":{"code":{"type":"number"},"errors":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string"},"location":{"type":"string"},"locationType":{"type":"string"},"message":{"type":"string"},"reason":{"type":"string"}},"required":["domain","location","locationType","message","reason"]}},"message":{"type":"string"},"status":{"type":"string"}},"required":["code","errors","message","status"]}]}}},"CreateRoleBody":{"type":"object","properties":{"read_only":{"type":"boolean"}},"required":["read_only"],"example":{"read_only":true}},"CreateRoleResponse":{"type":"object","properties":{"role":{"type":"string","minLength":1},"password":{"type":"string","minLength":1},"ttl_seconds":{"type":"integer","minimum":1,"format":"int64"}},"required":["role","password","ttl_seconds"]},"DeleteRolesResponse":{"type":"object","properties":{"message":{"type":"string","enum":["ok"]}},"required":["message"]},"V1ListMigrationsResponse":{"type":"array","items":{"type":"object","properties":{"version":{"type":"string","minLength":1},"name":{"type":"string"}},"required":["version"]}},"V1CreateMigrationBody":{"type":"object","properties":{"query":{"type":"string","minLength":1},"name":{"type":"string"},"rollback":{"type":"string"}},"required":["query"],"example":{"query":"create table public.widgets(id bigint primary key);","name":"create_widgets_table","rollback":"drop table if exists public.widgets;"}},"V1UpsertMigrationBody":{"type":"object","properties":{"query":{"type":"string","minLength":1},"name":{"type":"string"},"rollback":{"type":"string"}},"required":["query"],"example":{"query":"create table public.widgets(id bigint primary key);","name":"create_widgets_table","rollback":"drop table if exists public.widgets;"}},"V1GetMigrationResponse":{"type":"object","properties":{"version":{"type":"string","minLength":1},"name":{"type":"string"},"statements":{"type":"array","items":{"type":"string"}},"rollback":{"type":"array","items":{"type":"string"}},"created_by":{"type":"string"},"idempotency_key":{"type":"string"}},"required":["version"]},"V1PatchMigrationBody":{"type":"object","properties":{"name":{"type":"string"},"rollback":{"type":"string"}},"example":{"name":"create_widgets_table","rollback":"drop table if exists public.widgets;"}},"V1RunQueryBody":{"type":"object","properties":{"query":{"type":"string","minLength":1},"parameters":{"type":"array","items":{}},"read_only":{"type":"boolean"}},"required":["query"],"example":{"query":"select * from pg_stat_activity limit 1;","read_only":true}},"V1ReadOnlyQueryBody":{"type":"object","properties":{"query":{"type":"string","minLength":1},"parameters":{"type":"array","items":{}}},"required":["query"],"example":{"query":"select * from pg_stat_activity limit 1;"}},"GetProjectDbMetadataResponse":{"type":"object","properties":{"databases":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"schemas":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"],"additionalProperties":true}}},"required":["name","schemas"],"additionalProperties":true}}},"required":["databases"]},"V1UpdatePasswordBody":{"type":"object","properties":{"password":{"type":"string","minLength":4}},"required":["password"],"example":{"password":"correct-horse-battery-staple"}},"V1UpdatePasswordResponse":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]},"JitAccessResponse":{"type":"object","properties":{"user_id":{"type":"string","format":"uuid"},"user_roles":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","minLength":1},"expires_at":{"type":"number"},"allowed_networks":{"type":"object","properties":{"allowed_cidrs":{"type":"array","items":{"type":"object","properties":{"cidr":{"type":"string"}},"required":["cidr"]}},"allowed_cidrs_v6":{"type":"array","items":{"type":"object","properties":{"cidr":{"type":"string"}},"required":["cidr"]}}}},"branches_only":{"type":"boolean"}},"required":["role"]}}},"required":["user_id","user_roles"]},"AuthorizeJitAccessBody":{"type":"object","properties":{"role":{"type":"string","minLength":1},"rhost":{"type":"string","minLength":1}},"required":["role","rhost"],"example":{"role":"postgres","rhost":"203.0.113.10"}},"JitAuthorizeAccessResponse":{"type":"object","properties":{"user_id":{"type":"string","format":"uuid"},"user_role":{"type":"object","properties":{"role":{"type":"string","minLength":1},"expires_at":{"type":"number"},"allowed_networks":{"type":"object","properties":{"allowed_cidrs":{"type":"array","items":{"type":"object","properties":{"cidr":{"type":"string"}},"required":["cidr"]}},"allowed_cidrs_v6":{"type":"array","items":{"type":"object","properties":{"cidr":{"type":"string"}},"required":["cidr"]}}}},"branches_only":{"type":"boolean"}},"required":["role"]}},"required":["user_id","user_role"]},"JitListAccessResponse":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"user_id":{"type":"string","format":"uuid"},"user_roles":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","minLength":1},"expires_at":{"type":"number"},"allowed_networks":{"type":"object","properties":{"allowed_cidrs":{"type":"array","items":{"type":"object","properties":{"cidr":{"type":"string"}},"required":["cidr"]}},"allowed_cidrs_v6":{"type":"array","items":{"type":"object","properties":{"cidr":{"type":"string"}},"required":["cidr"]}}}},"branches_only":{"type":"boolean"}},"required":["role"]}}},"required":["user_id","user_roles"]}}},"required":["items"]},"UpdateJitAccessBody":{"type":"object","properties":{"user_id":{"type":"string","format":"uuid","minLength":1},"roles":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","minLength":1},"expires_at":{"type":"number"},"allowed_networks":{"type":"object","properties":{"allowed_cidrs":{"type":"array","items":{"type":"object","properties":{"cidr":{"type":"string"}},"required":["cidr"]}},"allowed_cidrs_v6":{"type":"array","items":{"type":"object","properties":{"cidr":{"type":"string"}},"required":["cidr"]}}}},"branches_only":{"type":"boolean"}},"required":["role"]}}},"required":["user_id","roles"],"example":{"user_id":"55555555-5555-4555-8555-555555555555","roles":[{"role":"postgres","expires_at":1740787200,"allowed_networks":{"allowed_cidrs":[{"cidr":"203.0.113.0/24"}]},"branches_only":false}]}},"FunctionResponse":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string","enum":["ACTIVE","REMOVED","THROTTLED"]},"version":{"type":"integer"},"created_at":{"type":"integer","format":"int64"},"updated_at":{"type":"integer","format":"int64"},"verify_jwt":{"type":"boolean"},"import_map":{"type":"boolean"},"entrypoint_path":{"type":"string"},"import_map_path":{"type":"string"},"ezbr_sha256":{"type":"string"}},"required":["id","slug","name","status","version","created_at","updated_at"]},"V1CreateFunctionBody":{"type":"object","properties":{"slug":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_-]*$"},"name":{"type":"string"},"body":{"type":"string"},"verify_jwt":{"type":"boolean"}},"required":["slug","name","body"],"example":{"slug":"hello-world","name":"Hello World","body":"Deno.serve(() => new Response('Hello, world!'))","verify_jwt":true}},"BulkUpdateFunctionBody":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_-]*$"},"name":{"type":"string"},"status":{"type":"string","enum":["ACTIVE","REMOVED","THROTTLED"]},"version":{"type":"integer"},"created_at":{"type":"integer","format":"int64"},"verify_jwt":{"type":"boolean"},"import_map":{"type":"boolean"},"entrypoint_path":{"type":"string"},"import_map_path":{"type":"string"},"ezbr_sha256":{"type":"string"}},"required":["id","slug","name","status","version"]},"example":[{"id":"3c078cce-ad70-4148-9f37-4da362789053","slug":"hello-world","name":"Hello World","status":"ACTIVE","version":2,"verify_jwt":true,"entrypoint_path":"index.ts"}]},"BulkUpdateFunctionResponse":{"type":"object","properties":{"functions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string","enum":["ACTIVE","REMOVED","THROTTLED"]},"version":{"type":"integer"},"created_at":{"type":"integer","format":"int64"},"updated_at":{"type":"integer","format":"int64"},"verify_jwt":{"type":"boolean"},"import_map":{"type":"boolean"},"entrypoint_path":{"type":"string"},"import_map_path":{"type":"string"},"ezbr_sha256":{"type":"string"}},"required":["id","slug","name","status","version","created_at","updated_at"]}}},"required":["functions"]},"FunctionDeployBody":{"type":"object","properties":{"file":{"type":"array","items":{"type":"string","format":"binary"}},"metadata":{"type":"object","properties":{"entrypoint_path":{"type":"string"},"import_map_path":{"type":"string"},"static_patterns":{"type":"array","items":{"type":"string"}},"verify_jwt":{"type":"boolean"},"name":{"type":"string"}},"required":["entrypoint_path"]}},"required":["metadata"],"example":{"file":["./supabase/functions/hello-world/index.ts"],"metadata":{"entrypoint_path":"index.ts","verify_jwt":true,"name":"Hello World"}}},"DeployFunctionResponse":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string","enum":["ACTIVE","REMOVED","THROTTLED"]},"version":{"type":"integer"},"created_at":{"type":"integer","format":"int64"},"updated_at":{"type":"integer","format":"int64"},"verify_jwt":{"type":"boolean"},"import_map":{"type":"boolean"},"entrypoint_path":{"type":"string"},"import_map_path":{"type":"string"},"ezbr_sha256":{"type":"string"}},"required":["id","slug","name","status","version"]},"FunctionSlugResponse":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string","enum":["ACTIVE","REMOVED","THROTTLED"]},"version":{"type":"integer"},"created_at":{"type":"integer","format":"int64"},"updated_at":{"type":"integer","format":"int64"},"verify_jwt":{"type":"boolean"},"import_map":{"type":"boolean"},"entrypoint_path":{"type":"string"},"import_map_path":{"type":"string"},"ezbr_sha256":{"type":"string"}},"required":["id","slug","name","status","version","created_at","updated_at"]},"StreamableFile":{"type":"object","properties":{}},"V1UpdateFunctionBody":{"type":"object","properties":{"name":{"type":"string"},"body":{"type":"string"},"verify_jwt":{"type":"boolean"}},"example":{"name":"Hello World","body":"Deno.serve(() => new Response('Hello again!'))","verify_jwt":true}},"V1StorageBucketResponse":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"owner":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"public":{"type":"boolean"}},"required":["id","name","owner","created_at","updated_at","public"]},"DiskResponse":{"type":"object","properties":{"attributes":{"oneOf":[{"type":"object","properties":{"iops":{"type":"integer","minimum":0,"exclusiveMinimum":true},"size_gb":{"type":"integer","minimum":0,"exclusiveMinimum":true},"throughput_mibps":{"type":"integer","minimum":0,"exclusiveMinimum":true},"type":{"type":"string","enum":["gp3"]}},"required":["iops","size_gb","type"]},{"type":"object","properties":{"iops":{"type":"integer","minimum":0,"exclusiveMinimum":true},"size_gb":{"type":"integer","minimum":0,"exclusiveMinimum":true},"type":{"type":"string","enum":["io2"]}},"required":["iops","size_gb","type"]}]},"last_modified_at":{"type":"string"}},"required":["attributes"]},"DiskRequestBody":{"type":"object","properties":{"attributes":{"discriminator":{"propertyName":"type"},"oneOf":[{"type":"object","properties":{"iops":{"type":"integer","minimum":0,"exclusiveMinimum":true},"size_gb":{"type":"integer","minimum":0,"exclusiveMinimum":true},"throughput_mibps":{"type":"integer","minimum":0,"exclusiveMinimum":true},"type":{"type":"string","enum":["gp3"]}},"required":["iops","size_gb","type"]},{"type":"object","properties":{"iops":{"type":"integer","minimum":0,"exclusiveMinimum":true},"size_gb":{"type":"integer","minimum":0,"exclusiveMinimum":true},"type":{"type":"string","enum":["io2"]}},"required":["iops","size_gb","type"]}]}},"required":["attributes"],"example":{"attributes":{"type":"gp3","size_gb":100,"iops":3000,"throughput_mibps":125}}},"DiskUtilMetricsResponse":{"type":"object","properties":{"timestamp":{"type":"string"},"metrics":{"type":"object","properties":{"fs_size_bytes":{"type":"number"},"fs_avail_bytes":{"type":"number"},"fs_used_bytes":{"type":"number"}},"required":["fs_size_bytes","fs_avail_bytes","fs_used_bytes"]}},"required":["timestamp","metrics"]},"DiskAutoscaleConfig":{"type":"object","properties":{"growth_percent":{"type":"integer","minimum":0,"exclusiveMinimum":true,"nullable":true,"description":"Growth percentage for disk autoscaling"},"min_increment_gb":{"type":"integer","minimum":0,"exclusiveMinimum":true,"nullable":true,"description":"Minimum increment size for disk autoscaling in GB"},"max_size_gb":{"type":"integer","minimum":0,"exclusiveMinimum":true,"nullable":true,"description":"Maximum limit the disk size will grow to in GB"}},"required":["growth_percent","min_increment_gb","max_size_gb"]},"StorageConfigResponse":{"type":"object","properties":{"fileSizeLimit":{"type":"integer","format":"int64"},"features":{"type":"object","properties":{"imageTransformation":{"type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"]},"s3Protocol":{"type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"]},"icebergCatalog":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxNamespaces":{"type":"integer","minimum":0},"maxTables":{"type":"integer","minimum":0},"maxCatalogs":{"type":"integer","minimum":0}},"required":["enabled","maxNamespaces","maxTables","maxCatalogs"]},"vectorBuckets":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxBuckets":{"type":"integer","minimum":0},"maxIndexes":{"type":"integer","minimum":0}},"required":["enabled","maxBuckets","maxIndexes"]}},"required":["imageTransformation","s3Protocol","icebergCatalog","vectorBuckets"]},"capabilities":{"type":"object","properties":{"list_v2":{"type":"boolean"},"iceberg_catalog":{"type":"boolean"}},"required":["list_v2","iceberg_catalog"]},"external":{"type":"object","properties":{"upstreamTarget":{"type":"string","enum":["main","canary"]}},"required":["upstreamTarget"]},"migrationVersion":{"type":"string"},"databasePoolMode":{"type":"string"}},"required":["fileSizeLimit","features","capabilities","external","migrationVersion","databasePoolMode"]},"UpdateStorageConfigBody":{"type":"object","properties":{"fileSizeLimit":{"type":"integer","minimum":0,"maximum":536870912000,"format":"int64"},"features":{"type":"object","properties":{"imageTransformation":{"type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"]},"s3Protocol":{"type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"]},"icebergCatalog":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxNamespaces":{"type":"integer","minimum":0},"maxTables":{"type":"integer","minimum":0},"maxCatalogs":{"type":"integer","minimum":0}},"required":["enabled","maxNamespaces","maxTables","maxCatalogs"]},"vectorBuckets":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxBuckets":{"type":"integer","minimum":0},"maxIndexes":{"type":"integer","minimum":0}},"required":["enabled","maxBuckets","maxIndexes"]}}},"external":{"type":"object","properties":{"upstreamTarget":{"type":"string","enum":["main","canary"]}},"required":["upstreamTarget"]}},"additionalProperties":false,"example":{"fileSizeLimit":10485760,"features":{"imageTransformation":{"enabled":true}}}},"V1PgbouncerConfigResponse":{"type":"object","properties":{"default_pool_size":{"type":"integer"},"ignore_startup_parameters":{"type":"string"},"max_client_conn":{"type":"integer"},"pool_mode":{"type":"string","enum":["transaction","session","statement"]},"connection_string":{"type":"string"},"server_idle_timeout":{"type":"integer"},"server_lifetime":{"type":"integer"},"query_wait_timeout":{"type":"integer"},"reserve_pool_size":{"type":"integer"}}},"SupavisorConfigResponse":{"type":"object","properties":{"identifier":{"type":"string"},"database_type":{"type":"string","enum":["PRIMARY","READ_REPLICA"]},"is_using_scram_auth":{"type":"boolean"},"db_user":{"type":"string"},"db_host":{"type":"string"},"db_port":{"type":"integer"},"db_name":{"type":"string"},"connection_string":{"type":"string"},"connectionString":{"type":"string","description":"Use connection_string instead"},"default_pool_size":{"type":"integer","nullable":true},"max_client_conn":{"type":"integer","nullable":true},"pool_mode":{"type":"string","enum":["transaction","session"]}},"required":["identifier","database_type","is_using_scram_auth","db_user","db_host","db_port","db_name","connection_string","connectionString","default_pool_size","max_client_conn","pool_mode"]},"UpdateSupavisorConfigBody":{"type":"object","properties":{"default_pool_size":{"type":"integer","minimum":0,"maximum":3000,"nullable":true},"pool_mode":{"type":"string","enum":["transaction","session"],"description":"Dedicated pooler mode for the project"}},"example":{"default_pool_size":25,"pool_mode":"transaction"}},"UpdateSupavisorConfigResponse":{"type":"object","properties":{"default_pool_size":{"type":"integer","nullable":true},"pool_mode":{"type":"string"}},"required":["default_pool_size","pool_mode"]},"PostgresConfigResponse":{"type":"object","properties":{"effective_cache_size":{"type":"string"},"logical_decoding_work_mem":{"type":"string"},"maintenance_work_mem":{"type":"string"},"track_activity_query_size":{"type":"string"},"max_connections":{"type":"integer","minimum":1,"maximum":262143},"max_locks_per_transaction":{"type":"integer","minimum":10,"maximum":2147483640},"max_parallel_maintenance_workers":{"type":"integer","minimum":0,"maximum":1024},"max_parallel_workers":{"type":"integer","minimum":0,"maximum":1024},"max_parallel_workers_per_gather":{"type":"integer","minimum":0,"maximum":1024},"max_replication_slots":{"type":"integer"},"max_slot_wal_keep_size":{"type":"string"},"max_standby_archive_delay":{"type":"string"},"max_standby_streaming_delay":{"type":"string"},"max_wal_size":{"type":"string"},"max_wal_senders":{"type":"integer"},"max_worker_processes":{"type":"integer","minimum":0,"maximum":262143},"session_replication_role":{"type":"string","enum":["origin","replica","local"]},"shared_buffers":{"type":"string"},"statement_timeout":{"type":"string","description":"Default unit: ms","pattern":"^(-?[0-9]+(?:\\.[0-9]+)?)(us|ms|s|min|h|d)?$"},"track_commit_timestamp":{"type":"boolean"},"wal_keep_size":{"type":"string"},"wal_sender_timeout":{"type":"string","description":"Default unit: ms","pattern":"^(-?[0-9]+(?:\\.[0-9]+)?)(us|ms|s|min|h|d)?$"},"work_mem":{"type":"string"},"checkpoint_timeout":{"type":"string","description":"Default unit: s","pattern":"^(-?[0-9]+(?:\\.[0-9]+)?)(us|ms|s|min|h|d)?$"},"hot_standby_feedback":{"type":"boolean"}}},"UpdatePostgresConfigBody":{"type":"object","properties":{"effective_cache_size":{"type":"string"},"logical_decoding_work_mem":{"type":"string"},"maintenance_work_mem":{"type":"string"},"track_activity_query_size":{"type":"string"},"max_connections":{"type":"integer","minimum":1,"maximum":262143},"max_locks_per_transaction":{"type":"integer","minimum":10,"maximum":2147483640},"max_parallel_maintenance_workers":{"type":"integer","minimum":0,"maximum":1024},"max_parallel_workers":{"type":"integer","minimum":0,"maximum":1024},"max_parallel_workers_per_gather":{"type":"integer","minimum":0,"maximum":1024},"max_replication_slots":{"type":"integer"},"max_slot_wal_keep_size":{"type":"string"},"max_standby_archive_delay":{"type":"string"},"max_standby_streaming_delay":{"type":"string"},"max_wal_size":{"type":"string"},"max_wal_senders":{"type":"integer"},"max_worker_processes":{"type":"integer","minimum":0,"maximum":262143},"session_replication_role":{"type":"string","enum":["origin","replica","local"]},"shared_buffers":{"type":"string"},"statement_timeout":{"type":"string","description":"Default unit: ms","pattern":"^(-?[0-9]+(?:\\.[0-9]+)?)(us|ms|s|min|h|d)?$"},"track_commit_timestamp":{"type":"boolean"},"wal_keep_size":{"type":"string"},"wal_sender_timeout":{"type":"string","description":"Default unit: ms","pattern":"^(-?[0-9]+(?:\\.[0-9]+)?)(us|ms|s|min|h|d)?$"},"work_mem":{"type":"string"},"checkpoint_timeout":{"type":"string","description":"Default unit: s","pattern":"^(-?[0-9]+(?:\\.[0-9]+)?)(us|ms|s|min|h|d)?$"},"hot_standby_feedback":{"type":"boolean"},"restart_database":{"type":"boolean"}},"additionalProperties":false,"example":{"max_connections":120,"shared_buffers":"256MB","work_mem":"4MB","statement_timeout":"60000ms"}},"RealtimeConfigResponse":{"type":"object","properties":{"private_only":{"type":"boolean","nullable":true,"description":"Whether to only allow private channels"},"connection_pool":{"type":"integer","minimum":1,"maximum":100,"nullable":true,"description":"Sets connection pool size for Realtime Authorization"},"max_concurrent_users":{"type":"integer","minimum":1,"maximum":50000,"nullable":true,"description":"Sets maximum number of concurrent users rate limit"},"max_events_per_second":{"type":"integer","minimum":1,"maximum":50000,"nullable":true,"description":"Sets maximum number of events per second rate per channel limit"},"max_bytes_per_second":{"type":"integer","minimum":1,"maximum":10000000,"nullable":true,"description":"Sets maximum number of bytes per second rate per channel limit"},"max_channels_per_client":{"type":"integer","minimum":1,"maximum":10000,"nullable":true,"description":"Sets maximum number of channels per client rate limit"},"max_joins_per_second":{"type":"integer","minimum":1,"maximum":5000,"nullable":true,"description":"Sets maximum number of joins per second rate limit"},"max_presence_events_per_second":{"type":"integer","minimum":1,"maximum":5000,"nullable":true,"description":"Sets maximum number of presence events per second rate limit"},"max_payload_size_in_kb":{"type":"integer","minimum":1,"maximum":10000,"nullable":true,"description":"Sets maximum number of payload size in KB rate limit"},"suspend":{"type":"boolean","nullable":true,"description":"Disables the Realtime service for this project when true. Set to false to re-enable it."},"presence_enabled":{"type":"boolean","description":"Whether to enable presence"}},"required":["private_only","connection_pool","max_concurrent_users","max_events_per_second","max_bytes_per_second","max_channels_per_client","max_joins_per_second","max_presence_events_per_second","max_payload_size_in_kb","suspend","presence_enabled"]},"UpdateRealtimeConfigBody":{"type":"object","properties":{"private_only":{"type":"boolean","description":"Whether to only allow private channels"},"connection_pool":{"type":"integer","minimum":1,"maximum":100,"description":"Sets connection pool size for Realtime Authorization"},"max_concurrent_users":{"type":"integer","minimum":1,"maximum":50000,"description":"Sets maximum number of concurrent users rate limit"},"max_events_per_second":{"type":"integer","minimum":1,"maximum":50000,"description":"Sets maximum number of events per second rate per channel limit"},"max_bytes_per_second":{"type":"integer","minimum":1,"maximum":10000000,"description":"Sets maximum number of bytes per second rate per channel limit"},"max_channels_per_client":{"type":"integer","minimum":1,"maximum":10000,"description":"Sets maximum number of channels per client rate limit"},"max_joins_per_second":{"type":"integer","minimum":1,"maximum":5000,"description":"Sets maximum number of joins per second rate limit"},"max_presence_events_per_second":{"type":"integer","minimum":1,"maximum":5000,"description":"Sets maximum number of presence events per second rate limit"},"max_payload_size_in_kb":{"type":"integer","minimum":1,"maximum":10000,"description":"Sets maximum number of payload size in KB rate limit"},"suspend":{"type":"boolean","description":"Disables the Realtime service for this project when true. Set to false to re-enable it."},"presence_enabled":{"type":"boolean","description":"Whether to enable presence"}},"additionalProperties":false,"example":{"private_only":false,"max_concurrent_users":1000,"max_channels_per_client":100}},"CreateProviderBody":{"type":"object","properties":{"type":{"type":"string","enum":["saml"],"description":"What type of provider will be created"},"metadata_xml":{"type":"string"},"metadata_url":{"type":"string"},"domains":{"type":"array","items":{"type":"string"}},"attribute_mapping":{"type":"object","properties":{"keys":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"names":{"type":"array","items":{"type":"string"}},"default":{"oneOf":[{"type":"object","properties":{}},{"type":"number"},{"type":"string"},{"type":"boolean"}]},"array":{"type":"boolean"}}}}},"required":["keys"]},"name_id_format":{"type":"string","enum":["urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified","urn:oasis:names:tc:SAML:2.0:nameid-format:transient","urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress","urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"]}},"required":["type"],"example":{"type":"saml","metadata_url":"https://sso.acme.com/metadata.xml","domains":["acme.com"],"attribute_mapping":{"keys":{"email":{"name":"email"},"first_name":{"name":"first_name"},"last_name":{"name":"last_name"}}}}},"CreateProviderResponse":{"type":"object","properties":{"id":{"type":"string"},"saml":{"type":"object","properties":{"id":{"type":"string"},"entity_id":{"type":"string"},"metadata_url":{"type":"string"},"metadata_xml":{"type":"string"},"attribute_mapping":{"type":"object","properties":{"keys":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"names":{"type":"array","items":{"type":"string"}},"default":{"oneOf":[{"type":"object","properties":{}},{"type":"number"},{"type":"string"},{"type":"boolean"}]},"array":{"type":"boolean"}}}}},"required":["keys"]},"name_id_format":{"type":"string","enum":["urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified","urn:oasis:names:tc:SAML:2.0:nameid-format:transient","urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress","urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"]}},"required":["id","entity_id"]},"domains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"domain":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]}},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]},"ListProvidersResponse":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"saml":{"type":"object","properties":{"id":{"type":"string"},"entity_id":{"type":"string"},"metadata_url":{"type":"string"},"metadata_xml":{"type":"string"},"attribute_mapping":{"type":"object","properties":{"keys":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"names":{"type":"array","items":{"type":"string"}},"default":{"oneOf":[{"type":"object","properties":{}},{"type":"number"},{"type":"string"},{"type":"boolean"}]},"array":{"type":"boolean"}}}}},"required":["keys"]},"name_id_format":{"type":"string","enum":["urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified","urn:oasis:names:tc:SAML:2.0:nameid-format:transient","urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress","urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"]}},"required":["id","entity_id"]},"domains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"domain":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]}},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]}}},"required":["items"]},"GetProviderResponse":{"type":"object","properties":{"id":{"type":"string"},"saml":{"type":"object","properties":{"id":{"type":"string"},"entity_id":{"type":"string"},"metadata_url":{"type":"string"},"metadata_xml":{"type":"string"},"attribute_mapping":{"type":"object","properties":{"keys":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"names":{"type":"array","items":{"type":"string"}},"default":{"oneOf":[{"type":"object","properties":{}},{"type":"number"},{"type":"string"},{"type":"boolean"}]},"array":{"type":"boolean"}}}}},"required":["keys"]},"name_id_format":{"type":"string","enum":["urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified","urn:oasis:names:tc:SAML:2.0:nameid-format:transient","urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress","urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"]}},"required":["id","entity_id"]},"domains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"domain":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]}},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]},"UpdateProviderBody":{"type":"object","properties":{"metadata_xml":{"type":"string"},"metadata_url":{"type":"string"},"domains":{"type":"array","items":{"type":"string"}},"attribute_mapping":{"type":"object","properties":{"keys":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"names":{"type":"array","items":{"type":"string"}},"default":{"oneOf":[{"type":"object","properties":{}},{"type":"number"},{"type":"string"},{"type":"boolean"}]},"array":{"type":"boolean"}}}}},"required":["keys"]},"name_id_format":{"type":"string","enum":["urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified","urn:oasis:names:tc:SAML:2.0:nameid-format:transient","urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress","urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"]}},"example":{"metadata_url":"https://sso.acme.com/metadata.xml","domains":["acme.com","contractors.acme.com"]}},"UpdateProviderResponse":{"type":"object","properties":{"id":{"type":"string"},"saml":{"type":"object","properties":{"id":{"type":"string"},"entity_id":{"type":"string"},"metadata_url":{"type":"string"},"metadata_xml":{"type":"string"},"attribute_mapping":{"type":"object","properties":{"keys":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"names":{"type":"array","items":{"type":"string"}},"default":{"oneOf":[{"type":"object","properties":{}},{"type":"number"},{"type":"string"},{"type":"boolean"}]},"array":{"type":"boolean"}}}}},"required":["keys"]},"name_id_format":{"type":"string","enum":["urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified","urn:oasis:names:tc:SAML:2.0:nameid-format:transient","urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress","urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"]}},"required":["id","entity_id"]},"domains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"domain":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]}},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]},"DeleteProviderResponse":{"type":"object","properties":{"id":{"type":"string"},"saml":{"type":"object","properties":{"id":{"type":"string"},"entity_id":{"type":"string"},"metadata_url":{"type":"string"},"metadata_xml":{"type":"string"},"attribute_mapping":{"type":"object","properties":{"keys":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"names":{"type":"array","items":{"type":"string"}},"default":{"oneOf":[{"type":"object","properties":{}},{"type":"number"},{"type":"string"},{"type":"boolean"}]},"array":{"type":"boolean"}}}}},"required":["keys"]},"name_id_format":{"type":"string","enum":["urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified","urn:oasis:names:tc:SAML:2.0:nameid-format:transient","urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress","urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"]}},"required":["id","entity_id"]},"domains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"domain":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]}},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]},"V1BackupsResponse":{"type":"object","properties":{"region":{"type":"string"},"walg_enabled":{"type":"boolean"},"pitr_enabled":{"type":"boolean"},"backups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"is_physical_backup":{"type":"boolean"},"status":{"type":"string","enum":["COMPLETED","FAILED","PENDING","REMOVED","ARCHIVED","CANCELLED"]},"inserted_at":{"type":"string"}},"required":["id","is_physical_backup","status","inserted_at"]}},"physical_backup_data":{"type":"object","properties":{"earliest_physical_backup_date_unix":{"type":"integer"},"latest_physical_backup_date_unix":{"type":"integer"}}}},"required":["region","walg_enabled","pitr_enabled","backups","physical_backup_data"]},"V1RestorePitrBody":{"type":"object","properties":{"recovery_time_target_unix":{"type":"integer","minimum":0,"format":"int64"}},"required":["recovery_time_target_unix"],"example":{"recovery_time_target_unix":1740787200}},"V1RestorePointPostBody":{"type":"object","properties":{"name":{"type":"string","maxLength":20}},"required":["name"],"example":{"name":"before-upgrade"}},"V1RestorePointResponse":{"type":"object","properties":{"name":{"type":"string"},"status":{"type":"string","enum":["AVAILABLE","PENDING","REMOVED","FAILED"]},"completed_on":{"type":"string","format":"date-time","nullable":true}},"required":["name","status","completed_on"]},"V1RestoreBackupBody":{"type":"object","properties":{"id":{"type":"integer"}},"required":["id"],"example":{"id":12345}},"V1BackupScheduleResponse":{"type":"object","properties":{"schedule_for":{"type":"string","description":"Time of day to schedule daily backups, in UTC. Format: HH:MM:SS.","example":"04:00:00"},"updated_at":{"type":"string","format":"date-time","description":"Timestamp of when the backup schedule was last updated.","example":"2026-05-04T14:40:44+00:00"}},"required":["schedule_for","updated_at"]},"V1UpdateBackupScheduleBody":{"type":"object","properties":{"schedule_for":{"type":"string","description":"Time of day to schedule daily backups, in UTC. Format: HH:MM:SS.","example":"04:00:00"}},"required":["schedule_for"],"example":{"schedule_for":"04:00:00"}},"V1UndoBody":{"type":"object","properties":{"name":{"type":"string","maxLength":20}},"required":["name"],"example":{"name":"before-upgrade"}},"V1ListEntitlementsResponse":{"type":"object","properties":{"entitlements":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"object","properties":{"key":{"type":"string","enum":["instances.compute_update_available_sizes","instances.read_replicas","instances.disk_modifications","instances.high_availability","instances.orioledb","replication.etl","storage.max_file_size","storage.max_file_size.configurable","storage.image_transformations","storage.vector_buckets","storage.iceberg_catalog","security.audit_logs_days","security.questionnaire","security.soc2_report","security.iso27001_certificate","security.private_link","security.enforce_mfa","log.retention_days","custom_domain","vanity_subdomain","ipv4","pitr.available_variants","log_drains","audit_log_drains","branching_limit","branching_persistent","auth.mfa_phone","auth.mfa_web_authn","auth.mfa_enhanced_security","auth.hooks","auth.platform.sso","auth.custom_jwt_template","auth.saml_2","auth.user_sessions","auth.leaked_password_protection","auth.advanced_auth_settings","auth.performance_settings","auth.password_hibp","auth.custom_oauth.max_providers","backup.retention_days","backup.restore_to_new_project","backup.schedule","function.max_count","function.size_limit_mb","realtime.max_concurrent_users","realtime.max_events_per_second","realtime.max_joins_per_second","realtime.max_channels_per_client","realtime.max_bytes_per_second","realtime.max_presence_events_per_second","realtime.max_payload_size_in_kb","project_scoped_roles","security.member_roles","project_pausing","project_cloning","project_restore_after_expiry","assistant.advance_model","integrations.github_connections","dedicated_pooler","observability.dashboard_advanced_metrics"]},"type":{"type":"string","enum":["boolean","numeric","set"]}},"required":["key","type"]},"hasAccess":{"type":"boolean"},"type":{"type":"string","enum":["boolean","numeric","set"]},"config":{"oneOf":[{"type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"]},{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"number"},"unlimited":{"type":"boolean"},"unit":{"type":"string"}},"required":["enabled","value","unlimited","unit"]},{"type":"object","properties":{"enabled":{"type":"boolean"},"set":{"type":"array","items":{"type":"string"}}},"required":["enabled","set"]}]}},"required":["feature","hasAccess","type","config"]}}},"required":["entitlements"]},"V1OrganizationMemberResponse":{"type":"object","properties":{"user_id":{"type":"string"},"user_name":{"type":"string"},"email":{"type":"string"},"role_name":{"type":"string"},"mfa_enabled":{"type":"boolean"}},"required":["user_id","user_name","role_name","mfa_enabled"]},"V1OrganizationSlugResponse":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"plan":{"type":"string","enum":["free","pro","team","enterprise","platform"]},"opt_in_tags":{"type":"array","items":{"type":"string","enum":["AI_SQL_GENERATOR_OPT_IN","AI_DATA_GENERATOR_OPT_IN","AI_LOG_GENERATOR_OPT_IN"]}},"allowed_release_channels":{"type":"array","items":{"type":"string","enum":["internal","alpha","beta","ga","withdrawn","preview"]}}},"required":["id","name","opt_in_tags","allowed_release_channels"]},"OrganizationProjectClaimResponse":{"type":"object","properties":{"project":{"type":"object","properties":{"ref":{"type":"string"},"name":{"type":"string"}},"required":["ref","name"]},"preview":{"type":"object","properties":{"valid":{"type":"boolean"},"warnings":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"message":{"type":"string"}},"required":["key","message"]}},"errors":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"message":{"type":"string"}},"required":["key","message"]}},"info":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"message":{"type":"string"}},"required":["key","message"]}},"members_exceeding_free_project_limit":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"limit":{"type":"number"}},"required":["name","limit"]}},"source_subscription_plan":{"type":"string","enum":["free","pro","team","enterprise","platform"]},"target_subscription_plan":{"type":"string","enum":["free","pro","team","enterprise","platform"],"nullable":true}},"required":["valid","warnings","errors","info","members_exceeding_free_project_limit","source_subscription_plan","target_subscription_plan"]},"expires_at":{"type":"string"},"created_at":{"type":"string"},"created_by":{"type":"string","format":"uuid"}},"required":["project","preview","expires_at","created_at","created_by"]},"OrganizationProjectsResponse":{"type":"object","properties":{"projects":{"type":"array","items":{"type":"object","properties":{"ref":{"type":"string"},"name":{"type":"string"},"cloud_provider":{"type":"string"},"region":{"type":"string"},"is_branch":{"type":"boolean"},"status":{"type":"string","enum":["INACTIVE","ACTIVE_HEALTHY","ACTIVE_UNHEALTHY","COMING_UP","UNKNOWN","GOING_DOWN","INIT_FAILED","REMOVED","RESTORING","UPGRADING","PAUSING","RESTORE_FAILED","RESTARTING","PAUSE_FAILED","RESIZING"]},"inserted_at":{"type":"string"},"databases":{"type":"array","items":{"type":"object","properties":{"infra_compute_size":{"type":"string","enum":["pico","nano","micro","small","medium","large","xlarge","2xlarge","4xlarge","8xlarge","12xlarge","16xlarge","24xlarge","24xlarge_optimized_memory","24xlarge_optimized_cpu","24xlarge_high_memory","48xlarge","48xlarge_optimized_memory","48xlarge_optimized_cpu","48xlarge_high_memory"]},"region":{"type":"string"},"status":{"type":"string","enum":["ACTIVE_HEALTHY","ACTIVE_UNHEALTHY","COMING_UP","GOING_DOWN","INIT_FAILED","REMOVED","RESTORING","UNKNOWN","INIT_READ_REPLICA","INIT_READ_REPLICA_FAILED","RESTARTING","RESIZING"]},"cloud_provider":{"type":"string"},"identifier":{"type":"string"},"type":{"type":"string","enum":["PRIMARY","READ_REPLICA"]},"disk_volume_size_gb":{"type":"number"},"disk_type":{"type":"string","enum":["gp3","io2"]},"disk_throughput_mbps":{"type":"number"},"disk_last_modified_at":{"type":"string"}},"required":["region","status","cloud_provider","identifier","type"]}}},"required":["ref","name","cloud_provider","region","is_branch","status","inserted_at","databases"]}},"pagination":{"type":"object","properties":{"count":{"type":"number","description":"Total number of projects. Use this to calculate the total number of pages."},"limit":{"type":"number","description":"Maximum number of projects per page"},"offset":{"type":"number","description":"Number of projects skipped in this response"}},"required":["count","limit","offset"]}},"required":["projects","pagination"]}}}}