{"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.\n\nUse `/v1/organizations/{slug}/projects` instead when possible to get more precise results and pagination support.","operationId":"v1-list-all-projects","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/V1ProjectWithDatabaseResponse"}}}}}},"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"}}}}},"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"}}}}},"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"}}}},"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":""}},"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"}}}},"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"}}}},"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"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"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"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"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"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"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"}}],"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/JitAccessResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to retrieve project's JIT access config"}},"security":[{"bearer":[]},{"fga_permissions":["project_admin_read"]}],"summary":"[Beta] Get project's just-in-time 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/JitAccessResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden action"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Failed to update project's just-in-time access configuration."}},"security":[{"bearer":[]},{"fga_permissions":["project_admin_write"]}],"summary":"[Beta] Update project's just-in-time 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/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_projects_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"}}}},"500":{"description":"Failed to retrieve projects"}},"security":[{"bearer":[]},{"fga_permissions":["organization_projects_read"]}],"summary":"Gets all projects for the given organization","tags":["Projects"],"x-endpoint-owners":["management-api"]}}},"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"]},"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"]},"V1ListProjectsPaginatedResponse":{"type":"object","properties":{"projects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"cloud_provider":{"type":"string"},"inserted_at":{"type":"string","nullable":true},"name":{"type":"string"},"organization_id":{"type":"number"},"organization_slug":{"type":"string"},"ref":{"type":"string"},"region":{"type":"string"},"status":{"type":"string"},"subscription_id":{"type":"string","nullable":true},"is_branch_enabled":{"type":"boolean"},"is_physical_backups_enabled":{"type":"boolean","nullable":true},"preview_branch_refs":{"type":"array","items":{"type":"string"}},"disk_volume_size_gb":{"type":"number"},"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"]}},"required":["id","cloud_provider","inserted_at","name","organization_id","organization_slug","ref","region","status","subscription_id","is_branch_enabled","is_physical_backups_enabled","preview_branch_refs"]}},"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 (actual number may be less)"},"offset":{"type":"number","description":"Number of projects skipped in this response"}},"required":["count","limit","offset"]}},"required":["projects","pagination"]},"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"}},"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"]}}}}},"required":["role"]}}},"required":["user_id","user_roles"]},"JitAccessRequestRequest":{"type":"object","properties":{"state":{"type":"string","enum":["enabled","disabled","unavailable"]}},"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"]}]}}},"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"]},"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"]},"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"]}}}}},"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"]}}}}},"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"]}}}}},"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"}]}}]}},"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":{"is_physical_backup":{"type":"boolean"},"status":{"type":"string","enum":["COMPLETED","FAILED","PENDING","REMOVED","ARCHIVED","CANCELLED"]},"inserted_at":{"type":"string"}},"required":["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"]},"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.private_link","security.enforce_mfa","log.retention_days","custom_domain","vanity_subdomain","ipv4","pitr.available_variants","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","backup.retention_days","backup.restore_to_new_project","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"]}}}}