diff --git a/packages/mcp-server-supabase/src/management-api/types.ts b/packages/mcp-server-supabase/src/management-api/types.ts index 4662f879..bbe0efc4 100644 --- a/packages/mcp-server-supabase/src/management-api/types.ts +++ b/packages/mcp-server-supabase/src/management-api/types.ts @@ -4,7 +4,7 @@ */ export interface paths { - "/v1/branches/{branch_id}": { + "/v1/branches/{branch_id_or_ref}": { parameters: { query?: never; header?: never; @@ -20,7 +20,7 @@ export interface paths { post?: never; /** * Delete a database branch - * @description Deletes the specified database branch + * @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). */ delete: operations["v1-delete-a-branch"]; options?: never; @@ -32,7 +32,7 @@ export interface paths { patch: operations["v1-update-a-branch-config"]; trace?: never; }; - "/v1/branches/{branch_id}/push": { + "/v1/branches/{branch_id_or_ref}/push": { parameters: { query?: never; header?: never; @@ -52,7 +52,7 @@ export interface paths { patch?: never; trace?: never; }; - "/v1/branches/{branch_id}/merge": { + "/v1/branches/{branch_id_or_ref}/merge": { parameters: { query?: never; header?: never; @@ -72,7 +72,7 @@ export interface paths { patch?: never; trace?: never; }; - "/v1/branches/{branch_id}/reset": { + "/v1/branches/{branch_id_or_ref}/reset": { parameters: { query?: never; header?: never; @@ -92,7 +92,27 @@ export interface paths { patch?: never; trace?: never; }; - "/v1/branches/{branch_id}/diff": { + "/v1/branches/{branch_id_or_ref}/restore": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Restore a scheduled branch deletion + * @description Cancels scheduled deletion and restores the branch to active state + */ + post: operations["v1-restore-a-branch"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/branches/{branch_id_or_ref}/diff": { parameters: { query?: never; header?: never; @@ -133,6 +153,23 @@ export interface paths { patch?: never; trace?: never; }; + "/v1/projects/available-regions": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** [Beta] Gets the list of available regions that can be used for a new project */ + get: operations["v1-get-available-regions"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/v1/organizations": { parameters: { query?: never; @@ -259,6 +296,90 @@ export interface paths { patch?: never; trace?: never; }; + "/v1/projects/{ref}/actions": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * List all action runs + * @description Returns a paginated list of action runs of the specified project. + */ + get: operations["v1-list-action-runs"]; + put?: never; + post?: never; + delete?: never; + options?: never; + /** + * Count the number of action runs + * @description Returns the total number of action runs of the specified project. + */ + head: operations["v1-count-action-runs"]; + patch?: never; + trace?: never; + }; + "/v1/projects/{ref}/actions/{run_id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get the status of an action run + * @description Returns the current status of the specified action run. + */ + get: operations["v1-get-action-run"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/projects/{ref}/actions/{run_id}/status": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** + * Update the status of an action run + * @description Updates the status of an ongoing action run. + */ + patch: operations["v1-update-action-run-status"]; + trace?: never; + }; + "/v1/projects/{ref}/actions/{run_id}/logs": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get the logs of an action run + * @description Returns the logs from the specified action run. + */ + get: operations["v1-get-action-run-logs"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/v1/projects/{ref}/api-keys": { parameters: { query?: never; @@ -342,6 +463,26 @@ export interface paths { patch?: never; trace?: never; }; + "/v1/projects/{ref}/branches/{name}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get a database branch + * @description Fetches the specified database branch by its name. + */ + get: operations["v1-get-a-branch"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/v1/projects/{ref}/custom-hostname": { parameters: { query?: never; @@ -476,7 +617,8 @@ export interface paths { delete?: never; options?: never; head?: never; - patch?: never; + /** [Alpha] Updates project's network restrictions by adding or removing CIDRs */ + patch: operations["v1-patch-network-restrictions"]; trace?: never; }; "/v1/projects/{ref}/network-restrictions/apply": { @@ -1043,14 +1185,20 @@ export interface paths { path?: never; cookie?: never; }; - /** Lists project addons */ + /** + * List billing addons and compute instance selections + * @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. + */ get: operations["v1-list-project-addons"]; put?: never; post?: never; delete?: never; options?: never; head?: never; - /** Applies project addon */ + /** + * Apply or update billing addons, including compute instance size + * @description Selects an addon variant, for example scaling the project’s compute instance up or down, and applies it to the project. + */ patch: operations["v1-apply-project-addon"]; trace?: never; }; @@ -1064,7 +1212,10 @@ export interface paths { get?: never; put?: never; post?: never; - /** Removes project addon */ + /** + * Remove billing addons or revert compute instance sizing + * @description Disables the selected addon variant, including rolling the compute instance back to its previous size. + */ delete: operations["v1-remove-project-addon"]; options?: never; head?: never; @@ -1143,10 +1294,12 @@ export interface paths { * Gets project's logs * @description Executes a SQL query on the project's logs. * - * Either the 'iso_timestamp_start' and 'iso_timestamp_end' parameters must be provided. + * Either the `iso_timestamp_start` and `iso_timestamp_end` parameters must be provided. * If both are not provided, only the last 1 minute of logs will be queried. * The 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. * + * Note: 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. + * */ get: operations["v1-get-project-logs"]; put?: never; @@ -1191,6 +1344,41 @@ export interface paths { patch?: never; trace?: never; }; + "/v1/projects/{ref}/analytics/endpoints/functions.combined-stats": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Gets a project's function combined statistics */ + get: operations["v1-get-project-function-combined-stats"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/projects/{ref}/cli/login-role": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** [Beta] Create a login role for CLI with temporary password */ + post: operations["v1-create-login-role"]; + /** [Beta] Delete existing login roles used by CLI */ + delete: operations["v1-delete-login-roles"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/v1/projects/{ref}/database/migrations": { parameters: { query?: never; @@ -1213,12 +1401,40 @@ export interface paths { * @description Only available to selected partner OAuth apps */ post: operations["v1-apply-a-migration"]; - delete?: never; + /** + * [Beta] Rollback database migrations and remove them from history table + * @description Only available to selected partner OAuth apps + */ + delete: operations["v1-rollback-migrations"]; options?: never; head?: never; patch?: never; trace?: never; }; + "/v1/projects/{ref}/database/migrations/{version}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * [Beta] Fetch an existing entry from migration history + * @description Only available to selected partner OAuth apps + */ + get: operations["v1-get-a-migration"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** + * [Beta] Patch an existing entry in migration history + * @description Only available to selected partner OAuth apps + */ + patch: operations["v1-patch-a-migration"]; + trace?: never; + }; "/v1/projects/{ref}/database/query": { parameters: { query?: never; @@ -1274,6 +1490,74 @@ export interface paths { patch?: never; trace?: never; }; + "/v1/projects/{ref}/database/jit": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get user-id to role mappings for JIT access + * @description Mappings of roles a user can assume in the project database + */ + get: operations["v1-get-jit-access"]; + /** + * Updates a user mapping for JIT access + * @description Modifies the roles that can be assumed and for how long + */ + put: operations["v1-update-jit-access"]; + /** + * Authorize user-id to role mappings for JIT access + * @description Authorizes the request to assume a role in the project database + */ + post: operations["v1-authorize-jit-access"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/projects/{ref}/database/jit/list": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * List all user-id to role mappings for JIT access + * @description Mappings of roles a user can assume in the project database + */ + get: operations["v1-list-jit-access"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/projects/{ref}/database/jit/{user_id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + /** + * Delete JIT access by user-id + * @description Remove JIT mappings of a user, revoking all JIT database access + */ + delete: operations["v1-delete-jit-access"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/v1/projects/{ref}/functions": { parameters: { query?: never; @@ -1546,6 +1830,28 @@ export interface paths { patch?: never; trace?: never; }; + "/v1/organizations/{slug}/projects": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Gets all projects for the given organization + * @description Returns a paginated list of projects for the specified organization. + * + * This 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. + */ + get: operations["v1-get-all-projects-for-organization"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; } export type webhooks = Record; export interface components { @@ -1574,8 +1880,15 @@ export interface components { persistent?: boolean; /** @enum {string} */ status?: "CREATING_PROJECT" | "RUNNING_MIGRATIONS" | "MIGRATIONS_PASSED" | "MIGRATIONS_FAILED" | "FUNCTIONS_DEPLOYED" | "FUNCTIONS_FAILED"; + request_review?: boolean; + /** + * Format: uri + * @description HTTP endpoint to receive branch status updates. + */ + notify_url?: string; }; BranchResponse: { + /** Format: uuid */ id: string; name: string; project_ref: string; @@ -1592,8 +1905,19 @@ export interface components { persistent: boolean; /** @enum {string} */ status: "CREATING_PROJECT" | "RUNNING_MIGRATIONS" | "MIGRATIONS_PASSED" | "MIGRATIONS_FAILED" | "FUNCTIONS_DEPLOYED" | "FUNCTIONS_FAILED"; + /** Format: date-time */ created_at: string; + /** Format: date-time */ updated_at: string; + /** Format: date-time */ + review_requested_at?: string; + with_data: boolean; + /** Format: uri */ + notify_url?: string; + /** Format: date-time */ + deletion_scheduled_at?: string; + /** @enum {string} */ + preview_project_status?: "INACTIVE" | "ACTIVE_HEALTHY" | "ACTIVE_UNHEALTHY" | "COMING_UP" | "UNKNOWN" | "GOING_DOWN" | "INIT_FAILED" | "REMOVED" | "RESTORING" | "UPGRADING" | "PAUSING" | "RESTORE_FAILED" | "RESTARTING" | "PAUSE_FAILED" | "RESIZING"; }; BranchDeleteResponse: { /** @enum {string} */ @@ -1607,6 +1931,38 @@ export interface components { /** @enum {string} */ message: "ok"; }; + BranchRestoreResponse: { + /** @enum {string} */ + message: "Branch restoration initiated"; + }; + V1ListProjectsPaginatedResponse: { + projects: { + id: number; + cloud_provider: string; + inserted_at: string | null; + name: string; + organization_id: number; + organization_slug: string; + ref: string; + region: string; + status: string; + subscription_id: string | null; + is_branch_enabled: boolean; + is_physical_backups_enabled: boolean | null; + preview_branch_refs: string[]; + disk_volume_size_gb?: number; + /** @enum {string} */ + infra_compute_size?: "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"; + }[]; + pagination: { + /** @description Total number of projects. Use this to calculate the total number of pages. */ + count: number; + /** @description Maximum number of projects per page (actual number may be less) */ + limit: number; + /** @description Number of projects skipped in this response */ + offset: number; + }; + }; V1ProjectWithDatabaseResponse: { /** @description Id of your project */ id: string; @@ -1651,10 +2007,33 @@ export interface components { */ plan?: "free" | "pro"; /** - * @description Region you want your server to reside in + * @deprecated + * @description Region you want your server to reside in. Use region_selection instead. * @enum {string} */ - region: "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?: "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 selection. Only one of region or region_selection can be specified. + * @example { type: 'smartGroup', code: 'americas' } + */ + region_selection?: { + /** @enum {string} */ + type: "specific"; + /** + * @description Specific region code. The codes supported are not a stable API, and should be retrieved from the /available-regions endpoint. + * @enum {string} + */ + code: "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"; + } | { + /** @enum {string} */ + type: "smartGroup"; + /** + * @description The Smart Region Group's code. The codes supported are not a stable API, and should be retrieved from the /available-regions endpoint. + * @example apac + * @enum {string} + */ + code: "americas" | "emea" | "apac"; + }; /** * @deprecated * @description This field is deprecated and is ignored in this request @@ -1668,6 +2047,18 @@ export interface components { * @example https://github.com/supabase/supabase/tree/master/examples/slack-clone/nextjs-slack-clone */ template_url?: string; + /** + * @deprecated + * @description Release channel. If not provided, GA will be used. + * @enum {string} + */ + release_channel?: "internal" | "alpha" | "beta" | "ga" | "withdrawn" | "preview"; + /** + * @deprecated + * @description Postgres engine version. If not provided, the latest version will be used. + * @enum {string} + */ + postgres_engine?: "15" | "17" | "17-oriole"; }; V1ProjectResponse: { /** @description Id of your project */ @@ -1689,6 +2080,46 @@ export interface components { /** @enum {string} */ status: "INACTIVE" | "ACTIVE_HEALTHY" | "ACTIVE_UNHEALTHY" | "COMING_UP" | "UNKNOWN" | "GOING_DOWN" | "INIT_FAILED" | "REMOVED" | "RESTORING" | "UPGRADING" | "PAUSING" | "RESTORE_FAILED" | "RESTARTING" | "PAUSE_FAILED" | "RESIZING"; }; + RegionsInfo: { + recommendations: { + smartGroup: { + name: string; + /** @enum {string} */ + code: "americas" | "emea" | "apac"; + /** @enum {string} */ + type: "smartGroup"; + }; + specific: { + name: string; + code: string; + /** @enum {string} */ + type: "specific"; + /** @enum {string} */ + provider: "AWS" | "FLY" | "AWS_K8S" | "AWS_NIMBUS"; + /** @enum {string} */ + status?: "capacity" | "other"; + }[]; + }; + all: { + smartGroup: { + name: string; + /** @enum {string} */ + code: "americas" | "emea" | "apac"; + /** @enum {string} */ + type: "smartGroup"; + }[]; + specific: { + name: string; + code: string; + /** @enum {string} */ + type: "specific"; + /** @enum {string} */ + provider: "AWS" | "FLY" | "AWS_K8S" | "AWS_NIMBUS"; + /** @enum {string} */ + status?: "capacity" | "other"; + }[]; + }; + }; OrganizationResponseV1: { id: string; name: string; @@ -1706,6 +2137,12 @@ export interface components { code_verifier?: string; redirect_uri?: string; refresh_token?: string; + /** + * Format: uri + * @description Resource indicator for MCP (Model Context Protocol) clients + */ + resource?: string; + scope?: string; }; OAuthTokenResponse: { access_token: string; @@ -1743,6 +2180,7 @@ export interface components { id: number; username: string; }; + favorite: boolean; }[]; cursor?: string; }; @@ -1768,23 +2206,82 @@ export interface components { id: number; username: string; }; + favorite: boolean; content: { - favorite: boolean; + /** + * @deprecated + * @description Deprecated: Rely on root-level favorite property instead. + */ + favorite?: boolean; schema_version: string; sql: string; }; }; + ListActionRunResponse: { + id: string; + branch_id: string; + run_steps: { + /** @enum {string} */ + name: "clone" | "pull" | "health" | "configure" | "migrate" | "seed" | "deploy"; + /** @enum {string} */ + status: "CREATED" | "DEAD" | "EXITED" | "PAUSED" | "REMOVING" | "RESTARTING" | "RUNNING"; + created_at: string; + updated_at: string; + }[]; + git_config?: unknown; + workdir: string | null; + check_run_id: number | null; + created_at: string; + updated_at: string; + }[]; + ActionRunResponse: { + id: string; + branch_id: string; + run_steps: { + /** @enum {string} */ + name: "clone" | "pull" | "health" | "configure" | "migrate" | "seed" | "deploy"; + /** @enum {string} */ + status: "CREATED" | "DEAD" | "EXITED" | "PAUSED" | "REMOVING" | "RESTARTING" | "RUNNING"; + created_at: string; + updated_at: string; + }[]; + git_config?: unknown; + workdir: string | null; + check_run_id: number | null; + created_at: string; + updated_at: string; + }; + UpdateRunStatusBody: { + /** @enum {string} */ + clone?: "CREATED" | "DEAD" | "EXITED" | "PAUSED" | "REMOVING" | "RESTARTING" | "RUNNING"; + /** @enum {string} */ + pull?: "CREATED" | "DEAD" | "EXITED" | "PAUSED" | "REMOVING" | "RESTARTING" | "RUNNING"; + /** @enum {string} */ + health?: "CREATED" | "DEAD" | "EXITED" | "PAUSED" | "REMOVING" | "RESTARTING" | "RUNNING"; + /** @enum {string} */ + configure?: "CREATED" | "DEAD" | "EXITED" | "PAUSED" | "REMOVING" | "RESTARTING" | "RUNNING"; + /** @enum {string} */ + migrate?: "CREATED" | "DEAD" | "EXITED" | "PAUSED" | "REMOVING" | "RESTARTING" | "RUNNING"; + /** @enum {string} */ + seed?: "CREATED" | "DEAD" | "EXITED" | "PAUSED" | "REMOVING" | "RESTARTING" | "RUNNING"; + /** @enum {string} */ + deploy?: "CREATED" | "DEAD" | "EXITED" | "PAUSED" | "REMOVING" | "RESTARTING" | "RUNNING"; + }; + UpdateRunStatusResponse: { + /** @enum {string} */ + message: "ok"; + }; ApiKeyResponse: { api_key?: string | null; id?: string | null; /** @enum {string|null} */ - type?: "publishable" | "secret" | "legacy" | null; + type?: "legacy" | "publishable" | "secret" | null; prefix?: string | null; name: string; description?: string | null; hash?: string | null; secret_jwt_template?: { - role: string; + [key: string]: unknown; } | null; /** Format: date-time */ inserted_at?: string | null; @@ -1800,19 +2297,20 @@ export interface components { name: string; description?: string | null; secret_jwt_template?: { - role: string; + [key: string]: unknown; } | null; }; UpdateApiKeyBody: { name?: string; description?: string | null; secret_jwt_template?: { - role: string; + [key: string]: unknown; } | null; }; CreateBranchBody: { branch_name: string; git_branch?: string; + is_default?: boolean; persistent?: boolean; region?: string; /** @enum {string} */ @@ -1830,6 +2328,12 @@ export interface components { secrets?: { [key: string]: string; }; + with_data?: boolean; + /** + * Format: uri + * @description HTTP endpoint to receive branch status updates. + */ + notify_url?: string; }; UpdateCustomHostnameResponse: { /** @enum {string} */ @@ -1877,7 +2381,13 @@ export interface components { }[]; }; RemoveNetworkBanRequest: { + /** @description List of IP addresses to unban. */ ipv4_addresses: string[]; + /** + * @description Include requester's public IP in the list of addresses to unban. + * @default false + */ + requester_ip: boolean; identifier?: string; }; NetworkRestrictionsResponse: { @@ -1895,11 +2405,51 @@ export interface components { }; /** @enum {string} */ status: "stored" | "applied"; + /** Format: date-time */ + updated_at?: string; + /** Format: date-time */ + applied_at?: string; }; NetworkRestrictionsRequest: { dbAllowedCidrs?: string[]; dbAllowedCidrsV6?: string[]; }; + NetworkRestrictionsPatchRequest: { + add?: { + dbAllowedCidrs?: string[]; + dbAllowedCidrsV6?: string[]; + }; + remove?: { + dbAllowedCidrs?: string[]; + dbAllowedCidrsV6?: string[]; + }; + }; + NetworkRestrictionsV2Response: { + /** @enum {string} */ + entitlement: "disallowed" | "allowed"; + /** @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`. */ + config: { + dbAllowedCidrs?: { + address: string; + /** @enum {string} */ + type: "v4" | "v6"; + }[]; + }; + /** @description Populated when a new config has been received, but not registered as successfully applied to a project. */ + old_config?: { + dbAllowedCidrs?: { + address: string; + /** @enum {string} */ + type: "v4" | "v6"; + }[]; + }; + /** Format: date-time */ + updated_at?: string; + /** Format: date-time */ + applied_at?: string; + /** @enum {string} */ + status: "stored" | "applied"; + }; PgsodiumConfigResponse: { root_key: string; }; @@ -1945,6 +2495,7 @@ export interface components { name: string; value: string; }[]; + DeleteSecretsBody: string[]; SslEnforcementResponse: { currentConfig: { database: boolean; @@ -1989,7 +2540,7 @@ export interface components { latest_app_version: string; target_upgrade_versions: { /** @enum {string} */ - postgres_version: "15" | "17" | "17-oriole"; + postgres_version: "13" | "14" | "15" | "17" | "17-oriole"; /** @enum {string} */ release_channel: "internal" | "alpha" | "beta" | "ga" | "withdrawn" | "preview"; app_version: string; @@ -2030,7 +2581,7 @@ export interface components { }; V1ServiceHealthResponse: { /** @enum {string} */ - name: "auth" | "db" | "pooler" | "realtime" | "rest" | "storage"; + name: "auth" | "db" | "db_postgres_user" | "pooler" | "realtime" | "rest" | "storage" | "pg_bouncer"; healthy: boolean; /** @enum {string} */ status: "COMING_UP" | "ACTIVE_HEALTHY" | "UNHEALTHY"; @@ -2043,6 +2594,8 @@ export interface components { healthy: boolean; db_connected: boolean; connected_cluster: number; + } | { + db_schema: string; }; error?: string; }; @@ -2065,8 +2618,17 @@ export interface components { /** @enum {string} */ status?: "in_use" | "standby"; private_jwk?: { + /** Format: uuid */ + kid?: string; + /** @enum {string} */ + use?: "sig"; + key_ops?: ("sign" | "verify")[]; + /** @enum {boolean} */ + ext?: true; /** @enum {string} */ kty: "RSA"; + /** @enum {string} */ + alg?: "RS256"; n: string; /** @enum {string} */ e: "AQAB"; @@ -2077,23 +2639,50 @@ export interface components { dq: string; qi: string; } | { + /** Format: uuid */ + kid?: string; + /** @enum {string} */ + use?: "sig"; + key_ops?: ("sign" | "verify")[]; + /** @enum {boolean} */ + ext?: true; /** @enum {string} */ kty: "EC"; /** @enum {string} */ + alg?: "ES256"; + /** @enum {string} */ crv: "P-256"; x: string; y: string; d: string; } | { + /** Format: uuid */ + kid?: string; + /** @enum {string} */ + use?: "sig"; + key_ops?: ("sign" | "verify")[]; + /** @enum {boolean} */ + ext?: true; /** @enum {string} */ kty: "OKP"; /** @enum {string} */ + alg?: "EdDSA"; + /** @enum {string} */ crv: "Ed25519"; x: string; d: string; } | { + /** Format: uuid */ + kid?: string; + /** @enum {string} */ + use?: "sig"; + key_ops?: ("sign" | "verify")[]; + /** @enum {boolean} */ + ext?: true; /** @enum {string} */ kty: "oct"; + /** @enum {string} */ + alg?: "HS256"; k: string; }; }; @@ -2126,7 +2715,20 @@ export interface components { s3Protocol: { enabled: boolean; }; + icebergCatalog?: { + enabled: boolean; + }; + }; + capabilities: { + list_v2: boolean; + iceberg_catalog: boolean; }; + external: { + /** @enum {string} */ + upstreamTarget: "main" | "canary"; + }; + migrationVersion: string; + databasePoolMode: string; }; UpdateStorageConfigBody: { /** Format: int64 */ @@ -2138,6 +2740,13 @@ export interface components { s3Protocol: { enabled: boolean; }; + icebergCatalog?: { + enabled: boolean; + }; + }; + external?: { + /** @enum {string} */ + upstreamTarget: "main" | "canary"; }; }; PostgresConfigResponse: { @@ -2165,6 +2774,8 @@ export interface components { wal_keep_size?: string; wal_sender_timeout?: string; work_mem?: string; + checkpoint_timeout?: number; + hot_standby_feedback?: boolean; }; UpdatePostgresConfigBody: { effective_cache_size?: string; @@ -2191,6 +2802,8 @@ export interface components { wal_keep_size?: string; wal_sender_timeout?: string; work_mem?: string; + checkpoint_timeout?: number; + hot_standby_feedback?: boolean; restart_database?: boolean; }; V1PgbouncerConfigResponse: { @@ -2200,6 +2813,10 @@ export interface components { /** @enum {string} */ pool_mode?: "transaction" | "session" | "statement"; connection_string?: string; + server_idle_timeout?: number; + server_lifetime?: number; + query_wait_timeout?: number; + reserve_pool_size?: number; }; SupavisorConfigResponse: { identifier: string; @@ -2237,64 +2854,82 @@ export interface components { external_anonymous_users_enabled: boolean | null; external_apple_additional_client_ids: string | null; external_apple_client_id: string | null; + external_apple_email_optional: boolean | null; external_apple_enabled: boolean | null; external_apple_secret: string | null; external_azure_client_id: string | null; + external_azure_email_optional: boolean | null; external_azure_enabled: boolean | null; external_azure_secret: string | null; external_azure_url: string | null; external_bitbucket_client_id: string | null; + external_bitbucket_email_optional: boolean | null; external_bitbucket_enabled: boolean | null; external_bitbucket_secret: string | null; external_discord_client_id: string | null; + external_discord_email_optional: boolean | null; external_discord_enabled: boolean | null; external_discord_secret: string | null; external_email_enabled: boolean | null; external_facebook_client_id: string | null; + external_facebook_email_optional: boolean | null; external_facebook_enabled: boolean | null; external_facebook_secret: string | null; external_figma_client_id: string | null; + external_figma_email_optional: boolean | null; external_figma_enabled: boolean | null; external_figma_secret: string | null; external_github_client_id: string | null; + external_github_email_optional: boolean | null; external_github_enabled: boolean | null; external_github_secret: string | null; external_gitlab_client_id: string | null; + external_gitlab_email_optional: boolean | null; external_gitlab_enabled: boolean | null; external_gitlab_secret: string | null; external_gitlab_url: string | null; external_google_additional_client_ids: string | null; external_google_client_id: string | null; + external_google_email_optional: boolean | null; external_google_enabled: boolean | null; external_google_secret: string | null; external_google_skip_nonce_check: boolean | null; external_kakao_client_id: string | null; + external_kakao_email_optional: boolean | null; external_kakao_enabled: boolean | null; external_kakao_secret: string | null; external_keycloak_client_id: string | null; + external_keycloak_email_optional: boolean | null; external_keycloak_enabled: boolean | null; external_keycloak_secret: string | null; external_keycloak_url: string | null; external_linkedin_oidc_client_id: string | null; + external_linkedin_oidc_email_optional: boolean | null; external_linkedin_oidc_enabled: boolean | null; external_linkedin_oidc_secret: string | null; external_slack_oidc_client_id: string | null; + external_slack_oidc_email_optional: boolean | null; external_slack_oidc_enabled: boolean | null; external_slack_oidc_secret: string | null; external_notion_client_id: string | null; + external_notion_email_optional: boolean | null; external_notion_enabled: boolean | null; external_notion_secret: string | null; external_phone_enabled: boolean | null; external_slack_client_id: string | null; + external_slack_email_optional: boolean | null; external_slack_enabled: boolean | null; external_slack_secret: string | null; external_spotify_client_id: string | null; + external_spotify_email_optional: boolean | null; external_spotify_enabled: boolean | null; external_spotify_secret: string | null; external_twitch_client_id: string | null; + external_twitch_email_optional: boolean | null; external_twitch_enabled: boolean | null; external_twitch_secret: string | null; external_twitter_client_id: string | null; + external_twitter_email_optional: boolean | null; external_twitter_enabled: boolean | null; external_twitter_secret: string | null; external_workos_client_id: string | null; @@ -2302,7 +2937,9 @@ export interface components { external_workos_secret: string | null; external_workos_url: string | null; external_web3_solana_enabled: boolean | null; + external_web3_ethereum_enabled: boolean | null; external_zoom_client_id: string | null; + external_zoom_email_optional: boolean | null; external_zoom_enabled: boolean | null; external_zoom_secret: string | null; hook_custom_access_token_enabled: boolean | null; @@ -2323,6 +2960,9 @@ export interface components { hook_before_user_created_enabled: boolean | null; hook_before_user_created_uri: string | null; hook_before_user_created_secrets: string | null; + hook_after_user_created_enabled: boolean | null; + hook_after_user_created_uri: string | null; + hook_after_user_created_secrets: string | null; jwt_exp: number | null; mailer_allow_unverified_email_sign_ins: boolean | null; mailer_autoconfirm: boolean | null; @@ -2335,12 +2975,33 @@ export interface components { mailer_subjects_magic_link: string | null; mailer_subjects_reauthentication: string | null; mailer_subjects_recovery: string | null; + mailer_subjects_password_changed_notification: string | null; + mailer_subjects_email_changed_notification: string | null; + mailer_subjects_phone_changed_notification: string | null; + mailer_subjects_mfa_factor_enrolled_notification: string | null; + mailer_subjects_mfa_factor_unenrolled_notification: string | null; + mailer_subjects_identity_linked_notification: string | null; + mailer_subjects_identity_unlinked_notification: string | null; mailer_templates_confirmation_content: string | null; mailer_templates_email_change_content: string | null; mailer_templates_invite_content: string | null; mailer_templates_magic_link_content: string | null; mailer_templates_reauthentication_content: string | null; mailer_templates_recovery_content: string | null; + mailer_templates_password_changed_notification_content: string | null; + mailer_templates_email_changed_notification_content: string | null; + mailer_templates_phone_changed_notification_content: string | null; + mailer_templates_mfa_factor_enrolled_notification_content: string | null; + mailer_templates_mfa_factor_unenrolled_notification_content: string | null; + mailer_templates_identity_linked_notification_content: string | null; + mailer_templates_identity_unlinked_notification_content: string | null; + mailer_notifications_password_changed_enabled: boolean | null; + mailer_notifications_email_changed_enabled: boolean | null; + mailer_notifications_phone_changed_enabled: boolean | null; + mailer_notifications_mfa_factor_enrolled_enabled: boolean | null; + mailer_notifications_mfa_factor_unenrolled_enabled: boolean | null; + mailer_notifications_identity_linked_enabled: boolean | null; + mailer_notifications_identity_unlinked_enabled: boolean | null; mfa_max_enrolled_factors: number | null; mfa_totp_enroll_enabled: boolean | null; mfa_totp_verify_enabled: boolean | null; @@ -2351,6 +3012,9 @@ export interface components { mfa_phone_otp_length: number; mfa_phone_template: string | null; mfa_phone_max_frequency: number | null; + nimbus_oauth_client_id: string | null; + nimbus_oauth_email_optional: boolean | null; + nimbus_oauth_client_secret: string | null; password_hibp_enabled: boolean | null; password_min_length: number | null; /** @enum {string|null} */ @@ -2402,6 +3066,7 @@ export interface components { sms_vonage_api_key: string | null; sms_vonage_api_secret: string | null; sms_vonage_from: string | null; + /** Format: email */ smtp_admin_email: string | null; smtp_host: string | null; smtp_max_frequency: number | null; @@ -2415,6 +3080,7 @@ export interface components { site_url?: string | null; disable_signup?: boolean | null; jwt_exp?: number | null; + /** Format: email */ smtp_admin_email?: string | null; smtp_host?: string | null; smtp_port?: string | null; @@ -2430,12 +3096,33 @@ export interface components { mailer_subjects_email_change?: string | null; mailer_subjects_magic_link?: string | null; mailer_subjects_reauthentication?: string | null; + mailer_subjects_password_changed_notification?: string | null; + mailer_subjects_email_changed_notification?: string | null; + mailer_subjects_phone_changed_notification?: string | null; + mailer_subjects_mfa_factor_enrolled_notification?: string | null; + mailer_subjects_mfa_factor_unenrolled_notification?: string | null; + mailer_subjects_identity_linked_notification?: string | null; + mailer_subjects_identity_unlinked_notification?: string | null; mailer_templates_invite_content?: string | null; mailer_templates_confirmation_content?: string | null; mailer_templates_recovery_content?: string | null; mailer_templates_email_change_content?: string | null; mailer_templates_magic_link_content?: string | null; mailer_templates_reauthentication_content?: string | null; + mailer_templates_password_changed_notification_content?: string | null; + mailer_templates_email_changed_notification_content?: string | null; + mailer_templates_phone_changed_notification_content?: string | null; + mailer_templates_mfa_factor_enrolled_notification_content?: string | null; + mailer_templates_mfa_factor_unenrolled_notification_content?: string | null; + mailer_templates_identity_linked_notification_content?: string | null; + mailer_templates_identity_unlinked_notification_content?: string | null; + mailer_notifications_password_changed_enabled?: boolean | null; + mailer_notifications_email_changed_enabled?: boolean | null; + mailer_notifications_phone_changed_enabled?: boolean | null; + mailer_notifications_mfa_factor_enrolled_enabled?: boolean | null; + mailer_notifications_mfa_factor_unenrolled_enabled?: boolean | null; + mailer_notifications_identity_linked_enabled?: boolean | null; + mailer_notifications_identity_unlinked_enabled?: boolean | null; mfa_max_enrolled_factors?: number | null; uri_allow_list?: string | null; external_anonymous_users_enabled?: boolean | null; @@ -2511,73 +3198,96 @@ export interface components { hook_before_user_created_enabled?: boolean | null; hook_before_user_created_uri?: string | null; hook_before_user_created_secrets?: string | null; + hook_after_user_created_enabled?: boolean | null; + hook_after_user_created_uri?: string | null; + hook_after_user_created_secrets?: string | null; external_apple_enabled?: boolean | null; external_apple_client_id?: string | null; + external_apple_email_optional?: boolean | null; external_apple_secret?: string | null; external_apple_additional_client_ids?: string | null; external_azure_enabled?: boolean | null; external_azure_client_id?: string | null; + external_azure_email_optional?: boolean | null; external_azure_secret?: string | null; external_azure_url?: string | null; external_bitbucket_enabled?: boolean | null; external_bitbucket_client_id?: string | null; + external_bitbucket_email_optional?: boolean | null; external_bitbucket_secret?: string | null; external_discord_enabled?: boolean | null; external_discord_client_id?: string | null; + external_discord_email_optional?: boolean | null; external_discord_secret?: string | null; external_facebook_enabled?: boolean | null; external_facebook_client_id?: string | null; + external_facebook_email_optional?: boolean | null; external_facebook_secret?: string | null; external_figma_enabled?: boolean | null; external_figma_client_id?: string | null; + external_figma_email_optional?: boolean | null; external_figma_secret?: string | null; external_github_enabled?: boolean | null; external_github_client_id?: string | null; + external_github_email_optional?: boolean | null; external_github_secret?: string | null; external_gitlab_enabled?: boolean | null; external_gitlab_client_id?: string | null; + external_gitlab_email_optional?: boolean | null; external_gitlab_secret?: string | null; external_gitlab_url?: string | null; external_google_enabled?: boolean | null; external_google_client_id?: string | null; + external_google_email_optional?: boolean | null; external_google_secret?: string | null; external_google_additional_client_ids?: string | null; external_google_skip_nonce_check?: boolean | null; external_kakao_enabled?: boolean | null; external_kakao_client_id?: string | null; + external_kakao_email_optional?: boolean | null; external_kakao_secret?: string | null; external_keycloak_enabled?: boolean | null; external_keycloak_client_id?: string | null; + external_keycloak_email_optional?: boolean | null; external_keycloak_secret?: string | null; external_keycloak_url?: string | null; external_linkedin_oidc_enabled?: boolean | null; external_linkedin_oidc_client_id?: string | null; + external_linkedin_oidc_email_optional?: boolean | null; external_linkedin_oidc_secret?: string | null; external_slack_oidc_enabled?: boolean | null; external_slack_oidc_client_id?: string | null; + external_slack_oidc_email_optional?: boolean | null; external_slack_oidc_secret?: string | null; external_notion_enabled?: boolean | null; external_notion_client_id?: string | null; + external_notion_email_optional?: boolean | null; external_notion_secret?: string | null; external_slack_enabled?: boolean | null; external_slack_client_id?: string | null; + external_slack_email_optional?: boolean | null; external_slack_secret?: string | null; external_spotify_enabled?: boolean | null; external_spotify_client_id?: string | null; + external_spotify_email_optional?: boolean | null; external_spotify_secret?: string | null; external_twitch_enabled?: boolean | null; external_twitch_client_id?: string | null; + external_twitch_email_optional?: boolean | null; external_twitch_secret?: string | null; external_twitter_enabled?: boolean | null; external_twitter_client_id?: string | null; + external_twitter_email_optional?: boolean | null; external_twitter_secret?: string | null; external_workos_enabled?: boolean | null; external_workos_client_id?: string | null; external_workos_secret?: string | null; external_workos_url?: string | null; external_web3_solana_enabled?: boolean | null; + external_web3_ethereum_enabled?: boolean | null; external_zoom_enabled?: boolean | null; external_zoom_client_id?: string | null; + external_zoom_email_optional?: boolean | null; external_zoom_secret?: string | null; db_max_pool_size?: number | null; api_max_request_duration?: number | null; @@ -2590,6 +3300,8 @@ export interface components { mfa_phone_max_frequency?: number | null; mfa_phone_otp_length?: number | null; mfa_phone_template?: string | null; + nimbus_oauth_client_id?: string | null; + nimbus_oauth_client_secret?: string | null; }; CreateThirdPartyAuthBody: { oidc_issuer_url?: string; @@ -2679,7 +3391,7 @@ export interface components { V1ProjectAdvisorsResponse: { lints: { /** @enum {string} */ - name: "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"; + name: "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: string; /** @enum {string} */ level: "ERROR" | "WARN" | "INFO"; @@ -2716,6 +3428,58 @@ export interface components { status: string; }; }; + V1GetUsageApiCountResponse: { + result?: { + /** Format: date-time */ + timestamp: string; + total_auth_requests: number; + total_realtime_requests: number; + total_rest_requests: number; + total_storage_requests: number; + }[]; + error?: string | { + code: number; + errors: { + domain: string; + location: string; + locationType: string; + message: string; + reason: string; + }[]; + message: string; + status: string; + }; + }; + V1GetUsageApiRequestsCountResponse: { + result?: { + count: number; + }[]; + error?: string | { + code: number; + errors: { + domain: string; + location: string; + locationType: string; + message: string; + reason: string; + }[]; + message: string; + status: string; + }; + }; + CreateRoleBody: { + read_only: boolean; + }; + CreateRoleResponse: { + role: string; + password: string; + /** Format: int64 */ + ttl_seconds: number; + }; + DeleteRolesResponse: { + /** @enum {string} */ + message: "ok"; + }; V1ListMigrationsResponse: { version: string; name?: string; @@ -2723,13 +3487,28 @@ export interface components { V1CreateMigrationBody: { query: string; name?: string; + rollback?: string; }; V1UpsertMigrationBody: { query: string; name?: string; + rollback?: string; + }; + V1GetMigrationResponse: { + version: string; + name?: string; + statements?: string[]; + rollback?: string[]; + created_by?: string; + idempotency_key?: string; + }; + V1PatchMigrationBody: { + name?: string; + rollback?: string; }; V1RunQueryBody: { query: string; + parameters?: unknown[]; read_only?: boolean; }; GetProjectDbMetadataResponse: { @@ -2744,6 +3523,76 @@ export interface components { [key: string]: unknown; })[]; }; + JitAccessResponse: { + /** Format: uuid */ + user_id: string; + user_roles: { + role: string; + expires_at?: number; + allowed_networks?: { + allowed_cidrs?: { + cidr: string; + }[]; + allowed_cidrs_v6?: { + cidr: string; + }[]; + }; + }[]; + }; + AuthorizeJitAccessBody: { + role: string; + rhost: string; + }; + JitAuthorizeAccessResponse: { + /** Format: uuid */ + user_id: string; + user_role: { + role: string; + expires_at?: number; + allowed_networks?: { + allowed_cidrs?: { + cidr: string; + }[]; + allowed_cidrs_v6?: { + cidr: string; + }[]; + }; + }; + }; + JitListAccessResponse: { + items: { + /** Format: uuid */ + user_id: string; + user_roles: { + role: string; + expires_at?: number; + allowed_networks?: { + allowed_cidrs?: { + cidr: string; + }[]; + allowed_cidrs_v6?: { + cidr: string; + }[]; + }; + }[]; + }[]; + }; + UpdateJitAccessBody: { + /** Format: uuid */ + user_id: string; + roles: { + role: string; + expires_at?: number; + allowed_networks?: { + allowed_cidrs?: { + cidr: string; + }[]; + allowed_cidrs_v6?: { + cidr: string; + }[]; + }; + }[]; + }; FunctionResponse: { id: string; slug: string; @@ -2826,6 +3675,7 @@ export interface components { import_map?: boolean; entrypoint_path?: string; import_map_path?: string; + ezbr_sha256?: string; }; FunctionSlugResponse: { id: string; @@ -2877,6 +3727,8 @@ export interface components { }; }; }; + /** @enum {string} */ + name_id_format?: "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"; }; CreateProviderResponse: { id: string; @@ -2895,6 +3747,8 @@ export interface components { }; }; }; + /** @enum {string} */ + name_id_format?: "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"; }; domains?: { id: string; @@ -2923,6 +3777,8 @@ export interface components { }; }; }; + /** @enum {string} */ + name_id_format?: "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"; }; domains?: { id: string; @@ -2951,6 +3807,8 @@ export interface components { }; }; }; + /** @enum {string} */ + name_id_format?: "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"; }; domains?: { id: string; @@ -2975,6 +3833,8 @@ export interface components { }; }; }; + /** @enum {string} */ + name_id_format?: "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"; }; UpdateProviderResponse: { id: string; @@ -2993,6 +3853,8 @@ export interface components { }; }; }; + /** @enum {string} */ + name_id_format?: "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"; }; domains?: { id: string; @@ -3020,6 +3882,8 @@ export interface components { }; }; }; + /** @enum {string} */ + name_id_format?: "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"; }; domains?: { id: string; @@ -3055,7 +3919,7 @@ export interface components { V1RestorePointResponse: { name: string; /** @enum {string} */ - status: "AVAILABLE" | "PENDING" | "REMOVED"; + status: "AVAILABLE" | "PENDING" | "REMOVED" | "FAILED"; }; V1UndoBody: { name: string; @@ -3098,8 +3962,6 @@ export interface components { name: string; limit: number; }[]; - target_organization_eligible: boolean | null; - target_organization_has_free_project_slots: boolean | null; /** @enum {string} */ source_subscription_plan: "free" | "pro" | "team" | "enterprise"; /** @enum {string|null} */ @@ -3110,6 +3972,42 @@ export interface components { /** Format: uuid */ created_by: string; }; + OrganizationProjectsResponse: { + projects: { + ref: string; + name: string; + cloud_provider: string; + region: string; + is_branch: boolean; + /** @enum {string} */ + status: "INACTIVE" | "ACTIVE_HEALTHY" | "ACTIVE_UNHEALTHY" | "COMING_UP" | "UNKNOWN" | "GOING_DOWN" | "INIT_FAILED" | "REMOVED" | "RESTORING" | "UPGRADING" | "PAUSING" | "RESTORE_FAILED" | "RESTARTING" | "PAUSE_FAILED" | "RESIZING"; + inserted_at: string; + databases: { + /** @enum {string} */ + infra_compute_size?: "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: string; + /** @enum {string} */ + status: "ACTIVE_HEALTHY" | "ACTIVE_UNHEALTHY" | "COMING_UP" | "GOING_DOWN" | "INIT_FAILED" | "REMOVED" | "RESTORING" | "UNKNOWN" | "INIT_READ_REPLICA" | "INIT_READ_REPLICA_FAILED" | "RESTARTING" | "RESIZING"; + cloud_provider: string; + identifier: string; + /** @enum {string} */ + type: "PRIMARY" | "READ_REPLICA"; + disk_volume_size_gb?: number; + /** @enum {string} */ + disk_type?: "gp3" | "io2"; + disk_throughput_mbps?: number; + disk_last_modified_at?: string; + }[]; + }[]; + pagination: { + /** @description Total number of projects. Use this to calculate the total number of pages. */ + count: number; + /** @description Maximum number of projects per page */ + limit: number; + /** @description Number of projects skipped in this response */ + offset: number; + }; + }; }; responses: never; parameters: never; @@ -3125,7 +4023,7 @@ export interface operations { header?: never; path: { /** @description Branch ID */ - branch_id: string; + branch_id_or_ref: string; }; cookie?: never; }; @@ -3150,11 +4048,14 @@ export interface operations { }; "v1-delete-a-branch": { parameters: { - query?: never; + query?: { + /** @description If set to false, schedule deletion with 1-hour grace period (only when soft deletion is enabled). */ + force?: boolean; + }; header?: never; path: { /** @description Branch ID */ - branch_id: string; + branch_id_or_ref: string; }; cookie?: never; }; @@ -3183,7 +4084,7 @@ export interface operations { header?: never; path: { /** @description Branch ID */ - branch_id: string; + branch_id_or_ref: string; }; cookie?: never; }; @@ -3216,7 +4117,7 @@ export interface operations { header?: never; path: { /** @description Branch ID */ - branch_id: string; + branch_id_or_ref: string; }; cookie?: never; }; @@ -3249,7 +4150,7 @@ export interface operations { header?: never; path: { /** @description Branch ID */ - branch_id: string; + branch_id_or_ref: string; }; cookie?: never; }; @@ -3282,7 +4183,7 @@ export interface operations { header?: never; path: { /** @description Branch ID */ - branch_id: string; + branch_id_or_ref: string; }; cookie?: never; }; @@ -3309,6 +4210,35 @@ export interface operations { }; }; }; + "v1-restore-a-branch": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Branch ID */ + branch_id_or_ref: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BranchRestoreResponse"]; + }; + }; + /** @description Failed to restore database branch */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; "v1-diff-a-branch": { parameters: { query?: { @@ -3317,7 +4247,7 @@ export interface operations { header?: never; path: { /** @description Branch ID */ - branch_id: string; + branch_id_or_ref: string; }; cookie?: never; }; @@ -3382,9 +4312,16 @@ export interface operations { }; }; }; - "v1-list-all-organizations": { + "v1-get-available-regions": { parameters: { - query?: never; + query: { + /** @description Slug of your organization */ + organization_slug: string; + /** @description Continent code to determine regional recommendations: NA (North America), SA (South America), EU (Europe), AF (Africa), AS (Asia), OC (Oceania), AN (Antarctica) */ + continent?: "NA" | "SA" | "EU" | "AF" | "AS" | "OC" | "AN"; + /** @description Desired instance size */ + desired_instance_size?: "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"; + }; header?: never; path?: never; cookie?: never; @@ -3396,11 +4333,30 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["OrganizationResponseV1"][]; + "application/json": components["schemas"]["RegionsInfo"]; }; }; - /** @description Unexpected error listing organizations */ - 500: { + }; + }; + "v1-list-all-organizations": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OrganizationResponseV1"][]; + }; + }; + /** @description Unexpected error listing organizations */ + 500: { headers: { [name: string]: unknown; }; @@ -3449,6 +4405,10 @@ export interface operations { response_mode?: string; code_challenge?: string; code_challenge_method?: "plain" | "sha256" | "S256"; + /** @description Organization slug */ + organization_slug?: string; + /** @description Resource indicator for MCP (Model Context Protocol) clients */ + resource?: string; }; header?: never; path?: never; @@ -3596,11 +4556,11 @@ export interface operations { }; }; }; - "v1-get-project-api-keys": { + "v1-list-action-runs": { parameters: { query?: { - /** @description Boolean string, true or false */ - reveal?: boolean; + offset?: number; + limit?: number; }; header?: never; path: { @@ -3616,23 +4576,42 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["ApiKeyResponse"][]; + "application/json": components["schemas"]["ListActionRunResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to list action runs */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-create-project-api-key": { + "v1-count-action-runs": { parameters: { - query?: { - /** @description Boolean string, true or false */ - reveal?: boolean; - }; + query?: never; header?: never; path: { /** @description Project ref */ @@ -3640,35 +4619,55 @@ export interface operations { }; cookie?: never; }; - requestBody: { - content: { - "application/json": components["schemas"]["CreateApiKeyBody"]; - }; - }; + requestBody?: never; responses: { - 201: { + 200: { headers: { + /** @description total count value */ + "X-Total-Count"?: number; [name: string]: unknown; }; - content: { - "application/json": components["schemas"]["ApiKeyResponse"]; + content?: never; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to count action runs */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-get-project-legacy-api-keys": { + "v1-get-action-run": { parameters: { query?: never; header?: never; path: { /** @description Project ref */ ref: string; + /** @description Action Run ID */ + run_id: string; }; cookie?: never; }; @@ -3679,59 +4678,104 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["LegacyApiKeysResponse"]; + "application/json": components["schemas"]["ActionRunResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to get action run status */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-update-project-legacy-api-keys": { + "v1-update-action-run-status": { parameters: { - query: { - /** @description Boolean string, true or false */ - enabled: boolean; - }; + query?: never; header?: never; path: { /** @description Project ref */ ref: string; + /** @description Action Run ID */ + run_id: string; }; cookie?: never; }; - requestBody?: never; + requestBody: { + content: { + "application/json": components["schemas"]["UpdateRunStatusBody"]; + }; + }; responses: { 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["LegacyApiKeysResponse"]; + "application/json": components["schemas"]["UpdateRunStatusResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to update action run status */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-get-project-api-key": { + "v1-get-action-run-logs": { parameters: { - query?: { - /** @description Boolean string, true or false */ - reveal?: boolean; - }; + query?: never; header?: never; path: { /** @description Project ref */ ref: string; - id: string; + /** @description Action Run ID */ + run_id: string; }; cookie?: never; }; @@ -3742,31 +4786,49 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["ApiKeyResponse"]; + "text/plain": string; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to get action run logs */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-delete-project-api-key": { + "v1-get-project-api-keys": { parameters: { query?: { /** @description Boolean string, true or false */ reveal?: boolean; - /** @description Boolean string, true or false */ - was_compromised?: boolean; - reason?: string; }; header?: never; path: { /** @description Project ref */ ref: string; - id: string; }; cookie?: never; }; @@ -3777,18 +4839,33 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["ApiKeyResponse"]; + "application/json": components["schemas"]["ApiKeyResponse"][]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-update-project-api-key": { + "v1-create-project-api-key": { parameters: { query?: { /** @description Boolean string, true or false */ @@ -3798,17 +4875,16 @@ export interface operations { path: { /** @description Project ref */ ref: string; - id: string; }; cookie?: never; }; requestBody: { content: { - "application/json": components["schemas"]["UpdateApiKeyBody"]; + "application/json": components["schemas"]["CreateApiKeyBody"]; }; }; responses: { - 200: { + 201: { headers: { [name: string]: unknown; }; @@ -3816,15 +4892,30 @@ export interface operations { "application/json": components["schemas"]["ApiKeyResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-list-all-branches": { + "v1-get-project-legacy-api-keys": { parameters: { query?: never; header?: never; @@ -3841,17 +4932,25 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["BranchResponse"][]; + "application/json": components["schemas"]["LegacyApiKeysResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to retrieve database branches */ - 500: { + /** @description Rate limit exceeded */ + 429: { headers: { [name: string]: unknown; }; @@ -3859,9 +4958,12 @@ export interface operations { }; }; }; - "v1-create-a-branch": { + "v1-update-project-legacy-api-keys": { parameters: { - query?: never; + query: { + /** @description Boolean string, true or false */ + enabled: boolean; + }; header?: never; path: { /** @description Project ref */ @@ -3869,28 +4971,32 @@ export interface operations { }; cookie?: never; }; - requestBody: { - content: { - "application/json": components["schemas"]["CreateBranchBody"]; - }; - }; + requestBody?: never; responses: { - 201: { + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["BranchResponse"]; + "application/json": components["schemas"]["LegacyApiKeysResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to create database branch */ - 500: { + /** @description Rate limit exceeded */ + 429: { headers: { [name: string]: unknown; }; @@ -3898,32 +5004,46 @@ export interface operations { }; }; }; - "v1-disable-preview-branching": { + "v1-get-project-api-key": { parameters: { - query?: never; + query?: { + /** @description Boolean string, true or false */ + reveal?: boolean; + }; header?: never; path: { /** @description Project ref */ ref: string; + id: string; }; cookie?: never; }; requestBody?: never; responses: { 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ApiKeyResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to disable preview branching */ - 500: { + /** @description Rate limit exceeded */ + 429: { headers: { [name: string]: unknown; }; @@ -3931,13 +5051,20 @@ export interface operations { }; }; }; - "v1-get-hostname-config": { + "v1-delete-project-api-key": { parameters: { - query?: never; + query?: { + /** @description Boolean string, true or false */ + reveal?: boolean; + /** @description Boolean string, true or false */ + was_compromised?: boolean; + reason?: string; + }; header?: never; path: { /** @description Project ref */ ref: string; + id: string; }; cookie?: never; }; @@ -3948,17 +5075,25 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["UpdateCustomHostnameResponse"]; + "application/json": components["schemas"]["ApiKeyResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to retrieve project's custom hostname config */ - 500: { + /** @description Rate limit exceeded */ + 429: { headers: { [name: string]: unknown; }; @@ -3966,32 +5101,50 @@ export interface operations { }; }; }; - "v1-Delete hostname config": { + "v1-update-project-api-key": { parameters: { - query?: never; - header?: never; + query?: { + /** @description Boolean string, true or false */ + reveal?: boolean; + }; + header?: never; path: { /** @description Project ref */ ref: string; + id: string; }; cookie?: never; }; - requestBody?: never; + requestBody: { + content: { + "application/json": components["schemas"]["UpdateApiKeyBody"]; + }; + }; responses: { 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ApiKeyResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to delete project custom hostname configuration */ - 500: { + /** @description Rate limit exceeded */ + 429: { headers: { [name: string]: unknown; }; @@ -3999,7 +5152,7 @@ export interface operations { }; }; }; - "v1-update-hostname-config": { + "v1-list-all-branches": { parameters: { query?: never; header?: never; @@ -4009,27 +5162,38 @@ export interface operations { }; cookie?: never; }; - requestBody: { - content: { - "application/json": components["schemas"]["UpdateCustomHostnameBody"]; - }; - }; + requestBody?: never; responses: { - 201: { + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["UpdateCustomHostnameResponse"]; + "application/json": components["schemas"]["BranchResponse"][]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to update project custom hostname configuration */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to retrieve database branches */ 500: { headers: { [name: string]: unknown; @@ -4038,7 +5202,7 @@ export interface operations { }; }; }; - "v1-verify-dns-config": { + "v1-create-a-branch": { parameters: { query?: never; header?: never; @@ -4048,23 +5212,42 @@ export interface operations { }; cookie?: never; }; - requestBody?: never; + requestBody: { + content: { + "application/json": components["schemas"]["CreateBranchBody"]; + }; + }; responses: { 201: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["UpdateCustomHostnameResponse"]; + "application/json": components["schemas"]["BranchResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to verify project custom hostname configuration */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to create database branch */ 500: { headers: { [name: string]: unknown; @@ -4073,7 +5256,7 @@ export interface operations { }; }; }; - "v1-activate-custom-hostname": { + "v1-disable-preview-branching": { parameters: { query?: never; header?: never; @@ -4085,21 +5268,34 @@ export interface operations { }; requestBody?: never; responses: { - 201: { + 200: { headers: { [name: string]: unknown; }; - content: { - "application/json": components["schemas"]["UpdateCustomHostnameResponse"]; + content?: never; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to activate project custom hostname configuration */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to disable preview branching */ 500: { headers: { [name: string]: unknown; @@ -4108,33 +5304,49 @@ export interface operations { }; }; }; - "v1-list-all-network-bans": { + "v1-get-a-branch": { parameters: { query?: never; header?: never; path: { /** @description Project ref */ ref: string; + name: string; }; cookie?: never; }; requestBody?: never; responses: { - 201: { + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["NetworkBanResponse"]; + "application/json": components["schemas"]["BranchResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to retrieve project's network bans */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to fetch database branch */ 500: { headers: { [name: string]: unknown; @@ -4143,7 +5355,7 @@ export interface operations { }; }; }; - "v1-list-all-network-bans-enriched": { + "v1-get-hostname-config": { parameters: { query?: never; header?: never; @@ -4155,21 +5367,36 @@ export interface operations { }; requestBody?: never; responses: { - 201: { + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["NetworkBanResponseEnriched"]; + "application/json": components["schemas"]["UpdateCustomHostnameResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to retrieve project's enriched network bans */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to retrieve project's custom hostname config */ 500: { headers: { [name: string]: unknown; @@ -4178,7 +5405,7 @@ export interface operations { }; }; }; - "v1-delete-network-bans": { + "v1-Delete hostname config": { parameters: { query?: never; header?: never; @@ -4188,11 +5415,7 @@ export interface operations { }; cookie?: never; }; - requestBody: { - content: { - "application/json": components["schemas"]["RemoveNetworkBanRequest"]; - }; - }; + requestBody?: never; responses: { 200: { headers: { @@ -4200,13 +5423,28 @@ export interface operations { }; content?: never; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to remove network bans. */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to delete project custom hostname configuration */ 500: { headers: { [name: string]: unknown; @@ -4215,7 +5453,7 @@ export interface operations { }; }; }; - "v1-get-network-restrictions": { + "v1-update-hostname-config": { parameters: { query?: never; header?: never; @@ -4225,23 +5463,42 @@ export interface operations { }; cookie?: never; }; - requestBody?: never; + requestBody: { + content: { + "application/json": components["schemas"]["UpdateCustomHostnameBody"]; + }; + }; responses: { - 200: { + 201: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["NetworkRestrictionsResponse"]; + "application/json": components["schemas"]["UpdateCustomHostnameResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to retrieve project's network restrictions */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to update project custom hostname configuration */ 500: { headers: { [name: string]: unknown; @@ -4250,7 +5507,7 @@ export interface operations { }; }; }; - "v1-update-network-restrictions": { + "v1-verify-dns-config": { parameters: { query?: never; header?: never; @@ -4260,27 +5517,38 @@ export interface operations { }; cookie?: never; }; - requestBody: { - content: { - "application/json": components["schemas"]["NetworkRestrictionsRequest"]; - }; - }; + requestBody?: never; responses: { 201: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["NetworkRestrictionsResponse"]; + "application/json": components["schemas"]["UpdateCustomHostnameResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to update project network restrictions */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to verify project custom hostname configuration */ 500: { headers: { [name: string]: unknown; @@ -4289,7 +5557,7 @@ export interface operations { }; }; }; - "v1-get-pgsodium-config": { + "v1-activate-custom-hostname": { parameters: { query?: never; header?: never; @@ -4301,21 +5569,36 @@ export interface operations { }; requestBody?: never; responses: { - 200: { + 201: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["PgsodiumConfigResponse"]; + "application/json": components["schemas"]["UpdateCustomHostnameResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to retrieve project's pgsodium config */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to activate project custom hostname configuration */ 500: { headers: { [name: string]: unknown; @@ -4324,7 +5607,7 @@ export interface operations { }; }; }; - "v1-update-pgsodium-config": { + "v1-list-all-network-bans": { parameters: { query?: never; header?: never; @@ -4334,27 +5617,38 @@ export interface operations { }; cookie?: never; }; - requestBody: { - content: { - "application/json": components["schemas"]["UpdatePgsodiumConfigBody"]; - }; - }; + requestBody?: never; responses: { - 200: { + 201: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["PgsodiumConfigResponse"]; + "application/json": components["schemas"]["NetworkBanResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to update project's pgsodium config */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to retrieve project's network bans */ 500: { headers: { [name: string]: unknown; @@ -4363,7 +5657,7 @@ export interface operations { }; }; }; - "v1-get-postgrest-service-config": { + "v1-list-all-network-bans-enriched": { parameters: { query?: never; header?: never; @@ -4375,21 +5669,36 @@ export interface operations { }; requestBody?: never; responses: { - 200: { + 201: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["PostgrestConfigWithJWTSecretResponse"]; + "application/json": components["schemas"]["NetworkBanResponseEnriched"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to retrieve project's postgrest config */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to retrieve project's enriched network bans */ 500: { headers: { [name: string]: unknown; @@ -4398,7 +5707,7 @@ export interface operations { }; }; }; - "v1-update-postgrest-service-config": { + "v1-delete-network-bans": { parameters: { query?: never; header?: never; @@ -4410,7 +5719,7 @@ export interface operations { }; requestBody: { content: { - "application/json": components["schemas"]["V1UpdatePostgrestConfigBody"]; + "application/json": components["schemas"]["RemoveNetworkBanRequest"]; }; }; responses: { @@ -4418,17 +5727,30 @@ export interface operations { headers: { [name: string]: unknown; }; - content: { - "application/json": components["schemas"]["V1PostgrestConfigResponse"]; - }; + content?: never; }; - 403: { + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to update project's postgrest config */ + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to remove network bans. */ 500: { headers: { [name: string]: unknown; @@ -4437,7 +5759,7 @@ export interface operations { }; }; }; - "v1-get-project": { + "v1-get-network-restrictions": { parameters: { query?: never; header?: never; @@ -4454,16 +5776,31 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["V1ProjectWithDatabaseResponse"]; + "application/json": components["schemas"]["NetworkRestrictionsResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to retrieve project */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to retrieve project's network restrictions */ 500: { headers: { [name: string]: unknown; @@ -4472,7 +5809,7 @@ export interface operations { }; }; }; - "v1-delete-a-project": { + "v1-patch-network-restrictions": { parameters: { query?: never; header?: never; @@ -4482,25 +5819,51 @@ export interface operations { }; cookie?: never; }; - requestBody?: never; + requestBody: { + content: { + "application/json": components["schemas"]["NetworkRestrictionsPatchRequest"]; + }; + }; responses: { 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["V1ProjectRefResponse"]; + "application/json": components["schemas"]["NetworkRestrictionsV2Response"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to update project network restrictions */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-list-all-secrets": { + "v1-update-network-restrictions": { parameters: { query?: never; header?: never; @@ -4510,23 +5873,42 @@ export interface operations { }; cookie?: never; }; - requestBody?: never; + requestBody: { + content: { + "application/json": components["schemas"]["NetworkRestrictionsRequest"]; + }; + }; responses: { - 200: { + 201: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["SecretResponse"][]; + "application/json": components["schemas"]["NetworkRestrictionsResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to retrieve project's secrets */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to update project network restrictions */ 500: { headers: { [name: string]: unknown; @@ -4535,7 +5917,7 @@ export interface operations { }; }; }; - "v1-bulk-create-secrets": { + "v1-get-pgsodium-config": { parameters: { query?: never; header?: never; @@ -4545,25 +5927,38 @@ export interface operations { }; cookie?: never; }; - requestBody: { - content: { - "application/json": components["schemas"]["CreateSecretBody"]; - }; - }; + requestBody?: never; responses: { - 201: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PgsodiumConfigResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to create project's secrets */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to retrieve project's pgsodium config */ 500: { headers: { [name: string]: unknown; @@ -4572,7 +5967,7 @@ export interface operations { }; }; }; - "v1-bulk-delete-secrets": { + "v1-update-pgsodium-config": { parameters: { query?: never; header?: never; @@ -4584,23 +5979,40 @@ export interface operations { }; requestBody: { content: { - "application/json": string[]; + "application/json": components["schemas"]["UpdatePgsodiumConfigBody"]; }; }; responses: { 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PgsodiumConfigResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to delete secrets with given names */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to update project's pgsodium config */ 500: { headers: { [name: string]: unknown; @@ -4609,7 +6021,7 @@ export interface operations { }; }; }; - "v1-get-ssl-enforcement-config": { + "v1-get-postgrest-service-config": { parameters: { query?: never; header?: never; @@ -4626,16 +6038,31 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["SslEnforcementResponse"]; + "application/json": components["schemas"]["PostgrestConfigWithJWTSecretResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to retrieve project's SSL enforcement config */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to retrieve project's postgrest config */ 500: { headers: { [name: string]: unknown; @@ -4644,7 +6071,7 @@ export interface operations { }; }; }; - "v1-update-ssl-enforcement-config": { + "v1-update-postgrest-service-config": { parameters: { query?: never; header?: never; @@ -4656,7 +6083,7 @@ export interface operations { }; requestBody: { content: { - "application/json": components["schemas"]["SslEnforcementRequest"]; + "application/json": components["schemas"]["V1UpdatePostgrestConfigBody"]; }; }; responses: { @@ -4665,16 +6092,31 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["SslEnforcementResponse"]; + "application/json": components["schemas"]["V1PostgrestConfigResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to update project's SSL enforcement configuration. */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to update project's postgrest config */ 500: { headers: { [name: string]: unknown; @@ -4683,11 +6125,9 @@ export interface operations { }; }; }; - "v1-generate-typescript-types": { + "v1-get-project": { parameters: { - query?: { - included_schemas?: string; - }; + query?: never; header?: never; path: { /** @description Project ref */ @@ -4702,16 +6142,31 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["TypescriptResponse"]; + "application/json": components["schemas"]["V1ProjectWithDatabaseResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to generate TypeScript types */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to retrieve project */ 500: { headers: { [name: string]: unknown; @@ -4720,7 +6175,7 @@ export interface operations { }; }; }; - "v1-get-vanity-subdomain-config": { + "v1-delete-a-project": { parameters: { query?: never; header?: never; @@ -4737,17 +6192,25 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["VanitySubdomainConfigResponse"]; + "application/json": components["schemas"]["V1ProjectRefResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to get project vanity subdomain configuration */ - 500: { + /** @description Rate limit exceeded */ + 429: { headers: { [name: string]: unknown; }; @@ -4755,7 +6218,7 @@ export interface operations { }; }; }; - "v1-deactivate-vanity-subdomain-config": { + "v1-list-all-secrets": { parameters: { query?: never; header?: never; @@ -4768,18 +6231,35 @@ export interface operations { requestBody?: never; responses: { 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SecretResponse"][]; + }; + }; + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to delete project vanity subdomain configuration */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to retrieve project's secrets */ 500: { headers: { [name: string]: unknown; @@ -4788,7 +6268,7 @@ export interface operations { }; }; }; - "v1-check-vanity-subdomain-availability": { + "v1-bulk-create-secrets": { parameters: { query?: never; header?: never; @@ -4800,7 +6280,7 @@ export interface operations { }; requestBody: { content: { - "application/json": components["schemas"]["VanitySubdomainBody"]; + "application/json": components["schemas"]["CreateSecretBody"]; }; }; responses: { @@ -4808,17 +6288,30 @@ export interface operations { headers: { [name: string]: unknown; }; - content: { - "application/json": components["schemas"]["SubdomainAvailabilityResponse"]; + content?: never; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to check project vanity subdomain configuration */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to create project's secrets */ 500: { headers: { [name: string]: unknown; @@ -4827,7 +6320,7 @@ export interface operations { }; }; }; - "v1-activate-vanity-subdomain-config": { + "v1-bulk-delete-secrets": { parameters: { query?: never; header?: never; @@ -4839,25 +6332,38 @@ export interface operations { }; requestBody: { content: { - "application/json": components["schemas"]["VanitySubdomainBody"]; + "application/json": components["schemas"]["DeleteSecretsBody"]; }; }; responses: { - 201: { + 200: { headers: { [name: string]: unknown; }; - content: { - "application/json": components["schemas"]["ActivateVanitySubdomainResponse"]; + content?: never; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to activate project vanity subdomain configuration */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to delete secrets with given names */ 500: { headers: { [name: string]: unknown; @@ -4866,7 +6372,7 @@ export interface operations { }; }; }; - "v1-upgrade-postgres-version": { + "v1-get-ssl-enforcement-config": { parameters: { query?: never; header?: never; @@ -4876,36 +6382,47 @@ export interface operations { }; cookie?: never; }; - requestBody: { - content: { - "application/json": components["schemas"]["UpgradeDatabaseBody"]; - }; - }; + requestBody?: never; responses: { - 201: { + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["ProjectUpgradeInitiateResponse"]; + "application/json": components["schemas"]["SslEnforcementResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to initiate project upgrade */ - 500: { + /** @description Rate limit exceeded */ + 429: { headers: { [name: string]: unknown; }; content?: never; }; - }; - }; - "v1-get-postgres-upgrade-eligibility": { + /** @description Failed to retrieve project's SSL enforcement config */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-update-ssl-enforcement-config": { parameters: { query?: never; header?: never; @@ -4915,23 +6432,42 @@ export interface operations { }; cookie?: never; }; - requestBody?: never; + requestBody: { + content: { + "application/json": components["schemas"]["SslEnforcementRequest"]; + }; + }; responses: { 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["ProjectUpgradeEligibilityResponse"]; + "application/json": components["schemas"]["SslEnforcementResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to determine project upgrade eligibility */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to update project's SSL enforcement configuration. */ 500: { headers: { [name: string]: unknown; @@ -4940,10 +6476,10 @@ export interface operations { }; }; }; - "v1-get-postgres-upgrade-status": { + "v1-generate-typescript-types": { parameters: { query?: { - tracking_id?: string; + included_schemas?: string; }; header?: never; path: { @@ -4959,16 +6495,31 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["DatabaseUpgradeStatusResponse"]; + "application/json": components["schemas"]["TypescriptResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to retrieve project upgrade status */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to generate TypeScript types */ 500: { headers: { [name: string]: unknown; @@ -4977,7 +6528,7 @@ export interface operations { }; }; }; - "v1-get-readonly-mode-status": { + "v1-get-vanity-subdomain-config": { parameters: { query?: never; header?: never; @@ -4994,16 +6545,31 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["ReadOnlyStatusResponse"]; + "application/json": components["schemas"]["VanitySubdomainConfigResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to get project readonly mode status */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to get project vanity subdomain configuration */ 500: { headers: { [name: string]: unknown; @@ -5012,7 +6578,7 @@ export interface operations { }; }; }; - "v1-disable-readonly-mode-temporarily": { + "v1-deactivate-vanity-subdomain-config": { parameters: { query?: never; header?: never; @@ -5024,19 +6590,34 @@ export interface operations { }; requestBody?: never; responses: { - 201: { + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to disable project's readonly mode */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to delete project vanity subdomain configuration */ 500: { headers: { [name: string]: unknown; @@ -5045,7 +6626,7 @@ export interface operations { }; }; }; - "v1-setup-a-read-replica": { + "v1-check-vanity-subdomain-availability": { parameters: { query?: never; header?: never; @@ -5057,23 +6638,40 @@ export interface operations { }; requestBody: { content: { - "application/json": components["schemas"]["SetUpReadReplicaBody"]; + "application/json": components["schemas"]["VanitySubdomainBody"]; }; }; responses: { 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SubdomainAvailabilityResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to set up read replica */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to check project vanity subdomain configuration */ 500: { headers: { [name: string]: unknown; @@ -5082,7 +6680,7 @@ export interface operations { }; }; }; - "v1-remove-a-read-replica": { + "v1-activate-vanity-subdomain-config": { parameters: { query?: never; header?: never; @@ -5094,23 +6692,40 @@ export interface operations { }; requestBody: { content: { - "application/json": components["schemas"]["RemoveReadReplicaBody"]; + "application/json": components["schemas"]["VanitySubdomainBody"]; }; }; responses: { 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ActivateVanitySubdomainResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to remove read replica */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to activate project vanity subdomain configuration */ 500: { headers: { [name: string]: unknown; @@ -5119,12 +6734,9 @@ export interface operations { }; }; }; - "v1-get-services-health": { + "v1-upgrade-postgres-version": { parameters: { - query: { - services: ("auth" | "db" | "pooler" | "realtime" | "rest" | "storage")[]; - timeout_ms?: number; - }; + query?: never; header?: never; path: { /** @description Project ref */ @@ -5132,23 +6744,42 @@ export interface operations { }; cookie?: never; }; - requestBody?: never; + requestBody: { + content: { + "application/json": components["schemas"]["UpgradeDatabaseBody"]; + }; + }; responses: { - 200: { + 201: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["V1ServiceHealthResponse"][]; + "application/json": components["schemas"]["ProjectUpgradeInitiateResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to retrieve project's service health status */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to initiate project upgrade */ 500: { headers: { [name: string]: unknown; @@ -5157,7 +6788,7 @@ export interface operations { }; }; }; - "v1-get-legacy-signing-key": { + "v1-get-postgres-upgrade-eligibility": { parameters: { query?: never; header?: never; @@ -5174,20 +6805,44 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["SigningKeyResponse"]; + "application/json": components["schemas"]["ProjectUpgradeEligibilityResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to determine project upgrade eligibility */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-create-legacy-signing-key": { + "v1-get-postgres-upgrade-status": { parameters: { - query?: never; + query?: { + tracking_id?: string; + }; header?: never; path: { /** @description Project ref */ @@ -5197,23 +6852,45 @@ export interface operations { }; requestBody?: never; responses: { - 201: { + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["SigningKeyResponse"]; + "application/json": components["schemas"]["DatabaseUpgradeStatusResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to retrieve project upgrade status */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-get-project-signing-keys": { + "v1-get-readonly-mode-status": { parameters: { query?: never; header?: never; @@ -5230,42 +6907,32 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["SigningKeysResponse"]; + "application/json": components["schemas"]["ReadOnlyStatusResponse"]; }; }; - 403: { + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - }; - }; - "v1-create-project-signing-key": { - parameters: { - query?: never; - header?: never; - path: { - /** @description Project ref */ - ref: string; - }; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["CreateSigningKeyBody"]; - }; - }; - responses: { - 201: { + /** @description Forbidden action */ + 403: { headers: { [name: string]: unknown; }; - content: { - "application/json": components["schemas"]["SigningKeyResponse"]; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; }; + content?: never; }; - 403: { + /** @description Failed to get project readonly mode status */ + 500: { headers: { [name: string]: unknown; }; @@ -5273,12 +6940,11 @@ export interface operations { }; }; }; - "v1-get-project-signing-key": { + "v1-disable-readonly-mode-temporarily": { parameters: { query?: never; header?: never; path: { - id: string; /** @description Project ref */ ref: string; }; @@ -5286,57 +6952,99 @@ export interface operations { }; requestBody?: never; responses: { - 200: { + 201: { headers: { [name: string]: unknown; }; - content: { - "application/json": components["schemas"]["SigningKeyResponse"]; + content?: never; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to disable project's readonly mode */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-remove-project-signing-key": { + "v1-setup-a-read-replica": { parameters: { query?: never; header?: never; path: { - id: string; /** @description Project ref */ ref: string; }; cookie?: never; }; - requestBody?: never; + requestBody: { + content: { + "application/json": components["schemas"]["SetUpReadReplicaBody"]; + }; + }; responses: { - 200: { + 201: { headers: { [name: string]: unknown; }; - content: { - "application/json": components["schemas"]["SigningKeyResponse"]; + content?: never; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to set up read replica */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-update-project-signing-key": { + "v1-remove-a-read-replica": { parameters: { query?: never; header?: never; path: { - id: string; /** @description Project ref */ ref: string; }; @@ -5344,53 +7052,38 @@ export interface operations { }; requestBody: { content: { - "application/json": components["schemas"]["UpdateSigningKeyBody"]; + "application/json": components["schemas"]["RemoveReadReplicaBody"]; }; }; responses: { - 200: { + 201: { headers: { [name: string]: unknown; }; - content: { - "application/json": components["schemas"]["SigningKeyResponse"]; - }; + content?: never; }; - 403: { + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - }; - }; - "v1-get-storage-config": { - parameters: { - query?: never; - header?: never; - path: { - /** @description Project ref */ - ref: string; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - 200: { + /** @description Forbidden action */ + 403: { headers: { [name: string]: unknown; }; - content: { - "application/json": components["schemas"]["StorageConfigResponse"]; - }; + content?: never; }; - 403: { + /** @description Rate limit exceeded */ + 429: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to retrieve project's storage config */ + /** @description Failed to remove read replica */ 500: { headers: { [name: string]: unknown; @@ -5399,9 +7092,12 @@ export interface operations { }; }; }; - "v1-update-storage-config": { + "v1-get-services-health": { parameters: { - query?: never; + query: { + services: ("auth" | "db" | "db_postgres_user" | "pooler" | "realtime" | "rest" | "storage" | "pg_bouncer")[]; + timeout_ms?: number; + }; header?: never; path: { /** @description Project ref */ @@ -5409,25 +7105,38 @@ export interface operations { }; cookie?: never; }; - requestBody: { - content: { - "application/json": components["schemas"]["UpdateStorageConfigBody"]; - }; - }; + requestBody?: never; responses: { 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["V1ServiceHealthResponse"][]; + }; + }; + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to update project's storage config */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to retrieve project's service health status */ 500: { headers: { [name: string]: unknown; @@ -5436,7 +7145,7 @@ export interface operations { }; }; }; - "v1-get-postgres-config": { + "v1-get-legacy-signing-key": { parameters: { query?: never; header?: never; @@ -5453,17 +7162,25 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["PostgresConfigResponse"]; + "application/json": components["schemas"]["SigningKeyResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to retrieve project's Postgres config */ - 500: { + /** @description Rate limit exceeded */ + 429: { headers: { [name: string]: unknown; }; @@ -5471,7 +7188,7 @@ export interface operations { }; }; }; - "v1-update-postgres-config": { + "v1-create-legacy-signing-key": { parameters: { query?: never; header?: never; @@ -5481,28 +7198,32 @@ export interface operations { }; cookie?: never; }; - requestBody: { - content: { - "application/json": components["schemas"]["UpdatePostgresConfigBody"]; - }; - }; + requestBody?: never; responses: { - 200: { + 201: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["PostgresConfigResponse"]; + "application/json": components["schemas"]["SigningKeyResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to update project's Postgres config */ - 500: { + /** @description Rate limit exceeded */ + 429: { headers: { [name: string]: unknown; }; @@ -5510,7 +7231,7 @@ export interface operations { }; }; }; - "v1-get-project-pgbouncer-config": { + "v1-get-project-signing-keys": { parameters: { query?: never; header?: never; @@ -5527,17 +7248,25 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["V1PgbouncerConfigResponse"]; + "application/json": components["schemas"]["SigningKeysResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to retrieve project's pgbouncer config */ - 500: { + /** @description Rate limit exceeded */ + 429: { headers: { [name: string]: unknown; }; @@ -5545,7 +7274,7 @@ export interface operations { }; }; }; - "v1-get-pooler-config": { + "v1-create-project-signing-key": { parameters: { query?: never; header?: never; @@ -5555,18 +7284,36 @@ export interface operations { }; cookie?: never; }; - requestBody?: never; + requestBody: { + content: { + "application/json": components["schemas"]["CreateSigningKeyBody"]; + }; + }; responses: { - 200: { + 201: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["SupavisorConfigResponse"][]; + "application/json": components["schemas"]["SigningKeyResponse"]; }; }; - /** @description Failed to retrieve project's supavisor config */ - 500: { + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { headers: { [name: string]: unknown; }; @@ -5574,38 +7321,43 @@ export interface operations { }; }; }; - "v1-update-pooler-config": { + "v1-get-project-signing-key": { parameters: { query?: never; header?: never; path: { + id: string; /** @description Project ref */ ref: string; }; cookie?: never; }; - requestBody: { - content: { - "application/json": components["schemas"]["UpdateSupavisorConfigBody"]; - }; - }; + requestBody?: never; responses: { 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["UpdateSupavisorConfigResponse"]; + "application/json": components["schemas"]["SigningKeyResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to update project's supavisor config */ - 500: { + /** @description Rate limit exceeded */ + 429: { headers: { [name: string]: unknown; }; @@ -5613,11 +7365,12 @@ export interface operations { }; }; }; - "v1-get-auth-service-config": { + "v1-remove-project-signing-key": { parameters: { query?: never; header?: never; path: { + id: string; /** @description Project ref */ ref: string; }; @@ -5630,17 +7383,25 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["AuthConfigResponse"]; + "application/json": components["schemas"]["SigningKeyResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to retrieve project's auth config */ - 500: { + /** @description Rate limit exceeded */ + 429: { headers: { [name: string]: unknown; }; @@ -5648,11 +7409,12 @@ export interface operations { }; }; }; - "v1-update-auth-service-config": { + "v1-update-project-signing-key": { parameters: { query?: never; header?: never; path: { + id: string; /** @description Project ref */ ref: string; }; @@ -5660,7 +7422,7 @@ export interface operations { }; requestBody: { content: { - "application/json": components["schemas"]["UpdateAuthConfigBody"]; + "application/json": components["schemas"]["UpdateSigningKeyBody"]; }; }; responses: { @@ -5669,17 +7431,25 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["AuthConfigResponse"]; + "application/json": components["schemas"]["SigningKeyResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to update project's auth config */ - 500: { + /** @description Rate limit exceeded */ + 429: { headers: { [name: string]: unknown; }; @@ -5687,7 +7457,7 @@ export interface operations { }; }; }; - "v1-list-project-tpa-integrations": { + "v1-get-storage-config": { parameters: { query?: never; header?: never; @@ -5704,18 +7474,40 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["ThirdPartyAuth"][]; + "application/json": components["schemas"]["StorageConfigResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to retrieve project's storage config */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-create-project-tpa-integration": { + "v1-update-storage-config": { parameters: { query?: never; header?: never; @@ -5727,34 +7519,53 @@ export interface operations { }; requestBody: { content: { - "application/json": components["schemas"]["CreateThirdPartyAuthBody"]; + "application/json": components["schemas"]["UpdateStorageConfigBody"]; }; }; responses: { - 201: { + 200: { headers: { [name: string]: unknown; }; - content: { - "application/json": components["schemas"]["ThirdPartyAuth"]; + content?: never; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to update project's storage config */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-get-project-tpa-integration": { + "v1-get-postgres-config": { parameters: { query?: never; header?: never; path: { /** @description Project ref */ ref: string; - tpa_id: string; }; cookie?: never; }; @@ -5765,25 +7576,980 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["ThirdPartyAuth"]; + "application/json": components["schemas"]["PostgresConfigResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - }; - }; - "v1-delete-project-tpa-integration": { + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to retrieve project's Postgres config */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-update-postgres-config": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ref */ + ref: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["UpdatePostgresConfigBody"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PostgresConfigResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to update project's Postgres config */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-get-project-pgbouncer-config": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ref */ + ref: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["V1PgbouncerConfigResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to retrieve project's pgbouncer config */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-get-pooler-config": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ref */ + ref: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SupavisorConfigResponse"][]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to retrieve project's supavisor config */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-update-pooler-config": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ref */ + ref: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["UpdateSupavisorConfigBody"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["UpdateSupavisorConfigResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to update project's supavisor config */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-get-auth-service-config": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ref */ + ref: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AuthConfigResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to retrieve project's auth config */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-update-auth-service-config": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ref */ + ref: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["UpdateAuthConfigBody"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AuthConfigResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to update project's auth config */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-list-project-tpa-integrations": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ref */ + ref: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ThirdPartyAuth"][]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-create-project-tpa-integration": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ref */ + ref: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CreateThirdPartyAuthBody"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ThirdPartyAuth"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-get-project-tpa-integration": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ref */ + ref: string; + tpa_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ThirdPartyAuth"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-delete-project-tpa-integration": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ref */ + ref: string; + tpa_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ThirdPartyAuth"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-pause-a-project": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ref */ + ref: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-list-available-restore-versions": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ref */ + ref: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["GetProjectAvailableRestoreVersionsResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-restore-a-project": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ref */ + ref: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-cancel-a-project-restoration": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ref */ + ref: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-list-project-addons": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ref */ + ref: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListProjectAddonsResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to list project addons */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-apply-project-addon": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ref */ + ref: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ApplyProjectAddonBody"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to apply project addon */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-remove-project-addon": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ref */ + ref: string; + addon_variant: ("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") | "cd_default" | ("pitr_7" | "pitr_14" | "pitr_28") | "ipv4_default"; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to remove project addon */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-get-project-claim-token": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ref */ + ref: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectClaimTokenResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-create-project-claim-token": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ref */ + ref: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CreateProjectClaimTokenResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-delete-project-claim-token": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ref */ + ref: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-get-performance-advisors": { parameters: { query?: never; header?: never; path: { /** @description Project ref */ ref: string; - tpa_id: string; }; cookie?: never; }; @@ -5794,20 +8560,37 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["ThirdPartyAuth"]; + "application/json": components["schemas"]["V1ProjectAdvisorsResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-pause-a-project": { + "v1-get-security-advisors": { parameters: { - query?: never; + query?: { + lint_type?: "sql"; + }; header?: never; path: { /** @description Project ref */ @@ -5818,22 +8601,44 @@ export interface operations { requestBody?: never; responses: { 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["V1ProjectAdvisorsResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-list-available-restore-versions": { + "v1-get-project-logs": { parameters: { - query?: never; + 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. */ + sql?: string; + iso_timestamp_start?: string; + iso_timestamp_end?: string; + }; header?: never; path: { /** @description Project ref */ @@ -5848,20 +8653,37 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["GetProjectAvailableRestoreVersionsResponse"]; + "application/json": components["schemas"]["AnalyticsResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-restore-a-project": { + "v1-get-project-usage-api-count": { parameters: { - query?: never; + query?: { + interval?: "15min" | "30min" | "1hr" | "3hr" | "1day" | "3day" | "7day"; + }; header?: never; path: { /** @description Project ref */ @@ -5872,20 +8694,44 @@ export interface operations { requestBody?: never; responses: { 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["V1GetUsageApiCountResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to get project's usage api counts */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-cancel-a-project-restoration": { + "v1-get-project-usage-request-count": { parameters: { query?: never; header?: never; @@ -5898,22 +8744,49 @@ export interface operations { requestBody?: never; responses: { 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["V1GetUsageApiRequestsCountResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to get project's usage api requests count */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-list-project-addons": { + "v1-get-project-function-combined-stats": { parameters: { - query?: never; + query: { + interval: "15min" | "1hr" | "3hr" | "1day"; + function_id: string; + }; header?: never; path: { /** @description Project ref */ @@ -5928,16 +8801,31 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["ListProjectAddonsResponse"]; + "application/json": components["schemas"]["AnalyticsResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to list project addons */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to get project's function combined statistics */ 500: { headers: { [name: string]: unknown; @@ -5946,7 +8834,7 @@ export interface operations { }; }; }; - "v1-apply-project-addon": { + "v1-create-login-role": { parameters: { query?: never; header?: never; @@ -5958,23 +8846,40 @@ export interface operations { }; requestBody: { content: { - "application/json": components["schemas"]["ApplyProjectAddonBody"]; + "application/json": components["schemas"]["CreateRoleBody"]; }; }; responses: { - 200: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CreateRoleResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to apply project addon */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to create login role */ 500: { headers: { [name: string]: unknown; @@ -5983,32 +8888,48 @@ export interface operations { }; }; }; - "v1-remove-project-addon": { + "v1-delete-login-roles": { parameters: { query?: never; header?: never; path: { /** @description Project ref */ ref: string; - addon_variant: unknown; }; cookie?: never; }; requestBody?: never; responses: { 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DeleteRolesResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to remove project addon */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to delete login roles */ 500: { headers: { [name: string]: unknown; @@ -6017,7 +8938,7 @@ export interface operations { }; }; }; - "v1-get-project-claim-token": { + "v1-list-migration-history": { parameters: { query?: never; header?: never; @@ -6034,74 +8955,155 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["ProjectClaimTokenResponse"]; + "application/json": components["schemas"]["V1ListMigrationsResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to list database migrations */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-create-project-claim-token": { + "v1-upsert-a-migration": { parameters: { query?: never; - header?: never; + header?: { + /** @description A unique key to ensure the same migration is tracked only once. */ + "Idempotency-Key"?: string; + }; path: { /** @description Project ref */ ref: string; }; cookie?: never; }; - requestBody?: never; + requestBody: { + content: { + "application/json": components["schemas"]["V1UpsertMigrationBody"]; + }; + }; responses: { 200: { headers: { [name: string]: unknown; }; - content: { - "application/json": components["schemas"]["CreateProjectClaimTokenResponse"]; + content?: never; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to upsert database migration */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-delete-project-claim-token": { + "v1-apply-a-migration": { parameters: { query?: never; - header?: never; + header?: { + /** @description A unique key to ensure the same migration is tracked only once. */ + "Idempotency-Key"?: string; + }; path: { /** @description Project ref */ ref: string; }; cookie?: never; }; - requestBody?: never; + requestBody: { + content: { + "application/json": components["schemas"]["V1CreateMigrationBody"]; + }; + }; responses: { - 204: { + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to apply database migration */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-get-performance-advisors": { + "v1-rollback-migrations": { parameters: { - query?: never; + query: { + /** @description Rollback migrations greater or equal to this version */ + gte: string; + }; header?: never; path: { /** @description Project ref */ @@ -6115,27 +9117,46 @@ export interface operations { headers: { [name: string]: unknown; }; - content: { - "application/json": components["schemas"]["V1ProjectAdvisorsResponse"]; + content?: never; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to rollback database migration */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-get-security-advisors": { + "v1-get-a-migration": { parameters: { - query?: { - lint_type?: "sql"; - }; + query?: never; header?: never; path: { /** @description Project ref */ ref: string; + version: string; }; cookie?: never; }; @@ -6146,54 +9167,95 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["V1ProjectAdvisorsResponse"]; + "application/json": components["schemas"]["V1GetMigrationResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to get database migration */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-get-project-logs": { + "v1-patch-a-migration": { parameters: { - query?: { - sql?: string; - iso_timestamp_start?: string; - iso_timestamp_end?: string; - }; + query?: never; header?: never; path: { /** @description Project ref */ ref: string; + version: string; }; cookie?: never; }; - requestBody?: never; + requestBody: { + content: { + "application/json": components["schemas"]["V1PatchMigrationBody"]; + }; + }; responses: { 200: { headers: { [name: string]: unknown; }; - content: { - "application/json": components["schemas"]["AnalyticsResponse"]; + content?: never; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to patch database migration */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; - "v1-get-project-usage-api-count": { + "v1-run-a-query": { parameters: { - query?: { - interval?: "15min" | "30min" | "1hr" | "3hr" | "1day" | "3day" | "7day"; - }; + query?: never; header?: never; path: { /** @description Project ref */ @@ -6201,23 +9263,40 @@ export interface operations { }; cookie?: never; }; - requestBody?: never; + requestBody: { + content: { + "application/json": components["schemas"]["V1RunQueryBody"]; + }; + }; responses: { - 200: { + 201: { headers: { [name: string]: unknown; }; - content: { - "application/json": components["schemas"]["AnalyticsResponse"]; + content?: never; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to get project's usage api counts */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to run sql query */ 500: { headers: { [name: string]: unknown; @@ -6226,7 +9305,7 @@ export interface operations { }; }; }; - "v1-get-project-usage-request-count": { + "v1-enable-database-webhook": { parameters: { query?: never; header?: never; @@ -6238,15 +9317,34 @@ export interface operations { }; requestBody?: never; responses: { - 200: { + 201: { headers: { [name: string]: unknown; }; - content: { - "application/json": components["schemas"]["AnalyticsResponse"]; + content?: never; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; - /** @description Failed to get project's usage api requests count */ + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to enable Database Webhooks on the project */ 500: { headers: { [name: string]: unknown; @@ -6255,7 +9353,7 @@ export interface operations { }; }; }; - "v1-list-migration-history": { + "v1-get-database-metadata": { parameters: { query?: never; header?: never; @@ -6272,17 +9370,25 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["V1ListMigrationsResponse"]; + "application/json": components["schemas"]["GetProjectDbMetadataResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to list database migrations */ - 500: { + /** @description Rate limit exceeded */ + 429: { headers: { [name: string]: unknown; }; @@ -6290,38 +9396,48 @@ export interface operations { }; }; }; - "v1-upsert-a-migration": { + "v1-get-jit-access": { parameters: { query?: never; - header?: { - /** @description A unique key to ensure the same migration is tracked only once. */ - "Idempotency-Key"?: string; - }; + header?: never; path: { /** @description Project ref */ ref: string; }; cookie?: never; }; - requestBody: { - content: { - "application/json": components["schemas"]["V1UpsertMigrationBody"]; - }; - }; + requestBody?: never; responses: { 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["JitAccessResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to upsert database migration */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to list database jit access */ 500: { headers: { [name: string]: unknown; @@ -6330,13 +9446,10 @@ export interface operations { }; }; }; - "v1-apply-a-migration": { + "v1-update-jit-access": { parameters: { query?: never; - header?: { - /** @description A unique key to ensure the same migration is tracked only once. */ - "Idempotency-Key"?: string; - }; + header?: never; path: { /** @description Project ref */ ref: string; @@ -6345,23 +9458,40 @@ export interface operations { }; requestBody: { content: { - "application/json": components["schemas"]["V1CreateMigrationBody"]; + "application/json": components["schemas"]["UpdateJitAccessBody"]; }; }; responses: { 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["JitAccessResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to apply database migration */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to upsert database migration */ 500: { headers: { [name: string]: unknown; @@ -6370,7 +9500,7 @@ export interface operations { }; }; }; - "v1-run-a-query": { + "v1-authorize-jit-access": { parameters: { query?: never; header?: never; @@ -6382,23 +9512,40 @@ export interface operations { }; requestBody: { content: { - "application/json": components["schemas"]["V1RunQueryBody"]; + "application/json": components["schemas"]["AuthorizeJitAccessBody"]; }; }; responses: { - 201: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["JitAuthorizeAccessResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to run sql query */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to authorize database jit access */ 500: { headers: { [name: string]: unknown; @@ -6407,7 +9554,7 @@ export interface operations { }; }; }; - "v1-enable-database-webhook": { + "v1-list-jit-access": { parameters: { query?: never; header?: never; @@ -6419,19 +9566,36 @@ export interface operations { }; requestBody?: never; responses: { - 201: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["JitListAccessResponse"]; + }; + }; + /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Failed to enable Database Webhooks on the project */ + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to list database jit access */ 500: { headers: { [name: string]: unknown; @@ -6440,13 +9604,14 @@ export interface operations { }; }; }; - "v1-get-database-metadata": { + "v1-delete-jit-access": { parameters: { query?: never; header?: never; path: { /** @description Project ref */ ref: string; + user_id: string; }; cookie?: never; }; @@ -6456,16 +9621,36 @@ export interface operations { headers: { [name: string]: unknown; }; - content: { - "application/json": components["schemas"]["GetProjectDbMetadataResponse"]; + content?: never; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; }; + content?: never; }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Failed to remove JIT access */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; "v1-list-all-functions": { @@ -6488,12 +9673,27 @@ export interface operations { "application/json": components["schemas"]["FunctionResponse"][]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; /** @description Failed to retrieve project's functions */ 500: { headers: { @@ -6527,7 +9727,29 @@ export interface operations { "application/json": components["schemas"]["BulkUpdateFunctionResponse"]; }; }; - 403: { + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Maximum number of functions reached for Plan */ + 402: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { headers: { [name: string]: unknown; }; @@ -6577,12 +9799,34 @@ export interface operations { "application/json": components["schemas"]["FunctionResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Maximum number of functions reached for Plan */ + 402: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; /** @description Failed to create project's function */ 500: { headers: { @@ -6620,12 +9864,34 @@ export interface operations { "application/json": components["schemas"]["DeployFunctionResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Maximum number of functions reached for Plan */ + 402: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; /** @description Failed to deploy function */ 500: { headers: { @@ -6657,12 +9923,27 @@ export interface operations { "application/json": components["schemas"]["FunctionSlugResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; /** @description Failed to retrieve function with given slug */ 500: { headers: { @@ -6692,12 +9973,27 @@ export interface operations { }; content?: never; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; /** @description Failed to delete function with given slug */ 500: { headers: { @@ -6744,12 +10040,27 @@ export interface operations { "application/json": components["schemas"]["FunctionResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; /** @description Failed to update function with given slug */ 500: { headers: { @@ -6781,12 +10092,27 @@ export interface operations { "application/json": components["schemas"]["StreamableFile"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; /** @description Failed to retrieve function body with given slug */ 500: { headers: { @@ -6816,12 +10142,27 @@ export interface operations { "application/json": components["schemas"]["V1StorageBucketResponse"][]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; /** @description Failed to get list of buckets */ 500: { headers: { @@ -6851,6 +10192,14 @@ export interface operations { "application/json": components["schemas"]["ListProvidersResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; @@ -6864,6 +10213,13 @@ export interface operations { }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; "v1-create-a-sso-provider": { @@ -6890,6 +10246,14 @@ export interface operations { "application/json": components["schemas"]["CreateProviderResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; @@ -6903,6 +10267,13 @@ export interface operations { }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; "v1-get-a-sso-provider": { @@ -6926,6 +10297,14 @@ export interface operations { "application/json": components["schemas"]["GetProviderResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; @@ -6939,6 +10318,13 @@ export interface operations { }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; "v1-update-a-sso-provider": { @@ -6966,6 +10352,14 @@ export interface operations { "application/json": components["schemas"]["UpdateProviderResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; @@ -6979,6 +10373,13 @@ export interface operations { }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; "v1-delete-a-sso-provider": { @@ -7002,6 +10403,14 @@ export interface operations { "application/json": components["schemas"]["DeleteProviderResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; @@ -7015,6 +10424,13 @@ export interface operations { }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; "v1-list-all-backups": { @@ -7037,12 +10453,27 @@ export interface operations { "application/json": components["schemas"]["V1BackupsResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; /** @description Failed to get backups */ 500: { headers: { @@ -7074,12 +10505,27 @@ export interface operations { }; content?: never; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; "v1-get-restore-point": { @@ -7104,12 +10550,27 @@ export interface operations { "application/json": components["schemas"]["V1RestorePointResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; /** @description Failed to get requested restore points */ 500: { headers: { @@ -7143,6 +10604,27 @@ export interface operations { "application/json": components["schemas"]["V1RestorePointResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ + 403: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; "v1-undo": { @@ -7167,12 +10649,27 @@ export interface operations { }; content?: never; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; "v1-list-organization-members": { @@ -7195,12 +10692,27 @@ export interface operations { "application/json": components["schemas"]["V1OrganizationMemberResponse"][]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; "v1-get-an-organization": { @@ -7223,12 +10735,27 @@ export interface operations { "application/json": components["schemas"]["V1OrganizationSlugResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; "v1-get-organization-project-claim": { @@ -7252,12 +10779,27 @@ export interface operations { "application/json": components["schemas"]["OrganizationProjectClaimResponse"]; }; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; "v1-claim-project-for-organization": { @@ -7279,12 +10821,69 @@ export interface operations { }; content?: never; }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown; }; content?: never; }; + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + "v1-get-all-projects-for-organization": { + parameters: { + query?: { + /** @description Number of projects to skip */ + offset?: number; + /** @description Number of projects to return per page */ + limit?: number; + /** @description Search projects by name */ + search?: string; + /** @description Sort order for projects */ + sort?: "name_asc" | "name_desc" | "created_asc" | "created_desc"; + /** @description A comma-separated list of project statuses to filter by. + * + * The following values are supported: `ACTIVE_HEALTHY`, `INACTIVE`. */ + statuses?: string; + }; + header?: never; + path: { + /** @description Organization slug */ + slug: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OrganizationProjectsResponse"]; + }; + }; + /** @description Failed to retrieve projects */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; }; }; } diff --git a/packages/mcp-server-supabase/src/platform/api-platform.ts b/packages/mcp-server-supabase/src/platform/api-platform.ts index 708a2617..e1f6ef89 100644 --- a/packages/mcp-server-supabase/src/platform/api-platform.ts +++ b/packages/mcp-server-supabase/src/platform/api-platform.ts @@ -647,11 +647,11 @@ export function createSupabaseApiPlatform( }, async deleteBranch(branchId: string) { const response = await managementApiClient.DELETE( - '/v1/branches/{branch_id}', + '/v1/branches/{branch_id_or_ref}', { params: { path: { - branch_id: branchId, + branch_id_or_ref: branchId, }, }, } @@ -661,11 +661,11 @@ export function createSupabaseApiPlatform( }, async mergeBranch(branchId: string) { const response = await managementApiClient.POST( - '/v1/branches/{branch_id}/merge', + '/v1/branches/{branch_id_or_ref}/merge', { params: { path: { - branch_id: branchId, + branch_id_or_ref: branchId, }, }, body: {}, @@ -678,11 +678,11 @@ export function createSupabaseApiPlatform( const { migration_version } = resetBranchOptionsSchema.parse(options); const response = await managementApiClient.POST( - '/v1/branches/{branch_id}/reset', + '/v1/branches/{branch_id_or_ref}/reset', { params: { path: { - branch_id: branchId, + branch_id_or_ref: branchId, }, }, body: { @@ -695,11 +695,11 @@ export function createSupabaseApiPlatform( }, async rebaseBranch(branchId: string) { const response = await managementApiClient.POST( - '/v1/branches/{branch_id}/push', + '/v1/branches/{branch_id_or_ref}/push', { params: { path: { - branch_id: branchId, + branch_id_or_ref: branchId, }, }, body: {}, diff --git a/packages/mcp-server-supabase/src/server.test.ts b/packages/mcp-server-supabase/src/server.test.ts index d20ac9e1..934c56c2 100644 --- a/packages/mcp-server-supabase/src/server.test.ts +++ b/packages/mcp-server-supabase/src/server.test.ts @@ -1866,6 +1866,7 @@ describe('tools', () => { updated_at: expect.stringMatching( /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/ ), + with_data: false, }); }); diff --git a/packages/mcp-server-supabase/test/mocks.ts b/packages/mcp-server-supabase/test/mocks.ts index 464520eb..7f11ba31 100644 --- a/packages/mcp-server-supabase/test/mocks.ts +++ b/packages/mcp-server-supabase/test/mocks.ts @@ -1275,6 +1275,7 @@ export class MockBranch { status: this.status, created_at: this.created_at.toISOString(), updated_at: this.updated_at.toISOString(), + with_data: false, }; }