#
tokens: 77402/50000 1/106 files (page 6/6)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 6 of 6. Use http://codebase.md/alexander-zuev/supabase-mcp-server?lines=true&page={x} to view the full context.

# Directory Structure

```
├── .claude
│   └── settings.local.json
├── .dockerignore
├── .env.example
├── .env.test.example
├── .github
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE
│   │   ├── bug_report.md
│   │   ├── feature_request.md
│   │   └── roadmap_item.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── workflows
│       ├── ci.yaml
│       ├── docs
│       │   └── release-checklist.md
│       └── publish.yaml
├── .gitignore
├── .pre-commit-config.yaml
├── .python-version
├── CHANGELOG.MD
├── codecov.yml
├── CONTRIBUTING.MD
├── Dockerfile
├── LICENSE
├── llms-full.txt
├── pyproject.toml
├── README.md
├── smithery.yaml
├── supabase_mcp
│   ├── __init__.py
│   ├── clients
│   │   ├── api_client.py
│   │   ├── base_http_client.py
│   │   ├── management_client.py
│   │   └── sdk_client.py
│   ├── core
│   │   ├── __init__.py
│   │   ├── container.py
│   │   └── feature_manager.py
│   ├── exceptions.py
│   ├── logger.py
│   ├── main.py
│   ├── services
│   │   ├── __init__.py
│   │   ├── api
│   │   │   ├── __init__.py
│   │   │   ├── api_manager.py
│   │   │   ├── spec_manager.py
│   │   │   └── specs
│   │   │       └── api_spec.json
│   │   ├── database
│   │   │   ├── __init__.py
│   │   │   ├── migration_manager.py
│   │   │   ├── postgres_client.py
│   │   │   ├── query_manager.py
│   │   │   └── sql
│   │   │       ├── loader.py
│   │   │       ├── models.py
│   │   │       ├── queries
│   │   │       │   ├── create_migration.sql
│   │   │       │   ├── get_migrations.sql
│   │   │       │   ├── get_schemas.sql
│   │   │       │   ├── get_table_schema.sql
│   │   │       │   ├── get_tables.sql
│   │   │       │   ├── init_migrations.sql
│   │   │       │   └── logs
│   │   │       │       ├── auth_logs.sql
│   │   │       │       ├── cron_logs.sql
│   │   │       │       ├── edge_logs.sql
│   │   │       │       ├── function_edge_logs.sql
│   │   │       │       ├── pgbouncer_logs.sql
│   │   │       │       ├── postgres_logs.sql
│   │   │       │       ├── postgrest_logs.sql
│   │   │       │       ├── realtime_logs.sql
│   │   │       │       ├── storage_logs.sql
│   │   │       │       └── supavisor_logs.sql
│   │   │       └── validator.py
│   │   ├── logs
│   │   │   ├── __init__.py
│   │   │   └── log_manager.py
│   │   ├── safety
│   │   │   ├── __init__.py
│   │   │   ├── models.py
│   │   │   ├── safety_configs.py
│   │   │   └── safety_manager.py
│   │   └── sdk
│   │       ├── __init__.py
│   │       ├── auth_admin_models.py
│   │       └── auth_admin_sdk_spec.py
│   ├── settings.py
│   └── tools
│       ├── __init__.py
│       ├── descriptions
│       │   ├── api_tools.yaml
│       │   ├── database_tools.yaml
│       │   ├── logs_and_analytics_tools.yaml
│       │   ├── safety_tools.yaml
│       │   └── sdk_tools.yaml
│       ├── manager.py
│       └── registry.py
├── tests
│   ├── __init__.py
│   ├── conftest.py
│   ├── services
│   │   ├── __init__.py
│   │   ├── api
│   │   │   ├── __init__.py
│   │   │   ├── test_api_client.py
│   │   │   ├── test_api_manager.py
│   │   │   └── test_spec_manager.py
│   │   ├── database
│   │   │   ├── sql
│   │   │   │   ├── __init__.py
│   │   │   │   ├── conftest.py
│   │   │   │   ├── test_loader.py
│   │   │   │   ├── test_sql_validator_integration.py
│   │   │   │   └── test_sql_validator.py
│   │   │   ├── test_migration_manager.py
│   │   │   ├── test_postgres_client.py
│   │   │   └── test_query_manager.py
│   │   ├── logs
│   │   │   └── test_log_manager.py
│   │   ├── safety
│   │   │   ├── test_api_safety_config.py
│   │   │   ├── test_safety_manager.py
│   │   │   └── test_sql_safety_config.py
│   │   └── sdk
│   │       ├── test_auth_admin_models.py
│   │       └── test_sdk_client.py
│   ├── test_container.py
│   ├── test_main.py
│   ├── test_settings.py
│   ├── test_tool_manager.py
│   ├── test_tools_integration.py.bak
│   └── test_tools.py
└── uv.lock
```

# Files

--------------------------------------------------------------------------------
/supabase_mcp/services/api/specs/api_spec.json:
--------------------------------------------------------------------------------

```json
   1 | {
   2 |     "openapi": "3.0.0",
   3 |     "paths": {
   4 |       "/v1/branches/{branch_id}": {
   5 |         "get": {
   6 |           "operationId": "v1-get-a-branch-config",
   7 |           "summary": "Get database branch config",
   8 |           "description": "Fetches configurations of the specified database branch",
   9 |           "parameters": [
  10 |             {
  11 |               "name": "branch_id",
  12 |               "required": true,
  13 |               "in": "path",
  14 |               "description": "Branch ID",
  15 |               "schema": {
  16 |                 "type": "string"
  17 |               }
  18 |             }
  19 |           ],
  20 |           "responses": {
  21 |             "200": {
  22 |               "description": "",
  23 |               "content": {
  24 |                 "application/json": {
  25 |                   "schema": {
  26 |                     "$ref": "#/components/schemas/BranchDetailResponse"
  27 |                   }
  28 |                 }
  29 |               }
  30 |             },
  31 |             "500": {
  32 |               "description": "Failed to retrieve database branch"
  33 |             }
  34 |           },
  35 |           "tags": [
  36 |             "Environments"
  37 |           ],
  38 |           "security": [
  39 |             {
  40 |               "bearer": []
  41 |             }
  42 |           ]
  43 |         },
  44 |         "patch": {
  45 |           "operationId": "v1-update-a-branch-config",
  46 |           "summary": "Update database branch config",
  47 |           "description": "Updates the configuration of the specified database branch",
  48 |           "parameters": [
  49 |             {
  50 |               "name": "branch_id",
  51 |               "required": true,
  52 |               "in": "path",
  53 |               "description": "Branch ID",
  54 |               "schema": {
  55 |                 "type": "string"
  56 |               }
  57 |             }
  58 |           ],
  59 |           "requestBody": {
  60 |             "required": true,
  61 |             "content": {
  62 |               "application/json": {
  63 |                 "schema": {
  64 |                   "$ref": "#/components/schemas/UpdateBranchBody"
  65 |                 }
  66 |               }
  67 |             }
  68 |           },
  69 |           "responses": {
  70 |             "200": {
  71 |               "description": "",
  72 |               "content": {
  73 |                 "application/json": {
  74 |                   "schema": {
  75 |                     "$ref": "#/components/schemas/BranchResponse"
  76 |                   }
  77 |                 }
  78 |               }
  79 |             },
  80 |             "500": {
  81 |               "description": "Failed to update database branch"
  82 |             }
  83 |           },
  84 |           "tags": [
  85 |             "Environments"
  86 |           ],
  87 |           "security": [
  88 |             {
  89 |               "bearer": []
  90 |             }
  91 |           ]
  92 |         },
  93 |         "delete": {
  94 |           "operationId": "v1-delete-a-branch",
  95 |           "summary": "Delete a database branch",
  96 |           "description": "Deletes the specified database branch",
  97 |           "parameters": [
  98 |             {
  99 |               "name": "branch_id",
 100 |               "required": true,
 101 |               "in": "path",
 102 |               "description": "Branch ID",
 103 |               "schema": {
 104 |                 "type": "string"
 105 |               }
 106 |             }
 107 |           ],
 108 |           "responses": {
 109 |             "200": {
 110 |               "description": "",
 111 |               "content": {
 112 |                 "application/json": {
 113 |                   "schema": {
 114 |                     "$ref": "#/components/schemas/BranchDeleteResponse"
 115 |                   }
 116 |                 }
 117 |               }
 118 |             },
 119 |             "500": {
 120 |               "description": "Failed to delete database branch"
 121 |             }
 122 |           },
 123 |           "tags": [
 124 |             "Environments"
 125 |           ],
 126 |           "security": [
 127 |             {
 128 |               "bearer": []
 129 |             }
 130 |           ]
 131 |         }
 132 |       },
 133 |       "/v1/branches/{branch_id}/push": {
 134 |         "post": {
 135 |           "operationId": "v1-push-a-branch",
 136 |           "summary": "Pushes a database branch",
 137 |           "description": "Pushes the specified database branch",
 138 |           "parameters": [
 139 |             {
 140 |               "name": "branch_id",
 141 |               "required": true,
 142 |               "in": "path",
 143 |               "description": "Branch ID",
 144 |               "schema": {
 145 |                 "type": "string"
 146 |               }
 147 |             }
 148 |           ],
 149 |           "responses": {
 150 |             "201": {
 151 |               "description": "",
 152 |               "content": {
 153 |                 "application/json": {
 154 |                   "schema": {
 155 |                     "$ref": "#/components/schemas/BranchUpdateResponse"
 156 |                   }
 157 |                 }
 158 |               }
 159 |             },
 160 |             "500": {
 161 |               "description": "Failed to push database branch"
 162 |             }
 163 |           },
 164 |           "tags": [
 165 |             "Environments"
 166 |           ],
 167 |           "security": [
 168 |             {
 169 |               "bearer": []
 170 |             }
 171 |           ]
 172 |         }
 173 |       },
 174 |       "/v1/branches/{branch_id}/reset": {
 175 |         "post": {
 176 |           "operationId": "v1-reset-a-branch",
 177 |           "summary": "Resets a database branch",
 178 |           "description": "Resets the specified database branch",
 179 |           "parameters": [
 180 |             {
 181 |               "name": "branch_id",
 182 |               "required": true,
 183 |               "in": "path",
 184 |               "description": "Branch ID",
 185 |               "schema": {
 186 |                 "type": "string"
 187 |               }
 188 |             }
 189 |           ],
 190 |           "responses": {
 191 |             "201": {
 192 |               "description": "",
 193 |               "content": {
 194 |                 "application/json": {
 195 |                   "schema": {
 196 |                     "$ref": "#/components/schemas/BranchUpdateResponse"
 197 |                   }
 198 |                 }
 199 |               }
 200 |             },
 201 |             "500": {
 202 |               "description": "Failed to reset database branch"
 203 |             }
 204 |           },
 205 |           "tags": [
 206 |             "Environments"
 207 |           ],
 208 |           "security": [
 209 |             {
 210 |               "bearer": []
 211 |             }
 212 |           ]
 213 |         }
 214 |       },
 215 |       "/v1/projects": {
 216 |         "get": {
 217 |           "operationId": "v1-list-all-projects",
 218 |           "summary": "List all projects",
 219 |           "description": "Returns a list of all projects you've previously created.",
 220 |           "parameters": [],
 221 |           "responses": {
 222 |             "200": {
 223 |               "description": "",
 224 |               "content": {
 225 |                 "application/json": {
 226 |                   "schema": {
 227 |                     "type": "array",
 228 |                     "items": {
 229 |                       "$ref": "#/components/schemas/V1ProjectWithDatabaseResponse"
 230 |                     }
 231 |                   }
 232 |                 }
 233 |               }
 234 |             }
 235 |           },
 236 |           "tags": [
 237 |             "Projects"
 238 |           ],
 239 |           "security": [
 240 |             {
 241 |               "bearer": []
 242 |             }
 243 |           ]
 244 |         },
 245 |         "post": {
 246 |           "operationId": "v1-create-a-project",
 247 |           "summary": "Create a project",
 248 |           "parameters": [],
 249 |           "requestBody": {
 250 |             "required": true,
 251 |             "content": {
 252 |               "application/json": {
 253 |                 "schema": {
 254 |                   "$ref": "#/components/schemas/V1CreateProjectBodyDto"
 255 |                 }
 256 |               }
 257 |             }
 258 |           },
 259 |           "responses": {
 260 |             "201": {
 261 |               "description": "",
 262 |               "content": {
 263 |                 "application/json": {
 264 |                   "schema": {
 265 |                     "$ref": "#/components/schemas/V1ProjectResponse"
 266 |                   }
 267 |                 }
 268 |               }
 269 |             }
 270 |           },
 271 |           "tags": [
 272 |             "Projects"
 273 |           ],
 274 |           "security": [
 275 |             {
 276 |               "bearer": []
 277 |             }
 278 |           ]
 279 |         }
 280 |       },
 281 |       "/v1/organizations": {
 282 |         "get": {
 283 |           "operationId": "v1-list-all-organizations",
 284 |           "summary": "List all organizations",
 285 |           "description": "Returns a list of organizations that you currently belong to.",
 286 |           "parameters": [],
 287 |           "responses": {
 288 |             "200": {
 289 |               "description": "",
 290 |               "content": {
 291 |                 "application/json": {
 292 |                   "schema": {
 293 |                     "type": "array",
 294 |                     "items": {
 295 |                       "$ref": "#/components/schemas/OrganizationResponseV1"
 296 |                     }
 297 |                   }
 298 |                 }
 299 |               }
 300 |             },
 301 |             "500": {
 302 |               "description": "Unexpected error listing organizations"
 303 |             }
 304 |           },
 305 |           "tags": [
 306 |             "Organizations"
 307 |           ],
 308 |           "security": [
 309 |             {
 310 |               "bearer": []
 311 |             }
 312 |           ]
 313 |         },
 314 |         "post": {
 315 |           "operationId": "v1-create-an-organization",
 316 |           "summary": "Create an organization",
 317 |           "parameters": [],
 318 |           "requestBody": {
 319 |             "required": true,
 320 |             "content": {
 321 |               "application/json": {
 322 |                 "schema": {
 323 |                   "$ref": "#/components/schemas/CreateOrganizationV1Dto"
 324 |                 }
 325 |               }
 326 |             }
 327 |           },
 328 |           "responses": {
 329 |             "201": {
 330 |               "description": "",
 331 |               "content": {
 332 |                 "application/json": {
 333 |                   "schema": {
 334 |                     "$ref": "#/components/schemas/OrganizationResponseV1"
 335 |                   }
 336 |                 }
 337 |               }
 338 |             },
 339 |             "500": {
 340 |               "description": "Unexpected error creating an organization"
 341 |             }
 342 |           },
 343 |           "tags": [
 344 |             "Organizations"
 345 |           ],
 346 |           "security": [
 347 |             {
 348 |               "bearer": []
 349 |             }
 350 |           ]
 351 |         }
 352 |       },
 353 |       "/v1/oauth/authorize": {
 354 |         "get": {
 355 |           "operationId": "v1-authorize-user",
 356 |           "summary": "[Beta] Authorize user through oauth",
 357 |           "parameters": [
 358 |             {
 359 |               "name": "client_id",
 360 |               "required": true,
 361 |               "in": "query",
 362 |               "schema": {
 363 |                 "type": "string"
 364 |               }
 365 |             },
 366 |             {
 367 |               "name": "response_type",
 368 |               "required": true,
 369 |               "in": "query",
 370 |               "schema": {
 371 |                 "enum": [
 372 |                   "code",
 373 |                   "token",
 374 |                   "id_token token"
 375 |                 ],
 376 |                 "type": "string"
 377 |               }
 378 |             },
 379 |             {
 380 |               "name": "redirect_uri",
 381 |               "required": true,
 382 |               "in": "query",
 383 |               "schema": {
 384 |                 "type": "string"
 385 |               }
 386 |             },
 387 |             {
 388 |               "name": "scope",
 389 |               "required": false,
 390 |               "in": "query",
 391 |               "schema": {
 392 |                 "type": "string"
 393 |               }
 394 |             },
 395 |             {
 396 |               "name": "state",
 397 |               "required": false,
 398 |               "in": "query",
 399 |               "schema": {
 400 |                 "type": "string"
 401 |               }
 402 |             },
 403 |             {
 404 |               "name": "response_mode",
 405 |               "required": false,
 406 |               "in": "query",
 407 |               "schema": {
 408 |                 "type": "string"
 409 |               }
 410 |             },
 411 |             {
 412 |               "name": "code_challenge",
 413 |               "required": false,
 414 |               "in": "query",
 415 |               "schema": {
 416 |                 "type": "string"
 417 |               }
 418 |             },
 419 |             {
 420 |               "name": "code_challenge_method",
 421 |               "required": false,
 422 |               "in": "query",
 423 |               "schema": {
 424 |                 "enum": [
 425 |                   "plain",
 426 |                   "sha256",
 427 |                   "S256"
 428 |                 ],
 429 |                 "type": "string"
 430 |               }
 431 |             }
 432 |           ],
 433 |           "responses": {
 434 |             "303": {
 435 |               "description": ""
 436 |             }
 437 |           },
 438 |           "tags": [
 439 |             "OAuth"
 440 |           ],
 441 |           "security": [
 442 |             {
 443 |               "oauth2": [
 444 |                 "read"
 445 |               ]
 446 |             }
 447 |           ]
 448 |         }
 449 |       },
 450 |       "/v1/oauth/token": {
 451 |         "post": {
 452 |           "operationId": "v1-exchange-oauth-token",
 453 |           "summary": "[Beta] Exchange auth code for user's access and refresh token",
 454 |           "parameters": [],
 455 |           "requestBody": {
 456 |             "required": true,
 457 |             "content": {
 458 |               "application/x-www-form-urlencoded": {
 459 |                 "schema": {
 460 |                   "$ref": "#/components/schemas/OAuthTokenBody"
 461 |                 }
 462 |               }
 463 |             }
 464 |           },
 465 |           "responses": {
 466 |             "201": {
 467 |               "description": "",
 468 |               "content": {
 469 |                 "application/json": {
 470 |                   "schema": {
 471 |                     "$ref": "#/components/schemas/OAuthTokenResponse"
 472 |                   }
 473 |                 }
 474 |               }
 475 |             }
 476 |           },
 477 |           "tags": [
 478 |             "OAuth"
 479 |           ],
 480 |           "security": [
 481 |             {
 482 |               "oauth2": [
 483 |                 "write"
 484 |               ]
 485 |             }
 486 |           ]
 487 |         }
 488 |       },
 489 |       "/v1/oauth/revoke": {
 490 |         "post": {
 491 |           "operationId": "v1-revoke-token",
 492 |           "summary": "[Beta] Revoke oauth app authorization and it's corresponding tokens",
 493 |           "parameters": [],
 494 |           "requestBody": {
 495 |             "required": true,
 496 |             "content": {
 497 |               "application/json": {
 498 |                 "schema": {
 499 |                   "$ref": "#/components/schemas/OAuthRevokeTokenBodyDto"
 500 |                 }
 501 |               }
 502 |             }
 503 |           },
 504 |           "responses": {
 505 |             "204": {
 506 |               "description": ""
 507 |             }
 508 |           },
 509 |           "tags": [
 510 |             "OAuth"
 511 |           ],
 512 |           "security": [
 513 |             {
 514 |               "oauth2": [
 515 |                 "write"
 516 |               ]
 517 |             }
 518 |           ]
 519 |         }
 520 |       },
 521 |       "/v1/snippets": {
 522 |         "get": {
 523 |           "operationId": "v1-list-all-snippets",
 524 |           "summary": "Lists SQL snippets for the logged in user",
 525 |           "parameters": [
 526 |             {
 527 |               "name": "cursor",
 528 |               "required": false,
 529 |               "in": "query",
 530 |               "schema": {
 531 |                 "type": "string"
 532 |               }
 533 |             },
 534 |             {
 535 |               "name": "limit",
 536 |               "required": false,
 537 |               "in": "query",
 538 |               "schema": {
 539 |                 "type": "string",
 540 |                 "minimum": 1,
 541 |                 "maximum": 100
 542 |               }
 543 |             },
 544 |             {
 545 |               "name": "sort_by",
 546 |               "required": false,
 547 |               "in": "query",
 548 |               "schema": {
 549 |                 "enum": [
 550 |                   "name",
 551 |                   "inserted_at"
 552 |                 ],
 553 |                 "type": "string"
 554 |               }
 555 |             },
 556 |             {
 557 |               "name": "sort_order",
 558 |               "required": false,
 559 |               "in": "query",
 560 |               "schema": {
 561 |                 "enum": [
 562 |                   "asc",
 563 |                   "desc"
 564 |                 ],
 565 |                 "type": "string"
 566 |               }
 567 |             },
 568 |             {
 569 |               "name": "project_ref",
 570 |               "required": false,
 571 |               "in": "query",
 572 |               "schema": {
 573 |                 "type": "string"
 574 |               }
 575 |             }
 576 |           ],
 577 |           "responses": {
 578 |             "200": {
 579 |               "description": "",
 580 |               "content": {
 581 |                 "application/json": {
 582 |                   "schema": {
 583 |                     "$ref": "#/components/schemas/SnippetList"
 584 |                   }
 585 |                 }
 586 |               }
 587 |             },
 588 |             "500": {
 589 |               "description": "Failed to list user's SQL snippets"
 590 |             }
 591 |           },
 592 |           "tags": [
 593 |             "Database"
 594 |           ],
 595 |           "security": [
 596 |             {
 597 |               "bearer": []
 598 |             }
 599 |           ]
 600 |         }
 601 |       },
 602 |       "/v1/snippets/{id}": {
 603 |         "get": {
 604 |           "operationId": "v1-get-a-snippet",
 605 |           "summary": "Gets a specific SQL snippet",
 606 |           "parameters": [
 607 |             {
 608 |               "name": "id",
 609 |               "required": true,
 610 |               "in": "path",
 611 |               "schema": {
 612 |                 "format": "uuid",
 613 |                 "type": "string"
 614 |               }
 615 |             }
 616 |           ],
 617 |           "responses": {
 618 |             "200": {
 619 |               "description": "",
 620 |               "content": {
 621 |                 "application/json": {
 622 |                   "schema": {
 623 |                     "$ref": "#/components/schemas/SnippetResponse"
 624 |                   }
 625 |                 }
 626 |               }
 627 |             },
 628 |             "500": {
 629 |               "description": "Failed to retrieve SQL snippet"
 630 |             }
 631 |           },
 632 |           "tags": [
 633 |             "Database"
 634 |           ],
 635 |           "security": [
 636 |             {
 637 |               "bearer": []
 638 |             }
 639 |           ]
 640 |         }
 641 |       },
 642 |       "/v1/projects/{ref}/api-keys": {
 643 |         "get": {
 644 |           "operationId": "v1-get-project-api-keys",
 645 |           "summary": "Get project api keys",
 646 |           "parameters": [
 647 |             {
 648 |               "name": "ref",
 649 |               "required": true,
 650 |               "in": "path",
 651 |               "description": "Project ref",
 652 |               "schema": {
 653 |                 "minLength": 20,
 654 |                 "maxLength": 20,
 655 |                 "type": "string"
 656 |               }
 657 |             },
 658 |             {
 659 |               "name": "reveal",
 660 |               "required": true,
 661 |               "in": "query",
 662 |               "schema": {
 663 |                 "type": "boolean"
 664 |               }
 665 |             }
 666 |           ],
 667 |           "responses": {
 668 |             "200": {
 669 |               "description": "",
 670 |               "content": {
 671 |                 "application/json": {
 672 |                   "schema": {
 673 |                     "type": "array",
 674 |                     "items": {
 675 |                       "$ref": "#/components/schemas/ApiKeyResponse"
 676 |                     }
 677 |                   }
 678 |                 }
 679 |               }
 680 |             }
 681 |           },
 682 |           "tags": [
 683 |             "Secrets"
 684 |           ],
 685 |           "security": [
 686 |             {
 687 |               "bearer": []
 688 |             }
 689 |           ]
 690 |         },
 691 |         "post": {
 692 |           "operationId": "createApiKey",
 693 |           "summary": "[Alpha] Creates a new API key for the project",
 694 |           "parameters": [
 695 |             {
 696 |               "name": "ref",
 697 |               "required": true,
 698 |               "in": "path",
 699 |               "description": "Project ref",
 700 |               "schema": {
 701 |                 "minLength": 20,
 702 |                 "maxLength": 20,
 703 |                 "type": "string"
 704 |               }
 705 |             },
 706 |             {
 707 |               "name": "reveal",
 708 |               "required": true,
 709 |               "in": "query",
 710 |               "schema": {
 711 |                 "type": "boolean"
 712 |               }
 713 |             }
 714 |           ],
 715 |           "requestBody": {
 716 |             "required": true,
 717 |             "content": {
 718 |               "application/json": {
 719 |                 "schema": {
 720 |                   "$ref": "#/components/schemas/CreateApiKeyBody"
 721 |                 }
 722 |               }
 723 |             }
 724 |           },
 725 |           "responses": {
 726 |             "201": {
 727 |               "description": "",
 728 |               "content": {
 729 |                 "application/json": {
 730 |                   "schema": {
 731 |                     "$ref": "#/components/schemas/ApiKeyResponse"
 732 |                   }
 733 |                 }
 734 |               }
 735 |             }
 736 |           },
 737 |           "tags": [
 738 |             "Secrets"
 739 |           ],
 740 |           "security": [
 741 |             {
 742 |               "bearer": []
 743 |             }
 744 |           ]
 745 |         }
 746 |       },
 747 |       "/v1/projects/{ref}/api-keys/{id}": {
 748 |         "patch": {
 749 |           "operationId": "updateApiKey",
 750 |           "summary": "[Alpha] Updates an API key for the project",
 751 |           "parameters": [
 752 |             {
 753 |               "name": "ref",
 754 |               "required": true,
 755 |               "in": "path",
 756 |               "description": "Project ref",
 757 |               "schema": {
 758 |                 "minLength": 20,
 759 |                 "maxLength": 20,
 760 |                 "type": "string"
 761 |               }
 762 |             },
 763 |             {
 764 |               "name": "id",
 765 |               "required": true,
 766 |               "in": "path",
 767 |               "schema": {
 768 |                 "type": "string"
 769 |               }
 770 |             },
 771 |             {
 772 |               "name": "reveal",
 773 |               "required": true,
 774 |               "in": "query",
 775 |               "schema": {
 776 |                 "type": "boolean"
 777 |               }
 778 |             }
 779 |           ],
 780 |           "requestBody": {
 781 |             "required": true,
 782 |             "content": {
 783 |               "application/json": {
 784 |                 "schema": {
 785 |                   "$ref": "#/components/schemas/UpdateApiKeyBody"
 786 |                 }
 787 |               }
 788 |             }
 789 |           },
 790 |           "responses": {
 791 |             "200": {
 792 |               "description": "",
 793 |               "content": {
 794 |                 "application/json": {
 795 |                   "schema": {
 796 |                     "$ref": "#/components/schemas/ApiKeyResponse"
 797 |                   }
 798 |                 }
 799 |               }
 800 |             }
 801 |           },
 802 |           "tags": [
 803 |             "Secrets"
 804 |           ],
 805 |           "security": [
 806 |             {
 807 |               "bearer": []
 808 |             }
 809 |           ]
 810 |         },
 811 |         "get": {
 812 |           "operationId": "getApiKey",
 813 |           "summary": "[Alpha] Get API key",
 814 |           "parameters": [
 815 |             {
 816 |               "name": "ref",
 817 |               "required": true,
 818 |               "in": "path",
 819 |               "description": "Project ref",
 820 |               "schema": {
 821 |                 "minLength": 20,
 822 |                 "maxLength": 20,
 823 |                 "type": "string"
 824 |               }
 825 |             },
 826 |             {
 827 |               "name": "id",
 828 |               "required": true,
 829 |               "in": "path",
 830 |               "schema": {
 831 |                 "type": "string"
 832 |               }
 833 |             },
 834 |             {
 835 |               "name": "reveal",
 836 |               "required": true,
 837 |               "in": "query",
 838 |               "schema": {
 839 |                 "type": "boolean"
 840 |               }
 841 |             }
 842 |           ],
 843 |           "responses": {
 844 |             "200": {
 845 |               "description": "",
 846 |               "content": {
 847 |                 "application/json": {
 848 |                   "schema": {
 849 |                     "$ref": "#/components/schemas/ApiKeyResponse"
 850 |                   }
 851 |                 }
 852 |               }
 853 |             }
 854 |           },
 855 |           "tags": [
 856 |             "Secrets"
 857 |           ],
 858 |           "security": [
 859 |             {
 860 |               "bearer": []
 861 |             }
 862 |           ]
 863 |         },
 864 |         "delete": {
 865 |           "operationId": "deleteApiKey",
 866 |           "summary": "[Alpha] Deletes an API key for the project",
 867 |           "parameters": [
 868 |             {
 869 |               "name": "ref",
 870 |               "required": true,
 871 |               "in": "path",
 872 |               "description": "Project ref",
 873 |               "schema": {
 874 |                 "minLength": 20,
 875 |                 "maxLength": 20,
 876 |                 "type": "string"
 877 |               }
 878 |             },
 879 |             {
 880 |               "name": "id",
 881 |               "required": true,
 882 |               "in": "path",
 883 |               "schema": {
 884 |                 "type": "string"
 885 |               }
 886 |             },
 887 |             {
 888 |               "name": "reveal",
 889 |               "required": true,
 890 |               "in": "query",
 891 |               "schema": {
 892 |                 "type": "boolean"
 893 |               }
 894 |             }
 895 |           ],
 896 |           "responses": {
 897 |             "200": {
 898 |               "description": "",
 899 |               "content": {
 900 |                 "application/json": {
 901 |                   "schema": {
 902 |                     "$ref": "#/components/schemas/ApiKeyResponse"
 903 |                   }
 904 |                 }
 905 |               }
 906 |             },
 907 |             "403": {
 908 |               "description": ""
 909 |             }
 910 |           },
 911 |           "tags": [
 912 |             "Secrets"
 913 |           ],
 914 |           "security": [
 915 |             {
 916 |               "bearer": []
 917 |             }
 918 |           ]
 919 |         }
 920 |       },
 921 |       "/v1/projects/{ref}/branches": {
 922 |         "get": {
 923 |           "operationId": "v1-list-all-branches",
 924 |           "summary": "List all database branches",
 925 |           "description": "Returns all database branches of the specified project.",
 926 |           "parameters": [
 927 |             {
 928 |               "name": "ref",
 929 |               "required": true,
 930 |               "in": "path",
 931 |               "description": "Project ref",
 932 |               "schema": {
 933 |                 "minLength": 20,
 934 |                 "maxLength": 20,
 935 |                 "type": "string"
 936 |               }
 937 |             }
 938 |           ],
 939 |           "responses": {
 940 |             "200": {
 941 |               "description": "",
 942 |               "content": {
 943 |                 "application/json": {
 944 |                   "schema": {
 945 |                     "type": "array",
 946 |                     "items": {
 947 |                       "$ref": "#/components/schemas/BranchResponse"
 948 |                     }
 949 |                   }
 950 |                 }
 951 |               }
 952 |             },
 953 |             "500": {
 954 |               "description": "Failed to retrieve database branches"
 955 |             }
 956 |           },
 957 |           "tags": [
 958 |             "Environments"
 959 |           ],
 960 |           "security": [
 961 |             {
 962 |               "bearer": []
 963 |             }
 964 |           ]
 965 |         },
 966 |         "post": {
 967 |           "operationId": "v1-create-a-branch",
 968 |           "summary": "Create a database branch",
 969 |           "description": "Creates a database branch from the specified project.",
 970 |           "parameters": [
 971 |             {
 972 |               "name": "ref",
 973 |               "required": true,
 974 |               "in": "path",
 975 |               "description": "Project ref",
 976 |               "schema": {
 977 |                 "minLength": 20,
 978 |                 "maxLength": 20,
 979 |                 "type": "string"
 980 |               }
 981 |             }
 982 |           ],
 983 |           "requestBody": {
 984 |             "required": true,
 985 |             "content": {
 986 |               "application/json": {
 987 |                 "schema": {
 988 |                   "$ref": "#/components/schemas/CreateBranchBody"
 989 |                 }
 990 |               }
 991 |             }
 992 |           },
 993 |           "responses": {
 994 |             "201": {
 995 |               "description": "",
 996 |               "content": {
 997 |                 "application/json": {
 998 |                   "schema": {
 999 |                     "$ref": "#/components/schemas/BranchResponse"
1000 |                   }
1001 |                 }
1002 |               }
1003 |             },
1004 |             "500": {
1005 |               "description": "Failed to create database branch"
1006 |             }
1007 |           },
1008 |           "tags": [
1009 |             "Environments"
1010 |           ],
1011 |           "security": [
1012 |             {
1013 |               "bearer": []
1014 |             }
1015 |           ]
1016 |         },
1017 |         "delete": {
1018 |           "operationId": "v1-disable-preview-branching",
1019 |           "summary": "Disables preview branching",
1020 |           "description": "Disables preview branching for the specified project",
1021 |           "parameters": [
1022 |             {
1023 |               "name": "ref",
1024 |               "required": true,
1025 |               "in": "path",
1026 |               "description": "Project ref",
1027 |               "schema": {
1028 |                 "minLength": 20,
1029 |                 "maxLength": 20,
1030 |                 "type": "string"
1031 |               }
1032 |             }
1033 |           ],
1034 |           "responses": {
1035 |             "200": {
1036 |               "description": ""
1037 |             },
1038 |             "500": {
1039 |               "description": "Failed to disable preview branching"
1040 |             }
1041 |           },
1042 |           "tags": [
1043 |             "Environments"
1044 |           ],
1045 |           "security": [
1046 |             {
1047 |               "bearer": []
1048 |             }
1049 |           ]
1050 |         }
1051 |       },
1052 |       "/v1/projects/{ref}/custom-hostname": {
1053 |         "get": {
1054 |           "operationId": "v1-get-hostname-config",
1055 |           "summary": "[Beta] Gets project's custom hostname config",
1056 |           "parameters": [
1057 |             {
1058 |               "name": "ref",
1059 |               "required": true,
1060 |               "in": "path",
1061 |               "description": "Project ref",
1062 |               "schema": {
1063 |                 "minLength": 20,
1064 |                 "maxLength": 20,
1065 |                 "type": "string"
1066 |               }
1067 |             }
1068 |           ],
1069 |           "responses": {
1070 |             "200": {
1071 |               "description": "",
1072 |               "content": {
1073 |                 "application/json": {
1074 |                   "schema": {
1075 |                     "$ref": "#/components/schemas/UpdateCustomHostnameResponse"
1076 |                   }
1077 |                 }
1078 |               }
1079 |             },
1080 |             "403": {
1081 |               "description": ""
1082 |             },
1083 |             "500": {
1084 |               "description": "Failed to retrieve project's custom hostname config"
1085 |             }
1086 |           },
1087 |           "tags": [
1088 |             "Domains"
1089 |           ],
1090 |           "security": [
1091 |             {
1092 |               "bearer": []
1093 |             }
1094 |           ]
1095 |         },
1096 |         "delete": {
1097 |           "operationId": "v1-Delete hostname config",
1098 |           "summary": "[Beta] Deletes a project's custom hostname configuration",
1099 |           "parameters": [
1100 |             {
1101 |               "name": "ref",
1102 |               "required": true,
1103 |               "in": "path",
1104 |               "description": "Project ref",
1105 |               "schema": {
1106 |                 "minLength": 20,
1107 |                 "maxLength": 20,
1108 |                 "type": "string"
1109 |               }
1110 |             }
1111 |           ],
1112 |           "responses": {
1113 |             "200": {
1114 |               "description": ""
1115 |             },
1116 |             "403": {
1117 |               "description": ""
1118 |             },
1119 |             "500": {
1120 |               "description": "Failed to delete project custom hostname configuration"
1121 |             }
1122 |           },
1123 |           "tags": [
1124 |             "Domains"
1125 |           ],
1126 |           "security": [
1127 |             {
1128 |               "bearer": []
1129 |             }
1130 |           ]
1131 |         }
1132 |       },
1133 |       "/v1/projects/{ref}/custom-hostname/initialize": {
1134 |         "post": {
1135 |           "operationId": "v1-update-hostname-config",
1136 |           "summary": "[Beta] Updates project's custom hostname configuration",
1137 |           "parameters": [
1138 |             {
1139 |               "name": "ref",
1140 |               "required": true,
1141 |               "in": "path",
1142 |               "description": "Project ref",
1143 |               "schema": {
1144 |                 "minLength": 20,
1145 |                 "maxLength": 20,
1146 |                 "type": "string"
1147 |               }
1148 |             }
1149 |           ],
1150 |           "requestBody": {
1151 |             "required": true,
1152 |             "content": {
1153 |               "application/json": {
1154 |                 "schema": {
1155 |                   "$ref": "#/components/schemas/UpdateCustomHostnameBody"
1156 |                 }
1157 |               }
1158 |             }
1159 |           },
1160 |           "responses": {
1161 |             "201": {
1162 |               "description": "",
1163 |               "content": {
1164 |                 "application/json": {
1165 |                   "schema": {
1166 |                     "$ref": "#/components/schemas/UpdateCustomHostnameResponse"
1167 |                   }
1168 |                 }
1169 |               }
1170 |             },
1171 |             "403": {
1172 |               "description": ""
1173 |             },
1174 |             "500": {
1175 |               "description": "Failed to update project custom hostname configuration"
1176 |             }
1177 |           },
1178 |           "tags": [
1179 |             "Domains"
1180 |           ],
1181 |           "security": [
1182 |             {
1183 |               "bearer": []
1184 |             }
1185 |           ]
1186 |         }
1187 |       },
1188 |       "/v1/projects/{ref}/custom-hostname/reverify": {
1189 |         "post": {
1190 |           "operationId": "v1-verify-dns-config",
1191 |           "summary": "[Beta] Attempts to verify the DNS configuration for project's custom hostname configuration",
1192 |           "parameters": [
1193 |             {
1194 |               "name": "ref",
1195 |               "required": true,
1196 |               "in": "path",
1197 |               "description": "Project ref",
1198 |               "schema": {
1199 |                 "minLength": 20,
1200 |                 "maxLength": 20,
1201 |                 "type": "string"
1202 |               }
1203 |             }
1204 |           ],
1205 |           "responses": {
1206 |             "201": {
1207 |               "description": "",
1208 |               "content": {
1209 |                 "application/json": {
1210 |                   "schema": {
1211 |                     "$ref": "#/components/schemas/UpdateCustomHostnameResponse"
1212 |                   }
1213 |                 }
1214 |               }
1215 |             },
1216 |             "403": {
1217 |               "description": ""
1218 |             },
1219 |             "500": {
1220 |               "description": "Failed to verify project custom hostname configuration"
1221 |             }
1222 |           },
1223 |           "tags": [
1224 |             "Domains"
1225 |           ],
1226 |           "security": [
1227 |             {
1228 |               "bearer": []
1229 |             }
1230 |           ]
1231 |         }
1232 |       },
1233 |       "/v1/projects/{ref}/custom-hostname/activate": {
1234 |         "post": {
1235 |           "operationId": "v1-activate-custom-hostname",
1236 |           "summary": "[Beta] Activates a custom hostname for a project.",
1237 |           "parameters": [
1238 |             {
1239 |               "name": "ref",
1240 |               "required": true,
1241 |               "in": "path",
1242 |               "description": "Project ref",
1243 |               "schema": {
1244 |                 "minLength": 20,
1245 |                 "maxLength": 20,
1246 |                 "type": "string"
1247 |               }
1248 |             }
1249 |           ],
1250 |           "responses": {
1251 |             "201": {
1252 |               "description": "",
1253 |               "content": {
1254 |                 "application/json": {
1255 |                   "schema": {
1256 |                     "$ref": "#/components/schemas/UpdateCustomHostnameResponse"
1257 |                   }
1258 |                 }
1259 |               }
1260 |             },
1261 |             "403": {
1262 |               "description": ""
1263 |             },
1264 |             "500": {
1265 |               "description": "Failed to activate project custom hostname configuration"
1266 |             }
1267 |           },
1268 |           "tags": [
1269 |             "Domains"
1270 |           ],
1271 |           "security": [
1272 |             {
1273 |               "bearer": []
1274 |             }
1275 |           ]
1276 |         }
1277 |       },
1278 |       "/v1/projects/{ref}/network-bans/retrieve": {
1279 |         "post": {
1280 |           "operationId": "v1-list-all-network-bans",
1281 |           "summary": "[Beta] Gets project's network bans",
1282 |           "parameters": [
1283 |             {
1284 |               "name": "ref",
1285 |               "required": true,
1286 |               "in": "path",
1287 |               "description": "Project ref",
1288 |               "schema": {
1289 |                 "minLength": 20,
1290 |                 "maxLength": 20,
1291 |                 "type": "string"
1292 |               }
1293 |             }
1294 |           ],
1295 |           "responses": {
1296 |             "201": {
1297 |               "description": "",
1298 |               "content": {
1299 |                 "application/json": {
1300 |                   "schema": {
1301 |                     "$ref": "#/components/schemas/NetworkBanResponse"
1302 |                   }
1303 |                 }
1304 |               }
1305 |             },
1306 |             "403": {
1307 |               "description": ""
1308 |             },
1309 |             "500": {
1310 |               "description": "Failed to retrieve project's network bans"
1311 |             }
1312 |           },
1313 |           "tags": [
1314 |             "Projects"
1315 |           ],
1316 |           "security": [
1317 |             {
1318 |               "bearer": []
1319 |             }
1320 |           ]
1321 |         }
1322 |       },
1323 |       "/v1/projects/{ref}/network-bans": {
1324 |         "delete": {
1325 |           "operationId": "v1-delete-network-bans",
1326 |           "summary": "[Beta] Remove network bans.",
1327 |           "parameters": [
1328 |             {
1329 |               "name": "ref",
1330 |               "required": true,
1331 |               "in": "path",
1332 |               "description": "Project ref",
1333 |               "schema": {
1334 |                 "minLength": 20,
1335 |                 "maxLength": 20,
1336 |                 "type": "string"
1337 |               }
1338 |             }
1339 |           ],
1340 |           "requestBody": {
1341 |             "required": true,
1342 |             "content": {
1343 |               "application/json": {
1344 |                 "schema": {
1345 |                   "$ref": "#/components/schemas/RemoveNetworkBanRequest"
1346 |                 }
1347 |               }
1348 |             }
1349 |           },
1350 |           "responses": {
1351 |             "200": {
1352 |               "description": ""
1353 |             },
1354 |             "403": {
1355 |               "description": ""
1356 |             },
1357 |             "500": {
1358 |               "description": "Failed to remove network bans."
1359 |             }
1360 |           },
1361 |           "tags": [
1362 |             "Projects"
1363 |           ],
1364 |           "security": [
1365 |             {
1366 |               "bearer": []
1367 |             }
1368 |           ]
1369 |         }
1370 |       },
1371 |       "/v1/projects/{ref}/network-restrictions": {
1372 |         "get": {
1373 |           "operationId": "v1-get-network-restrictions",
1374 |           "summary": "[Beta] Gets project's network restrictions",
1375 |           "parameters": [
1376 |             {
1377 |               "name": "ref",
1378 |               "required": true,
1379 |               "in": "path",
1380 |               "description": "Project ref",
1381 |               "schema": {
1382 |                 "minLength": 20,
1383 |                 "maxLength": 20,
1384 |                 "type": "string"
1385 |               }
1386 |             }
1387 |           ],
1388 |           "responses": {
1389 |             "200": {
1390 |               "description": "",
1391 |               "content": {
1392 |                 "application/json": {
1393 |                   "schema": {
1394 |                     "$ref": "#/components/schemas/NetworkRestrictionsResponse"
1395 |                   }
1396 |                 }
1397 |               }
1398 |             },
1399 |             "403": {
1400 |               "description": ""
1401 |             },
1402 |             "500": {
1403 |               "description": "Failed to retrieve project's network restrictions"
1404 |             }
1405 |           },
1406 |           "tags": [
1407 |             "Projects"
1408 |           ],
1409 |           "security": [
1410 |             {
1411 |               "bearer": []
1412 |             }
1413 |           ]
1414 |         }
1415 |       },
1416 |       "/v1/projects/{ref}/network-restrictions/apply": {
1417 |         "post": {
1418 |           "operationId": "v1-update-network-restrictions",
1419 |           "summary": "[Beta] Updates project's network restrictions",
1420 |           "parameters": [
1421 |             {
1422 |               "name": "ref",
1423 |               "required": true,
1424 |               "in": "path",
1425 |               "description": "Project ref",
1426 |               "schema": {
1427 |                 "minLength": 20,
1428 |                 "maxLength": 20,
1429 |                 "type": "string"
1430 |               }
1431 |             }
1432 |           ],
1433 |           "requestBody": {
1434 |             "required": true,
1435 |             "content": {
1436 |               "application/json": {
1437 |                 "schema": {
1438 |                   "$ref": "#/components/schemas/NetworkRestrictionsRequest"
1439 |                 }
1440 |               }
1441 |             }
1442 |           },
1443 |           "responses": {
1444 |             "201": {
1445 |               "description": "",
1446 |               "content": {
1447 |                 "application/json": {
1448 |                   "schema": {
1449 |                     "$ref": "#/components/schemas/NetworkRestrictionsResponse"
1450 |                   }
1451 |                 }
1452 |               }
1453 |             },
1454 |             "403": {
1455 |               "description": ""
1456 |             },
1457 |             "500": {
1458 |               "description": "Failed to update project network restrictions"
1459 |             }
1460 |           },
1461 |           "tags": [
1462 |             "Projects"
1463 |           ],
1464 |           "security": [
1465 |             {
1466 |               "bearer": []
1467 |             }
1468 |           ]
1469 |         }
1470 |       },
1471 |       "/v1/projects/{ref}/pgsodium": {
1472 |         "get": {
1473 |           "operationId": "v1-get-pgsodium-config",
1474 |           "summary": "[Beta] Gets project's pgsodium config",
1475 |           "parameters": [
1476 |             {
1477 |               "name": "ref",
1478 |               "required": true,
1479 |               "in": "path",
1480 |               "description": "Project ref",
1481 |               "schema": {
1482 |                 "minLength": 20,
1483 |                 "maxLength": 20,
1484 |                 "type": "string"
1485 |               }
1486 |             }
1487 |           ],
1488 |           "responses": {
1489 |             "200": {
1490 |               "description": "",
1491 |               "content": {
1492 |                 "application/json": {
1493 |                   "schema": {
1494 |                     "$ref": "#/components/schemas/PgsodiumConfigResponse"
1495 |                   }
1496 |                 }
1497 |               }
1498 |             },
1499 |             "403": {
1500 |               "description": ""
1501 |             },
1502 |             "500": {
1503 |               "description": "Failed to retrieve project's pgsodium config"
1504 |             }
1505 |           },
1506 |           "tags": [
1507 |             "Secrets"
1508 |           ],
1509 |           "security": [
1510 |             {
1511 |               "bearer": []
1512 |             }
1513 |           ]
1514 |         },
1515 |         "put": {
1516 |           "operationId": "v1-update-pgsodium-config",
1517 |           "summary": "[Beta] Updates project's pgsodium config. Updating the root_key can cause all data encrypted with the older key to become inaccessible.",
1518 |           "parameters": [
1519 |             {
1520 |               "name": "ref",
1521 |               "required": true,
1522 |               "in": "path",
1523 |               "description": "Project ref",
1524 |               "schema": {
1525 |                 "minLength": 20,
1526 |                 "maxLength": 20,
1527 |                 "type": "string"
1528 |               }
1529 |             }
1530 |           ],
1531 |           "requestBody": {
1532 |             "required": true,
1533 |             "content": {
1534 |               "application/json": {
1535 |                 "schema": {
1536 |                   "$ref": "#/components/schemas/UpdatePgsodiumConfigBody"
1537 |                 }
1538 |               }
1539 |             }
1540 |           },
1541 |           "responses": {
1542 |             "200": {
1543 |               "description": "",
1544 |               "content": {
1545 |                 "application/json": {
1546 |                   "schema": {
1547 |                     "$ref": "#/components/schemas/PgsodiumConfigResponse"
1548 |                   }
1549 |                 }
1550 |               }
1551 |             },
1552 |             "403": {
1553 |               "description": ""
1554 |             },
1555 |             "500": {
1556 |               "description": "Failed to update project's pgsodium config"
1557 |             }
1558 |           },
1559 |           "tags": [
1560 |             "Secrets"
1561 |           ],
1562 |           "security": [
1563 |             {
1564 |               "bearer": []
1565 |             }
1566 |           ]
1567 |         }
1568 |       },
1569 |       "/v1/projects/{ref}/postgrest": {
1570 |         "get": {
1571 |           "operationId": "v1-get-postgrest-service-config",
1572 |           "summary": "Gets project's postgrest config",
1573 |           "parameters": [
1574 |             {
1575 |               "name": "ref",
1576 |               "required": true,
1577 |               "in": "path",
1578 |               "description": "Project ref",
1579 |               "schema": {
1580 |                 "minLength": 20,
1581 |                 "maxLength": 20,
1582 |                 "type": "string"
1583 |               }
1584 |             }
1585 |           ],
1586 |           "responses": {
1587 |             "200": {
1588 |               "description": "",
1589 |               "content": {
1590 |                 "application/json": {
1591 |                   "schema": {
1592 |                     "$ref": "#/components/schemas/PostgrestConfigWithJWTSecretResponse"
1593 |                   }
1594 |                 }
1595 |               }
1596 |             },
1597 |             "403": {
1598 |               "description": ""
1599 |             },
1600 |             "500": {
1601 |               "description": "Failed to retrieve project's postgrest config"
1602 |             }
1603 |           },
1604 |           "tags": [
1605 |             "Rest"
1606 |           ],
1607 |           "security": [
1608 |             {
1609 |               "bearer": []
1610 |             }
1611 |           ]
1612 |         },
1613 |         "patch": {
1614 |           "operationId": "v1-update-postgrest-service-config",
1615 |           "summary": "Updates project's postgrest config",
1616 |           "parameters": [
1617 |             {
1618 |               "name": "ref",
1619 |               "required": true,
1620 |               "in": "path",
1621 |               "description": "Project ref",
1622 |               "schema": {
1623 |                 "minLength": 20,
1624 |                 "maxLength": 20,
1625 |                 "type": "string"
1626 |               }
1627 |             }
1628 |           ],
1629 |           "requestBody": {
1630 |             "required": true,
1631 |             "content": {
1632 |               "application/json": {
1633 |                 "schema": {
1634 |                   "$ref": "#/components/schemas/UpdatePostgrestConfigBody"
1635 |                 }
1636 |               }
1637 |             }
1638 |           },
1639 |           "responses": {
1640 |             "200": {
1641 |               "description": "",
1642 |               "content": {
1643 |                 "application/json": {
1644 |                   "schema": {
1645 |                     "$ref": "#/components/schemas/V1PostgrestConfigResponse"
1646 |                   }
1647 |                 }
1648 |               }
1649 |             },
1650 |             "403": {
1651 |               "description": ""
1652 |             },
1653 |             "500": {
1654 |               "description": "Failed to update project's postgrest config"
1655 |             }
1656 |           },
1657 |           "tags": [
1658 |             "Rest"
1659 |           ],
1660 |           "security": [
1661 |             {
1662 |               "bearer": []
1663 |             }
1664 |           ]
1665 |         }
1666 |       },
1667 |       "/v1/projects/{ref}": {
1668 |         "get": {
1669 |           "operationId": "v1-get-project",
1670 |           "summary": "Gets a specific project that belongs to the authenticated user",
1671 |           "parameters": [
1672 |             {
1673 |               "name": "ref",
1674 |               "required": true,
1675 |               "in": "path",
1676 |               "description": "Project ref",
1677 |               "schema": {
1678 |                 "minLength": 20,
1679 |                 "maxLength": 20,
1680 |                 "type": "string"
1681 |               }
1682 |             }
1683 |           ],
1684 |           "responses": {
1685 |             "200": {
1686 |               "description": "",
1687 |               "content": {
1688 |                 "application/json": {
1689 |                   "schema": {
1690 |                     "$ref": "#/components/schemas/V1ProjectWithDatabaseResponse"
1691 |                   }
1692 |                 }
1693 |               }
1694 |             },
1695 |             "500": {
1696 |               "description": "Failed to retrieve project"
1697 |             }
1698 |           },
1699 |           "tags": [
1700 |             "Projects"
1701 |           ],
1702 |           "security": [
1703 |             {
1704 |               "bearer": []
1705 |             }
1706 |           ]
1707 |         },
1708 |         "delete": {
1709 |           "operationId": "v1-delete-a-project",
1710 |           "summary": "Deletes the given project",
1711 |           "parameters": [
1712 |             {
1713 |               "name": "ref",
1714 |               "required": true,
1715 |               "in": "path",
1716 |               "description": "Project ref",
1717 |               "schema": {
1718 |                 "minLength": 20,
1719 |                 "maxLength": 20,
1720 |                 "type": "string"
1721 |               }
1722 |             }
1723 |           ],
1724 |           "responses": {
1725 |             "200": {
1726 |               "description": "",
1727 |               "content": {
1728 |                 "application/json": {
1729 |                   "schema": {
1730 |                     "$ref": "#/components/schemas/V1ProjectRefResponse"
1731 |                   }
1732 |                 }
1733 |               }
1734 |             },
1735 |             "403": {
1736 |               "description": ""
1737 |             }
1738 |           },
1739 |           "tags": [
1740 |             "Projects"
1741 |           ],
1742 |           "security": [
1743 |             {
1744 |               "bearer": []
1745 |             }
1746 |           ]
1747 |         }
1748 |       },
1749 |       "/v1/projects/{ref}/secrets": {
1750 |         "get": {
1751 |           "operationId": "v1-list-all-secrets",
1752 |           "summary": "List all secrets",
1753 |           "description": "Returns all secrets you've previously added to the specified project.",
1754 |           "parameters": [
1755 |             {
1756 |               "name": "ref",
1757 |               "required": true,
1758 |               "in": "path",
1759 |               "description": "Project ref",
1760 |               "schema": {
1761 |                 "minLength": 20,
1762 |                 "maxLength": 20,
1763 |                 "type": "string"
1764 |               }
1765 |             }
1766 |           ],
1767 |           "responses": {
1768 |             "200": {
1769 |               "description": "",
1770 |               "content": {
1771 |                 "application/json": {
1772 |                   "schema": {
1773 |                     "type": "array",
1774 |                     "items": {
1775 |                       "$ref": "#/components/schemas/SecretResponse"
1776 |                     }
1777 |                   }
1778 |                 }
1779 |               }
1780 |             },
1781 |             "403": {
1782 |               "description": ""
1783 |             },
1784 |             "500": {
1785 |               "description": "Failed to retrieve project's secrets"
1786 |             }
1787 |           },
1788 |           "tags": [
1789 |             "Secrets"
1790 |           ],
1791 |           "security": [
1792 |             {
1793 |               "bearer": []
1794 |             }
1795 |           ]
1796 |         },
1797 |         "post": {
1798 |           "operationId": "v1-bulk-create-secrets",
1799 |           "summary": "Bulk create secrets",
1800 |           "description": "Creates multiple secrets and adds them to the specified project.",
1801 |           "parameters": [
1802 |             {
1803 |               "name": "ref",
1804 |               "required": true,
1805 |               "in": "path",
1806 |               "description": "Project ref",
1807 |               "schema": {
1808 |                 "minLength": 20,
1809 |                 "maxLength": 20,
1810 |                 "type": "string"
1811 |               }
1812 |             }
1813 |           ],
1814 |           "requestBody": {
1815 |             "required": true,
1816 |             "content": {
1817 |               "application/json": {
1818 |                 "schema": {
1819 |                   "type": "array",
1820 |                   "items": {
1821 |                     "$ref": "#/components/schemas/CreateSecretBody"
1822 |                   }
1823 |                 }
1824 |               }
1825 |             }
1826 |           },
1827 |           "responses": {
1828 |             "201": {
1829 |               "description": ""
1830 |             },
1831 |             "403": {
1832 |               "description": ""
1833 |             },
1834 |             "500": {
1835 |               "description": "Failed to create project's secrets"
1836 |             }
1837 |           },
1838 |           "tags": [
1839 |             "Secrets"
1840 |           ],
1841 |           "security": [
1842 |             {
1843 |               "bearer": []
1844 |             }
1845 |           ]
1846 |         },
1847 |         "delete": {
1848 |           "operationId": "v1-bulk-delete-secrets",
1849 |           "summary": "Bulk delete secrets",
1850 |           "description": "Deletes all secrets with the given names from the specified project",
1851 |           "parameters": [
1852 |             {
1853 |               "name": "ref",
1854 |               "required": true,
1855 |               "in": "path",
1856 |               "description": "Project ref",
1857 |               "schema": {
1858 |                 "minLength": 20,
1859 |                 "maxLength": 20,
1860 |                 "type": "string"
1861 |               }
1862 |             }
1863 |           ],
1864 |           "requestBody": {
1865 |             "required": true,
1866 |             "content": {
1867 |               "application/json": {
1868 |                 "schema": {
1869 |                   "type": "array",
1870 |                   "items": {
1871 |                     "type": "string"
1872 |                   }
1873 |                 }
1874 |               }
1875 |             }
1876 |           },
1877 |           "responses": {
1878 |             "200": {
1879 |               "description": "",
1880 |               "content": {
1881 |                 "application/json": {
1882 |                   "schema": {
1883 |                     "type": "object"
1884 |                   }
1885 |                 }
1886 |               }
1887 |             },
1888 |             "403": {
1889 |               "description": ""
1890 |             },
1891 |             "500": {
1892 |               "description": "Failed to delete secrets with given names"
1893 |             }
1894 |           },
1895 |           "tags": [
1896 |             "Secrets"
1897 |           ],
1898 |           "security": [
1899 |             {
1900 |               "bearer": []
1901 |             }
1902 |           ]
1903 |         }
1904 |       },
1905 |       "/v1/projects/{ref}/ssl-enforcement": {
1906 |         "get": {
1907 |           "operationId": "v1-get-ssl-enforcement-config",
1908 |           "summary": "[Beta] Get project's SSL enforcement configuration.",
1909 |           "parameters": [
1910 |             {
1911 |               "name": "ref",
1912 |               "required": true,
1913 |               "in": "path",
1914 |               "description": "Project ref",
1915 |               "schema": {
1916 |                 "minLength": 20,
1917 |                 "maxLength": 20,
1918 |                 "type": "string"
1919 |               }
1920 |             }
1921 |           ],
1922 |           "responses": {
1923 |             "200": {
1924 |               "description": "",
1925 |               "content": {
1926 |                 "application/json": {
1927 |                   "schema": {
1928 |                     "$ref": "#/components/schemas/SslEnforcementResponse"
1929 |                   }
1930 |                 }
1931 |               }
1932 |             },
1933 |             "403": {
1934 |               "description": ""
1935 |             },
1936 |             "500": {
1937 |               "description": "Failed to retrieve project's SSL enforcement config"
1938 |             }
1939 |           },
1940 |           "tags": [
1941 |             "Database"
1942 |           ],
1943 |           "security": [
1944 |             {
1945 |               "bearer": []
1946 |             }
1947 |           ]
1948 |         },
1949 |         "put": {
1950 |           "operationId": "v1-update-ssl-enforcement-config",
1951 |           "summary": "[Beta] Update project's SSL enforcement configuration.",
1952 |           "parameters": [
1953 |             {
1954 |               "name": "ref",
1955 |               "required": true,
1956 |               "in": "path",
1957 |               "description": "Project ref",
1958 |               "schema": {
1959 |                 "minLength": 20,
1960 |                 "maxLength": 20,
1961 |                 "type": "string"
1962 |               }
1963 |             }
1964 |           ],
1965 |           "requestBody": {
1966 |             "required": true,
1967 |             "content": {
1968 |               "application/json": {
1969 |                 "schema": {
1970 |                   "$ref": "#/components/schemas/SslEnforcementRequest"
1971 |                 }
1972 |               }
1973 |             }
1974 |           },
1975 |           "responses": {
1976 |             "200": {
1977 |               "description": "",
1978 |               "content": {
1979 |                 "application/json": {
1980 |                   "schema": {
1981 |                     "$ref": "#/components/schemas/SslEnforcementResponse"
1982 |                   }
1983 |                 }
1984 |               }
1985 |             },
1986 |             "403": {
1987 |               "description": ""
1988 |             },
1989 |             "500": {
1990 |               "description": "Failed to update project's SSL enforcement configuration."
1991 |             }
1992 |           },
1993 |           "tags": [
1994 |             "Database"
1995 |           ],
1996 |           "security": [
1997 |             {
1998 |               "bearer": []
1999 |             }
2000 |           ]
2001 |         }
2002 |       },
2003 |       "/v1/projects/{ref}/types/typescript": {
2004 |         "get": {
2005 |           "operationId": "v1-generate-typescript-types",
2006 |           "summary": "Generate TypeScript types",
2007 |           "description": "Returns the TypeScript types of your schema for use with supabase-js.",
2008 |           "parameters": [
2009 |             {
2010 |               "name": "included_schemas",
2011 |               "required": false,
2012 |               "in": "query",
2013 |               "schema": {
2014 |                 "default": "public",
2015 |                 "type": "string"
2016 |               }
2017 |             },
2018 |             {
2019 |               "name": "ref",
2020 |               "required": true,
2021 |               "in": "path",
2022 |               "description": "Project ref",
2023 |               "schema": {
2024 |                 "minLength": 20,
2025 |                 "maxLength": 20,
2026 |                 "type": "string"
2027 |               }
2028 |             }
2029 |           ],
2030 |           "responses": {
2031 |             "200": {
2032 |               "description": "",
2033 |               "content": {
2034 |                 "application/json": {
2035 |                   "schema": {
2036 |                     "$ref": "#/components/schemas/TypescriptResponse"
2037 |                   }
2038 |                 }
2039 |               }
2040 |             },
2041 |             "403": {
2042 |               "description": ""
2043 |             },
2044 |             "500": {
2045 |               "description": "Failed to generate TypeScript types"
2046 |             }
2047 |           },
2048 |           "tags": [
2049 |             "Database"
2050 |           ],
2051 |           "security": [
2052 |             {
2053 |               "bearer": []
2054 |             }
2055 |           ]
2056 |         }
2057 |       },
2058 |       "/v1/projects/{ref}/vanity-subdomain": {
2059 |         "get": {
2060 |           "operationId": "v1-get-vanity-subdomain-config",
2061 |           "summary": "[Beta] Gets current vanity subdomain config",
2062 |           "parameters": [
2063 |             {
2064 |               "name": "ref",
2065 |               "required": true,
2066 |               "in": "path",
2067 |               "description": "Project ref",
2068 |               "schema": {
2069 |                 "minLength": 20,
2070 |                 "maxLength": 20,
2071 |                 "type": "string"
2072 |               }
2073 |             }
2074 |           ],
2075 |           "responses": {
2076 |             "200": {
2077 |               "description": "",
2078 |               "content": {
2079 |                 "application/json": {
2080 |                   "schema": {
2081 |                     "$ref": "#/components/schemas/VanitySubdomainConfigResponse"
2082 |                   }
2083 |                 }
2084 |               }
2085 |             },
2086 |             "403": {
2087 |               "description": ""
2088 |             },
2089 |             "500": {
2090 |               "description": "Failed to get project vanity subdomain configuration"
2091 |             }
2092 |           },
2093 |           "tags": [
2094 |             "Domains"
2095 |           ],
2096 |           "security": [
2097 |             {
2098 |               "bearer": []
2099 |             }
2100 |           ]
2101 |         },
2102 |         "delete": {
2103 |           "operationId": "v1-deactivate-vanity-subdomain-config",
2104 |           "summary": "[Beta] Deletes a project's vanity subdomain configuration",
2105 |           "parameters": [
2106 |             {
2107 |               "name": "ref",
2108 |               "required": true,
2109 |               "in": "path",
2110 |               "description": "Project ref",
2111 |               "schema": {
2112 |                 "minLength": 20,
2113 |                 "maxLength": 20,
2114 |                 "type": "string"
2115 |               }
2116 |             }
2117 |           ],
2118 |           "responses": {
2119 |             "200": {
2120 |               "description": ""
2121 |             },
2122 |             "403": {
2123 |               "description": ""
2124 |             },
2125 |             "500": {
2126 |               "description": "Failed to delete project vanity subdomain configuration"
2127 |             }
2128 |           },
2129 |           "tags": [
2130 |             "Domains"
2131 |           ],
2132 |           "security": [
2133 |             {
2134 |               "bearer": []
2135 |             }
2136 |           ]
2137 |         }
2138 |       },
2139 |       "/v1/projects/{ref}/vanity-subdomain/check-availability": {
2140 |         "post": {
2141 |           "operationId": "v1-check-vanity-subdomain-availability",
2142 |           "summary": "[Beta] Checks vanity subdomain availability",
2143 |           "parameters": [
2144 |             {
2145 |               "name": "ref",
2146 |               "required": true,
2147 |               "in": "path",
2148 |               "description": "Project ref",
2149 |               "schema": {
2150 |                 "minLength": 20,
2151 |                 "maxLength": 20,
2152 |                 "type": "string"
2153 |               }
2154 |             }
2155 |           ],
2156 |           "requestBody": {
2157 |             "required": true,
2158 |             "content": {
2159 |               "application/json": {
2160 |                 "schema": {
2161 |                   "$ref": "#/components/schemas/VanitySubdomainBody"
2162 |                 }
2163 |               }
2164 |             }
2165 |           },
2166 |           "responses": {
2167 |             "201": {
2168 |               "description": "",
2169 |               "content": {
2170 |                 "application/json": {
2171 |                   "schema": {
2172 |                     "$ref": "#/components/schemas/SubdomainAvailabilityResponse"
2173 |                   }
2174 |                 }
2175 |               }
2176 |             },
2177 |             "403": {
2178 |               "description": ""
2179 |             },
2180 |             "500": {
2181 |               "description": "Failed to check project vanity subdomain configuration"
2182 |             }
2183 |           },
2184 |           "tags": [
2185 |             "Domains"
2186 |           ],
2187 |           "security": [
2188 |             {
2189 |               "bearer": []
2190 |             }
2191 |           ]
2192 |         }
2193 |       },
2194 |       "/v1/projects/{ref}/vanity-subdomain/activate": {
2195 |         "post": {
2196 |           "operationId": "v1-activate-vanity-subdomain-config",
2197 |           "summary": "[Beta] Activates a vanity subdomain for a project.",
2198 |           "parameters": [
2199 |             {
2200 |               "name": "ref",
2201 |               "required": true,
2202 |               "in": "path",
2203 |               "description": "Project ref",
2204 |               "schema": {
2205 |                 "minLength": 20,
2206 |                 "maxLength": 20,
2207 |                 "type": "string"
2208 |               }
2209 |             }
2210 |           ],
2211 |           "requestBody": {
2212 |             "required": true,
2213 |             "content": {
2214 |               "application/json": {
2215 |                 "schema": {
2216 |                   "$ref": "#/components/schemas/VanitySubdomainBody"
2217 |                 }
2218 |               }
2219 |             }
2220 |           },
2221 |           "responses": {
2222 |             "201": {
2223 |               "description": "",
2224 |               "content": {
2225 |                 "application/json": {
2226 |                   "schema": {
2227 |                     "$ref": "#/components/schemas/ActivateVanitySubdomainResponse"
2228 |                   }
2229 |                 }
2230 |               }
2231 |             },
2232 |             "403": {
2233 |               "description": ""
2234 |             },
2235 |             "500": {
2236 |               "description": "Failed to activate project vanity subdomain configuration"
2237 |             }
2238 |           },
2239 |           "tags": [
2240 |             "Domains"
2241 |           ],
2242 |           "security": [
2243 |             {
2244 |               "bearer": []
2245 |             }
2246 |           ]
2247 |         }
2248 |       },
2249 |       "/v1/projects/{ref}/upgrade": {
2250 |         "post": {
2251 |           "operationId": "v1-upgrade-postgres-version",
2252 |           "summary": "[Beta] Upgrades the project's Postgres version",
2253 |           "parameters": [
2254 |             {
2255 |               "name": "ref",
2256 |               "required": true,
2257 |               "in": "path",
2258 |               "description": "Project ref",
2259 |               "schema": {
2260 |                 "minLength": 20,
2261 |                 "maxLength": 20,
2262 |                 "type": "string"
2263 |               }
2264 |             }
2265 |           ],
2266 |           "requestBody": {
2267 |             "required": true,
2268 |             "content": {
2269 |               "application/json": {
2270 |                 "schema": {
2271 |                   "$ref": "#/components/schemas/UpgradeDatabaseBody"
2272 |                 }
2273 |               }
2274 |             }
2275 |           },
2276 |           "responses": {
2277 |             "201": {
2278 |               "description": "",
2279 |               "content": {
2280 |                 "application/json": {
2281 |                   "schema": {
2282 |                     "$ref": "#/components/schemas/ProjectUpgradeInitiateResponse"
2283 |                   }
2284 |                 }
2285 |               }
2286 |             },
2287 |             "403": {
2288 |               "description": ""
2289 |             },
2290 |             "500": {
2291 |               "description": "Failed to initiate project upgrade"
2292 |             }
2293 |           },
2294 |           "tags": [
2295 |             "Projects"
2296 |           ],
2297 |           "security": [
2298 |             {
2299 |               "bearer": []
2300 |             }
2301 |           ]
2302 |         }
2303 |       },
2304 |       "/v1/projects/{ref}/upgrade/eligibility": {
2305 |         "get": {
2306 |           "operationId": "v1-get-postgres-upgrade-eligibility",
2307 |           "summary": "[Beta] Returns the project's eligibility for upgrades",
2308 |           "parameters": [
2309 |             {
2310 |               "name": "ref",
2311 |               "required": true,
2312 |               "in": "path",
2313 |               "description": "Project ref",
2314 |               "schema": {
2315 |                 "minLength": 20,
2316 |                 "maxLength": 20,
2317 |                 "type": "string"
2318 |               }
2319 |             }
2320 |           ],
2321 |           "responses": {
2322 |             "200": {
2323 |               "description": "",
2324 |               "content": {
2325 |                 "application/json": {
2326 |                   "schema": {
2327 |                     "$ref": "#/components/schemas/ProjectUpgradeEligibilityResponse"
2328 |                   }
2329 |                 }
2330 |               }
2331 |             },
2332 |             "403": {
2333 |               "description": ""
2334 |             },
2335 |             "500": {
2336 |               "description": "Failed to determine project upgrade eligibility"
2337 |             }
2338 |           },
2339 |           "tags": [
2340 |             "Projects"
2341 |           ],
2342 |           "security": [
2343 |             {
2344 |               "bearer": []
2345 |             }
2346 |           ]
2347 |         }
2348 |       },
2349 |       "/v1/projects/{ref}/upgrade/status": {
2350 |         "get": {
2351 |           "operationId": "v1-get-postgres-upgrade-status",
2352 |           "summary": "[Beta] Gets the latest status of the project's upgrade",
2353 |           "parameters": [
2354 |             {
2355 |               "name": "ref",
2356 |               "required": true,
2357 |               "in": "path",
2358 |               "description": "Project ref",
2359 |               "schema": {
2360 |                 "minLength": 20,
2361 |                 "maxLength": 20,
2362 |                 "type": "string"
2363 |               }
2364 |             },
2365 |             {
2366 |               "name": "tracking_id",
2367 |               "required": false,
2368 |               "in": "query",
2369 |               "schema": {
2370 |                 "type": "string"
2371 |               }
2372 |             }
2373 |           ],
2374 |           "responses": {
2375 |             "200": {
2376 |               "description": "",
2377 |               "content": {
2378 |                 "application/json": {
2379 |                   "schema": {
2380 |                     "$ref": "#/components/schemas/DatabaseUpgradeStatusResponse"
2381 |                   }
2382 |                 }
2383 |               }
2384 |             },
2385 |             "403": {
2386 |               "description": ""
2387 |             },
2388 |             "500": {
2389 |               "description": "Failed to retrieve project upgrade status"
2390 |             }
2391 |           },
2392 |           "tags": [
2393 |             "Projects"
2394 |           ],
2395 |           "security": [
2396 |             {
2397 |               "bearer": []
2398 |             }
2399 |           ]
2400 |         }
2401 |       },
2402 |       "/v1/projects/{ref}/readonly": {
2403 |         "get": {
2404 |           "operationId": "v1-get-readonly-mode-status",
2405 |           "summary": "Returns project's readonly mode status",
2406 |           "parameters": [
2407 |             {
2408 |               "name": "ref",
2409 |               "required": true,
2410 |               "in": "path",
2411 |               "description": "Project ref",
2412 |               "schema": {
2413 |                 "minLength": 20,
2414 |                 "maxLength": 20,
2415 |                 "type": "string"
2416 |               }
2417 |             }
2418 |           ],
2419 |           "responses": {
2420 |             "200": {
2421 |               "description": "",
2422 |               "content": {
2423 |                 "application/json": {
2424 |                   "schema": {
2425 |                     "$ref": "#/components/schemas/ReadOnlyStatusResponse"
2426 |                   }
2427 |                 }
2428 |               }
2429 |             },
2430 |             "500": {
2431 |               "description": "Failed to get project readonly mode status"
2432 |             }
2433 |           },
2434 |           "tags": [
2435 |             "Database"
2436 |           ],
2437 |           "security": [
2438 |             {
2439 |               "bearer": []
2440 |             }
2441 |           ]
2442 |         }
2443 |       },
2444 |       "/v1/projects/{ref}/readonly/temporary-disable": {
2445 |         "post": {
2446 |           "operationId": "v1-disable-readonly-mode-temporarily",
2447 |           "summary": "Disables project's readonly mode for the next 15 minutes",
2448 |           "parameters": [
2449 |             {
2450 |               "name": "ref",
2451 |               "required": true,
2452 |               "in": "path",
2453 |               "description": "Project ref",
2454 |               "schema": {
2455 |                 "minLength": 20,
2456 |                 "maxLength": 20,
2457 |                 "type": "string"
2458 |               }
2459 |             }
2460 |           ],
2461 |           "responses": {
2462 |             "201": {
2463 |               "description": ""
2464 |             },
2465 |             "500": {
2466 |               "description": "Failed to disable project's readonly mode"
2467 |             }
2468 |           },
2469 |           "tags": [
2470 |             "Database"
2471 |           ],
2472 |           "security": [
2473 |             {
2474 |               "bearer": []
2475 |             }
2476 |           ]
2477 |         }
2478 |       },
2479 |       "/v1/projects/{ref}/read-replicas/setup": {
2480 |         "post": {
2481 |           "operationId": "v1-setup-a-read-replica",
2482 |           "summary": "[Beta] Set up a read replica",
2483 |           "parameters": [
2484 |             {
2485 |               "name": "ref",
2486 |               "required": true,
2487 |               "in": "path",
2488 |               "description": "Project ref",
2489 |               "schema": {
2490 |                 "minLength": 20,
2491 |                 "maxLength": 20,
2492 |                 "type": "string"
2493 |               }
2494 |             }
2495 |           ],
2496 |           "requestBody": {
2497 |             "required": true,
2498 |             "content": {
2499 |               "application/json": {
2500 |                 "schema": {
2501 |                   "$ref": "#/components/schemas/SetUpReadReplicaBody"
2502 |                 }
2503 |               }
2504 |             }
2505 |           },
2506 |           "responses": {
2507 |             "201": {
2508 |               "description": ""
2509 |             },
2510 |             "403": {
2511 |               "description": ""
2512 |             },
2513 |             "500": {
2514 |               "description": "Failed to set up read replica"
2515 |             }
2516 |           },
2517 |           "tags": [
2518 |             "Database"
2519 |           ],
2520 |           "security": [
2521 |             {
2522 |               "bearer": []
2523 |             }
2524 |           ]
2525 |         }
2526 |       },
2527 |       "/v1/projects/{ref}/read-replicas/remove": {
2528 |         "post": {
2529 |           "operationId": "v1-remove-a-read-replica",
2530 |           "summary": "[Beta] Remove a read replica",
2531 |           "parameters": [
2532 |             {
2533 |               "name": "ref",
2534 |               "required": true,
2535 |               "in": "path",
2536 |               "description": "Project ref",
2537 |               "schema": {
2538 |                 "minLength": 20,
2539 |                 "maxLength": 20,
2540 |                 "type": "string"
2541 |               }
2542 |             }
2543 |           ],
2544 |           "requestBody": {
2545 |             "required": true,
2546 |             "content": {
2547 |               "application/json": {
2548 |                 "schema": {
2549 |                   "$ref": "#/components/schemas/RemoveReadReplicaBody"
2550 |                 }
2551 |               }
2552 |             }
2553 |           },
2554 |           "responses": {
2555 |             "201": {
2556 |               "description": ""
2557 |             },
2558 |             "403": {
2559 |               "description": ""
2560 |             },
2561 |             "500": {
2562 |               "description": "Failed to remove read replica"
2563 |             }
2564 |           },
2565 |           "tags": [
2566 |             "Database"
2567 |           ],
2568 |           "security": [
2569 |             {
2570 |               "bearer": []
2571 |             }
2572 |           ]
2573 |         }
2574 |       },
2575 |       "/v1/projects/{ref}/health": {
2576 |         "get": {
2577 |           "operationId": "v1-get-services-health",
2578 |           "summary": "Gets project's service health status",
2579 |           "parameters": [
2580 |             {
2581 |               "name": "ref",
2582 |               "required": true,
2583 |               "in": "path",
2584 |               "description": "Project ref",
2585 |               "schema": {
2586 |                 "minLength": 20,
2587 |                 "maxLength": 20,
2588 |                 "type": "string"
2589 |               }
2590 |             },
2591 |             {
2592 |               "name": "timeout_ms",
2593 |               "required": false,
2594 |               "in": "query",
2595 |               "schema": {
2596 |                 "minimum": 0,
2597 |                 "maximum": 10000,
2598 |                 "type": "integer"
2599 |               }
2600 |             },
2601 |             {
2602 |               "name": "services",
2603 |               "required": true,
2604 |               "in": "query",
2605 |               "schema": {
2606 |                 "type": "array",
2607 |                 "items": {
2608 |                   "type": "string",
2609 |                   "enum": [
2610 |                     "auth",
2611 |                     "db",
2612 |                     "pooler",
2613 |                     "realtime",
2614 |                     "rest",
2615 |                     "storage"
2616 |                   ]
2617 |                 }
2618 |               }
2619 |             }
2620 |           ],
2621 |           "responses": {
2622 |             "200": {
2623 |               "description": "",
2624 |               "content": {
2625 |                 "application/json": {
2626 |                   "schema": {
2627 |                     "type": "array",
2628 |                     "items": {
2629 |                       "$ref": "#/components/schemas/V1ServiceHealthResponse"
2630 |                     }
2631 |                   }
2632 |                 }
2633 |               }
2634 |             },
2635 |             "403": {
2636 |               "description": ""
2637 |             },
2638 |             "500": {
2639 |               "description": "Failed to retrieve project's service health status"
2640 |             }
2641 |           },
2642 |           "tags": [
2643 |             "Projects"
2644 |           ],
2645 |           "security": [
2646 |             {
2647 |               "bearer": []
2648 |             }
2649 |           ]
2650 |         }
2651 |       },
2652 |       "/v1/projects/{ref}/config/storage": {
2653 |         "get": {
2654 |           "operationId": "v1-get-storage-config",
2655 |           "summary": "Gets project's storage config",
2656 |           "parameters": [
2657 |             {
2658 |               "name": "ref",
2659 |               "required": true,
2660 |               "in": "path",
2661 |               "description": "Project ref",
2662 |               "schema": {
2663 |                 "minLength": 20,
2664 |                 "maxLength": 20,
2665 |                 "type": "string"
2666 |               }
2667 |             }
2668 |           ],
2669 |           "responses": {
2670 |             "200": {
2671 |               "description": "",
2672 |               "content": {
2673 |                 "application/json": {
2674 |                   "schema": {
2675 |                     "$ref": "#/components/schemas/StorageConfigResponse"
2676 |                   }
2677 |                 }
2678 |               }
2679 |             },
2680 |             "403": {
2681 |               "description": ""
2682 |             },
2683 |             "500": {
2684 |               "description": "Failed to retrieve project's storage config"
2685 |             }
2686 |           },
2687 |           "tags": [
2688 |             "Storage"
2689 |           ],
2690 |           "security": [
2691 |             {
2692 |               "bearer": []
2693 |             }
2694 |           ]
2695 |         },
2696 |         "patch": {
2697 |           "operationId": "v1-update-storage-config",
2698 |           "summary": "Updates project's storage config",
2699 |           "parameters": [
2700 |             {
2701 |               "name": "ref",
2702 |               "required": true,
2703 |               "in": "path",
2704 |               "description": "Project ref",
2705 |               "schema": {
2706 |                 "minLength": 20,
2707 |                 "maxLength": 20,
2708 |                 "type": "string"
2709 |               }
2710 |             }
2711 |           ],
2712 |           "requestBody": {
2713 |             "required": true,
2714 |             "content": {
2715 |               "application/json": {
2716 |                 "schema": {
2717 |                   "$ref": "#/components/schemas/UpdateStorageConfigBody"
2718 |                 }
2719 |               }
2720 |             }
2721 |           },
2722 |           "responses": {
2723 |             "200": {
2724 |               "description": ""
2725 |             },
2726 |             "403": {
2727 |               "description": ""
2728 |             },
2729 |             "500": {
2730 |               "description": "Failed to update project's storage config"
2731 |             }
2732 |           },
2733 |           "tags": [
2734 |             "Storage"
2735 |           ],
2736 |           "security": [
2737 |             {
2738 |               "bearer": []
2739 |             }
2740 |           ]
2741 |         }
2742 |       },
2743 |       "/v1/projects/{ref}/config/database/postgres": {
2744 |         "get": {
2745 |           "operationId": "v1-get-postgres-config",
2746 |           "summary": "Gets project's Postgres config",
2747 |           "parameters": [
2748 |             {
2749 |               "name": "ref",
2750 |               "required": true,
2751 |               "in": "path",
2752 |               "description": "Project ref",
2753 |               "schema": {
2754 |                 "minLength": 20,
2755 |                 "maxLength": 20,
2756 |                 "type": "string"
2757 |               }
2758 |             }
2759 |           ],
2760 |           "responses": {
2761 |             "200": {
2762 |               "description": "",
2763 |               "content": {
2764 |                 "application/json": {
2765 |                   "schema": {
2766 |                     "$ref": "#/components/schemas/PostgresConfigResponse"
2767 |                   }
2768 |                 }
2769 |               }
2770 |             },
2771 |             "500": {
2772 |               "description": "Failed to retrieve project's Postgres config"
2773 |             }
2774 |           },
2775 |           "tags": [
2776 |             "Database"
2777 |           ],
2778 |           "security": [
2779 |             {
2780 |               "bearer": []
2781 |             }
2782 |           ]
2783 |         },
2784 |         "put": {
2785 |           "operationId": "v1-update-postgres-config",
2786 |           "summary": "Updates project's Postgres config",
2787 |           "parameters": [
2788 |             {
2789 |               "name": "ref",
2790 |               "required": true,
2791 |               "in": "path",
2792 |               "description": "Project ref",
2793 |               "schema": {
2794 |                 "minLength": 20,
2795 |                 "maxLength": 20,
2796 |                 "type": "string"
2797 |               }
2798 |             }
2799 |           ],
2800 |           "requestBody": {
2801 |             "required": true,
2802 |             "content": {
2803 |               "application/json": {
2804 |                 "schema": {
2805 |                   "$ref": "#/components/schemas/UpdatePostgresConfigBody"
2806 |                 }
2807 |               }
2808 |             }
2809 |           },
2810 |           "responses": {
2811 |             "200": {
2812 |               "description": "",
2813 |               "content": {
2814 |                 "application/json": {
2815 |                   "schema": {
2816 |                     "$ref": "#/components/schemas/PostgresConfigResponse"
2817 |                   }
2818 |                 }
2819 |               }
2820 |             },
2821 |             "403": {
2822 |               "description": ""
2823 |             },
2824 |             "500": {
2825 |               "description": "Failed to update project's Postgres config"
2826 |             }
2827 |           },
2828 |           "tags": [
2829 |             "Database"
2830 |           ],
2831 |           "security": [
2832 |             {
2833 |               "bearer": []
2834 |             }
2835 |           ]
2836 |         }
2837 |       },
2838 |       "/v1/projects/{ref}/config/database/pgbouncer": {
2839 |         "get": {
2840 |           "operationId": "v1-get-project-pgbouncer-config",
2841 |           "summary": "Get project's pgbouncer config",
2842 |           "parameters": [
2843 |             {
2844 |               "name": "ref",
2845 |               "required": true,
2846 |               "in": "path",
2847 |               "description": "Project ref",
2848 |               "schema": {
2849 |                 "minLength": 20,
2850 |                 "maxLength": 20,
2851 |                 "type": "string"
2852 |               }
2853 |             }
2854 |           ],
2855 |           "responses": {
2856 |             "200": {
2857 |               "description": "",
2858 |               "content": {
2859 |                 "application/json": {
2860 |                   "schema": {
2861 |                     "$ref": "#/components/schemas/V1PgbouncerConfigResponse"
2862 |                   }
2863 |                 }
2864 |               }
2865 |             },
2866 |             "500": {
2867 |               "description": "Failed to retrieve project's pgbouncer config"
2868 |             }
2869 |           },
2870 |           "tags": [
2871 |             "Database"
2872 |           ]
2873 |         }
2874 |       },
2875 |       "/v1/projects/{ref}/config/database/pooler": {
2876 |         "get": {
2877 |           "operationId": "v1-get-supavisor-config",
2878 |           "summary": "Gets project's supavisor config",
2879 |           "parameters": [
2880 |             {
2881 |               "name": "ref",
2882 |               "required": true,
2883 |               "in": "path",
2884 |               "description": "Project ref",
2885 |               "schema": {
2886 |                 "minLength": 20,
2887 |                 "maxLength": 20,
2888 |                 "type": "string"
2889 |               }
2890 |             }
2891 |           ],
2892 |           "responses": {
2893 |             "200": {
2894 |               "description": "",
2895 |               "content": {
2896 |                 "application/json": {
2897 |                   "schema": {
2898 |                     "type": "array",
2899 |                     "items": {
2900 |                       "$ref": "#/components/schemas/SupavisorConfigResponse"
2901 |                     }
2902 |                   }
2903 |                 }
2904 |               }
2905 |             },
2906 |             "500": {
2907 |               "description": "Failed to retrieve project's supavisor config"
2908 |             }
2909 |           },
2910 |           "tags": [
2911 |             "Database"
2912 |           ],
2913 |           "security": [
2914 |             {
2915 |               "bearer": []
2916 |             }
2917 |           ]
2918 |         },
2919 |         "patch": {
2920 |           "operationId": "v1-update-supavisor-config",
2921 |           "summary": "Updates project's supavisor config",
2922 |           "parameters": [
2923 |             {
2924 |               "name": "ref",
2925 |               "required": true,
2926 |               "in": "path",
2927 |               "description": "Project ref",
2928 |               "schema": {
2929 |                 "minLength": 20,
2930 |                 "maxLength": 20,
2931 |                 "type": "string"
2932 |               }
2933 |             }
2934 |           ],
2935 |           "requestBody": {
2936 |             "required": true,
2937 |             "content": {
2938 |               "application/json": {
2939 |                 "schema": {
2940 |                   "$ref": "#/components/schemas/UpdateSupavisorConfigBody"
2941 |                 }
2942 |               }
2943 |             }
2944 |           },
2945 |           "responses": {
2946 |             "200": {
2947 |               "description": "",
2948 |               "content": {
2949 |                 "application/json": {
2950 |                   "schema": {
2951 |                     "$ref": "#/components/schemas/UpdateSupavisorConfigResponse"
2952 |                   }
2953 |                 }
2954 |               }
2955 |             },
2956 |             "403": {
2957 |               "description": ""
2958 |             },
2959 |             "500": {
2960 |               "description": "Failed to update project's supavisor config"
2961 |             }
2962 |           },
2963 |           "tags": [
2964 |             "Database"
2965 |           ],
2966 |           "security": [
2967 |             {
2968 |               "bearer": []
2969 |             }
2970 |           ]
2971 |         }
2972 |       },
2973 |       "/v1/projects/{ref}/config/auth": {
2974 |         "get": {
2975 |           "operationId": "v1-get-auth-service-config",
2976 |           "summary": "Gets project's auth config",
2977 |           "parameters": [
2978 |             {
2979 |               "name": "ref",
2980 |               "required": true,
2981 |               "in": "path",
2982 |               "description": "Project ref",
2983 |               "schema": {
2984 |                 "minLength": 20,
2985 |                 "maxLength": 20,
2986 |                 "type": "string"
2987 |               }
2988 |             }
2989 |           ],
2990 |           "responses": {
2991 |             "200": {
2992 |               "description": "",
2993 |               "content": {
2994 |                 "application/json": {
2995 |                   "schema": {
2996 |                     "$ref": "#/components/schemas/AuthConfigResponse"
2997 |                   }
2998 |                 }
2999 |               }
3000 |             },
3001 |             "403": {
3002 |               "description": ""
3003 |             },
3004 |             "500": {
3005 |               "description": "Failed to retrieve project's auth config"
3006 |             }
3007 |           },
3008 |           "tags": [
3009 |             "Auth"
3010 |           ],
3011 |           "security": [
3012 |             {
3013 |               "bearer": []
3014 |             }
3015 |           ]
3016 |         },
3017 |         "patch": {
3018 |           "operationId": "v1-update-auth-service-config",
3019 |           "summary": "Updates a project's auth config",
3020 |           "parameters": [
3021 |             {
3022 |               "name": "ref",
3023 |               "required": true,
3024 |               "in": "path",
3025 |               "description": "Project ref",
3026 |               "schema": {
3027 |                 "minLength": 20,
3028 |                 "maxLength": 20,
3029 |                 "type": "string"
3030 |               }
3031 |             }
3032 |           ],
3033 |           "requestBody": {
3034 |             "required": true,
3035 |             "content": {
3036 |               "application/json": {
3037 |                 "schema": {
3038 |                   "$ref": "#/components/schemas/UpdateAuthConfigBody"
3039 |                 }
3040 |               }
3041 |             }
3042 |           },
3043 |           "responses": {
3044 |             "200": {
3045 |               "description": "",
3046 |               "content": {
3047 |                 "application/json": {
3048 |                   "schema": {
3049 |                     "$ref": "#/components/schemas/AuthConfigResponse"
3050 |                   }
3051 |                 }
3052 |               }
3053 |             },
3054 |             "403": {
3055 |               "description": ""
3056 |             },
3057 |             "500": {
3058 |               "description": "Failed to update project's auth config"
3059 |             }
3060 |           },
3061 |           "tags": [
3062 |             "Auth"
3063 |           ],
3064 |           "security": [
3065 |             {
3066 |               "bearer": []
3067 |             }
3068 |           ]
3069 |         }
3070 |       },
3071 |       "/v1/projects/{ref}/config/auth/third-party-auth": {
3072 |         "post": {
3073 |           "operationId": "createTPAForProject",
3074 |           "summary": "Creates a new third-party auth integration",
3075 |           "parameters": [
3076 |             {
3077 |               "name": "ref",
3078 |               "required": true,
3079 |               "in": "path",
3080 |               "description": "Project ref",
3081 |               "schema": {
3082 |                 "minLength": 20,
3083 |                 "maxLength": 20,
3084 |                 "type": "string"
3085 |               }
3086 |             }
3087 |           ],
3088 |           "requestBody": {
3089 |             "required": true,
3090 |             "content": {
3091 |               "application/json": {
3092 |                 "schema": {
3093 |                   "$ref": "#/components/schemas/CreateThirdPartyAuthBody"
3094 |                 }
3095 |               }
3096 |             }
3097 |           },
3098 |           "responses": {
3099 |             "201": {
3100 |               "description": "",
3101 |               "content": {
3102 |                 "application/json": {
3103 |                   "schema": {
3104 |                     "$ref": "#/components/schemas/ThirdPartyAuth"
3105 |                   }
3106 |                 }
3107 |               }
3108 |             },
3109 |             "403": {
3110 |               "description": ""
3111 |             }
3112 |           },
3113 |           "tags": [
3114 |             "Auth"
3115 |           ],
3116 |           "security": [
3117 |             {
3118 |               "bearer": []
3119 |             }
3120 |           ]
3121 |         },
3122 |         "get": {
3123 |           "operationId": "listTPAForProject",
3124 |           "summary": "[Alpha] Lists all third-party auth integrations",
3125 |           "parameters": [
3126 |             {
3127 |               "name": "ref",
3128 |               "required": true,
3129 |               "in": "path",
3130 |               "description": "Project ref",
3131 |               "schema": {
3132 |                 "minLength": 20,
3133 |                 "maxLength": 20,
3134 |                 "type": "string"
3135 |               }
3136 |             }
3137 |           ],
3138 |           "responses": {
3139 |             "200": {
3140 |               "description": "",
3141 |               "content": {
3142 |                 "application/json": {
3143 |                   "schema": {
3144 |                     "type": "array",
3145 |                     "items": {
3146 |                       "$ref": "#/components/schemas/ThirdPartyAuth"
3147 |                     }
3148 |                   }
3149 |                 }
3150 |               }
3151 |             },
3152 |             "403": {
3153 |               "description": ""
3154 |             }
3155 |           },
3156 |           "tags": [
3157 |             "Auth"
3158 |           ],
3159 |           "security": [
3160 |             {
3161 |               "bearer": []
3162 |             }
3163 |           ]
3164 |         }
3165 |       },
3166 |       "/v1/projects/{ref}/config/auth/third-party-auth/{tpa_id}": {
3167 |         "delete": {
3168 |           "operationId": "deleteTPAForProject",
3169 |           "summary": "[Alpha] Removes a third-party auth integration",
3170 |           "parameters": [
3171 |             {
3172 |               "name": "ref",
3173 |               "required": true,
3174 |               "in": "path",
3175 |               "description": "Project ref",
3176 |               "schema": {
3177 |                 "minLength": 20,
3178 |                 "maxLength": 20,
3179 |                 "type": "string"
3180 |               }
3181 |             },
3182 |             {
3183 |               "name": "tpa_id",
3184 |               "required": true,
3185 |               "in": "path",
3186 |               "schema": {
3187 |                 "type": "string"
3188 |               }
3189 |             }
3190 |           ],
3191 |           "responses": {
3192 |             "200": {
3193 |               "description": "",
3194 |               "content": {
3195 |                 "application/json": {
3196 |                   "schema": {
3197 |                     "$ref": "#/components/schemas/ThirdPartyAuth"
3198 |                   }
3199 |                 }
3200 |               }
3201 |             },
3202 |             "403": {
3203 |               "description": ""
3204 |             }
3205 |           },
3206 |           "tags": [
3207 |             "Auth"
3208 |           ],
3209 |           "security": [
3210 |             {
3211 |               "bearer": []
3212 |             }
3213 |           ]
3214 |         },
3215 |         "get": {
3216 |           "operationId": "getTPAForProject",
3217 |           "summary": "[Alpha] Get a third-party integration",
3218 |           "parameters": [
3219 |             {
3220 |               "name": "ref",
3221 |               "required": true,
3222 |               "in": "path",
3223 |               "description": "Project ref",
3224 |               "schema": {
3225 |                 "minLength": 20,
3226 |                 "maxLength": 20,
3227 |                 "type": "string"
3228 |               }
3229 |             },
3230 |             {
3231 |               "name": "tpa_id",
3232 |               "required": true,
3233 |               "in": "path",
3234 |               "schema": {
3235 |                 "type": "string"
3236 |               }
3237 |             }
3238 |           ],
3239 |           "responses": {
3240 |             "200": {
3241 |               "description": "",
3242 |               "content": {
3243 |                 "application/json": {
3244 |                   "schema": {
3245 |                     "$ref": "#/components/schemas/ThirdPartyAuth"
3246 |                   }
3247 |                 }
3248 |               }
3249 |             },
3250 |             "403": {
3251 |               "description": ""
3252 |             }
3253 |           },
3254 |           "tags": [
3255 |             "Auth"
3256 |           ],
3257 |           "security": [
3258 |             {
3259 |               "bearer": []
3260 |             }
3261 |           ]
3262 |         }
3263 |       },
3264 |       "/v1/projects/{ref}/pause": {
3265 |         "post": {
3266 |           "operationId": "v1-pause-a-project",
3267 |           "summary": "Pauses the given project",
3268 |           "parameters": [
3269 |             {
3270 |               "name": "ref",
3271 |               "required": true,
3272 |               "in": "path",
3273 |               "description": "Project ref",
3274 |               "schema": {
3275 |                 "minLength": 20,
3276 |                 "maxLength": 20,
3277 |                 "type": "string"
3278 |               }
3279 |             }
3280 |           ],
3281 |           "responses": {
3282 |             "200": {
3283 |               "description": ""
3284 |             },
3285 |             "403": {
3286 |               "description": ""
3287 |             }
3288 |           },
3289 |           "tags": [
3290 |             "Projects"
3291 |           ],
3292 |           "security": [
3293 |             {
3294 |               "bearer": []
3295 |             }
3296 |           ]
3297 |         }
3298 |       },
3299 |       "/v1/projects/{ref}/restore": {
3300 |         "get": {
3301 |           "operationId": "v1-list-available-restore-versions",
3302 |           "summary": "Lists available restore versions for the given project",
3303 |           "parameters": [
3304 |             {
3305 |               "name": "ref",
3306 |               "required": true,
3307 |               "in": "path",
3308 |               "schema": {
3309 |                 "type": "string"
3310 |               }
3311 |             }
3312 |           ],
3313 |           "responses": {
3314 |             "200": {
3315 |               "description": "",
3316 |               "content": {
3317 |                 "application/json": {
3318 |                   "schema": {
3319 |                     "$ref": "#/components/schemas/GetProjectAvailableRestoreVersionsResponse"
3320 |                   }
3321 |                 }
3322 |               }
3323 |             },
3324 |             "403": {
3325 |               "description": ""
3326 |             }
3327 |           },
3328 |           "tags": [
3329 |             "Projects"
3330 |           ],
3331 |           "security": [
3332 |             {
3333 |               "bearer": []
3334 |             }
3335 |           ]
3336 |         },
3337 |         "post": {
3338 |           "operationId": "v1-restore-a-project",
3339 |           "summary": "Restores the given project",
3340 |           "parameters": [
3341 |             {
3342 |               "name": "ref",
3343 |               "required": true,
3344 |               "in": "path",
3345 |               "schema": {
3346 |                 "type": "string"
3347 |               }
3348 |             }
3349 |           ],
3350 |           "requestBody": {
3351 |             "required": true,
3352 |             "content": {
3353 |               "application/json": {
3354 |                 "schema": {
3355 |                   "$ref": "#/components/schemas/RestoreProjectBodyDto"
3356 |                 }
3357 |               }
3358 |             }
3359 |           },
3360 |           "responses": {
3361 |             "200": {
3362 |               "description": ""
3363 |             },
3364 |             "403": {
3365 |               "description": ""
3366 |             }
3367 |           },
3368 |           "tags": [
3369 |             "Projects"
3370 |           ],
3371 |           "security": [
3372 |             {
3373 |               "bearer": []
3374 |             }
3375 |           ]
3376 |         }
3377 |       },
3378 |       "/v1/projects/{ref}/restore/cancel": {
3379 |         "post": {
3380 |           "operationId": "v1-cancel-a-project-restoration",
3381 |           "summary": "Cancels the given project restoration",
3382 |           "parameters": [
3383 |             {
3384 |               "name": "ref",
3385 |               "required": true,
3386 |               "in": "path",
3387 |               "schema": {
3388 |                 "type": "string"
3389 |               }
3390 |             }
3391 |           ],
3392 |           "responses": {
3393 |             "200": {
3394 |               "description": ""
3395 |             },
3396 |             "403": {
3397 |               "description": ""
3398 |             }
3399 |           },
3400 |           "tags": [
3401 |             "Projects"
3402 |           ],
3403 |           "security": [
3404 |             {
3405 |               "bearer": []
3406 |             }
3407 |           ]
3408 |         }
3409 |       },
3410 |       "/v1/projects/{ref}/analytics/endpoints/logs.all": {
3411 |         "get": {
3412 |           "operationId": "getLogs",
3413 |           "summary": "Gets project's logs",
3414 |           "parameters": [
3415 |             {
3416 |               "name": "iso_timestamp_end",
3417 |               "required": false,
3418 |               "in": "query",
3419 |               "schema": {
3420 |                 "type": "string"
3421 |               }
3422 |             },
3423 |             {
3424 |               "name": "iso_timestamp_start",
3425 |               "required": false,
3426 |               "in": "query",
3427 |               "schema": {
3428 |                 "type": "string"
3429 |               }
3430 |             },
3431 |             {
3432 |               "name": "sql",
3433 |               "required": false,
3434 |               "in": "query",
3435 |               "schema": {
3436 |                 "type": "string"
3437 |               }
3438 |             },
3439 |             {
3440 |               "name": "ref",
3441 |               "required": true,
3442 |               "in": "path",
3443 |               "schema": {
3444 |                 "type": "string"
3445 |               }
3446 |             }
3447 |           ],
3448 |           "responses": {
3449 |             "200": {
3450 |               "description": "",
3451 |               "content": {
3452 |                 "application/json": {
3453 |                   "schema": {
3454 |                     "$ref": "#/components/schemas/V1AnalyticsResponse"
3455 |                   }
3456 |                 }
3457 |               }
3458 |             },
3459 |             "403": {
3460 |               "description": ""
3461 |             }
3462 |           },
3463 |           "tags": [
3464 |             "Analytics"
3465 |           ],
3466 |           "security": [
3467 |             {
3468 |               "bearer": []
3469 |             }
3470 |           ]
3471 |         }
3472 |       },
3473 |       "/v1/projects/{ref}/database/query": {
3474 |         "post": {
3475 |           "operationId": "v1-run-a-query",
3476 |           "summary": "[Beta] Run sql query",
3477 |           "parameters": [
3478 |             {
3479 |               "name": "ref",
3480 |               "required": true,
3481 |               "in": "path",
3482 |               "description": "Project ref",
3483 |               "schema": {
3484 |                 "minLength": 20,
3485 |                 "maxLength": 20,
3486 |                 "type": "string"
3487 |               }
3488 |             }
3489 |           ],
3490 |           "requestBody": {
3491 |             "required": true,
3492 |             "content": {
3493 |               "application/json": {
3494 |                 "schema": {
3495 |                   "$ref": "#/components/schemas/V1RunQueryBody"
3496 |                 }
3497 |               }
3498 |             }
3499 |           },
3500 |           "responses": {
3501 |             "201": {
3502 |               "description": "",
3503 |               "content": {
3504 |                 "application/json": {
3505 |                   "schema": {
3506 |                     "type": "object"
3507 |                   }
3508 |                 }
3509 |               }
3510 |             },
3511 |             "403": {
3512 |               "description": ""
3513 |             },
3514 |             "500": {
3515 |               "description": "Failed to run sql query"
3516 |             }
3517 |           },
3518 |           "tags": [
3519 |             "Database"
3520 |           ],
3521 |           "security": [
3522 |             {
3523 |               "bearer": []
3524 |             }
3525 |           ]
3526 |         }
3527 |       },
3528 |       "/v1/projects/{ref}/database/webhooks/enable": {
3529 |         "post": {
3530 |           "operationId": "v1-enable-database-webhook",
3531 |           "summary": "[Beta] Enables Database Webhooks on the project",
3532 |           "parameters": [
3533 |             {
3534 |               "name": "ref",
3535 |               "required": true,
3536 |               "in": "path",
3537 |               "description": "Project ref",
3538 |               "schema": {
3539 |                 "minLength": 20,
3540 |                 "maxLength": 20,
3541 |                 "type": "string"
3542 |               }
3543 |             }
3544 |           ],
3545 |           "responses": {
3546 |             "201": {
3547 |               "description": ""
3548 |             },
3549 |             "403": {
3550 |               "description": ""
3551 |             },
3552 |             "500": {
3553 |               "description": "Failed to enable Database Webhooks on the project"
3554 |             }
3555 |           },
3556 |           "tags": [
3557 |             "Database"
3558 |           ],
3559 |           "security": [
3560 |             {
3561 |               "bearer": []
3562 |             }
3563 |           ]
3564 |         }
3565 |       },
3566 |       "/v1/projects/{ref}/database/context": {
3567 |         "get": {
3568 |           "operationId": "getDatabaseMetadata",
3569 |           "summary": "Gets database metadata for the given project.",
3570 |           "description": "This is an **experimental** endpoint. It is subject to change or removal in future versions. Use it with caution, as it may not remain supported or stable.",
3571 |           "deprecated": true,
3572 |           "parameters": [
3573 |             {
3574 |               "name": "ref",
3575 |               "required": true,
3576 |               "in": "path",
3577 |               "schema": {
3578 |                 "type": "string"
3579 |               }
3580 |             }
3581 |           ],
3582 |           "responses": {
3583 |             "200": {
3584 |               "description": "",
3585 |               "content": {
3586 |                 "application/json": {
3587 |                   "schema": {
3588 |                     "$ref": "#/components/schemas/GetProjectDbMetadataResponseDto"
3589 |                   }
3590 |                 }
3591 |               }
3592 |             },
3593 |             "403": {
3594 |               "description": ""
3595 |             }
3596 |           },
3597 |           "tags": [
3598 |             "Database"
3599 |           ],
3600 |           "security": [
3601 |             {
3602 |               "bearer": []
3603 |             }
3604 |           ]
3605 |         }
3606 |       },
3607 |       "/v1/projects/{ref}/functions": {
3608 |         "get": {
3609 |           "operationId": "v1-list-all-functions",
3610 |           "summary": "List all functions",
3611 |           "description": "Returns all functions you've previously added to the specified project.",
3612 |           "parameters": [
3613 |             {
3614 |               "name": "ref",
3615 |               "required": true,
3616 |               "in": "path",
3617 |               "description": "Project ref",
3618 |               "schema": {
3619 |                 "minLength": 20,
3620 |                 "maxLength": 20,
3621 |                 "type": "string"
3622 |               }
3623 |             }
3624 |           ],
3625 |           "responses": {
3626 |             "200": {
3627 |               "description": "",
3628 |               "content": {
3629 |                 "application/json": {
3630 |                   "schema": {
3631 |                     "type": "array",
3632 |                     "items": {
3633 |                       "$ref": "#/components/schemas/FunctionResponse"
3634 |                     }
3635 |                   }
3636 |                 }
3637 |               }
3638 |             },
3639 |             "403": {
3640 |               "description": ""
3641 |             },
3642 |             "500": {
3643 |               "description": "Failed to retrieve project's functions"
3644 |             }
3645 |           },
3646 |           "tags": [
3647 |             "Edge Functions"
3648 |           ],
3649 |           "security": [
3650 |             {
3651 |               "bearer": []
3652 |             }
3653 |           ]
3654 |         },
3655 |         "post": {
3656 |           "operationId": "v1-create-a-function",
3657 |           "summary": "Create a function",
3658 |           "description": "This endpoint is deprecated - use the deploy endpoint. Creates a function and adds it to the specified project.",
3659 |           "deprecated": true,
3660 |           "parameters": [
3661 |             {
3662 |               "name": "ref",
3663 |               "required": true,
3664 |               "in": "path",
3665 |               "description": "Project ref",
3666 |               "schema": {
3667 |                 "minLength": 20,
3668 |                 "maxLength": 20,
3669 |                 "type": "string"
3670 |               }
3671 |             },
3672 |             {
3673 |               "name": "slug",
3674 |               "required": false,
3675 |               "in": "query",
3676 |               "schema": {
3677 |                 "pattern": "/^[A-Za-z0-9_-]+$/",
3678 |                 "type": "string"
3679 |               }
3680 |             },
3681 |             {
3682 |               "name": "name",
3683 |               "required": false,
3684 |               "in": "query",
3685 |               "schema": {
3686 |                 "type": "string"
3687 |               }
3688 |             },
3689 |             {
3690 |               "name": "verify_jwt",
3691 |               "required": false,
3692 |               "in": "query",
3693 |               "schema": {
3694 |                 "type": "boolean"
3695 |               }
3696 |             },
3697 |             {
3698 |               "name": "import_map",
3699 |               "required": false,
3700 |               "in": "query",
3701 |               "schema": {
3702 |                 "type": "boolean"
3703 |               }
3704 |             },
3705 |             {
3706 |               "name": "entrypoint_path",
3707 |               "required": false,
3708 |               "in": "query",
3709 |               "schema": {
3710 |                 "type": "string"
3711 |               }
3712 |             },
3713 |             {
3714 |               "name": "import_map_path",
3715 |               "required": false,
3716 |               "in": "query",
3717 |               "schema": {
3718 |                 "type": "string"
3719 |               }
3720 |             }
3721 |           ],
3722 |           "requestBody": {
3723 |             "required": true,
3724 |             "content": {
3725 |               "application/json": {
3726 |                 "schema": {
3727 |                   "$ref": "#/components/schemas/V1CreateFunctionBody"
3728 |                 }
3729 |               },
3730 |               "application/vnd.denoland.eszip": {
3731 |                 "schema": {
3732 |                   "$ref": "#/components/schemas/V1CreateFunctionBody"
3733 |                 }
3734 |               }
3735 |             }
3736 |           },
3737 |           "responses": {
3738 |             "201": {
3739 |               "description": "",
3740 |               "content": {
3741 |                 "application/json": {
3742 |                   "schema": {
3743 |                     "$ref": "#/components/schemas/FunctionResponse"
3744 |                   }
3745 |                 }
3746 |               }
3747 |             },
3748 |             "403": {
3749 |               "description": ""
3750 |             },
3751 |             "500": {
3752 |               "description": "Failed to create project's function"
3753 |             }
3754 |           },
3755 |           "tags": [
3756 |             "Edge Functions"
3757 |           ],
3758 |           "security": [
3759 |             {
3760 |               "bearer": []
3761 |             }
3762 |           ]
3763 |         },
3764 |         "put": {
3765 |           "operationId": "v1-bulk-update-functions",
3766 |           "summary": "Bulk update functions",
3767 |           "description": "Bulk update functions. It will create a new function or replace existing. The operation is idempotent. NOTE: You will need to manually bump the version.",
3768 |           "parameters": [
3769 |             {
3770 |               "name": "ref",
3771 |               "required": true,
3772 |               "in": "path",
3773 |               "description": "Project ref",
3774 |               "schema": {
3775 |                 "minLength": 20,
3776 |                 "maxLength": 20,
3777 |                 "type": "string"
3778 |               }
3779 |             }
3780 |           ],
3781 |           "requestBody": {
3782 |             "required": true,
3783 |             "content": {
3784 |               "application/json": {
3785 |                 "schema": {
3786 |                   "type": "array",
3787 |                   "items": {
3788 |                     "$ref": "#/components/schemas/BulkUpdateFunctionBody"
3789 |                   }
3790 |                 }
3791 |               }
3792 |             }
3793 |           },
3794 |           "responses": {
3795 |             "200": {
3796 |               "description": "",
3797 |               "content": {
3798 |                 "application/json": {
3799 |                   "schema": {
3800 |                     "$ref": "#/components/schemas/BulkUpdateFunctionResponse"
3801 |                   }
3802 |                 }
3803 |               }
3804 |             },
3805 |             "403": {
3806 |               "description": ""
3807 |             },
3808 |             "500": {
3809 |               "description": "Failed to update functions"
3810 |             }
3811 |           },
3812 |           "tags": [
3813 |             "Edge Functions"
3814 |           ],
3815 |           "security": [
3816 |             {
3817 |               "bearer": []
3818 |             }
3819 |           ]
3820 |         }
3821 |       },
3822 |       "/v1/projects/{ref}/functions/deploy": {
3823 |         "post": {
3824 |           "operationId": "v1-deploy-a-function",
3825 |           "summary": "Deploy a function",
3826 |           "description": "A new endpoint to deploy functions. It will create if function does not exist.",
3827 |           "parameters": [
3828 |             {
3829 |               "name": "ref",
3830 |               "required": true,
3831 |               "in": "path",
3832 |               "description": "Project ref",
3833 |               "schema": {
3834 |                 "minLength": 20,
3835 |                 "maxLength": 20,
3836 |                 "type": "string"
3837 |               }
3838 |             },
3839 |             {
3840 |               "name": "slug",
3841 |               "required": false,
3842 |               "in": "query",
3843 |               "schema": {
3844 |                 "pattern": "/^[A-Za-z0-9_-]+$/",
3845 |                 "type": "string"
3846 |               }
3847 |             },
3848 |             {
3849 |               "name": "bundleOnly",
3850 |               "required": false,
3851 |               "in": "query",
3852 |               "schema": {
3853 |                 "type": "boolean"
3854 |               }
3855 |             }
3856 |           ],
3857 |           "requestBody": {
3858 |             "required": true,
3859 |             "content": {
3860 |               "multipart/form-data": {
3861 |                 "schema": {
3862 |                   "$ref": "#/components/schemas/FunctionDeployBody"
3863 |                 }
3864 |               }
3865 |             }
3866 |           },
3867 |           "responses": {
3868 |             "201": {
3869 |               "description": "",
3870 |               "content": {
3871 |                 "application/json": {
3872 |                   "schema": {
3873 |                     "$ref": "#/components/schemas/DeployFunctionResponse"
3874 |                   }
3875 |                 }
3876 |               }
3877 |             },
3878 |             "403": {
3879 |               "description": ""
3880 |             },
3881 |             "500": {
3882 |               "description": "Failed to deploy function"
3883 |             }
3884 |           },
3885 |           "tags": [
3886 |             "Edge Functions"
3887 |           ],
3888 |           "security": [
3889 |             {
3890 |               "bearer": []
3891 |             }
3892 |           ]
3893 |         }
3894 |       },
3895 |       "/v1/projects/{ref}/functions/{function_slug}": {
3896 |         "get": {
3897 |           "operationId": "v1-get-a-function",
3898 |           "summary": "Retrieve a function",
3899 |           "description": "Retrieves a function with the specified slug and project.",
3900 |           "parameters": [
3901 |             {
3902 |               "name": "ref",
3903 |               "required": true,
3904 |               "in": "path",
3905 |               "description": "Project ref",
3906 |               "schema": {
3907 |                 "minLength": 20,
3908 |                 "maxLength": 20,
3909 |                 "type": "string"
3910 |               }
3911 |             },
3912 |             {
3913 |               "name": "function_slug",
3914 |               "required": true,
3915 |               "in": "path",
3916 |               "description": "Function slug",
3917 |               "schema": {
3918 |                 "pattern": "/^[A-Za-z0-9_-]+$/",
3919 |                 "type": "string"
3920 |               }
3921 |             }
3922 |           ],
3923 |           "responses": {
3924 |             "200": {
3925 |               "description": "",
3926 |               "content": {
3927 |                 "application/json": {
3928 |                   "schema": {
3929 |                     "$ref": "#/components/schemas/FunctionSlugResponse"
3930 |                   }
3931 |                 }
3932 |               }
3933 |             },
3934 |             "403": {
3935 |               "description": ""
3936 |             },
3937 |             "500": {
3938 |               "description": "Failed to retrieve function with given slug"
3939 |             }
3940 |           },
3941 |           "tags": [
3942 |             "Edge Functions"
3943 |           ],
3944 |           "security": [
3945 |             {
3946 |               "bearer": []
3947 |             }
3948 |           ]
3949 |         },
3950 |         "patch": {
3951 |           "operationId": "v1-update-a-function",
3952 |           "summary": "Update a function",
3953 |           "description": "Updates a function with the specified slug and project.",
3954 |           "parameters": [
3955 |             {
3956 |               "name": "ref",
3957 |               "required": true,
3958 |               "in": "path",
3959 |               "description": "Project ref",
3960 |               "schema": {
3961 |                 "minLength": 20,
3962 |                 "maxLength": 20,
3963 |                 "type": "string"
3964 |               }
3965 |             },
3966 |             {
3967 |               "name": "function_slug",
3968 |               "required": true,
3969 |               "in": "path",
3970 |               "description": "Function slug",
3971 |               "schema": {
3972 |                 "pattern": "/^[A-Za-z0-9_-]+$/",
3973 |                 "type": "string"
3974 |               }
3975 |             },
3976 |             {
3977 |               "name": "slug",
3978 |               "required": false,
3979 |               "in": "query",
3980 |               "schema": {
3981 |                 "pattern": "/^[A-Za-z0-9_-]+$/",
3982 |                 "type": "string"
3983 |               }
3984 |             },
3985 |             {
3986 |               "name": "name",
3987 |               "required": false,
3988 |               "in": "query",
3989 |               "schema": {
3990 |                 "type": "string"
3991 |               }
3992 |             },
3993 |             {
3994 |               "name": "verify_jwt",
3995 |               "required": false,
3996 |               "in": "query",
3997 |               "schema": {
3998 |                 "type": "boolean"
3999 |               }
4000 |             },
4001 |             {
4002 |               "name": "import_map",
4003 |               "required": false,
4004 |               "in": "query",
4005 |               "schema": {
4006 |                 "type": "boolean"
4007 |               }
4008 |             },
4009 |             {
4010 |               "name": "entrypoint_path",
4011 |               "required": false,
4012 |               "in": "query",
4013 |               "schema": {
4014 |                 "type": "string"
4015 |               }
4016 |             },
4017 |             {
4018 |               "name": "import_map_path",
4019 |               "required": false,
4020 |               "in": "query",
4021 |               "schema": {
4022 |                 "type": "string"
4023 |               }
4024 |             }
4025 |           ],
4026 |           "requestBody": {
4027 |             "required": true,
4028 |             "content": {
4029 |               "application/json": {
4030 |                 "schema": {
4031 |                   "$ref": "#/components/schemas/V1UpdateFunctionBody"
4032 |                 }
4033 |               },
4034 |               "application/vnd.denoland.eszip": {
4035 |                 "schema": {
4036 |                   "$ref": "#/components/schemas/V1UpdateFunctionBody"
4037 |                 }
4038 |               }
4039 |             }
4040 |           },
4041 |           "responses": {
4042 |             "200": {
4043 |               "description": "",
4044 |               "content": {
4045 |                 "application/json": {
4046 |                   "schema": {
4047 |                     "$ref": "#/components/schemas/FunctionResponse"
4048 |                   }
4049 |                 }
4050 |               }
4051 |             },
4052 |             "403": {
4053 |               "description": ""
4054 |             },
4055 |             "500": {
4056 |               "description": "Failed to update function with given slug"
4057 |             }
4058 |           },
4059 |           "tags": [
4060 |             "Edge Functions"
4061 |           ],
4062 |           "security": [
4063 |             {
4064 |               "bearer": []
4065 |             }
4066 |           ]
4067 |         },
4068 |         "delete": {
4069 |           "operationId": "v1-delete-a-function",
4070 |           "summary": "Delete a function",
4071 |           "description": "Deletes a function with the specified slug from the specified project.",
4072 |           "parameters": [
4073 |             {
4074 |               "name": "ref",
4075 |               "required": true,
4076 |               "in": "path",
4077 |               "description": "Project ref",
4078 |               "schema": {
4079 |                 "minLength": 20,
4080 |                 "maxLength": 20,
4081 |                 "type": "string"
4082 |               }
4083 |             },
4084 |             {
4085 |               "name": "function_slug",
4086 |               "required": true,
4087 |               "in": "path",
4088 |               "description": "Function slug",
4089 |               "schema": {
4090 |                 "pattern": "/^[A-Za-z0-9_-]+$/",
4091 |                 "type": "string"
4092 |               }
4093 |             }
4094 |           ],
4095 |           "responses": {
4096 |             "200": {
4097 |               "description": ""
4098 |             },
4099 |             "403": {
4100 |               "description": ""
4101 |             },
4102 |             "500": {
4103 |               "description": "Failed to delete function with given slug"
4104 |             }
4105 |           },
4106 |           "tags": [
4107 |             "Edge Functions"
4108 |           ],
4109 |           "security": [
4110 |             {
4111 |               "bearer": []
4112 |             }
4113 |           ]
4114 |         }
4115 |       },
4116 |       "/v1/projects/{ref}/functions/{function_slug}/body": {
4117 |         "get": {
4118 |           "operationId": "v1-get-a-function-body",
4119 |           "summary": "Retrieve a function body",
4120 |           "description": "Retrieves a function body for the specified slug and project.",
4121 |           "parameters": [
4122 |             {
4123 |               "name": "ref",
4124 |               "required": true,
4125 |               "in": "path",
4126 |               "description": "Project ref",
4127 |               "schema": {
4128 |                 "minLength": 20,
4129 |                 "maxLength": 20,
4130 |                 "type": "string"
4131 |               }
4132 |             },
4133 |             {
4134 |               "name": "function_slug",
4135 |               "required": true,
4136 |               "in": "path",
4137 |               "description": "Function slug",
4138 |               "schema": {
4139 |                 "pattern": "/^[A-Za-z0-9_-]+$/",
4140 |                 "type": "string"
4141 |               }
4142 |             }
4143 |           ],
4144 |           "responses": {
4145 |             "200": {
4146 |               "description": ""
4147 |             },
4148 |             "403": {
4149 |               "description": ""
4150 |             },
4151 |             "500": {
4152 |               "description": "Failed to retrieve function body with given slug"
4153 |             }
4154 |           },
4155 |           "tags": [
4156 |             "Edge Functions"
4157 |           ],
4158 |           "security": [
4159 |             {
4160 |               "bearer": []
4161 |             }
4162 |           ]
4163 |         }
4164 |       },
4165 |       "/v1/projects/{ref}/storage/buckets": {
4166 |         "get": {
4167 |           "operationId": "v1-list-all-buckets",
4168 |           "summary": "Lists all buckets",
4169 |           "parameters": [
4170 |             {
4171 |               "name": "ref",
4172 |               "required": true,
4173 |               "in": "path",
4174 |               "description": "Project ref",
4175 |               "schema": {
4176 |                 "minLength": 20,
4177 |                 "maxLength": 20,
4178 |                 "type": "string"
4179 |               }
4180 |             }
4181 |           ],
4182 |           "responses": {
4183 |             "200": {
4184 |               "description": "",
4185 |               "content": {
4186 |                 "application/json": {
4187 |                   "schema": {
4188 |                     "type": "array",
4189 |                     "items": {
4190 |                       "$ref": "#/components/schemas/V1StorageBucketResponse"
4191 |                     }
4192 |                   }
4193 |                 }
4194 |               }
4195 |             },
4196 |             "403": {
4197 |               "description": ""
4198 |             },
4199 |             "500": {
4200 |               "description": "Failed to get list of buckets"
4201 |             }
4202 |           },
4203 |           "tags": [
4204 |             "Storage"
4205 |           ],
4206 |           "security": [
4207 |             {
4208 |               "bearer": []
4209 |             }
4210 |           ]
4211 |         }
4212 |       },
4213 |       "/v1/projects/{ref}/config/auth/sso/providers": {
4214 |         "post": {
4215 |           "operationId": "v1-create-a-sso-provider",
4216 |           "summary": "Creates a new SSO provider",
4217 |           "parameters": [
4218 |             {
4219 |               "name": "ref",
4220 |               "required": true,
4221 |               "in": "path",
4222 |               "description": "Project ref",
4223 |               "schema": {
4224 |                 "minLength": 20,
4225 |                 "maxLength": 20,
4226 |                 "type": "string"
4227 |               }
4228 |             }
4229 |           ],
4230 |           "requestBody": {
4231 |             "required": true,
4232 |             "content": {
4233 |               "application/json": {
4234 |                 "schema": {
4235 |                   "$ref": "#/components/schemas/CreateProviderBody"
4236 |                 }
4237 |               }
4238 |             }
4239 |           },
4240 |           "responses": {
4241 |             "201": {
4242 |               "description": "",
4243 |               "content": {
4244 |                 "application/json": {
4245 |                   "schema": {
4246 |                     "$ref": "#/components/schemas/CreateProviderResponse"
4247 |                   }
4248 |                 }
4249 |               }
4250 |             },
4251 |             "403": {
4252 |               "description": ""
4253 |             },
4254 |             "404": {
4255 |               "description": "SAML 2.0 support is not enabled for this project"
4256 |             }
4257 |           },
4258 |           "tags": [
4259 |             "Auth"
4260 |           ],
4261 |           "security": [
4262 |             {
4263 |               "bearer": []
4264 |             }
4265 |           ]
4266 |         },
4267 |         "get": {
4268 |           "operationId": "v1-list-all-sso-provider",
4269 |           "summary": "Lists all SSO providers",
4270 |           "parameters": [
4271 |             {
4272 |               "name": "ref",
4273 |               "required": true,
4274 |               "in": "path",
4275 |               "description": "Project ref",
4276 |               "schema": {
4277 |                 "minLength": 20,
4278 |                 "maxLength": 20,
4279 |                 "type": "string"
4280 |               }
4281 |             }
4282 |           ],
4283 |           "responses": {
4284 |             "200": {
4285 |               "description": "",
4286 |               "content": {
4287 |                 "application/json": {
4288 |                   "schema": {
4289 |                     "$ref": "#/components/schemas/ListProvidersResponse"
4290 |                   }
4291 |                 }
4292 |               }
4293 |             },
4294 |             "403": {
4295 |               "description": ""
4296 |             },
4297 |             "404": {
4298 |               "description": "SAML 2.0 support is not enabled for this project"
4299 |             }
4300 |           },
4301 |           "tags": [
4302 |             "Auth"
4303 |           ],
4304 |           "security": [
4305 |             {
4306 |               "bearer": []
4307 |             }
4308 |           ]
4309 |         }
4310 |       },
4311 |       "/v1/projects/{ref}/config/auth/sso/providers/{provider_id}": {
4312 |         "get": {
4313 |           "operationId": "v1-get-a-sso-provider",
4314 |           "summary": "Gets a SSO provider by its UUID",
4315 |           "parameters": [
4316 |             {
4317 |               "name": "ref",
4318 |               "required": true,
4319 |               "in": "path",
4320 |               "description": "Project ref",
4321 |               "schema": {
4322 |                 "minLength": 20,
4323 |                 "maxLength": 20,
4324 |                 "type": "string"
4325 |               }
4326 |             },
4327 |             {
4328 |               "name": "provider_id",
4329 |               "required": true,
4330 |               "in": "path",
4331 |               "schema": {
4332 |                 "type": "string"
4333 |               }
4334 |             }
4335 |           ],
4336 |           "responses": {
4337 |             "200": {
4338 |               "description": "",
4339 |               "content": {
4340 |                 "application/json": {
4341 |                   "schema": {
4342 |                     "$ref": "#/components/schemas/GetProviderResponse"
4343 |                   }
4344 |                 }
4345 |               }
4346 |             },
4347 |             "403": {
4348 |               "description": ""
4349 |             },
4350 |             "404": {
4351 |               "description": "Either SAML 2.0 was not enabled for this project, or the provider does not exist"
4352 |             }
4353 |           },
4354 |           "tags": [
4355 |             "Auth"
4356 |           ],
4357 |           "security": [
4358 |             {
4359 |               "bearer": []
4360 |             }
4361 |           ]
4362 |         },
4363 |         "put": {
4364 |           "operationId": "v1-update-a-sso-provider",
4365 |           "summary": "Updates a SSO provider by its UUID",
4366 |           "parameters": [
4367 |             {
4368 |               "name": "ref",
4369 |               "required": true,
4370 |               "in": "path",
4371 |               "description": "Project ref",
4372 |               "schema": {
4373 |                 "minLength": 20,
4374 |                 "maxLength": 20,
4375 |                 "type": "string"
4376 |               }
4377 |             },
4378 |             {
4379 |               "name": "provider_id",
4380 |               "required": true,
4381 |               "in": "path",
4382 |               "schema": {
4383 |                 "type": "string"
4384 |               }
4385 |             }
4386 |           ],
4387 |           "requestBody": {
4388 |             "required": true,
4389 |             "content": {
4390 |               "application/json": {
4391 |                 "schema": {
4392 |                   "$ref": "#/components/schemas/UpdateProviderBody"
4393 |                 }
4394 |               }
4395 |             }
4396 |           },
4397 |           "responses": {
4398 |             "200": {
4399 |               "description": "",
4400 |               "content": {
4401 |                 "application/json": {
4402 |                   "schema": {
4403 |                     "$ref": "#/components/schemas/UpdateProviderResponse"
4404 |                   }
4405 |                 }
4406 |               }
4407 |             },
4408 |             "403": {
4409 |               "description": ""
4410 |             },
4411 |             "404": {
4412 |               "description": "Either SAML 2.0 was not enabled for this project, or the provider does not exist"
4413 |             }
4414 |           },
4415 |           "tags": [
4416 |             "Auth"
4417 |           ],
4418 |           "security": [
4419 |             {
4420 |               "bearer": []
4421 |             }
4422 |           ]
4423 |         },
4424 |         "delete": {
4425 |           "operationId": "v1-delete-a-sso-provider",
4426 |           "summary": "Removes a SSO provider by its UUID",
4427 |           "parameters": [
4428 |             {
4429 |               "name": "ref",
4430 |               "required": true,
4431 |               "in": "path",
4432 |               "description": "Project ref",
4433 |               "schema": {
4434 |                 "minLength": 20,
4435 |                 "maxLength": 20,
4436 |                 "type": "string"
4437 |               }
4438 |             },
4439 |             {
4440 |               "name": "provider_id",
4441 |               "required": true,
4442 |               "in": "path",
4443 |               "schema": {
4444 |                 "type": "string"
4445 |               }
4446 |             }
4447 |           ],
4448 |           "responses": {
4449 |             "200": {
4450 |               "description": "",
4451 |               "content": {
4452 |                 "application/json": {
4453 |                   "schema": {
4454 |                     "$ref": "#/components/schemas/DeleteProviderResponse"
4455 |                   }
4456 |                 }
4457 |               }
4458 |             },
4459 |             "403": {
4460 |               "description": ""
4461 |             },
4462 |             "404": {
4463 |               "description": "Either SAML 2.0 was not enabled for this project, or the provider does not exist"
4464 |             }
4465 |           },
4466 |           "tags": [
4467 |             "Auth"
4468 |           ],
4469 |           "security": [
4470 |             {
4471 |               "bearer": []
4472 |             }
4473 |           ]
4474 |         }
4475 |       },
4476 |       "/v1/projects/{ref}/database/backups": {
4477 |         "get": {
4478 |           "operationId": "v1-list-all-backups",
4479 |           "summary": "Lists all backups",
4480 |           "parameters": [
4481 |             {
4482 |               "name": "ref",
4483 |               "required": true,
4484 |               "in": "path",
4485 |               "description": "Project ref",
4486 |               "schema": {
4487 |                 "minLength": 20,
4488 |                 "maxLength": 20,
4489 |                 "type": "string"
4490 |               }
4491 |             }
4492 |           ],
4493 |           "responses": {
4494 |             "200": {
4495 |               "description": "",
4496 |               "content": {
4497 |                 "application/json": {
4498 |                   "schema": {
4499 |                     "$ref": "#/components/schemas/V1BackupsResponse"
4500 |                   }
4501 |                 }
4502 |               }
4503 |             },
4504 |             "500": {
4505 |               "description": "Failed to get backups"
4506 |             }
4507 |           },
4508 |           "tags": [
4509 |             "Database"
4510 |           ],
4511 |           "security": [
4512 |             {
4513 |               "bearer": []
4514 |             }
4515 |           ]
4516 |         }
4517 |       },
4518 |       "/v1/projects/{ref}/database/backups/restore-pitr": {
4519 |         "post": {
4520 |           "operationId": "v1-restore-pitr-backup",
4521 |           "summary": "Restores a PITR backup for a database",
4522 |           "parameters": [
4523 |             {
4524 |               "name": "ref",
4525 |               "required": true,
4526 |               "in": "path",
4527 |               "description": "Project ref",
4528 |               "schema": {
4529 |                 "minLength": 20,
4530 |                 "maxLength": 20,
4531 |                 "type": "string"
4532 |               }
4533 |             }
4534 |           ],
4535 |           "requestBody": {
4536 |             "required": true,
4537 |             "content": {
4538 |               "application/json": {
4539 |                 "schema": {
4540 |                   "$ref": "#/components/schemas/V1RestorePitrBody"
4541 |                 }
4542 |               }
4543 |             }
4544 |           },
4545 |           "responses": {
4546 |             "201": {
4547 |               "description": ""
4548 |             }
4549 |           },
4550 |           "tags": [
4551 |             "Database"
4552 |           ],
4553 |           "security": [
4554 |             {
4555 |               "bearer": []
4556 |             }
4557 |           ]
4558 |         }
4559 |       },
4560 |       "/v1/organizations/{slug}/members": {
4561 |         "get": {
4562 |           "operationId": "v1-list-organization-members",
4563 |           "summary": "List members of an organization",
4564 |           "parameters": [
4565 |             {
4566 |               "name": "slug",
4567 |               "required": true,
4568 |               "in": "path",
4569 |               "schema": {
4570 |                 "type": "string"
4571 |               }
4572 |             }
4573 |           ],
4574 |           "responses": {
4575 |             "200": {
4576 |               "description": "",
4577 |               "content": {
4578 |                 "application/json": {
4579 |                   "schema": {
4580 |                     "type": "array",
4581 |                     "items": {
4582 |                       "$ref": "#/components/schemas/V1OrganizationMemberResponse"
4583 |                     }
4584 |                   }
4585 |                 }
4586 |               }
4587 |             }
4588 |           },
4589 |           "tags": [
4590 |             "Organizations"
4591 |           ],
4592 |           "security": [
4593 |             {
4594 |               "bearer": []
4595 |             }
4596 |           ]
4597 |         }
4598 |       },
4599 |       "/v1/organizations/{slug}": {
4600 |         "get": {
4601 |           "operationId": "v1-get-an-organization",
4602 |           "summary": "Gets information about the organization",
4603 |           "parameters": [
4604 |             {
4605 |               "name": "slug",
4606 |               "required": true,
4607 |               "in": "path",
4608 |               "schema": {
4609 |                 "type": "string"
4610 |               }
4611 |             }
4612 |           ],
4613 |           "responses": {
4614 |             "200": {
4615 |               "description": "",
4616 |               "content": {
4617 |                 "application/json": {
4618 |                   "schema": {
4619 |                     "$ref": "#/components/schemas/V1OrganizationSlugResponse"
4620 |                   }
4621 |                 }
4622 |               }
4623 |             }
4624 |           },
4625 |           "tags": [
4626 |             "Organizations"
4627 |           ],
4628 |           "security": [
4629 |             {
4630 |               "bearer": []
4631 |             }
4632 |           ]
4633 |         }
4634 |       }
4635 |     },
4636 |     "info": {
4637 |       "title": "Supabase API (v1)",
4638 |       "description": "Supabase API generated from the OpenAPI specification.\u003Cbr\u003EVisit [https://supabase.com/docs](https://supabase.com/docs) for a complete documentation.",
4639 |       "version": "1.0.0",
4640 |       "contact": {
4641 | 
4642 |       }
4643 |     },
4644 |     "tags": [
4645 |       {
4646 |         "name": "Auth",
4647 |         "description": "Auth related endpoints"
4648 |       },
4649 |       {
4650 |         "name": "Database",
4651 |         "description": "Database related endpoints"
4652 |       },
4653 |       {
4654 |         "name": "Domains",
4655 |         "description": "Domains related endpoints"
4656 |       },
4657 |       {
4658 |         "name": "Edge Functions",
4659 |         "description": "Edge related endpoints"
4660 |       },
4661 |       {
4662 |         "name": "Environments",
4663 |         "description": "Environments related endpoints"
4664 |       },
4665 |       {
4666 |         "name": "OAuth",
4667 |         "description": "OAuth related endpoints"
4668 |       },
4669 |       {
4670 |         "name": "Organizations",
4671 |         "description": "Organizations related endpoints"
4672 |       },
4673 |       {
4674 |         "name": "Projects",
4675 |         "description": "Projects related endpoints"
4676 |       },
4677 |       {
4678 |         "name": "Rest",
4679 |         "description": "Rest related endpoints"
4680 |       },
4681 |       {
4682 |         "name": "Secrets",
4683 |         "description": "Secrets related endpoints"
4684 |       },
4685 |       {
4686 |         "name": "Storage",
4687 |         "description": "Storage related endpoints"
4688 |       }
4689 |     ],
4690 |     "servers": [],
4691 |     "components": {
4692 |       "securitySchemes": {
4693 |         "bearer": {
4694 |           "scheme": "bearer",
4695 |           "bearerFormat": "JWT",
4696 |           "type": "http"
4697 |         }
4698 |       },
4699 |       "schemas": {
4700 |         "BranchDetailResponse": {
4701 |           "type": "object",
4702 |           "properties": {
4703 |             "status": {
4704 |               "type": "string",
4705 |               "enum": [
4706 |                 "INACTIVE",
4707 |                 "ACTIVE_HEALTHY",
4708 |                 "ACTIVE_UNHEALTHY",
4709 |                 "COMING_UP",
4710 |                 "UNKNOWN",
4711 |                 "GOING_DOWN",
4712 |                 "INIT_FAILED",
4713 |                 "REMOVED",
4714 |                 "RESTORING",
4715 |                 "UPGRADING",
4716 |                 "PAUSING",
4717 |                 "RESTORE_FAILED",
4718 |                 "RESTARTING",
4719 |                 "PAUSE_FAILED",
4720 |                 "RESIZING"
4721 |               ]
4722 |             },
4723 |             "db_port": {
4724 |               "type": "integer"
4725 |             },
4726 |             "ref": {
4727 |               "type": "string"
4728 |             },
4729 |             "postgres_version": {
4730 |               "type": "string"
4731 |             },
4732 |             "postgres_engine": {
4733 |               "type": "string"
4734 |             },
4735 |             "release_channel": {
4736 |               "type": "string"
4737 |             },
4738 |             "db_host": {
4739 |               "type": "string"
4740 |             },
4741 |             "db_user": {
4742 |               "type": "string"
4743 |             },
4744 |             "db_pass": {
4745 |               "type": "string"
4746 |             },
4747 |             "jwt_secret": {
4748 |               "type": "string"
4749 |             }
4750 |           },
4751 |           "required": [
4752 |             "status",
4753 |             "db_port",
4754 |             "ref",
4755 |             "postgres_version",
4756 |             "postgres_engine",
4757 |             "release_channel",
4758 |             "db_host"
4759 |           ]
4760 |         },
4761 |         "UpdateBranchBody": {
4762 |           "type": "object",
4763 |           "properties": {
4764 |             "reset_on_push": {
4765 |               "type": "boolean",
4766 |               "deprecated": true,
4767 |               "description": "This field is deprecated and will be ignored. Use v1-reset-a-branch endpoint directly instead."
4768 |             },
4769 |             "branch_name": {
4770 |               "type": "string"
4771 |             },
4772 |             "git_branch": {
4773 |               "type": "string"
4774 |             },
4775 |             "persistent": {
4776 |               "type": "boolean"
4777 |             },
4778 |             "status": {
4779 |               "type": "string",
4780 |               "enum": [
4781 |                 "CREATING_PROJECT",
4782 |                 "RUNNING_MIGRATIONS",
4783 |                 "MIGRATIONS_PASSED",
4784 |                 "MIGRATIONS_FAILED",
4785 |                 "FUNCTIONS_DEPLOYED",
4786 |                 "FUNCTIONS_FAILED"
4787 |               ]
4788 |             }
4789 |           }
4790 |         },
4791 |         "BranchResponse": {
4792 |           "type": "object",
4793 |           "properties": {
4794 |             "pr_number": {
4795 |               "type": "integer",
4796 |               "format": "int32"
4797 |             },
4798 |             "latest_check_run_id": {
4799 |               "type": "number",
4800 |               "deprecated": true,
4801 |               "description": "This field is deprecated and will not be populated."
4802 |             },
4803 |             "status": {
4804 |               "type": "string",
4805 |               "enum": [
4806 |                 "CREATING_PROJECT",
4807 |                 "RUNNING_MIGRATIONS",
4808 |                 "MIGRATIONS_PASSED",
4809 |                 "MIGRATIONS_FAILED",
4810 |                 "FUNCTIONS_DEPLOYED",
4811 |                 "FUNCTIONS_FAILED"
4812 |               ]
4813 |             },
4814 |             "id": {
4815 |               "type": "string"
4816 |             },
4817 |             "name": {
4818 |               "type": "string"
4819 |             },
4820 |             "project_ref": {
4821 |               "type": "string"
4822 |             },
4823 |             "parent_project_ref": {
4824 |               "type": "string"
4825 |             },
4826 |             "is_default": {
4827 |               "type": "boolean"
4828 |             },
4829 |             "git_branch": {
4830 |               "type": "string"
4831 |             },
4832 |             "persistent": {
4833 |               "type": "boolean"
4834 |             },
4835 |             "created_at": {
4836 |               "type": "string"
4837 |             },
4838 |             "updated_at": {
4839 |               "type": "string"
4840 |             }
4841 |           },
4842 |           "required": [
4843 |             "status",
4844 |             "id",
4845 |             "name",
4846 |             "project_ref",
4847 |             "parent_project_ref",
4848 |             "is_default",
4849 |             "persistent",
4850 |             "created_at",
4851 |             "updated_at"
4852 |           ]
4853 |         },
4854 |         "BranchDeleteResponse": {
4855 |           "type": "object",
4856 |           "properties": {
4857 |             "message": {
4858 |               "type": "string"
4859 |             }
4860 |           },
4861 |           "required": [
4862 |             "message"
4863 |           ]
4864 |         },
4865 |         "BranchUpdateResponse": {
4866 |           "type": "object",
4867 |           "properties": {
4868 |             "workflow_run_id": {
4869 |               "type": "string"
4870 |             },
4871 |             "message": {
4872 |               "type": "string"
4873 |             }
4874 |           },
4875 |           "required": [
4876 |             "workflow_run_id",
4877 |             "message"
4878 |           ]
4879 |         },
4880 |         "V1DatabaseResponse": {
4881 |           "type": "object",
4882 |           "properties": {
4883 |             "host": {
4884 |               "type": "string",
4885 |               "description": "Database host"
4886 |             },
4887 |             "version": {
4888 |               "type": "string",
4889 |               "description": "Database version"
4890 |             },
4891 |             "postgres_engine": {
4892 |               "type": "string",
4893 |               "description": "Database engine"
4894 |             },
4895 |             "release_channel": {
4896 |               "type": "string",
4897 |               "description": "Release channel"
4898 |             }
4899 |           },
4900 |           "required": [
4901 |             "host",
4902 |             "version",
4903 |             "postgres_engine",
4904 |             "release_channel"
4905 |           ]
4906 |         },
4907 |         "V1ProjectWithDatabaseResponse": {
4908 |           "type": "object",
4909 |           "properties": {
4910 |             "id": {
4911 |               "type": "string",
4912 |               "description": "Id of your project"
4913 |             },
4914 |             "organization_id": {
4915 |               "type": "string",
4916 |               "description": "Slug of your organization"
4917 |             },
4918 |             "name": {
4919 |               "type": "string",
4920 |               "description": "Name of your project"
4921 |             },
4922 |             "region": {
4923 |               "type": "string",
4924 |               "description": "Region of your project",
4925 |               "example": "us-east-1"
4926 |             },
4927 |             "created_at": {
4928 |               "type": "string",
4929 |               "description": "Creation timestamp",
4930 |               "example": "2023-03-29T16:32:59Z"
4931 |             },
4932 |             "status": {
4933 |               "type": "string",
4934 |               "enum": [
4935 |                 "INACTIVE",
4936 |                 "ACTIVE_HEALTHY",
4937 |                 "ACTIVE_UNHEALTHY",
4938 |                 "COMING_UP",
4939 |                 "UNKNOWN",
4940 |                 "GOING_DOWN",
4941 |                 "INIT_FAILED",
4942 |                 "REMOVED",
4943 |                 "RESTORING",
4944 |                 "UPGRADING",
4945 |                 "PAUSING",
4946 |                 "RESTORE_FAILED",
4947 |                 "RESTARTING",
4948 |                 "PAUSE_FAILED",
4949 |                 "RESIZING"
4950 |               ]
4951 |             },
4952 |             "database": {
4953 |               "$ref": "#/components/schemas/V1DatabaseResponse"
4954 |             }
4955 |           },
4956 |           "required": [
4957 |             "id",
4958 |             "organization_id",
4959 |             "name",
4960 |             "region",
4961 |             "created_at",
4962 |             "status",
4963 |             "database"
4964 |           ]
4965 |         },
4966 |         "V1CreateProjectBodyDto": {
4967 |           "type": "object",
4968 |           "properties": {
4969 |             "db_pass": {
4970 |               "type": "string",
4971 |               "description": "Database password"
4972 |             },
4973 |             "name": {
4974 |               "type": "string",
4975 |               "description": "Name of your project"
4976 |             },
4977 |             "organization_id": {
4978 |               "type": "string",
4979 |               "description": "Slug of your organization"
4980 |             },
4981 |             "plan": {
4982 |               "type": "string",
4983 |               "enum": [
4984 |                 "free",
4985 |                 "pro"
4986 |               ],
4987 |               "deprecated": true,
4988 |               "description": "Subscription Plan is now set on organization level and is ignored in this request"
4989 |             },
4990 |             "region": {
4991 |               "type": "string",
4992 |               "description": "Region you want your server to reside in",
4993 |               "enum": [
4994 |                 "us-east-1",
4995 |                 "us-east-2",
4996 |                 "us-west-1",
4997 |                 "us-west-2",
4998 |                 "ap-east-1",
4999 |                 "ap-southeast-1",
5000 |                 "ap-northeast-1",
5001 |                 "ap-northeast-2",
5002 |                 "ap-southeast-2",
5003 |                 "eu-west-1",
5004 |                 "eu-west-2",
5005 |                 "eu-west-3",
5006 |                 "eu-north-1",
5007 |                 "eu-central-1",
5008 |                 "eu-central-2",
5009 |                 "ca-central-1",
5010 |                 "ap-south-1",
5011 |                 "sa-east-1"
5012 |               ]
5013 |             },
5014 |             "kps_enabled": {
5015 |               "type": "boolean",
5016 |               "deprecated": true,
5017 |               "description": "This field is deprecated and is ignored in this request"
5018 |             },
5019 |             "desired_instance_size": {
5020 |               "type": "string",
5021 |               "enum": [
5022 |                 "micro",
5023 |                 "small",
5024 |                 "medium",
5025 |                 "large",
5026 |                 "xlarge",
5027 |                 "2xlarge",
5028 |                 "4xlarge",
5029 |                 "8xlarge",
5030 |                 "12xlarge",
5031 |                 "16xlarge"
5032 |               ]
5033 |             },
5034 |             "template_url": {
5035 |               "type": "string",
5036 |               "format": "uri",
5037 |               "description": "Template URL used to create the project from the CLI.",
5038 |               "example": "https://github.com/supabase/supabase/tree/master/examples/slack-clone/nextjs-slack-clone"
5039 |             }
5040 |           },
5041 |           "required": [
5042 |             "db_pass",
5043 |             "name",
5044 |             "organization_id",
5045 |             "region"
5046 |           ],
5047 |           "additionalProperties": false,
5048 |           "hideDefinitions": [
5049 |             "release_channel",
5050 |             "postgres_engine"
5051 |           ]
5052 |         },
5053 |         "V1ProjectResponse": {
5054 |           "type": "object",
5055 |           "properties": {
5056 |             "id": {
5057 |               "type": "string",
5058 |               "description": "Id of your project"
5059 |             },
5060 |             "organization_id": {
5061 |               "type": "string",
5062 |               "description": "Slug of your organization"
5063 |             },
5064 |             "name": {
5065 |               "type": "string",
5066 |               "description": "Name of your project"
5067 |             },
5068 |             "region": {
5069 |               "type": "string",
5070 |               "description": "Region of your project",
5071 |               "example": "us-east-1"
5072 |             },
5073 |             "created_at": {
5074 |               "type": "string",
5075 |               "description": "Creation timestamp",
5076 |               "example": "2023-03-29T16:32:59Z"
5077 |             },
5078 |             "status": {
5079 |               "type": "string",
5080 |               "enum": [
5081 |                 "INACTIVE",
5082 |                 "ACTIVE_HEALTHY",
5083 |                 "ACTIVE_UNHEALTHY",
5084 |                 "COMING_UP",
5085 |                 "UNKNOWN",
5086 |                 "GOING_DOWN",
5087 |                 "INIT_FAILED",
5088 |                 "REMOVED",
5089 |                 "RESTORING",
5090 |                 "UPGRADING",
5091 |                 "PAUSING",
5092 |                 "RESTORE_FAILED",
5093 |                 "RESTARTING",
5094 |                 "PAUSE_FAILED",
5095 |                 "RESIZING"
5096 |               ]
5097 |             }
5098 |           },
5099 |           "required": [
5100 |             "id",
5101 |             "organization_id",
5102 |             "name",
5103 |             "region",
5104 |             "created_at",
5105 |             "status"
5106 |           ]
5107 |         },
5108 |         "OrganizationResponseV1": {
5109 |           "type": "object",
5110 |           "properties": {
5111 |             "id": {
5112 |               "type": "string"
5113 |             },
5114 |             "name": {
5115 |               "type": "string"
5116 |             }
5117 |           },
5118 |           "required": [
5119 |             "id",
5120 |             "name"
5121 |           ]
5122 |         },
5123 |         "CreateOrganizationV1Dto": {
5124 |           "type": "object",
5125 |           "properties": {
5126 |             "name": {
5127 |               "type": "string"
5128 |             }
5129 |           },
5130 |           "required": [
5131 |             "name"
5132 |           ],
5133 |           "additionalProperties": false
5134 |         },
5135 |         "OAuthTokenBody": {
5136 |           "type": "object",
5137 |           "properties": {
5138 |             "grant_type": {
5139 |               "enum": [
5140 |                 "authorization_code",
5141 |                 "refresh_token"
5142 |               ],
5143 |               "type": "string"
5144 |             },
5145 |             "client_id": {
5146 |               "type": "string"
5147 |             },
5148 |             "client_secret": {
5149 |               "type": "string"
5150 |             },
5151 |             "code": {
5152 |               "type": "string"
5153 |             },
5154 |             "code_verifier": {
5155 |               "type": "string"
5156 |             },
5157 |             "redirect_uri": {
5158 |               "type": "string"
5159 |             },
5160 |             "refresh_token": {
5161 |               "type": "string"
5162 |             }
5163 |           },
5164 |           "required": [
5165 |             "grant_type",
5166 |             "client_id",
5167 |             "client_secret"
5168 |           ]
5169 |         },
5170 |         "OAuthTokenResponse": {
5171 |           "type": "object",
5172 |           "properties": {
5173 |             "expires_in": {
5174 |               "type": "integer",
5175 |               "format": "int64"
5176 |             },
5177 |             "token_type": {
5178 |               "type": "string",
5179 |               "enum": [
5180 |                 "Bearer"
5181 |               ]
5182 |             },
5183 |             "access_token": {
5184 |               "type": "string"
5185 |             },
5186 |             "refresh_token": {
5187 |               "type": "string"
5188 |             }
5189 |           },
5190 |           "required": [
5191 |             "expires_in",
5192 |             "token_type",
5193 |             "access_token",
5194 |             "refresh_token"
5195 |           ]
5196 |         },
5197 |         "OAuthRevokeTokenBodyDto": {
5198 |           "type": "object",
5199 |           "properties": {
5200 |             "client_id": {
5201 |               "type": "string",
5202 |               "format": "uuid"
5203 |             },
5204 |             "client_secret": {
5205 |               "type": "string"
5206 |             },
5207 |             "refresh_token": {
5208 |               "type": "string"
5209 |             }
5210 |           },
5211 |           "required": [
5212 |             "client_id",
5213 |             "client_secret",
5214 |             "refresh_token"
5215 |           ],
5216 |           "additionalProperties": false
5217 |         },
5218 |         "SnippetProject": {
5219 |           "type": "object",
5220 |           "properties": {
5221 |             "id": {
5222 |               "type": "integer",
5223 |               "format": "int64"
5224 |             },
5225 |             "name": {
5226 |               "type": "string"
5227 |             }
5228 |           },
5229 |           "required": [
5230 |             "id",
5231 |             "name"
5232 |           ]
5233 |         },
5234 |         "SnippetUser": {
5235 |           "type": "object",
5236 |           "properties": {
5237 |             "id": {
5238 |               "type": "integer",
5239 |               "format": "int64"
5240 |             },
5241 |             "username": {
5242 |               "type": "string"
5243 |             }
5244 |           },
5245 |           "required": [
5246 |             "id",
5247 |             "username"
5248 |           ]
5249 |         },
5250 |         "SnippetMeta": {
5251 |           "type": "object",
5252 |           "properties": {
5253 |             "id": {
5254 |               "type": "string"
5255 |             },
5256 |             "inserted_at": {
5257 |               "type": "string"
5258 |             },
5259 |             "updated_at": {
5260 |               "type": "string"
5261 |             },
5262 |             "type": {
5263 |               "type": "string",
5264 |               "enum": [
5265 |                 "sql"
5266 |               ]
5267 |             },
5268 |             "visibility": {
5269 |               "type": "string",
5270 |               "enum": [
5271 |                 "user",
5272 |                 "project",
5273 |                 "org",
5274 |                 "public"
5275 |               ]
5276 |             },
5277 |             "name": {
5278 |               "type": "string"
5279 |             },
5280 |             "description": {
5281 |               "type": "string",
5282 |               "nullable": true
5283 |             },
5284 |             "project": {
5285 |               "$ref": "#/components/schemas/SnippetProject"
5286 |             },
5287 |             "owner": {
5288 |               "$ref": "#/components/schemas/SnippetUser"
5289 |             },
5290 |             "updated_by": {
5291 |               "$ref": "#/components/schemas/SnippetUser"
5292 |             }
5293 |           },
5294 |           "required": [
5295 |             "id",
5296 |             "inserted_at",
5297 |             "updated_at",
5298 |             "type",
5299 |             "visibility",
5300 |             "name",
5301 |             "description",
5302 |             "project",
5303 |             "owner",
5304 |             "updated_by"
5305 |           ]
5306 |         },
5307 |         "SnippetList": {
5308 |           "type": "object",
5309 |           "properties": {
5310 |             "data": {
5311 |               "type": "array",
5312 |               "items": {
5313 |                 "$ref": "#/components/schemas/SnippetMeta"
5314 |               }
5315 |             },
5316 |             "cursor": {
5317 |               "type": "string"
5318 |             }
5319 |           },
5320 |           "required": [
5321 |             "data"
5322 |           ]
5323 |         },
5324 |         "SnippetContent": {
5325 |           "type": "object",
5326 |           "properties": {
5327 |             "favorite": {
5328 |               "type": "boolean"
5329 |             },
5330 |             "schema_version": {
5331 |               "type": "string"
5332 |             },
5333 |             "sql": {
5334 |               "type": "string"
5335 |             }
5336 |           },
5337 |           "required": [
5338 |             "favorite",
5339 |             "schema_version",
5340 |             "sql"
5341 |           ]
5342 |         },
5343 |         "SnippetResponse": {
5344 |           "type": "object",
5345 |           "properties": {
5346 |             "id": {
5347 |               "type": "string"
5348 |             },
5349 |             "inserted_at": {
5350 |               "type": "string"
5351 |             },
5352 |             "updated_at": {
5353 |               "type": "string"
5354 |             },
5355 |             "type": {
5356 |               "type": "string",
5357 |               "enum": [
5358 |                 "sql"
5359 |               ]
5360 |             },
5361 |             "visibility": {
5362 |               "enum": [
5363 |                 "user",
5364 |                 "project",
5365 |                 "org",
5366 |                 "public"
5367 |               ],
5368 |               "type": "string"
5369 |             },
5370 |             "name": {
5371 |               "type": "string"
5372 |             },
5373 |             "description": {
5374 |               "type": "string",
5375 |               "nullable": true
5376 |             },
5377 |             "project": {
5378 |               "$ref": "#/components/schemas/SnippetProject"
5379 |             },
5380 |             "owner": {
5381 |               "$ref": "#/components/schemas/SnippetUser"
5382 |             },
5383 |             "updated_by": {
5384 |               "$ref": "#/components/schemas/SnippetUser"
5385 |             },
5386 |             "content": {
5387 |               "$ref": "#/components/schemas/SnippetContent"
5388 |             }
5389 |           },
5390 |           "required": [
5391 |             "id",
5392 |             "inserted_at",
5393 |             "updated_at",
5394 |             "type",
5395 |             "visibility",
5396 |             "name",
5397 |             "description",
5398 |             "project",
5399 |             "owner",
5400 |             "updated_by",
5401 |             "content"
5402 |           ]
5403 |         },
5404 |         "ApiKeySecretJWTTemplate": {
5405 |           "type": "object",
5406 |           "properties": {
5407 |             "role": {
5408 |               "type": "string"
5409 |             }
5410 |           },
5411 |           "required": [
5412 |             "role"
5413 |           ]
5414 |         },
5415 |         "ApiKeyResponse": {
5416 |           "type": "object",
5417 |           "properties": {
5418 |             "type": {
5419 |               "nullable": true,
5420 |               "type": "string",
5421 |               "enum": [
5422 |                 "publishable",
5423 |                 "secret",
5424 |                 "legacy"
5425 |               ]
5426 |             },
5427 |             "name": {
5428 |               "type": "string"
5429 |             },
5430 |             "api_key": {
5431 |               "type": "string"
5432 |             },
5433 |             "id": {
5434 |               "type": "string",
5435 |               "nullable": true
5436 |             },
5437 |             "prefix": {
5438 |               "type": "string",
5439 |               "nullable": true
5440 |             },
5441 |             "description": {
5442 |               "type": "string",
5443 |               "nullable": true
5444 |             },
5445 |             "hash": {
5446 |               "type": "string",
5447 |               "nullable": true
5448 |             },
5449 |             "secret_jwt_template": {
5450 |               "nullable": true,
5451 |               "allOf": [
5452 |                 {
5453 |                   "$ref": "#/components/schemas/ApiKeySecretJWTTemplate"
5454 |                 }
5455 |               ]
5456 |             },
5457 |             "inserted_at": {
5458 |               "type": "string",
5459 |               "nullable": true
5460 |             },
5461 |             "updated_at": {
5462 |               "type": "string",
5463 |               "nullable": true
5464 |             }
5465 |           },
5466 |           "required": [
5467 |             "name",
5468 |             "api_key"
5469 |           ]
5470 |         },
5471 |         "CreateApiKeyBody": {
5472 |           "type": "object",
5473 |           "properties": {
5474 |             "type": {
5475 |               "enum": [
5476 |                 "publishable",
5477 |                 "secret"
5478 |               ],
5479 |               "type": "string"
5480 |             },
5481 |             "description": {
5482 |               "type": "string",
5483 |               "nullable": true
5484 |             },
5485 |             "secret_jwt_template": {
5486 |               "nullable": true,
5487 |               "allOf": [
5488 |                 {
5489 |                   "$ref": "#/components/schemas/ApiKeySecretJWTTemplate"
5490 |                 }
5491 |               ]
5492 |             }
5493 |           },
5494 |           "required": [
5495 |             "type"
5496 |           ]
5497 |         },
5498 |         "UpdateApiKeyBody": {
5499 |           "type": "object",
5500 |           "properties": {
5501 |             "description": {
5502 |               "type": "string",
5503 |               "nullable": true
5504 |             },
5505 |             "secret_jwt_template": {
5506 |               "nullable": true,
5507 |               "allOf": [
5508 |                 {
5509 |                   "$ref": "#/components/schemas/ApiKeySecretJWTTemplate"
5510 |                 }
5511 |               ]
5512 |             }
5513 |           }
5514 |         },
5515 |         "DesiredInstanceSize": {
5516 |           "type": "string",
5517 |           "enum": [
5518 |             "micro",
5519 |             "small",
5520 |             "medium",
5521 |             "large",
5522 |             "xlarge",
5523 |             "2xlarge",
5524 |             "4xlarge",
5525 |             "8xlarge",
5526 |             "12xlarge",
5527 |             "16xlarge"
5528 |           ]
5529 |         },
5530 |         "ReleaseChannel": {
5531 |           "type": "string",
5532 |           "enum": [
5533 |             "internal",
5534 |             "alpha",
5535 |             "beta",
5536 |             "ga",
5537 |             "withdrawn",
5538 |             "preview"
5539 |           ]
5540 |         },
5541 |         "PostgresEngine": {
5542 |           "type": "string",
5543 |           "description": "Postgres engine version. If not provided, the latest version will be used.",
5544 |           "enum": [
5545 |             "15",
5546 |             "17-oriole"
5547 |           ]
5548 |         },
5549 |         "CreateBranchBody": {
5550 |           "type": "object",
5551 |           "properties": {
5552 |             "desired_instance_size": {
5553 |               "$ref": "#/components/schemas/DesiredInstanceSize"
5554 |             },
5555 |             "release_channel": {
5556 |               "$ref": "#/components/schemas/ReleaseChannel"
5557 |             },
5558 |             "postgres_engine": {
5559 |               "$ref": "#/components/schemas/PostgresEngine"
5560 |             },
5561 |             "branch_name": {
5562 |               "type": "string"
5563 |             },
5564 |             "git_branch": {
5565 |               "type": "string"
5566 |             },
5567 |             "persistent": {
5568 |               "type": "boolean"
5569 |             },
5570 |             "region": {
5571 |               "type": "string"
5572 |             }
5573 |           },
5574 |           "required": [
5575 |             "branch_name"
5576 |           ]
5577 |         },
5578 |         "ValidationRecord": {
5579 |           "type": "object",
5580 |           "properties": {
5581 |             "txt_name": {
5582 |               "type": "string"
5583 |             },
5584 |             "txt_value": {
5585 |               "type": "string"
5586 |             }
5587 |           },
5588 |           "required": [
5589 |             "txt_name",
5590 |             "txt_value"
5591 |           ]
5592 |         },
5593 |         "ValidationError": {
5594 |           "type": "object",
5595 |           "properties": {
5596 |             "message": {
5597 |               "type": "string"
5598 |             }
5599 |           },
5600 |           "required": [
5601 |             "message"
5602 |           ]
5603 |         },
5604 |         "SslValidation": {
5605 |           "type": "object",
5606 |           "properties": {
5607 |             "status": {
5608 |               "type": "string"
5609 |             },
5610 |             "validation_records": {
5611 |               "type": "array",
5612 |               "items": {
5613 |                 "$ref": "#/components/schemas/ValidationRecord"
5614 |               }
5615 |             },
5616 |             "validation_errors": {
5617 |               "type": "array",
5618 |               "items": {
5619 |                 "$ref": "#/components/schemas/ValidationError"
5620 |               }
5621 |             }
5622 |           },
5623 |           "required": [
5624 |             "status",
5625 |             "validation_records"
5626 |           ]
5627 |         },
5628 |         "OwnershipVerification": {
5629 |           "type": "object",
5630 |           "properties": {
5631 |             "type": {
5632 |               "type": "string"
5633 |             },
5634 |             "name": {
5635 |               "type": "string"
5636 |             },
5637 |             "value": {
5638 |               "type": "string"
5639 |             }
5640 |           },
5641 |           "required": [
5642 |             "type",
5643 |             "name",
5644 |             "value"
5645 |           ]
5646 |         },
5647 |         "CustomHostnameDetails": {
5648 |           "type": "object",
5649 |           "properties": {
5650 |             "id": {
5651 |               "type": "string"
5652 |             },
5653 |             "hostname": {
5654 |               "type": "string"
5655 |             },
5656 |             "ssl": {
5657 |               "$ref": "#/components/schemas/SslValidation"
5658 |             },
5659 |             "ownership_verification": {
5660 |               "$ref": "#/components/schemas/OwnershipVerification"
5661 |             },
5662 |             "custom_origin_server": {
5663 |               "type": "string"
5664 |             },
5665 |             "verification_errors": {
5666 |               "type": "array",
5667 |               "items": {
5668 |                 "type": "string"
5669 |               }
5670 |             },
5671 |             "status": {
5672 |               "type": "string"
5673 |             }
5674 |           },
5675 |           "required": [
5676 |             "id",
5677 |             "hostname",
5678 |             "ssl",
5679 |             "ownership_verification",
5680 |             "custom_origin_server",
5681 |             "status"
5682 |           ]
5683 |         },
5684 |         "CfResponse": {
5685 |           "type": "object",
5686 |           "properties": {
5687 |             "success": {
5688 |               "type": "boolean"
5689 |             },
5690 |             "errors": {
5691 |               "type": "array",
5692 |               "items": {
5693 |                 "type": "object"
5694 |               }
5695 |             },
5696 |             "messages": {
5697 |               "type": "array",
5698 |               "items": {
5699 |                 "type": "object"
5700 |               }
5701 |             },
5702 |             "result": {
5703 |               "$ref": "#/components/schemas/CustomHostnameDetails"
5704 |             }
5705 |           },
5706 |           "required": [
5707 |             "success",
5708 |             "errors",
5709 |             "messages",
5710 |             "result"
5711 |           ]
5712 |         },
5713 |         "UpdateCustomHostnameResponse": {
5714 |           "type": "object",
5715 |           "properties": {
5716 |             "status": {
5717 |               "enum": [
5718 |                 "1_not_started",
5719 |                 "2_initiated",
5720 |                 "3_challenge_verified",
5721 |                 "4_origin_setup_completed",
5722 |                 "5_services_reconfigured"
5723 |               ],
5724 |               "type": "string"
5725 |             },
5726 |             "custom_hostname": {
5727 |               "type": "string"
5728 |             },
5729 |             "data": {
5730 |               "$ref": "#/components/schemas/CfResponse"
5731 |             }
5732 |           },
5733 |           "required": [
5734 |             "status",
5735 |             "custom_hostname",
5736 |             "data"
5737 |           ]
5738 |         },
5739 |         "UpdateCustomHostnameBody": {
5740 |           "type": "object",
5741 |           "properties": {
5742 |             "custom_hostname": {
5743 |               "type": "string"
5744 |             }
5745 |           },
5746 |           "required": [
5747 |             "custom_hostname"
5748 |           ]
5749 |         },
5750 |         "NetworkBanResponse": {
5751 |           "type": "object",
5752 |           "properties": {
5753 |             "banned_ipv4_addresses": {
5754 |               "type": "array",
5755 |               "items": {
5756 |                 "type": "string"
5757 |               }
5758 |             }
5759 |           },
5760 |           "required": [
5761 |             "banned_ipv4_addresses"
5762 |           ]
5763 |         },
5764 |         "RemoveNetworkBanRequest": {
5765 |           "type": "object",
5766 |           "properties": {
5767 |             "ipv4_addresses": {
5768 |               "type": "array",
5769 |               "items": {
5770 |                 "type": "string"
5771 |               }
5772 |             }
5773 |           },
5774 |           "required": [
5775 |             "ipv4_addresses"
5776 |           ]
5777 |         },
5778 |         "NetworkRestrictionsRequest": {
5779 |           "type": "object",
5780 |           "properties": {
5781 |             "dbAllowedCidrs": {
5782 |               "type": "array",
5783 |               "items": {
5784 |                 "type": "string"
5785 |               }
5786 |             },
5787 |             "dbAllowedCidrsV6": {
5788 |               "type": "array",
5789 |               "items": {
5790 |                 "type": "string"
5791 |               }
5792 |             }
5793 |           }
5794 |         },
5795 |         "NetworkRestrictionsResponse": {
5796 |           "type": "object",
5797 |           "properties": {
5798 |             "entitlement": {
5799 |               "enum": [
5800 |                 "disallowed",
5801 |                 "allowed"
5802 |               ],
5803 |               "type": "string"
5804 |             },
5805 |             "config": {
5806 |               "$ref": "#/components/schemas/NetworkRestrictionsRequest"
5807 |             },
5808 |             "old_config": {
5809 |               "$ref": "#/components/schemas/NetworkRestrictionsRequest"
5810 |             },
5811 |             "status": {
5812 |               "enum": [
5813 |                 "stored",
5814 |                 "applied"
5815 |               ],
5816 |               "type": "string"
5817 |             }
5818 |           },
5819 |           "required": [
5820 |             "entitlement",
5821 |             "config",
5822 |             "status"
5823 |           ]
5824 |         },
5825 |         "PgsodiumConfigResponse": {
5826 |           "type": "object",
5827 |           "properties": {
5828 |             "root_key": {
5829 |               "type": "string"
5830 |             }
5831 |           },
5832 |           "required": [
5833 |             "root_key"
5834 |           ]
5835 |         },
5836 |         "UpdatePgsodiumConfigBody": {
5837 |           "type": "object",
5838 |           "properties": {
5839 |             "root_key": {
5840 |               "type": "string"
5841 |             }
5842 |           },
5843 |           "required": [
5844 |             "root_key"
5845 |           ]
5846 |         },
5847 |         "PostgrestConfigWithJWTSecretResponse": {
5848 |           "type": "object",
5849 |           "properties": {
5850 |             "max_rows": {
5851 |               "type": "integer"
5852 |             },
5853 |             "db_pool": {
5854 |               "type": "integer",
5855 |               "nullable": true,
5856 |               "description": "If `null`, the value is automatically configured based on compute size."
5857 |             },
5858 |             "db_schema": {
5859 |               "type": "string"
5860 |             },
5861 |             "db_extra_search_path": {
5862 |               "type": "string"
5863 |             },
5864 |             "jwt_secret": {
5865 |               "type": "string"
5866 |             }
5867 |           },
5868 |           "required": [
5869 |             "max_rows",
5870 |             "db_pool",
5871 |             "db_schema",
5872 |             "db_extra_search_path"
5873 |           ]
5874 |         },
5875 |         "UpdatePostgrestConfigBody": {
5876 |           "type": "object",
5877 |           "properties": {
5878 |             "max_rows": {
5879 |               "type": "integer",
5880 |               "minimum": 0,
5881 |               "maximum": 1000000
5882 |             },
5883 |             "db_pool": {
5884 |               "type": "integer",
5885 |               "minimum": 0,
5886 |               "maximum": 1000
5887 |             },
5888 |             "db_extra_search_path": {
5889 |               "type": "string"
5890 |             },
5891 |             "db_schema": {
5892 |               "type": "string"
5893 |             }
5894 |           }
5895 |         },
5896 |         "V1PostgrestConfigResponse": {
5897 |           "type": "object",
5898 |           "properties": {
5899 |             "max_rows": {
5900 |               "type": "integer"
5901 |             },
5902 |             "db_pool": {
5903 |               "type": "integer",
5904 |               "nullable": true,
5905 |               "description": "If `null`, the value is automatically configured based on compute size."
5906 |             },
5907 |             "db_schema": {
5908 |               "type": "string"
5909 |             },
5910 |             "db_extra_search_path": {
5911 |               "type": "string"
5912 |             }
5913 |           },
5914 |           "required": [
5915 |             "max_rows",
5916 |             "db_pool",
5917 |             "db_schema",
5918 |             "db_extra_search_path"
5919 |           ]
5920 |         },
5921 |         "V1ProjectRefResponse": {
5922 |           "type": "object",
5923 |           "properties": {
5924 |             "id": {
5925 |               "type": "integer",
5926 |               "format": "int64"
5927 |             },
5928 |             "ref": {
5929 |               "type": "string"
5930 |             },
5931 |             "name": {
5932 |               "type": "string"
5933 |             }
5934 |           },
5935 |           "required": [
5936 |             "id",
5937 |             "ref",
5938 |             "name"
5939 |           ]
5940 |         },
5941 |         "SecretResponse": {
5942 |           "type": "object",
5943 |           "properties": {
5944 |             "name": {
5945 |               "type": "string"
5946 |             },
5947 |             "value": {
5948 |               "type": "string"
5949 |             }
5950 |           },
5951 |           "required": [
5952 |             "name",
5953 |             "value"
5954 |           ]
5955 |         },
5956 |         "CreateSecretBody": {
5957 |           "type": "object",
5958 |           "properties": {
5959 |             "name": {
5960 |               "type": "string",
5961 |               "maxLength": 256,
5962 |               "pattern": "/^(?!SUPABASE_).*/",
5963 |               "description": "Secret name must not start with the SUPABASE_ prefix.",
5964 |               "example": "string"
5965 |             },
5966 |             "value": {
5967 |               "type": "string",
5968 |               "maxLength": 24576
5969 |             }
5970 |           },
5971 |           "required": [
5972 |             "name",
5973 |             "value"
5974 |           ]
5975 |         },
5976 |         "SslEnforcements": {
5977 |           "type": "object",
5978 |           "properties": {
5979 |             "database": {
5980 |               "type": "boolean"
5981 |             }
5982 |           },
5983 |           "required": [
5984 |             "database"
5985 |           ]
5986 |         },
5987 |         "SslEnforcementResponse": {
5988 |           "type": "object",
5989 |           "properties": {
5990 |             "currentConfig": {
5991 |               "$ref": "#/components/schemas/SslEnforcements"
5992 |             },
5993 |             "appliedSuccessfully": {
5994 |               "type": "boolean"
5995 |             }
5996 |           },
5997 |           "required": [
5998 |             "currentConfig",
5999 |             "appliedSuccessfully"
6000 |           ]
6001 |         },
6002 |         "SslEnforcementRequest": {
6003 |           "type": "object",
6004 |           "properties": {
6005 |             "requestedConfig": {
6006 |               "$ref": "#/components/schemas/SslEnforcements"
6007 |             }
6008 |           },
6009 |           "required": [
6010 |             "requestedConfig"
6011 |           ]
6012 |         },
6013 |         "TypescriptResponse": {
6014 |           "type": "object",
6015 |           "properties": {
6016 |             "types": {
6017 |               "type": "string"
6018 |             }
6019 |           },
6020 |           "required": [
6021 |             "types"
6022 |           ]
6023 |         },
6024 |         "VanitySubdomainConfigResponse": {
6025 |           "type": "object",
6026 |           "properties": {
6027 |             "status": {
6028 |               "enum": [
6029 |                 "not-used",
6030 |                 "custom-domain-used",
6031 |                 "active"
6032 |               ],
6033 |               "type": "string"
6034 |             },
6035 |             "custom_domain": {
6036 |               "type": "string"
6037 |             }
6038 |           },
6039 |           "required": [
6040 |             "status"
6041 |           ]
6042 |         },
6043 |         "VanitySubdomainBody": {
6044 |           "type": "object",
6045 |           "properties": {
6046 |             "vanity_subdomain": {
6047 |               "type": "string"
6048 |             }
6049 |           },
6050 |           "required": [
6051 |             "vanity_subdomain"
6052 |           ]
6053 |         },
6054 |         "SubdomainAvailabilityResponse": {
6055 |           "type": "object",
6056 |           "properties": {
6057 |             "available": {
6058 |               "type": "boolean"
6059 |             }
6060 |           },
6061 |           "required": [
6062 |             "available"
6063 |           ]
6064 |         },
6065 |         "ActivateVanitySubdomainResponse": {
6066 |           "type": "object",
6067 |           "properties": {
6068 |             "custom_domain": {
6069 |               "type": "string"
6070 |             }
6071 |           },
6072 |           "required": [
6073 |             "custom_domain"
6074 |           ]
6075 |         },
6076 |         "UpgradeDatabaseBody": {
6077 |           "type": "object",
6078 |           "properties": {
6079 |             "release_channel": {
6080 |               "$ref": "#/components/schemas/ReleaseChannel"
6081 |             },
6082 |             "target_version": {
6083 |               "type": "string"
6084 |             }
6085 |           },
6086 |           "required": [
6087 |             "release_channel",
6088 |             "target_version"
6089 |           ]
6090 |         },
6091 |         "ProjectUpgradeInitiateResponse": {
6092 |           "type": "object",
6093 |           "properties": {
6094 |             "tracking_id": {
6095 |               "type": "string"
6096 |             }
6097 |           },
6098 |           "required": [
6099 |             "tracking_id"
6100 |           ]
6101 |         },
6102 |         "ProjectVersion": {
6103 |           "type": "object",
6104 |           "properties": {
6105 |             "postgres_version": {
6106 |               "$ref": "#/components/schemas/PostgresEngine"
6107 |             },
6108 |             "release_channel": {
6109 |               "$ref": "#/components/schemas/ReleaseChannel"
6110 |             },
6111 |             "app_version": {
6112 |               "type": "string"
6113 |             }
6114 |           },
6115 |           "required": [
6116 |             "postgres_version",
6117 |             "release_channel",
6118 |             "app_version"
6119 |           ]
6120 |         },
6121 |         "ProjectUpgradeEligibilityResponse": {
6122 |           "type": "object",
6123 |           "properties": {
6124 |             "current_app_version_release_channel": {
6125 |               "$ref": "#/components/schemas/ReleaseChannel"
6126 |             },
6127 |             "duration_estimate_hours": {
6128 |               "type": "integer"
6129 |             },
6130 |             "eligible": {
6131 |               "type": "boolean"
6132 |             },
6133 |             "current_app_version": {
6134 |               "type": "string"
6135 |             },
6136 |             "latest_app_version": {
6137 |               "type": "string"
6138 |             },
6139 |             "target_upgrade_versions": {
6140 |               "type": "array",
6141 |               "items": {
6142 |                 "$ref": "#/components/schemas/ProjectVersion"
6143 |               }
6144 |             },
6145 |             "potential_breaking_changes": {
6146 |               "type": "array",
6147 |               "items": {
6148 |                 "type": "string"
6149 |               }
6150 |             },
6151 |             "legacy_auth_custom_roles": {
6152 |               "type": "array",
6153 |               "items": {
6154 |                 "type": "string"
6155 |               }
6156 |             },
6157 |             "extension_dependent_objects": {
6158 |               "type": "array",
6159 |               "items": {
6160 |                 "type": "string"
6161 |               }
6162 |             }
6163 |           },
6164 |           "required": [
6165 |             "current_app_version_release_channel",
6166 |             "duration_estimate_hours",
6167 |             "eligible",
6168 |             "current_app_version",
6169 |             "latest_app_version",
6170 |             "target_upgrade_versions",
6171 |             "potential_breaking_changes",
6172 |             "legacy_auth_custom_roles",
6173 |             "extension_dependent_objects"
6174 |           ]
6175 |         },
6176 |         "DatabaseUpgradeStatus": {
6177 |           "type": "object",
6178 |           "properties": {
6179 |             "target_version": {
6180 |               "type": "integer"
6181 |             },
6182 |             "status": {
6183 |               "enum": [0, 1, 2],
6184 |               "type": "integer"
6185 |             },
6186 |             "initiated_at": {
6187 |               "type": "string"
6188 |             },
6189 |             "latest_status_at": {
6190 |               "type": "string"
6191 |             },
6192 |             "error": {
6193 |               "type": "string",
6194 |               "enum": [
6195 |                 "1_upgraded_instance_launch_failed",
6196 |                 "2_volume_detachchment_from_upgraded_instance_failed",
6197 |                 "3_volume_attachment_to_original_instance_failed",
6198 |                 "4_data_upgrade_initiation_failed",
6199 |                 "5_data_upgrade_completion_failed",
6200 |                 "6_volume_detachchment_from_original_instance_failed",
6201 |                 "7_volume_attachment_to_upgraded_instance_failed",
6202 |                 "8_upgrade_completion_failed",
6203 |                 "9_post_physical_backup_failed"
6204 |               ]
6205 |             },
6206 |             "progress": {
6207 |               "type": "string",
6208 |               "enum": [
6209 |                 "0_requested",
6210 |                 "1_started",
6211 |                 "2_launched_upgraded_instance",
6212 |                 "3_detached_volume_from_upgraded_instance",
6213 |                 "4_attached_volume_to_original_instance",
6214 |                 "5_initiated_data_upgrade",
6215 |                 "6_completed_data_upgrade",
6216 |                 "7_detached_volume_from_original_instance",
6217 |                 "8_attached_volume_to_upgraded_instance",
6218 |                 "9_completed_upgrade",
6219 |                 "10_completed_post_physical_backup"
6220 |               ]
6221 |             }
6222 |           },
6223 |           "required": [
6224 |             "target_version",
6225 |             "status",
6226 |             "initiated_at",
6227 |             "latest_status_at"
6228 |           ]
6229 |         },
6230 |         "DatabaseUpgradeStatusResponse": {
6231 |           "type": "object",
6232 |           "properties": {
6233 |             "databaseUpgradeStatus": {
6234 |               "nullable": true,
6235 |               "allOf": [
6236 |                 {
6237 |                   "$ref": "#/components/schemas/DatabaseUpgradeStatus"
6238 |                 }
6239 |               ]
6240 |             }
6241 |           },
6242 |           "required": [
6243 |             "databaseUpgradeStatus"
6244 |           ]
6245 |         },
6246 |         "ReadOnlyStatusResponse": {
6247 |           "type": "object",
6248 |           "properties": {
6249 |             "enabled": {
6250 |               "type": "boolean"
6251 |             },
6252 |             "override_enabled": {
6253 |               "type": "boolean"
6254 |             },
6255 |             "override_active_until": {
6256 |               "type": "string"
6257 |             }
6258 |           },
6259 |           "required": [
6260 |             "enabled",
6261 |             "override_enabled",
6262 |             "override_active_until"
6263 |           ]
6264 |         },
6265 |         "SetUpReadReplicaBody": {
6266 |           "type": "object",
6267 |           "properties": {
6268 |             "read_replica_region": {
6269 |               "type": "string",
6270 |               "enum": [
6271 |                 "us-east-1",
6272 |                 "us-east-2",
6273 |                 "us-west-1",
6274 |                 "us-west-2",
6275 |                 "ap-east-1",
6276 |                 "ap-southeast-1",
6277 |                 "ap-northeast-1",
6278 |                 "ap-northeast-2",
6279 |                 "ap-southeast-2",
6280 |                 "eu-west-1",
6281 |                 "eu-west-2",
6282 |                 "eu-west-3",
6283 |                 "eu-north-1",
6284 |                 "eu-central-1",
6285 |                 "eu-central-2",
6286 |                 "ca-central-1",
6287 |                 "ap-south-1",
6288 |                 "sa-east-1"
6289 |               ],
6290 |               "description": "Region you want your read replica to reside in",
6291 |               "example": "us-east-1"
6292 |             }
6293 |           },
6294 |           "required": [
6295 |             "read_replica_region"
6296 |           ]
6297 |         },
6298 |         "RemoveReadReplicaBody": {
6299 |           "type": "object",
6300 |           "properties": {
6301 |             "database_identifier": {
6302 |               "type": "string"
6303 |             }
6304 |           },
6305 |           "required": [
6306 |             "database_identifier"
6307 |           ]
6308 |         },
6309 |         "AuthHealthResponse": {
6310 |           "type": "object",
6311 |           "properties": {
6312 |             "name": {
6313 |               "type": "string",
6314 |               "enum": [
6315 |                 "GoTrue"
6316 |               ]
6317 |             }
6318 |           },
6319 |           "required": [
6320 |             "name"
6321 |           ]
6322 |         },
6323 |         "RealtimeHealthResponse": {
6324 |           "type": "object",
6325 |           "properties": {
6326 |             "connected_cluster": {
6327 |               "type": "integer"
6328 |             }
6329 |           },
6330 |           "required": [
6331 |             "connected_cluster"
6332 |           ]
6333 |         },
6334 |         "V1ServiceHealthResponse": {
6335 |           "type": "object",
6336 |           "properties": {
6337 |             "info": {
6338 |               "oneOf": [
6339 |                 {
6340 |                   "$ref": "#/components/schemas/AuthHealthResponse"
6341 |                 },
6342 |                 {
6343 |                   "$ref": "#/components/schemas/RealtimeHealthResponse"
6344 |                 }
6345 |               ]
6346 |             },
6347 |             "name": {
6348 |               "enum": [
6349 |                 "auth",
6350 |                 "db",
6351 |                 "pooler",
6352 |                 "realtime",
6353 |                 "rest",
6354 |                 "storage"
6355 |               ],
6356 |               "type": "string"
6357 |             },
6358 |             "healthy": {
6359 |               "type": "boolean"
6360 |             },
6361 |             "status": {
6362 |               "enum": [
6363 |                 "COMING_UP",
6364 |                 "ACTIVE_HEALTHY",
6365 |                 "UNHEALTHY"
6366 |               ],
6367 |               "type": "string"
6368 |             },
6369 |             "error": {
6370 |               "type": "string"
6371 |             }
6372 |           },
6373 |           "required": [
6374 |             "name",
6375 |             "healthy",
6376 |             "status"
6377 |           ]
6378 |         },
6379 |         "StorageFeatureImageTransformation": {
6380 |           "type": "object",
6381 |           "properties": {
6382 |             "enabled": {
6383 |               "type": "boolean"
6384 |             }
6385 |           },
6386 |           "required": [
6387 |             "enabled"
6388 |           ]
6389 |         },
6390 |         "StorageFeatureS3Protocol": {
6391 |           "type": "object",
6392 |           "properties": {
6393 |             "enabled": {
6394 |               "type": "boolean"
6395 |             }
6396 |           },
6397 |           "required": [
6398 |             "enabled"
6399 |           ]
6400 |         },
6401 |         "StorageFeatures": {
6402 |           "type": "object",
6403 |           "properties": {
6404 |             "imageTransformation": {
6405 |               "$ref": "#/components/schemas/StorageFeatureImageTransformation"
6406 |             },
6407 |             "s3Protocol": {
6408 |               "$ref": "#/components/schemas/StorageFeatureS3Protocol"
6409 |             }
6410 |           },
6411 |           "required": [
6412 |             "imageTransformation",
6413 |             "s3Protocol"
6414 |           ]
6415 |         },
6416 |         "StorageConfigResponse": {
6417 |           "type": "object",
6418 |           "properties": {
6419 |             "fileSizeLimit": {
6420 |               "type": "integer",
6421 |               "format": "int64"
6422 |             },
6423 |             "features": {
6424 |               "$ref": "#/components/schemas/StorageFeatures"
6425 |             }
6426 |           },
6427 |           "required": [
6428 |             "fileSizeLimit",
6429 |             "features"
6430 |           ]
6431 |         },
6432 |         "UpdateStorageConfigBody": {
6433 |           "type": "object",
6434 |           "properties": {
6435 |             "fileSizeLimit": {
6436 |               "type": "integer",
6437 |               "minimum": 0,
6438 |               "maximum": 53687091200,
6439 |               "format": "int64"
6440 |             },
6441 |             "features": {
6442 |               "$ref": "#/components/schemas/StorageFeatures"
6443 |             }
6444 |           }
6445 |         },
6446 |         "PostgresConfigResponse": {
6447 |           "type": "object",
6448 |           "properties": {
6449 |             "effective_cache_size": {
6450 |               "type": "string"
6451 |             },
6452 |             "logical_decoding_work_mem": {
6453 |               "type": "string"
6454 |             },
6455 |             "maintenance_work_mem": {
6456 |               "type": "string"
6457 |             },
6458 |             "track_activity_query_size": {
6459 |               "type": "string"
6460 |             },
6461 |             "max_connections": {
6462 |               "type": "integer",
6463 |               "minimum": 1,
6464 |               "maximum": 262143
6465 |             },
6466 |             "max_locks_per_transaction": {
6467 |               "type": "integer",
6468 |               "minimum": 10,
6469 |               "maximum": 2147483640
6470 |             },
6471 |             "max_parallel_maintenance_workers": {
6472 |               "type": "integer",
6473 |               "minimum": 0,
6474 |               "maximum": 1024
6475 |             },
6476 |             "max_parallel_workers": {
6477 |               "type": "integer",
6478 |               "minimum": 0,
6479 |               "maximum": 1024
6480 |             },
6481 |             "max_parallel_workers_per_gather": {
6482 |               "type": "integer",
6483 |               "minimum": 0,
6484 |               "maximum": 1024
6485 |             },
6486 |             "max_replication_slots": {
6487 |               "type": "integer"
6488 |             },
6489 |             "max_slot_wal_keep_size": {
6490 |               "type": "string"
6491 |             },
6492 |             "max_standby_archive_delay": {
6493 |               "type": "string"
6494 |             },
6495 |             "max_standby_streaming_delay": {
6496 |               "type": "string"
6497 |             },
6498 |             "max_wal_size": {
6499 |               "type": "string"
6500 |             },
6501 |             "max_wal_senders": {
6502 |               "type": "integer"
6503 |             },
6504 |             "max_worker_processes": {
6505 |               "type": "integer",
6506 |               "minimum": 0,
6507 |               "maximum": 262143
6508 |             },
6509 |             "shared_buffers": {
6510 |               "type": "string"
6511 |             },
6512 |             "statement_timeout": {
6513 |               "type": "string"
6514 |             },
6515 |             "track_commit_timestamp": {
6516 |               "type": "boolean"
6517 |             },
6518 |             "wal_keep_size": {
6519 |               "type": "string"
6520 |             },
6521 |             "wal_sender_timeout": {
6522 |               "type": "string"
6523 |             },
6524 |             "work_mem": {
6525 |               "type": "string"
6526 |             },
6527 |             "session_replication_role": {
6528 |               "enum": [
6529 |                 "origin",
6530 |                 "replica",
6531 |                 "local"
6532 |               ],
6533 |               "type": "string"
6534 |             }
6535 |           }
6536 |         },
6537 |         "UpdatePostgresConfigBody": {
6538 |           "type": "object",
6539 |           "properties": {
6540 |             "effective_cache_size": {
6541 |               "type": "string"
6542 |             },
6543 |             "logical_decoding_work_mem": {
6544 |               "type": "string"
6545 |             },
6546 |             "maintenance_work_mem": {
6547 |               "type": "string"
6548 |             },
6549 |             "track_activity_query_size": {
6550 |               "type": "string"
6551 |             },
6552 |             "max_connections": {
6553 |               "type": "integer",
6554 |               "minimum": 1,
6555 |               "maximum": 262143
6556 |             },
6557 |             "max_locks_per_transaction": {
6558 |               "type": "integer",
6559 |               "minimum": 10,
6560 |               "maximum": 2147483640
6561 |             },
6562 |             "max_parallel_maintenance_workers": {
6563 |               "type": "integer",
6564 |               "minimum": 0,
6565 |               "maximum": 1024
6566 |             },
6567 |             "max_parallel_workers": {
6568 |               "type": "integer",
6569 |               "minimum": 0,
6570 |               "maximum": 1024
6571 |             },
6572 |             "max_parallel_workers_per_gather": {
6573 |               "type": "integer",
6574 |               "minimum": 0,
6575 |               "maximum": 1024
6576 |             },
6577 |             "max_replication_slots": {
6578 |               "type": "integer"
6579 |             },
6580 |             "max_slot_wal_keep_size": {
6581 |               "type": "string"
6582 |             },
6583 |             "max_standby_archive_delay": {
6584 |               "type": "string"
6585 |             },
6586 |             "max_standby_streaming_delay": {
6587 |               "type": "string"
6588 |             },
6589 |             "max_wal_size": {
6590 |               "type": "string"
6591 |             },
6592 |             "max_wal_senders": {
6593 |               "type": "integer"
6594 |             },
6595 |             "max_worker_processes": {
6596 |               "type": "integer",
6597 |               "minimum": 0,
6598 |               "maximum": 262143
6599 |             },
6600 |             "shared_buffers": {
6601 |               "type": "string"
6602 |             },
6603 |             "statement_timeout": {
6604 |               "type": "string"
6605 |             },
6606 |             "track_commit_timestamp": {
6607 |               "type": "boolean"
6608 |             },
6609 |             "wal_keep_size": {
6610 |               "type": "string"
6611 |             },
6612 |             "wal_sender_timeout": {
6613 |               "type": "string"
6614 |             },
6615 |             "work_mem": {
6616 |               "type": "string"
6617 |             },
6618 |             "restart_database": {
6619 |               "type": "boolean"
6620 |             },
6621 |             "session_replication_role": {
6622 |               "enum": [
6623 |                 "origin",
6624 |                 "replica",
6625 |                 "local"
6626 |               ],
6627 |               "type": "string"
6628 |             }
6629 |           }
6630 |         },
6631 |         "V1PgbouncerConfigResponse": {
6632 |           "type": "object",
6633 |           "properties": {
6634 |             "pool_mode": {
6635 |               "type": "string",
6636 |               "enum": [
6637 |                 "transaction",
6638 |                 "session",
6639 |                 "statement"
6640 |               ]
6641 |             },
6642 |             "default_pool_size": {
6643 |               "type": "number"
6644 |             },
6645 |             "ignore_startup_parameters": {
6646 |               "type": "string"
6647 |             },
6648 |             "max_client_conn": {
6649 |               "type": "number"
6650 |             },
6651 |             "connection_string": {
6652 |               "type": "string"
6653 |             }
6654 |           }
6655 |         },
6656 |         "SupavisorConfigResponse": {
6657 |           "type": "object",
6658 |           "properties": {
6659 |             "database_type": {
6660 |               "type": "string",
6661 |               "enum": [
6662 |                 "PRIMARY",
6663 |                 "READ_REPLICA"
6664 |               ]
6665 |             },
6666 |             "db_port": {
6667 |               "type": "integer"
6668 |             },
6669 |             "default_pool_size": {
6670 |               "type": "integer",
6671 |               "nullable": true
6672 |             },
6673 |             "max_client_conn": {
6674 |               "type": "integer",
6675 |               "nullable": true
6676 |             },
6677 |             "identifier": {
6678 |               "type": "string"
6679 |             },
6680 |             "is_using_scram_auth": {
6681 |               "type": "boolean"
6682 |             },
6683 |             "db_user": {
6684 |               "type": "string"
6685 |             },
6686 |             "db_host": {
6687 |               "type": "string"
6688 |             },
6689 |             "db_name": {
6690 |               "type": "string"
6691 |             },
6692 |             "connectionString": {
6693 |               "type": "string"
6694 |             },
6695 |             "pool_mode": {
6696 |               "enum": [
6697 |                 "transaction",
6698 |                 "session"
6699 |               ],
6700 |               "type": "string"
6701 |             }
6702 |           },
6703 |           "required": [
6704 |             "database_type",
6705 |             "db_port",
6706 |             "default_pool_size",
6707 |             "max_client_conn",
6708 |             "identifier",
6709 |             "is_using_scram_auth",
6710 |             "db_user",
6711 |             "db_host",
6712 |             "db_name",
6713 |             "connectionString",
6714 |             "pool_mode"
6715 |           ]
6716 |         },
6717 |         "UpdateSupavisorConfigBody": {
6718 |           "type": "object",
6719 |           "properties": {
6720 |             "default_pool_size": {
6721 |               "type": "integer",
6722 |               "nullable": true,
6723 |               "minimum": 0,
6724 |               "maximum": 1000
6725 |             },
6726 |             "pool_mode": {
6727 |               "enum": [
6728 |                 "transaction",
6729 |                 "session"
6730 |               ],
6731 |               "type": "string",
6732 |               "deprecated": true,
6733 |               "description": "This field is deprecated and is ignored in this request"
6734 |             }
6735 |           }
6736 |         },
6737 |         "UpdateSupavisorConfigResponse": {
6738 |           "type": "object",
6739 |           "properties": {
6740 |             "default_pool_size": {
6741 |               "type": "integer",
6742 |               "nullable": true
6743 |             },
6744 |             "pool_mode": {
6745 |               "enum": [
6746 |                 "transaction",
6747 |                 "session"
6748 |               ],
6749 |               "type": "string"
6750 |             }
6751 |           },
6752 |           "required": [
6753 |             "default_pool_size",
6754 |             "pool_mode"
6755 |           ]
6756 |         },
6757 |         "AuthConfigResponse": {
6758 |           "type": "object",
6759 |           "properties": {
6760 |             "api_max_request_duration": {
6761 |               "type": "integer",
6762 |               "nullable": true
6763 |             },
6764 |             "db_max_pool_size": {
6765 |               "type": "integer",
6766 |               "nullable": true
6767 |             },
6768 |             "jwt_exp": {
6769 |               "type": "integer",
6770 |               "nullable": true
6771 |             },
6772 |             "mailer_otp_exp": {
6773 |               "type": "integer"
6774 |             },
6775 |             "mailer_otp_length": {
6776 |               "type": "integer",
6777 |               "nullable": true
6778 |             },
6779 |             "mfa_max_enrolled_factors": {
6780 |               "type": "integer",
6781 |               "nullable": true
6782 |             },
6783 |             "mfa_phone_otp_length": {
6784 |               "type": "integer"
6785 |             },
6786 |             "mfa_phone_max_frequency": {
6787 |               "type": "integer",
6788 |               "nullable": true
6789 |             },
6790 |             "password_min_length": {
6791 |               "type": "integer",
6792 |               "nullable": true
6793 |             },
6794 |             "rate_limit_anonymous_users": {
6795 |               "type": "integer",
6796 |               "nullable": true
6797 |             },
6798 |             "rate_limit_email_sent": {
6799 |               "type": "integer",
6800 |               "nullable": true
6801 |             },
6802 |             "rate_limit_sms_sent": {
6803 |               "type": "integer",
6804 |               "nullable": true
6805 |             },
6806 |             "rate_limit_token_refresh": {
6807 |               "type": "integer",
6808 |               "nullable": true
6809 |             },
6810 |             "rate_limit_verify": {
6811 |               "type": "integer",
6812 |               "nullable": true
6813 |             },
6814 |             "rate_limit_otp": {
6815 |               "type": "integer",
6816 |               "nullable": true
6817 |             },
6818 |             "security_refresh_token_reuse_interval": {
6819 |               "type": "integer",
6820 |               "nullable": true
6821 |             },
6822 |             "sessions_inactivity_timeout": {
6823 |               "type": "integer",
6824 |               "nullable": true
6825 |             },
6826 |             "sessions_timebox": {
6827 |               "type": "integer",
6828 |               "nullable": true
6829 |             },
6830 |             "sms_max_frequency": {
6831 |               "type": "integer",
6832 |               "nullable": true
6833 |             },
6834 |             "sms_otp_exp": {
6835 |               "type": "integer",
6836 |               "nullable": true
6837 |             },
6838 |             "sms_otp_length": {
6839 |               "type": "integer"
6840 |             },
6841 |             "smtp_max_frequency": {
6842 |               "type": "integer",
6843 |               "nullable": true
6844 |             },
6845 |             "disable_signup": {
6846 |               "type": "boolean",
6847 |               "nullable": true
6848 |             },
6849 |             "external_anonymous_users_enabled": {
6850 |               "type": "boolean",
6851 |               "nullable": true
6852 |             },
6853 |             "external_apple_additional_client_ids": {
6854 |               "type": "string",
6855 |               "nullable": true
6856 |             },
6857 |             "external_apple_client_id": {
6858 |               "type": "string",
6859 |               "nullable": true
6860 |             },
6861 |             "external_apple_enabled": {
6862 |               "type": "boolean",
6863 |               "nullable": true
6864 |             },
6865 |             "external_apple_secret": {
6866 |               "type": "string",
6867 |               "nullable": true
6868 |             },
6869 |             "external_azure_client_id": {
6870 |               "type": "string",
6871 |               "nullable": true
6872 |             },
6873 |             "external_azure_enabled": {
6874 |               "type": "boolean",
6875 |               "nullable": true
6876 |             },
6877 |             "external_azure_secret": {
6878 |               "type": "string",
6879 |               "nullable": true
6880 |             },
6881 |             "external_azure_url": {
6882 |               "type": "string",
6883 |               "nullable": true
6884 |             },
6885 |             "external_bitbucket_client_id": {
6886 |               "type": "string",
6887 |               "nullable": true
6888 |             },
6889 |             "external_bitbucket_enabled": {
6890 |               "type": "boolean",
6891 |               "nullable": true
6892 |             },
6893 |             "external_bitbucket_secret": {
6894 |               "type": "string",
6895 |               "nullable": true
6896 |             },
6897 |             "external_discord_client_id": {
6898 |               "type": "string",
6899 |               "nullable": true
6900 |             },
6901 |             "external_discord_enabled": {
6902 |               "type": "boolean",
6903 |               "nullable": true
6904 |             },
6905 |             "external_discord_secret": {
6906 |               "type": "string",
6907 |               "nullable": true
6908 |             },
6909 |             "external_email_enabled": {
6910 |               "type": "boolean",
6911 |               "nullable": true
6912 |             },
6913 |             "external_facebook_client_id": {
6914 |               "type": "string",
6915 |               "nullable": true
6916 |             },
6917 |             "external_facebook_enabled": {
6918 |               "type": "boolean",
6919 |               "nullable": true
6920 |             },
6921 |             "external_facebook_secret": {
6922 |               "type": "string",
6923 |               "nullable": true
6924 |             },
6925 |             "external_figma_client_id": {
6926 |               "type": "string",
6927 |               "nullable": true
6928 |             },
6929 |             "external_figma_enabled": {
6930 |               "type": "boolean",
6931 |               "nullable": true
6932 |             },
6933 |             "external_figma_secret": {
6934 |               "type": "string",
6935 |               "nullable": true
6936 |             },
6937 |             "external_github_client_id": {
6938 |               "type": "string",
6939 |               "nullable": true
6940 |             },
6941 |             "external_github_enabled": {
6942 |               "type": "boolean",
6943 |               "nullable": true
6944 |             },
6945 |             "external_github_secret": {
6946 |               "type": "string",
6947 |               "nullable": true
6948 |             },
6949 |             "external_gitlab_client_id": {
6950 |               "type": "string",
6951 |               "nullable": true
6952 |             },
6953 |             "external_gitlab_enabled": {
6954 |               "type": "boolean",
6955 |               "nullable": true
6956 |             },
6957 |             "external_gitlab_secret": {
6958 |               "type": "string",
6959 |               "nullable": true
6960 |             },
6961 |             "external_gitlab_url": {
6962 |               "type": "string",
6963 |               "nullable": true
6964 |             },
6965 |             "external_google_additional_client_ids": {
6966 |               "type": "string",
6967 |               "nullable": true
6968 |             },
6969 |             "external_google_client_id": {
6970 |               "type": "string",
6971 |               "nullable": true
6972 |             },
6973 |             "external_google_enabled": {
6974 |               "type": "boolean",
6975 |               "nullable": true
6976 |             },
6977 |             "external_google_secret": {
6978 |               "type": "string",
6979 |               "nullable": true
6980 |             },
6981 |             "external_google_skip_nonce_check": {
6982 |               "type": "boolean",
6983 |               "nullable": true
6984 |             },
6985 |             "external_kakao_client_id": {
6986 |               "type": "string",
6987 |               "nullable": true
6988 |             },
6989 |             "external_kakao_enabled": {
6990 |               "type": "boolean",
6991 |               "nullable": true
6992 |             },
6993 |             "external_kakao_secret": {
6994 |               "type": "string",
6995 |               "nullable": true
6996 |             },
6997 |             "external_keycloak_client_id": {
6998 |               "type": "string",
6999 |               "nullable": true
7000 |             },
7001 |             "external_keycloak_enabled": {
7002 |               "type": "boolean",
7003 |               "nullable": true
7004 |             },
7005 |             "external_keycloak_secret": {
7006 |               "type": "string",
7007 |               "nullable": true
7008 |             },
7009 |             "external_keycloak_url": {
7010 |               "type": "string",
7011 |               "nullable": true
7012 |             },
7013 |             "external_linkedin_oidc_client_id": {
7014 |               "type": "string",
7015 |               "nullable": true
7016 |             },
7017 |             "external_linkedin_oidc_enabled": {
7018 |               "type": "boolean",
7019 |               "nullable": true
7020 |             },
7021 |             "external_linkedin_oidc_secret": {
7022 |               "type": "string",
7023 |               "nullable": true
7024 |             },
7025 |             "external_slack_oidc_client_id": {
7026 |               "type": "string",
7027 |               "nullable": true
7028 |             },
7029 |             "external_slack_oidc_enabled": {
7030 |               "type": "boolean",
7031 |               "nullable": true
7032 |             },
7033 |             "external_slack_oidc_secret": {
7034 |               "type": "string",
7035 |               "nullable": true
7036 |             },
7037 |             "external_notion_client_id": {
7038 |               "type": "string",
7039 |               "nullable": true
7040 |             },
7041 |             "external_notion_enabled": {
7042 |               "type": "boolean",
7043 |               "nullable": true
7044 |             },
7045 |             "external_notion_secret": {
7046 |               "type": "string",
7047 |               "nullable": true
7048 |             },
7049 |             "external_phone_enabled": {
7050 |               "type": "boolean",
7051 |               "nullable": true
7052 |             },
7053 |             "external_slack_client_id": {
7054 |               "type": "string",
7055 |               "nullable": true
7056 |             },
7057 |             "external_slack_enabled": {
7058 |               "type": "boolean",
7059 |               "nullable": true
7060 |             },
7061 |             "external_slack_secret": {
7062 |               "type": "string",
7063 |               "nullable": true
7064 |             },
7065 |             "external_spotify_client_id": {
7066 |               "type": "string",
7067 |               "nullable": true
7068 |             },
7069 |             "external_spotify_enabled": {
7070 |               "type": "boolean",
7071 |               "nullable": true
7072 |             },
7073 |             "external_spotify_secret": {
7074 |               "type": "string",
7075 |               "nullable": true
7076 |             },
7077 |             "external_twitch_client_id": {
7078 |               "type": "string",
7079 |               "nullable": true
7080 |             },
7081 |             "external_twitch_enabled": {
7082 |               "type": "boolean",
7083 |               "nullable": true
7084 |             },
7085 |             "external_twitch_secret": {
7086 |               "type": "string",
7087 |               "nullable": true
7088 |             },
7089 |             "external_twitter_client_id": {
7090 |               "type": "string",
7091 |               "nullable": true
7092 |             },
7093 |             "external_twitter_enabled": {
7094 |               "type": "boolean",
7095 |               "nullable": true
7096 |             },
7097 |             "external_twitter_secret": {
7098 |               "type": "string",
7099 |               "nullable": true
7100 |             },
7101 |             "external_workos_client_id": {
7102 |               "type": "string",
7103 |               "nullable": true
7104 |             },
7105 |             "external_workos_enabled": {
7106 |               "type": "boolean",
7107 |               "nullable": true
7108 |             },
7109 |             "external_workos_secret": {
7110 |               "type": "string",
7111 |               "nullable": true
7112 |             },
7113 |             "external_workos_url": {
7114 |               "type": "string",
7115 |               "nullable": true
7116 |             },
7117 |             "external_zoom_client_id": {
7118 |               "type": "string",
7119 |               "nullable": true
7120 |             },
7121 |             "external_zoom_enabled": {
7122 |               "type": "boolean",
7123 |               "nullable": true
7124 |             },
7125 |             "external_zoom_secret": {
7126 |               "type": "string",
7127 |               "nullable": true
7128 |             },
7129 |             "hook_custom_access_token_enabled": {
7130 |               "type": "boolean",
7131 |               "nullable": true
7132 |             },
7133 |             "hook_custom_access_token_uri": {
7134 |               "type": "string",
7135 |               "nullable": true
7136 |             },
7137 |             "hook_custom_access_token_secrets": {
7138 |               "type": "string",
7139 |               "nullable": true
7140 |             },
7141 |             "hook_mfa_verification_attempt_enabled": {
7142 |               "type": "boolean",
7143 |               "nullable": true
7144 |             },
7145 |             "hook_mfa_verification_attempt_uri": {
7146 |               "type": "string",
7147 |               "nullable": true
7148 |             },
7149 |             "hook_mfa_verification_attempt_secrets": {
7150 |               "type": "string",
7151 |               "nullable": true
7152 |             },
7153 |             "hook_password_verification_attempt_enabled": {
7154 |               "type": "boolean",
7155 |               "nullable": true
7156 |             },
7157 |             "hook_password_verification_attempt_uri": {
7158 |               "type": "string",
7159 |               "nullable": true
7160 |             },
7161 |             "hook_password_verification_attempt_secrets": {
7162 |               "type": "string",
7163 |               "nullable": true
7164 |             },
7165 |             "hook_send_sms_enabled": {
7166 |               "type": "boolean",
7167 |               "nullable": true
7168 |             },
7169 |             "hook_send_sms_uri": {
7170 |               "type": "string",
7171 |               "nullable": true
7172 |             },
7173 |             "hook_send_sms_secrets": {
7174 |               "type": "string",
7175 |               "nullable": true
7176 |             },
7177 |             "hook_send_email_enabled": {
7178 |               "type": "boolean",
7179 |               "nullable": true
7180 |             },
7181 |             "hook_send_email_uri": {
7182 |               "type": "string",
7183 |               "nullable": true
7184 |             },
7185 |             "hook_send_email_secrets": {
7186 |               "type": "string",
7187 |               "nullable": true
7188 |             },
7189 |             "mailer_allow_unverified_email_sign_ins": {
7190 |               "type": "boolean",
7191 |               "nullable": true
7192 |             },
7193 |             "mailer_autoconfirm": {
7194 |               "type": "boolean",
7195 |               "nullable": true
7196 |             },
7197 |             "mailer_secure_email_change_enabled": {
7198 |               "type": "boolean",
7199 |               "nullable": true
7200 |             },
7201 |             "mailer_subjects_confirmation": {
7202 |               "type": "string",
7203 |               "nullable": true
7204 |             },
7205 |             "mailer_subjects_email_change": {
7206 |               "type": "string",
7207 |               "nullable": true
7208 |             },
7209 |             "mailer_subjects_invite": {
7210 |               "type": "string",
7211 |               "nullable": true
7212 |             },
7213 |             "mailer_subjects_magic_link": {
7214 |               "type": "string",
7215 |               "nullable": true
7216 |             },
7217 |             "mailer_subjects_reauthentication": {
7218 |               "type": "string",
7219 |               "nullable": true
7220 |             },
7221 |             "mailer_subjects_recovery": {
7222 |               "type": "string",
7223 |               "nullable": true
7224 |             },
7225 |             "mailer_templates_confirmation_content": {
7226 |               "type": "string",
7227 |               "nullable": true
7228 |             },
7229 |             "mailer_templates_email_change_content": {
7230 |               "type": "string",
7231 |               "nullable": true
7232 |             },
7233 |             "mailer_templates_invite_content": {
7234 |               "type": "string",
7235 |               "nullable": true
7236 |             },
7237 |             "mailer_templates_magic_link_content": {
7238 |               "type": "string",
7239 |               "nullable": true
7240 |             },
7241 |             "mailer_templates_reauthentication_content": {
7242 |               "type": "string",
7243 |               "nullable": true
7244 |             },
7245 |             "mailer_templates_recovery_content": {
7246 |               "type": "string",
7247 |               "nullable": true
7248 |             },
7249 |             "mfa_totp_enroll_enabled": {
7250 |               "type": "boolean",
7251 |               "nullable": true
7252 |             },
7253 |             "mfa_totp_verify_enabled": {
7254 |               "type": "boolean",
7255 |               "nullable": true
7256 |             },
7257 |             "mfa_phone_enroll_enabled": {
7258 |               "type": "boolean",
7259 |               "nullable": true
7260 |             },
7261 |             "mfa_phone_verify_enabled": {
7262 |               "type": "boolean",
7263 |               "nullable": true
7264 |             },
7265 |             "mfa_web_authn_enroll_enabled": {
7266 |               "type": "boolean",
7267 |               "nullable": true
7268 |             },
7269 |             "mfa_web_authn_verify_enabled": {
7270 |               "type": "boolean",
7271 |               "nullable": true
7272 |             },
7273 |             "mfa_phone_template": {
7274 |               "type": "string",
7275 |               "nullable": true
7276 |             },
7277 |             "password_hibp_enabled": {
7278 |               "type": "boolean",
7279 |               "nullable": true
7280 |             },
7281 |             "password_required_characters": {
7282 |               "type": "string",
7283 |               "nullable": true
7284 |             },
7285 |             "refresh_token_rotation_enabled": {
7286 |               "type": "boolean",
7287 |               "nullable": true
7288 |             },
7289 |             "saml_enabled": {
7290 |               "type": "boolean",
7291 |               "nullable": true
7292 |             },
7293 |             "saml_external_url": {
7294 |               "type": "string",
7295 |               "nullable": true
7296 |             },
7297 |             "saml_allow_encrypted_assertions": {
7298 |               "type": "boolean",
7299 |               "nullable": true
7300 |             },
7301 |             "security_captcha_enabled": {
7302 |               "type": "boolean",
7303 |               "nullable": true
7304 |             },
7305 |             "security_captcha_provider": {
7306 |               "type": "string",
7307 |               "nullable": true
7308 |             },
7309 |             "security_captcha_secret": {
7310 |               "type": "string",
7311 |               "nullable": true
7312 |             },
7313 |             "security_manual_linking_enabled": {
7314 |               "type": "boolean",
7315 |               "nullable": true
7316 |             },
7317 |             "security_update_password_require_reauthentication": {
7318 |               "type": "boolean",
7319 |               "nullable": true
7320 |             },
7321 |             "sessions_single_per_user": {
7322 |               "type": "boolean",
7323 |               "nullable": true
7324 |             },
7325 |             "sessions_tags": {
7326 |               "type": "string",
7327 |               "nullable": true
7328 |             },
7329 |             "site_url": {
7330 |               "type": "string",
7331 |               "nullable": true
7332 |             },
7333 |             "sms_autoconfirm": {
7334 |               "type": "boolean",
7335 |               "nullable": true
7336 |             },
7337 |             "sms_messagebird_access_key": {
7338 |               "type": "string",
7339 |               "nullable": true
7340 |             },
7341 |             "sms_messagebird_originator": {
7342 |               "type": "string",
7343 |               "nullable": true
7344 |             },
7345 |             "sms_provider": {
7346 |               "type": "string",
7347 |               "nullable": true
7348 |             },
7349 |             "sms_template": {
7350 |               "type": "string",
7351 |               "nullable": true
7352 |             },
7353 |             "sms_test_otp": {
7354 |               "type": "string",
7355 |               "nullable": true
7356 |             },
7357 |             "sms_test_otp_valid_until": {
7358 |               "type": "string",
7359 |               "nullable": true
7360 |             },
7361 |             "sms_textlocal_api_key": {
7362 |               "type": "string",
7363 |               "nullable": true
7364 |             },
7365 |             "sms_textlocal_sender": {
7366 |               "type": "string",
7367 |               "nullable": true
7368 |             },
7369 |             "sms_twilio_account_sid": {
7370 |               "type": "string",
7371 |               "nullable": true
7372 |             },
7373 |             "sms_twilio_auth_token": {
7374 |               "type": "string",
7375 |               "nullable": true
7376 |             },
7377 |             "sms_twilio_content_sid": {
7378 |               "type": "string",
7379 |               "nullable": true
7380 |             },
7381 |             "sms_twilio_message_service_sid": {
7382 |               "type": "string",
7383 |               "nullable": true
7384 |             },
7385 |             "sms_twilio_verify_account_sid": {
7386 |               "type": "string",
7387 |               "nullable": true
7388 |             },
7389 |             "sms_twilio_verify_auth_token": {
7390 |               "type": "string",
7391 |               "nullable": true
7392 |             },
7393 |             "sms_twilio_verify_message_service_sid": {
7394 |               "type": "string",
7395 |               "nullable": true
7396 |             },
7397 |             "sms_vonage_api_key": {
7398 |               "type": "string",
7399 |               "nullable": true
7400 |             },
7401 |             "sms_vonage_api_secret": {
7402 |               "type": "string",
7403 |               "nullable": true
7404 |             },
7405 |             "sms_vonage_from": {
7406 |               "type": "string",
7407 |               "nullable": true
7408 |             },
7409 |             "smtp_admin_email": {
7410 |               "type": "string",
7411 |               "nullable": true
7412 |             },
7413 |             "smtp_host": {
7414 |               "type": "string",
7415 |               "nullable": true
7416 |             },
7417 |             "smtp_pass": {
7418 |               "type": "string",
7419 |               "nullable": true
7420 |             },
7421 |             "smtp_port": {
7422 |               "type": "string",
7423 |               "nullable": true
7424 |             },
7425 |             "smtp_sender_name": {
7426 |               "type": "string",
7427 |               "nullable": true
7428 |             },
7429 |             "smtp_user": {
7430 |               "type": "string",
7431 |               "nullable": true
7432 |             },
7433 |             "uri_allow_list": {
7434 |               "type": "string",
7435 |               "nullable": true
7436 |             }
7437 |           },
7438 |           "required": [
7439 |             "api_max_request_duration",
7440 |             "db_max_pool_size",
7441 |             "jwt_exp",
7442 |             "mailer_otp_exp",
7443 |             "mailer_otp_length",
7444 |             "mfa_max_enrolled_factors",
7445 |             "mfa_phone_otp_length",
7446 |             "mfa_phone_max_frequency",
7447 |             "password_min_length",
7448 |             "rate_limit_anonymous_users",
7449 |             "rate_limit_email_sent",
7450 |             "rate_limit_sms_sent",
7451 |             "rate_limit_token_refresh",
7452 |             "rate_limit_verify",
7453 |             "rate_limit_otp",
7454 |             "security_refresh_token_reuse_interval",
7455 |             "sessions_inactivity_timeout",
7456 |             "sessions_timebox",
7457 |             "sms_max_frequency",
7458 |             "sms_otp_exp",
7459 |             "sms_otp_length",
7460 |             "smtp_max_frequency",
7461 |             "disable_signup",
7462 |             "external_anonymous_users_enabled",
7463 |             "external_apple_additional_client_ids",
7464 |             "external_apple_client_id",
7465 |             "external_apple_enabled",
7466 |             "external_apple_secret",
7467 |             "external_azure_client_id",
7468 |             "external_azure_enabled",
7469 |             "external_azure_secret",
7470 |             "external_azure_url",
7471 |             "external_bitbucket_client_id",
7472 |             "external_bitbucket_enabled",
7473 |             "external_bitbucket_secret",
7474 |             "external_discord_client_id",
7475 |             "external_discord_enabled",
7476 |             "external_discord_secret",
7477 |             "external_email_enabled",
7478 |             "external_facebook_client_id",
7479 |             "external_facebook_enabled",
7480 |             "external_facebook_secret",
7481 |             "external_figma_client_id",
7482 |             "external_figma_enabled",
7483 |             "external_figma_secret",
7484 |             "external_github_client_id",
7485 |             "external_github_enabled",
7486 |             "external_github_secret",
7487 |             "external_gitlab_client_id",
7488 |             "external_gitlab_enabled",
7489 |             "external_gitlab_secret",
7490 |             "external_gitlab_url",
7491 |             "external_google_additional_client_ids",
7492 |             "external_google_client_id",
7493 |             "external_google_enabled",
7494 |             "external_google_secret",
7495 |             "external_google_skip_nonce_check",
7496 |             "external_kakao_client_id",
7497 |             "external_kakao_enabled",
7498 |             "external_kakao_secret",
7499 |             "external_keycloak_client_id",
7500 |             "external_keycloak_enabled",
7501 |             "external_keycloak_secret",
7502 |             "external_keycloak_url",
7503 |             "external_linkedin_oidc_client_id",
7504 |             "external_linkedin_oidc_enabled",
7505 |             "external_linkedin_oidc_secret",
7506 |             "external_slack_oidc_client_id",
7507 |             "external_slack_oidc_enabled",
7508 |             "external_slack_oidc_secret",
7509 |             "external_notion_client_id",
7510 |             "external_notion_enabled",
7511 |             "external_notion_secret",
7512 |             "external_phone_enabled",
7513 |             "external_slack_client_id",
7514 |             "external_slack_enabled",
7515 |             "external_slack_secret",
7516 |             "external_spotify_client_id",
7517 |             "external_spotify_enabled",
7518 |             "external_spotify_secret",
7519 |             "external_twitch_client_id",
7520 |             "external_twitch_enabled",
7521 |             "external_twitch_secret",
7522 |             "external_twitter_client_id",
7523 |             "external_twitter_enabled",
7524 |             "external_twitter_secret",
7525 |             "external_workos_client_id",
7526 |             "external_workos_enabled",
7527 |             "external_workos_secret",
7528 |             "external_workos_url",
7529 |             "external_zoom_client_id",
7530 |             "external_zoom_enabled",
7531 |             "external_zoom_secret",
7532 |             "hook_custom_access_token_enabled",
7533 |             "hook_custom_access_token_uri",
7534 |             "hook_custom_access_token_secrets",
7535 |             "hook_mfa_verification_attempt_enabled",
7536 |             "hook_mfa_verification_attempt_uri",
7537 |             "hook_mfa_verification_attempt_secrets",
7538 |             "hook_password_verification_attempt_enabled",
7539 |             "hook_password_verification_attempt_uri",
7540 |             "hook_password_verification_attempt_secrets",
7541 |             "hook_send_sms_enabled",
7542 |             "hook_send_sms_uri",
7543 |             "hook_send_sms_secrets",
7544 |             "hook_send_email_enabled",
7545 |             "hook_send_email_uri",
7546 |             "hook_send_email_secrets",
7547 |             "mailer_allow_unverified_email_sign_ins",
7548 |             "mailer_autoconfirm",
7549 |             "mailer_secure_email_change_enabled",
7550 |             "mailer_subjects_confirmation",
7551 |             "mailer_subjects_email_change",
7552 |             "mailer_subjects_invite",
7553 |             "mailer_subjects_magic_link",
7554 |             "mailer_subjects_reauthentication",
7555 |             "mailer_subjects_recovery",
7556 |             "mailer_templates_confirmation_content",
7557 |             "mailer_templates_email_change_content",
7558 |             "mailer_templates_invite_content",
7559 |             "mailer_templates_magic_link_content",
7560 |             "mailer_templates_reauthentication_content",
7561 |             "mailer_templates_recovery_content",
7562 |             "mfa_totp_enroll_enabled",
7563 |             "mfa_totp_verify_enabled",
7564 |             "mfa_phone_enroll_enabled",
7565 |             "mfa_phone_verify_enabled",
7566 |             "mfa_web_authn_enroll_enabled",
7567 |             "mfa_web_authn_verify_enabled",
7568 |             "mfa_phone_template",
7569 |             "password_hibp_enabled",
7570 |             "password_required_characters",
7571 |             "refresh_token_rotation_enabled",
7572 |             "saml_enabled",
7573 |             "saml_external_url",
7574 |             "saml_allow_encrypted_assertions",
7575 |             "security_captcha_enabled",
7576 |             "security_captcha_provider",
7577 |             "security_captcha_secret",
7578 |             "security_manual_linking_enabled",
7579 |             "security_update_password_require_reauthentication",
7580 |             "sessions_single_per_user",
7581 |             "sessions_tags",
7582 |             "site_url",
7583 |             "sms_autoconfirm",
7584 |             "sms_messagebird_access_key",
7585 |             "sms_messagebird_originator",
7586 |             "sms_provider",
7587 |             "sms_template",
7588 |             "sms_test_otp",
7589 |             "sms_test_otp_valid_until",
7590 |             "sms_textlocal_api_key",
7591 |             "sms_textlocal_sender",
7592 |             "sms_twilio_account_sid",
7593 |             "sms_twilio_auth_token",
7594 |             "sms_twilio_content_sid",
7595 |             "sms_twilio_message_service_sid",
7596 |             "sms_twilio_verify_account_sid",
7597 |             "sms_twilio_verify_auth_token",
7598 |             "sms_twilio_verify_message_service_sid",
7599 |             "sms_vonage_api_key",
7600 |             "sms_vonage_api_secret",
7601 |             "sms_vonage_from",
7602 |             "smtp_admin_email",
7603 |             "smtp_host",
7604 |             "smtp_pass",
7605 |             "smtp_port",
7606 |             "smtp_sender_name",
7607 |             "smtp_user",
7608 |             "uri_allow_list"
7609 |           ]
7610 |         },
7611 |         "UpdateAuthConfigBody": {
7612 |           "type": "object",
7613 |           "properties": {
7614 |             "jwt_exp": {
7615 |               "type": "integer",
7616 |               "minimum": 0,
7617 |               "maximum": 604800
7618 |             },
7619 |             "smtp_max_frequency": {
7620 |               "type": "integer",
7621 |               "minimum": 0,
7622 |               "maximum": 32767
7623 |             },
7624 |             "mfa_max_enrolled_factors": {
7625 |               "type": "integer",
7626 |               "minimum": 0,
7627 |               "maximum": 2147483647
7628 |             },
7629 |             "sessions_timebox": {
7630 |               "type": "integer",
7631 |               "minimum": 0
7632 |             },
7633 |             "sessions_inactivity_timeout": {
7634 |               "type": "integer",
7635 |               "minimum": 0
7636 |             },
7637 |             "rate_limit_anonymous_users": {
7638 |               "type": "integer",
7639 |               "minimum": 1,
7640 |               "maximum": 2147483647
7641 |             },
7642 |             "rate_limit_email_sent": {
7643 |               "type": "integer",
7644 |               "minimum": 1,
7645 |               "maximum": 2147483647
7646 |             },
7647 |             "rate_limit_sms_sent": {
7648 |               "type": "integer",
7649 |               "minimum": 1,
7650 |               "maximum": 2147483647
7651 |             },
7652 |             "rate_limit_verify": {
7653 |               "type": "integer",
7654 |               "minimum": 1,
7655 |               "maximum": 2147483647
7656 |             },
7657 |             "rate_limit_token_refresh": {
7658 |               "type": "integer",
7659 |               "minimum": 1,
7660 |               "maximum": 2147483647
7661 |             },
7662 |             "rate_limit_otp": {
7663 |               "type": "integer",
7664 |               "minimum": 1,
7665 |               "maximum": 2147483647
7666 |             },
7667 |             "password_min_length": {
7668 |               "type": "integer",
7669 |               "minimum": 6,
7670 |               "maximum": 32767
7671 |             },
7672 |             "security_refresh_token_reuse_interval": {
7673 |               "type": "integer",
7674 |               "minimum": 0,
7675 |               "maximum": 2147483647
7676 |             },
7677 |             "mailer_otp_exp": {
7678 |               "type": "integer",
7679 |               "minimum": 0,
7680 |               "maximum": 2147483647
7681 |             },
7682 |             "mailer_otp_length": {
7683 |               "type": "integer",
7684 |               "minimum": 6,
7685 |               "maximum": 10
7686 |             },
7687 |             "sms_max_frequency": {
7688 |               "type": "integer",
7689 |               "minimum": 0,
7690 |               "maximum": 32767
7691 |             },
7692 |             "sms_otp_exp": {
7693 |               "type": "integer",
7694 |               "minimum": 0,
7695 |               "maximum": 2147483647
7696 |             },
7697 |             "sms_otp_length": {
7698 |               "type": "integer",
7699 |               "minimum": 0,
7700 |               "maximum": 32767
7701 |             },
7702 |             "db_max_pool_size": {
7703 |               "type": "integer"
7704 |             },
7705 |             "api_max_request_duration": {
7706 |               "type": "integer"
7707 |             },
7708 |             "mfa_phone_max_frequency": {
7709 |               "type": "integer",
7710 |               "minimum": 0,
7711 |               "maximum": 32767
7712 |             },
7713 |             "mfa_phone_otp_length": {
7714 |               "type": "integer",
7715 |               "minimum": 0,
7716 |               "maximum": 32767
7717 |             },
7718 |             "site_url": {
7719 |               "type": "string",
7720 |               "pattern": "/^[^,]+$/"
7721 |             },
7722 |             "disable_signup": {
7723 |               "type": "boolean"
7724 |             },
7725 |             "smtp_admin_email": {
7726 |               "type": "string"
7727 |             },
7728 |             "smtp_host": {
7729 |               "type": "string"
7730 |             },
7731 |             "smtp_port": {
7732 |               "type": "string"
7733 |             },
7734 |             "smtp_user": {
7735 |               "type": "string"
7736 |             },
7737 |             "smtp_pass": {
7738 |               "type": "string"
7739 |             },
7740 |             "smtp_sender_name": {
7741 |               "type": "string"
7742 |             },
7743 |             "mailer_allow_unverified_email_sign_ins": {
7744 |               "type": "boolean"
7745 |             },
7746 |             "mailer_autoconfirm": {
7747 |               "type": "boolean"
7748 |             },
7749 |             "mailer_subjects_invite": {
7750 |               "type": "string"
7751 |             },
7752 |             "mailer_subjects_confirmation": {
7753 |               "type": "string"
7754 |             },
7755 |             "mailer_subjects_recovery": {
7756 |               "type": "string"
7757 |             },
7758 |             "mailer_subjects_email_change": {
7759 |               "type": "string"
7760 |             },
7761 |             "mailer_subjects_magic_link": {
7762 |               "type": "string"
7763 |             },
7764 |             "mailer_subjects_reauthentication": {
7765 |               "type": "string"
7766 |             },
7767 |             "mailer_templates_invite_content": {
7768 |               "type": "string"
7769 |             },
7770 |             "mailer_templates_confirmation_content": {
7771 |               "type": "string"
7772 |             },
7773 |             "mailer_templates_recovery_content": {
7774 |               "type": "string"
7775 |             },
7776 |             "mailer_templates_email_change_content": {
7777 |               "type": "string"
7778 |             },
7779 |             "mailer_templates_magic_link_content": {
7780 |               "type": "string"
7781 |             },
7782 |             "mailer_templates_reauthentication_content": {
7783 |               "type": "string"
7784 |             },
7785 |             "uri_allow_list": {
7786 |               "type": "string"
7787 |             },
7788 |             "external_anonymous_users_enabled": {
7789 |               "type": "boolean"
7790 |             },
7791 |             "external_email_enabled": {
7792 |               "type": "boolean"
7793 |             },
7794 |             "external_phone_enabled": {
7795 |               "type": "boolean"
7796 |             },
7797 |             "saml_enabled": {
7798 |               "type": "boolean"
7799 |             },
7800 |             "saml_external_url": {
7801 |               "type": "string",
7802 |               "pattern": "/^[^,]+$/"
7803 |             },
7804 |             "security_captcha_enabled": {
7805 |               "type": "boolean"
7806 |             },
7807 |             "security_captcha_provider": {
7808 |               "type": "string"
7809 |             },
7810 |             "security_captcha_secret": {
7811 |               "type": "string"
7812 |             },
7813 |             "sessions_single_per_user": {
7814 |               "type": "boolean"
7815 |             },
7816 |             "sessions_tags": {
7817 |               "type": "string",
7818 |               "pattern": "/^\\s*([a-z0-9_-]+(\\s*,+\\s*)?)*\\s*$/i"
7819 |             },
7820 |             "mailer_secure_email_change_enabled": {
7821 |               "type": "boolean"
7822 |             },
7823 |             "refresh_token_rotation_enabled": {
7824 |               "type": "boolean"
7825 |             },
7826 |             "password_hibp_enabled": {
7827 |               "type": "boolean"
7828 |             },
7829 |             "password_required_characters": {
7830 |               "type": "string",
7831 |               "enum": [
7832 |                 "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789",
7833 |                 "abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789",
7834 |                 "abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789:!@#$%^&*()_+-=[]{};'\\\\:\"|\u003C\u003E?,./`~",
7835 |                 ""
7836 |               ]
7837 |             },
7838 |             "security_manual_linking_enabled": {
7839 |               "type": "boolean"
7840 |             },
7841 |             "security_update_password_require_reauthentication": {
7842 |               "type": "boolean"
7843 |             },
7844 |             "sms_autoconfirm": {
7845 |               "type": "boolean"
7846 |             },
7847 |             "sms_provider": {
7848 |               "type": "string"
7849 |             },
7850 |             "sms_messagebird_access_key": {
7851 |               "type": "string"
7852 |             },
7853 |             "sms_messagebird_originator": {
7854 |               "type": "string"
7855 |             },
7856 |             "sms_test_otp": {
7857 |               "type": "string",
7858 |               "pattern": "/^([0-9]{1,15}=[0-9]+,?)*$/"
7859 |             },
7860 |             "sms_test_otp_valid_until": {
7861 |               "type": "string"
7862 |             },
7863 |             "sms_textlocal_api_key": {
7864 |               "type": "string"
7865 |             },
7866 |             "sms_textlocal_sender": {
7867 |               "type": "string"
7868 |             },
7869 |             "sms_twilio_account_sid": {
7870 |               "type": "string"
7871 |             },
7872 |             "sms_twilio_auth_token": {
7873 |               "type": "string"
7874 |             },
7875 |             "sms_twilio_content_sid": {
7876 |               "type": "string"
7877 |             },
7878 |             "sms_twilio_message_service_sid": {
7879 |               "type": "string"
7880 |             },
7881 |             "sms_twilio_verify_account_sid": {
7882 |               "type": "string"
7883 |             },
7884 |             "sms_twilio_verify_auth_token": {
7885 |               "type": "string"
7886 |             },
7887 |             "sms_twilio_verify_message_service_sid": {
7888 |               "type": "string"
7889 |             },
7890 |             "sms_vonage_api_key": {
7891 |               "type": "string"
7892 |             },
7893 |             "sms_vonage_api_secret": {
7894 |               "type": "string"
7895 |             },
7896 |             "sms_vonage_from": {
7897 |               "type": "string"
7898 |             },
7899 |             "sms_template": {
7900 |               "type": "string"
7901 |             },
7902 |             "hook_mfa_verification_attempt_enabled": {
7903 |               "type": "boolean"
7904 |             },
7905 |             "hook_mfa_verification_attempt_uri": {
7906 |               "type": "string"
7907 |             },
7908 |             "hook_mfa_verification_attempt_secrets": {
7909 |               "type": "string"
7910 |             },
7911 |             "hook_password_verification_attempt_enabled": {
7912 |               "type": "boolean"
7913 |             },
7914 |             "hook_password_verification_attempt_uri": {
7915 |               "type": "string"
7916 |             },
7917 |             "hook_password_verification_attempt_secrets": {
7918 |               "type": "string"
7919 |             },
7920 |             "hook_custom_access_token_enabled": {
7921 |               "type": "boolean"
7922 |             },
7923 |             "hook_custom_access_token_uri": {
7924 |               "type": "string"
7925 |             },
7926 |             "hook_custom_access_token_secrets": {
7927 |               "type": "string"
7928 |             },
7929 |             "hook_send_sms_enabled": {
7930 |               "type": "boolean"
7931 |             },
7932 |             "hook_send_sms_uri": {
7933 |               "type": "string"
7934 |             },
7935 |             "hook_send_sms_secrets": {
7936 |               "type": "string"
7937 |             },
7938 |             "hook_send_email_enabled": {
7939 |               "type": "boolean"
7940 |             },
7941 |             "hook_send_email_uri": {
7942 |               "type": "string"
7943 |             },
7944 |             "hook_send_email_secrets": {
7945 |               "type": "string"
7946 |             },
7947 |             "external_apple_enabled": {
7948 |               "type": "boolean"
7949 |             },
7950 |             "external_apple_client_id": {
7951 |               "type": "string"
7952 |             },
7953 |             "external_apple_secret": {
7954 |               "type": "string"
7955 |             },
7956 |             "external_apple_additional_client_ids": {
7957 |               "type": "string"
7958 |             },
7959 |             "external_azure_enabled": {
7960 |               "type": "boolean"
7961 |             },
7962 |             "external_azure_client_id": {
7963 |               "type": "string"
7964 |             },
7965 |             "external_azure_secret": {
7966 |               "type": "string"
7967 |             },
7968 |             "external_azure_url": {
7969 |               "type": "string"
7970 |             },
7971 |             "external_bitbucket_enabled": {
7972 |               "type": "boolean"
7973 |             },
7974 |             "external_bitbucket_client_id": {
7975 |               "type": "string"
7976 |             },
7977 |             "external_bitbucket_secret": {
7978 |               "type": "string"
7979 |             },
7980 |             "external_discord_enabled": {
7981 |               "type": "boolean"
7982 |             },
7983 |             "external_discord_client_id": {
7984 |               "type": "string"
7985 |             },
7986 |             "external_discord_secret": {
7987 |               "type": "string"
7988 |             },
7989 |             "external_facebook_enabled": {
7990 |               "type": "boolean"
7991 |             },
7992 |             "external_facebook_client_id": {
7993 |               "type": "string"
7994 |             },
7995 |             "external_facebook_secret": {
7996 |               "type": "string"
7997 |             },
7998 |             "external_figma_enabled": {
7999 |               "type": "boolean"
8000 |             },
8001 |             "external_figma_client_id": {
8002 |               "type": "string"
8003 |             },
8004 |             "external_figma_secret": {
8005 |               "type": "string"
8006 |             },
8007 |             "external_github_enabled": {
8008 |               "type": "boolean"
8009 |             },
8010 |             "external_github_client_id": {
8011 |               "type": "string"
8012 |             },
8013 |             "external_github_secret": {
8014 |               "type": "string"
8015 |             },
8016 |             "external_gitlab_enabled": {
8017 |               "type": "boolean"
8018 |             },
8019 |             "external_gitlab_client_id": {
8020 |               "type": "string"
8021 |             },
8022 |             "external_gitlab_secret": {
8023 |               "type": "string"
8024 |             },
8025 |             "external_gitlab_url": {
8026 |               "type": "string"
8027 |             },
8028 |             "external_google_enabled": {
8029 |               "type": "boolean"
8030 |             },
8031 |             "external_google_client_id": {
8032 |               "type": "string"
8033 |             },
8034 |             "external_google_secret": {
8035 |               "type": "string"
8036 |             },
8037 |             "external_google_additional_client_ids": {
8038 |               "type": "string"
8039 |             },
8040 |             "external_google_skip_nonce_check": {
8041 |               "type": "boolean"
8042 |             },
8043 |             "external_kakao_enabled": {
8044 |               "type": "boolean"
8045 |             },
8046 |             "external_kakao_client_id": {
8047 |               "type": "string"
8048 |             },
8049 |             "external_kakao_secret": {
8050 |               "type": "string"
8051 |             },
8052 |             "external_keycloak_enabled": {
8053 |               "type": "boolean"
8054 |             },
8055 |             "external_keycloak_client_id": {
8056 |               "type": "string"
8057 |             },
8058 |             "external_keycloak_secret": {
8059 |               "type": "string"
8060 |             },
8061 |             "external_keycloak_url": {
8062 |               "type": "string"
8063 |             },
8064 |             "external_linkedin_oidc_enabled": {
8065 |               "type": "boolean"
8066 |             },
8067 |             "external_linkedin_oidc_client_id": {
8068 |               "type": "string"
8069 |             },
8070 |             "external_linkedin_oidc_secret": {
8071 |               "type": "string"
8072 |             },
8073 |             "external_slack_oidc_enabled": {
8074 |               "type": "boolean"
8075 |             },
8076 |             "external_slack_oidc_client_id": {
8077 |               "type": "string"
8078 |             },
8079 |             "external_slack_oidc_secret": {
8080 |               "type": "string"
8081 |             },
8082 |             "external_notion_enabled": {
8083 |               "type": "boolean"
8084 |             },
8085 |             "external_notion_client_id": {
8086 |               "type": "string"
8087 |             },
8088 |             "external_notion_secret": {
8089 |               "type": "string"
8090 |             },
8091 |             "external_slack_enabled": {
8092 |               "type": "boolean"
8093 |             },
8094 |             "external_slack_client_id": {
8095 |               "type": "string"
8096 |             },
8097 |             "external_slack_secret": {
8098 |               "type": "string"
8099 |             },
8100 |             "external_spotify_enabled": {
8101 |               "type": "boolean"
8102 |             },
8103 |             "external_spotify_client_id": {
8104 |               "type": "string"
8105 |             },
8106 |             "external_spotify_secret": {
8107 |               "type": "string"
8108 |             },
8109 |             "external_twitch_enabled": {
8110 |               "type": "boolean"
8111 |             },
8112 |             "external_twitch_client_id": {
8113 |               "type": "string"
8114 |             },
8115 |             "external_twitch_secret": {
8116 |               "type": "string"
8117 |             },
8118 |             "external_twitter_enabled": {
8119 |               "type": "boolean"
8120 |             },
8121 |             "external_twitter_client_id": {
8122 |               "type": "string"
8123 |             },
8124 |             "external_twitter_secret": {
8125 |               "type": "string"
8126 |             },
8127 |             "external_workos_enabled": {
8128 |               "type": "boolean"
8129 |             },
8130 |             "external_workos_client_id": {
8131 |               "type": "string"
8132 |             },
8133 |             "external_workos_secret": {
8134 |               "type": "string"
8135 |             },
8136 |             "external_workos_url": {
8137 |               "type": "string"
8138 |             },
8139 |             "external_zoom_enabled": {
8140 |               "type": "boolean"
8141 |             },
8142 |             "external_zoom_client_id": {
8143 |               "type": "string"
8144 |             },
8145 |             "external_zoom_secret": {
8146 |               "type": "string"
8147 |             },
8148 |             "mfa_totp_enroll_enabled": {
8149 |               "type": "boolean"
8150 |             },
8151 |             "mfa_totp_verify_enabled": {
8152 |               "type": "boolean"
8153 |             },
8154 |             "mfa_web_authn_enroll_enabled": {
8155 |               "type": "boolean"
8156 |             },
8157 |             "mfa_web_authn_verify_enabled": {
8158 |               "type": "boolean"
8159 |             },
8160 |             "mfa_phone_enroll_enabled": {
8161 |               "type": "boolean"
8162 |             },
8163 |             "mfa_phone_verify_enabled": {
8164 |               "type": "boolean"
8165 |             },
8166 |             "mfa_phone_template": {
8167 |               "type": "string"
8168 |             }
8169 |           }
8170 |         },
8171 |         "CreateThirdPartyAuthBody": {
8172 |           "type": "object",
8173 |           "properties": {
8174 |             "oidc_issuer_url": {
8175 |               "type": "string"
8176 |             },
8177 |             "jwks_url": {
8178 |               "type": "string"
8179 |             },
8180 |             "custom_jwks": {
8181 |               "type": "object"
8182 |             }
8183 |           }
8184 |         },
8185 |         "ThirdPartyAuth": {
8186 |           "type": "object",
8187 |           "properties": {
8188 |             "id": {
8189 |               "type": "string"
8190 |             },
8191 |             "type": {
8192 |               "type": "string"
8193 |             },
8194 |             "oidc_issuer_url": {
8195 |               "type": "string",
8196 |               "nullable": true
8197 |             },
8198 |             "jwks_url": {
8199 |               "type": "string",
8200 |               "nullable": true
8201 |             },
8202 |             "custom_jwks": {
8203 |               "type": "object",
8204 |               "nullable": true
8205 |             },
8206 |             "resolved_jwks": {
8207 |               "type": "object",
8208 |               "nullable": true
8209 |             },
8210 |             "inserted_at": {
8211 |               "type": "string"
8212 |             },
8213 |             "updated_at": {
8214 |               "type": "string"
8215 |             },
8216 |             "resolved_at": {
8217 |               "type": "string",
8218 |               "nullable": true
8219 |             }
8220 |           },
8221 |           "required": [
8222 |             "id",
8223 |             "type",
8224 |             "inserted_at",
8225 |             "updated_at"
8226 |           ]
8227 |         },
8228 |         "ProjectAvailableRestoreVersion": {
8229 |           "type": "object",
8230 |           "properties": {
8231 |             "version": {
8232 |               "type": "string"
8233 |             },
8234 |             "release_channel": {
8235 |               "type": "string",
8236 |               "enum": [
8237 |                 "internal",
8238 |                 "alpha",
8239 |                 "beta",
8240 |                 "ga",
8241 |                 "withdrawn",
8242 |                 "preview"
8243 |               ]
8244 |             },
8245 |             "postgres_engine": {
8246 |               "type": "string",
8247 |               "enum": [
8248 |                 "13",
8249 |                 "14",
8250 |                 "15",
8251 |                 "17",
8252 |                 "17-oriole"
8253 |               ]
8254 |             }
8255 |           },
8256 |           "required": [
8257 |             "version",
8258 |             "release_channel",
8259 |             "postgres_engine"
8260 |           ]
8261 |         },
8262 |         "GetProjectAvailableRestoreVersionsResponse": {
8263 |           "type": "object",
8264 |           "properties": {
8265 |             "available_versions": {
8266 |               "type": "array",
8267 |               "items": {
8268 |                 "$ref": "#/components/schemas/ProjectAvailableRestoreVersion"
8269 |               }
8270 |             }
8271 |           },
8272 |           "required": [
8273 |             "available_versions"
8274 |           ]
8275 |         },
8276 |         "RestoreProjectBodyDto": {
8277 |           "type": "object",
8278 |           "properties": {
8279 | 
8280 |           },
8281 |           "hideDefinitions": [
8282 |             "release_channel",
8283 |             "postgres_engine"
8284 |           ]
8285 |         },
8286 |         "V1AnalyticsResponse": {
8287 |           "type": "object",
8288 |           "properties": {
8289 |             "error": {
8290 |               "oneOf": [
8291 |                 {
8292 |                   "properties": {
8293 |                     "code": {
8294 |                       "type": "number"
8295 |                     },
8296 |                     "errors": {
8297 |                       "type": "array",
8298 |                       "items": {
8299 |                         "properties": {
8300 |                           "domain": {
8301 |                             "type": "string"
8302 |                           },
8303 |                           "location": {
8304 |                             "type": "string"
8305 |                           },
8306 |                           "locationType": {
8307 |                             "type": "string"
8308 |                           },
8309 |                           "message": {
8310 |                             "type": "string"
8311 |                           },
8312 |                           "reason": {
8313 |                             "type": "string"
8314 |                           }
8315 |                         }
8316 |                       }
8317 |                     },
8318 |                     "message": {
8319 |                       "type": "string"
8320 |                     },
8321 |                     "status": {
8322 |                       "type": "string"
8323 |                     }
8324 |                   }
8325 |                 },
8326 |                 {
8327 |                   "type": "string"
8328 |                 }
8329 |               ]
8330 |             },
8331 |             "result": {
8332 |               "type": "array",
8333 |               "items": {
8334 |                 "type": "object"
8335 |               }
8336 |             }
8337 |           }
8338 |         },
8339 |         "V1RunQueryBody": {
8340 |           "type": "object",
8341 |           "properties": {
8342 |             "query": {
8343 |               "type": "string"
8344 |             }
8345 |           },
8346 |           "required": [
8347 |             "query"
8348 |           ]
8349 |         },
8350 |         "GetProjectDbMetadataResponseDto": {
8351 |           "type": "object",
8352 |           "properties": {
8353 |             "databases": {
8354 |               "type": "array",
8355 |               "items": {
8356 |                 "type": "object",
8357 |                 "properties": {
8358 |                   "name": {
8359 |                     "type": "string"
8360 |                   },
8361 |                   "schemas": {
8362 |                     "type": "array",
8363 |                     "items": {
8364 |                       "type": "object",
8365 |                       "properties": {
8366 |                         "name": {
8367 |                           "type": "string"
8368 |                         }
8369 |                       },
8370 |                       "required": [
8371 |                         "name"
8372 |                       ],
8373 |                       "additionalProperties": true
8374 |                     }
8375 |                   }
8376 |                 },
8377 |                 "required": [
8378 |                   "name",
8379 |                   "schemas"
8380 |                 ],
8381 |                 "additionalProperties": true
8382 |               }
8383 |             }
8384 |           },
8385 |           "required": [
8386 |             "databases"
8387 |           ]
8388 |         },
8389 |         "FunctionResponse": {
8390 |           "type": "object",
8391 |           "properties": {
8392 |             "version": {
8393 |               "type": "integer"
8394 |             },
8395 |             "created_at": {
8396 |               "type": "integer",
8397 |               "format": "int64"
8398 |             },
8399 |             "updated_at": {
8400 |               "type": "integer",
8401 |               "format": "int64"
8402 |             },
8403 |             "id": {
8404 |               "type": "string"
8405 |             },
8406 |             "slug": {
8407 |               "type": "string"
8408 |             },
8409 |             "name": {
8410 |               "type": "string"
8411 |             },
8412 |             "status": {
8413 |               "enum": [
8414 |                 "ACTIVE",
8415 |                 "REMOVED",
8416 |                 "THROTTLED"
8417 |               ],
8418 |               "type": "string"
8419 |             },
8420 |             "verify_jwt": {
8421 |               "type": "boolean"
8422 |             },
8423 |             "import_map": {
8424 |               "type": "boolean"
8425 |             },
8426 |             "entrypoint_path": {
8427 |               "type": "string"
8428 |             },
8429 |             "import_map_path": {
8430 |               "type": "string"
8431 |             }
8432 |           },
8433 |           "required": [
8434 |             "version",
8435 |             "created_at",
8436 |             "updated_at",
8437 |             "id",
8438 |             "slug",
8439 |             "name",
8440 |             "status"
8441 |           ]
8442 |         },
8443 |         "V1CreateFunctionBody": {
8444 |           "type": "object",
8445 |           "properties": {
8446 |             "slug": {
8447 |               "type": "string",
8448 |               "pattern": "/^[A-Za-z0-9_-]+$/"
8449 |             },
8450 |             "name": {
8451 |               "type": "string"
8452 |             },
8453 |             "body": {
8454 |               "type": "string"
8455 |             },
8456 |             "verify_jwt": {
8457 |               "type": "boolean"
8458 |             }
8459 |           },
8460 |           "required": [
8461 |             "slug",
8462 |             "name",
8463 |             "body"
8464 |           ]
8465 |         },
8466 |         "BulkUpdateFunctionBody": {
8467 |           "type": "object",
8468 |           "properties": {
8469 |             "version": {
8470 |               "type": "integer"
8471 |             },
8472 |             "created_at": {
8473 |               "type": "integer",
8474 |               "format": "int64"
8475 |             },
8476 |             "id": {
8477 |               "type": "string"
8478 |             },
8479 |             "slug": {
8480 |               "type": "string"
8481 |             },
8482 |             "name": {
8483 |               "type": "string"
8484 |             },
8485 |             "status": {
8486 |               "enum": [
8487 |                 "ACTIVE",
8488 |                 "REMOVED",
8489 |                 "THROTTLED"
8490 |               ],
8491 |               "type": "string"
8492 |             },
8493 |             "verify_jwt": {
8494 |               "type": "boolean"
8495 |             },
8496 |             "import_map": {
8497 |               "type": "boolean"
8498 |             },
8499 |             "entrypoint_path": {
8500 |               "type": "string"
8501 |             },
8502 |             "import_map_path": {
8503 |               "type": "string"
8504 |             }
8505 |           },
8506 |           "required": [
8507 |             "version",
8508 |             "id",
8509 |             "slug",
8510 |             "name",
8511 |             "status"
8512 |           ]
8513 |         },
8514 |         "BulkUpdateFunctionResponse": {
8515 |           "type": "object",
8516 |           "properties": {
8517 |             "functions": {
8518 |               "type": "array",
8519 |               "items": {
8520 |                 "$ref": "#/components/schemas/FunctionResponse"
8521 |               }
8522 |             }
8523 |           },
8524 |           "required": [
8525 |             "functions"
8526 |           ]
8527 |         },
8528 |         "FunctionDeployMetadata": {
8529 |           "type": "object",
8530 |           "properties": {
8531 |             "entrypoint_path": {
8532 |               "type": "string"
8533 |             },
8534 |             "import_map_path": {
8535 |               "type": "string"
8536 |             },
8537 |             "static_patterns": {
8538 |               "type": "array",
8539 |               "items": {
8540 |                 "type": "string"
8541 |               }
8542 |             },
8543 |             "verify_jwt": {
8544 |               "type": "boolean"
8545 |             },
8546 |             "name": {
8547 |               "type": "string"
8548 |             }
8549 |           },
8550 |           "required": [
8551 |             "entrypoint_path"
8552 |           ]
8553 |         },
8554 |         "FunctionDeployBody": {
8555 |           "type": "object",
8556 |           "properties": {
8557 |             "file": {
8558 |               "type": "array",
8559 |               "items": {
8560 |                 "type": "string",
8561 |                 "format": "binary"
8562 |               }
8563 |             },
8564 |             "metadata": {
8565 |               "$ref": "#/components/schemas/FunctionDeployMetadata"
8566 |             }
8567 |           },
8568 |           "required": [
8569 |             "file",
8570 |             "metadata"
8571 |           ]
8572 |         },
8573 |         "DeployFunctionResponse": {
8574 |           "type": "object",
8575 |           "properties": {
8576 |             "version": {
8577 |               "type": "integer"
8578 |             },
8579 |             "created_at": {
8580 |               "type": "integer",
8581 |               "format": "int64"
8582 |             },
8583 |             "updated_at": {
8584 |               "type": "integer",
8585 |               "format": "int64"
8586 |             },
8587 |             "id": {
8588 |               "type": "string"
8589 |             },
8590 |             "slug": {
8591 |               "type": "string"
8592 |             },
8593 |             "name": {
8594 |               "type": "string"
8595 |             },
8596 |             "status": {
8597 |               "enum": [
8598 |                 "ACTIVE",
8599 |                 "REMOVED",
8600 |                 "THROTTLED"
8601 |               ],
8602 |               "type": "string"
8603 |             },
8604 |             "verify_jwt": {
8605 |               "type": "boolean"
8606 |             },
8607 |             "import_map": {
8608 |               "type": "boolean"
8609 |             },
8610 |             "entrypoint_path": {
8611 |               "type": "string"
8612 |             },
8613 |             "import_map_path": {
8614 |               "type": "string"
8615 |             }
8616 |           },
8617 |           "required": [
8618 |             "version",
8619 |             "id",
8620 |             "slug",
8621 |             "name",
8622 |             "status"
8623 |           ]
8624 |         },
8625 |         "FunctionSlugResponse": {
8626 |           "type": "object",
8627 |           "properties": {
8628 |             "version": {
8629 |               "type": "integer"
8630 |             },
8631 |             "created_at": {
8632 |               "type": "integer",
8633 |               "format": "int64"
8634 |             },
8635 |             "updated_at": {
8636 |               "type": "integer",
8637 |               "format": "int64"
8638 |             },
8639 |             "id": {
8640 |               "type": "string"
8641 |             },
8642 |             "slug": {
8643 |               "type": "string"
8644 |             },
8645 |             "name": {
8646 |               "type": "string"
8647 |             },
8648 |             "status": {
8649 |               "enum": [
8650 |                 "ACTIVE",
8651 |                 "REMOVED",
8652 |                 "THROTTLED"
8653 |               ],
8654 |               "type": "string"
8655 |             },
8656 |             "verify_jwt": {
8657 |               "type": "boolean"
8658 |             },
8659 |             "import_map": {
8660 |               "type": "boolean"
8661 |             },
8662 |             "entrypoint_path": {
8663 |               "type": "string"
8664 |             },
8665 |             "import_map_path": {
8666 |               "type": "string"
8667 |             }
8668 |           },
8669 |           "required": [
8670 |             "version",
8671 |             "created_at",
8672 |             "updated_at",
8673 |             "id",
8674 |             "slug",
8675 |             "name",
8676 |             "status"
8677 |           ]
8678 |         },
8679 |         "V1UpdateFunctionBody": {
8680 |           "type": "object",
8681 |           "properties": {
8682 |             "name": {
8683 |               "type": "string"
8684 |             },
8685 |             "body": {
8686 |               "type": "string"
8687 |             },
8688 |             "verify_jwt": {
8689 |               "type": "boolean"
8690 |             }
8691 |           }
8692 |         },
8693 |         "V1StorageBucketResponse": {
8694 |           "type": "object",
8695 |           "properties": {
8696 |             "id": {
8697 |               "type": "string"
8698 |             },
8699 |             "name": {
8700 |               "type": "string"
8701 |             },
8702 |             "owner": {
8703 |               "type": "string"
8704 |             },
8705 |             "created_at": {
8706 |               "type": "string"
8707 |             },
8708 |             "updated_at": {
8709 |               "type": "string"
8710 |             },
8711 |             "public": {
8712 |               "type": "boolean"
8713 |             }
8714 |           },
8715 |           "required": [
8716 |             "id",
8717 |             "name",
8718 |             "owner",
8719 |             "created_at",
8720 |             "updated_at",
8721 |             "public"
8722 |           ]
8723 |         },
8724 |         "AttributeValue": {
8725 |           "type": "object",
8726 |           "properties": {
8727 |             "default": {
8728 |               "oneOf": [
8729 |                 {
8730 |                   "type": "object"
8731 |                 },
8732 |                 {
8733 |                   "type": "number"
8734 |                 },
8735 |                 {
8736 |                   "type": "string"
8737 |                 },
8738 |                 {
8739 |                   "type": "boolean"
8740 |                 }
8741 |               ]
8742 |             },
8743 |             "name": {
8744 |               "type": "string"
8745 |             },
8746 |             "names": {
8747 |               "type": "array",
8748 |               "items": {
8749 |                 "type": "string"
8750 |               }
8751 |             },
8752 |             "array": {
8753 |               "type": "boolean"
8754 |             }
8755 |           }
8756 |         },
8757 |         "AttributeMapping": {
8758 |           "type": "object",
8759 |           "properties": {
8760 |             "keys": {
8761 |               "type": "object",
8762 |               "additionalProperties": {
8763 |                 "$ref": "#/components/schemas/AttributeValue"
8764 |               }
8765 |             }
8766 |           },
8767 |           "required": [
8768 |             "keys"
8769 |           ]
8770 |         },
8771 |         "CreateProviderBody": {
8772 |           "type": "object",
8773 |           "properties": {
8774 |             "type": {
8775 |               "type": "string",
8776 |               "enum": [
8777 |                 "saml"
8778 |               ],
8779 |               "description": "What type of provider will be created"
8780 |             },
8781 |             "metadata_xml": {
8782 |               "type": "string"
8783 |             },
8784 |             "metadata_url": {
8785 |               "type": "string"
8786 |             },
8787 |             "domains": {
8788 |               "type": "array",
8789 |               "items": {
8790 |                 "type": "string"
8791 |               }
8792 |             },
8793 |             "attribute_mapping": {
8794 |               "$ref": "#/components/schemas/AttributeMapping"
8795 |             }
8796 |           },
8797 |           "required": [
8798 |             "type"
8799 |           ]
8800 |         },
8801 |         "SamlDescriptor": {
8802 |           "type": "object",
8803 |           "properties": {
8804 |             "id": {
8805 |               "type": "string"
8806 |             },
8807 |             "entity_id": {
8808 |               "type": "string"
8809 |             },
8810 |             "metadata_url": {
8811 |               "type": "string"
8812 |             },
8813 |             "metadata_xml": {
8814 |               "type": "string"
8815 |             },
8816 |             "attribute_mapping": {
8817 |               "$ref": "#/components/schemas/AttributeMapping"
8818 |             }
8819 |           },
8820 |           "required": [
8821 |             "id",
8822 |             "entity_id"
8823 |           ]
8824 |         },
8825 |         "Domain": {
8826 |           "type": "object",
8827 |           "properties": {
8828 |             "id": {
8829 |               "type": "string"
8830 |             },
8831 |             "domain": {
8832 |               "type": "string"
8833 |             },
8834 |             "created_at": {
8835 |               "type": "string"
8836 |             },
8837 |             "updated_at": {
8838 |               "type": "string"
8839 |             }
8840 |           },
8841 |           "required": [
8842 |             "id"
8843 |           ]
8844 |         },
8845 |         "CreateProviderResponse": {
8846 |           "type": "object",
8847 |           "properties": {
8848 |             "id": {
8849 |               "type": "string"
8850 |             },
8851 |             "saml": {
8852 |               "$ref": "#/components/schemas/SamlDescriptor"
8853 |             },
8854 |             "domains": {
8855 |               "type": "array",
8856 |               "items": {
8857 |                 "$ref": "#/components/schemas/Domain"
8858 |               }
8859 |             },
8860 |             "created_at": {
8861 |               "type": "string"
8862 |             },
8863 |             "updated_at": {
8864 |               "type": "string"
8865 |             }
8866 |           },
8867 |           "required": [
8868 |             "id"
8869 |           ]
8870 |         },
8871 |         "Provider": {
8872 |           "type": "object",
8873 |           "properties": {
8874 |             "id": {
8875 |               "type": "string"
8876 |             },
8877 |             "saml": {
8878 |               "$ref": "#/components/schemas/SamlDescriptor"
8879 |             },
8880 |             "domains": {
8881 |               "type": "array",
8882 |               "items": {
8883 |                 "$ref": "#/components/schemas/Domain"
8884 |               }
8885 |             },
8886 |             "created_at": {
8887 |               "type": "string"
8888 |             },
8889 |             "updated_at": {
8890 |               "type": "string"
8891 |             }
8892 |           },
8893 |           "required": [
8894 |             "id"
8895 |           ]
8896 |         },
8897 |         "ListProvidersResponse": {
8898 |           "type": "object",
8899 |           "properties": {
8900 |             "items": {
8901 |               "type": "array",
8902 |               "items": {
8903 |                 "$ref": "#/components/schemas/Provider"
8904 |               }
8905 |             }
8906 |           },
8907 |           "required": [
8908 |             "items"
8909 |           ]
8910 |         },
8911 |         "GetProviderResponse": {
8912 |           "type": "object",
8913 |           "properties": {
8914 |             "id": {
8915 |               "type": "string"
8916 |             },
8917 |             "saml": {
8918 |               "$ref": "#/components/schemas/SamlDescriptor"
8919 |             },
8920 |             "domains": {
8921 |               "type": "array",
8922 |               "items": {
8923 |                 "$ref": "#/components/schemas/Domain"
8924 |               }
8925 |             },
8926 |             "created_at": {
8927 |               "type": "string"
8928 |             },
8929 |             "updated_at": {
8930 |               "type": "string"
8931 |             }
8932 |           },
8933 |           "required": [
8934 |             "id"
8935 |           ]
8936 |         },
8937 |         "UpdateProviderBody": {
8938 |           "type": "object",
8939 |           "properties": {
8940 |             "metadata_xml": {
8941 |               "type": "string"
8942 |             },
8943 |             "metadata_url": {
8944 |               "type": "string"
8945 |             },
8946 |             "domains": {
8947 |               "type": "array",
8948 |               "items": {
8949 |                 "type": "string"
8950 |               }
8951 |             },
8952 |             "attribute_mapping": {
8953 |               "$ref": "#/components/schemas/AttributeMapping"
8954 |             }
8955 |           }
8956 |         },
8957 |         "UpdateProviderResponse": {
8958 |           "type": "object",
8959 |           "properties": {
8960 |             "id": {
8961 |               "type": "string"
8962 |             },
8963 |             "saml": {
8964 |               "$ref": "#/components/schemas/SamlDescriptor"
8965 |             },
8966 |             "domains": {
8967 |               "type": "array",
8968 |               "items": {
8969 |                 "$ref": "#/components/schemas/Domain"
8970 |               }
8971 |             },
8972 |             "created_at": {
8973 |               "type": "string"
8974 |             },
8975 |             "updated_at": {
8976 |               "type": "string"
8977 |             }
8978 |           },
8979 |           "required": [
8980 |             "id"
8981 |           ]
8982 |         },
8983 |         "DeleteProviderResponse": {
8984 |           "type": "object",
8985 |           "properties": {
8986 |             "id": {
8987 |               "type": "string"
8988 |             },
8989 |             "saml": {
8990 |               "$ref": "#/components/schemas/SamlDescriptor"
8991 |             },
8992 |             "domains": {
8993 |               "type": "array",
8994 |               "items": {
8995 |                 "$ref": "#/components/schemas/Domain"
8996 |               }
8997 |             },
8998 |             "created_at": {
8999 |               "type": "string"
9000 |             },
9001 |             "updated_at": {
9002 |               "type": "string"
9003 |             }
9004 |           },
9005 |           "required": [
9006 |             "id"
9007 |           ]
9008 |         },
9009 |         "V1Backup": {
9010 |           "type": "object",
9011 |           "properties": {
9012 |             "status": {
9013 |               "type": "string",
9014 |               "enum": [
9015 |                 "COMPLETED",
9016 |                 "FAILED",
9017 |                 "PENDING",
9018 |                 "REMOVED",
9019 |                 "ARCHIVED",
9020 |                 "CANCELLED"
9021 |               ]
9022 |             },
9023 |             "is_physical_backup": {
9024 |               "type": "boolean"
9025 |             },
9026 |             "inserted_at": {
9027 |               "type": "string"
9028 |             }
9029 |           },
9030 |           "required": [
9031 |             "status",
9032 |             "is_physical_backup",
9033 |             "inserted_at"
9034 |           ]
9035 |         },
9036 |         "V1PhysicalBackup": {
9037 |           "type": "object",
9038 |           "properties": {
9039 |             "earliest_physical_backup_date_unix": {
9040 |               "type": "integer",
9041 |               "format": "int64"
9042 |             },
9043 |             "latest_physical_backup_date_unix": {
9044 |               "type": "integer",
9045 |               "format": "int64"
9046 |             }
9047 |           }
9048 |         },
9049 |         "V1BackupsResponse": {
9050 |           "type": "object",
9051 |           "properties": {
9052 |             "region": {
9053 |               "type": "string"
9054 |             },
9055 |             "walg_enabled": {
9056 |               "type": "boolean"
9057 |             },
9058 |             "pitr_enabled": {
9059 |               "type": "boolean"
9060 |             },
9061 |             "backups": {
9062 |               "type": "array",
9063 |               "items": {
9064 |                 "$ref": "#/components/schemas/V1Backup"
9065 |               }
9066 |             },
9067 |             "physical_backup_data": {
9068 |               "$ref": "#/components/schemas/V1PhysicalBackup"
9069 |             }
9070 |           },
9071 |           "required": [
9072 |             "region",
9073 |             "walg_enabled",
9074 |             "pitr_enabled",
9075 |             "backups",
9076 |             "physical_backup_data"
9077 |           ]
9078 |         },
9079 |         "V1RestorePitrBody": {
9080 |           "type": "object",
9081 |           "properties": {
9082 |             "recovery_time_target_unix": {
9083 |               "type": "integer",
9084 |               "minimum": 0,
9085 |               "format": "int64"
9086 |             }
9087 |           },
9088 |           "required": [
9089 |             "recovery_time_target_unix"
9090 |           ]
9091 |         },
9092 |         "V1OrganizationMemberResponse": {
9093 |           "type": "object",
9094 |           "properties": {
9095 |             "user_id": {
9096 |               "type": "string"
9097 |             },
9098 |             "user_name": {
9099 |               "type": "string"
9100 |             },
9101 |             "email": {
9102 |               "type": "string"
9103 |             },
9104 |             "role_name": {
9105 |               "type": "string"
9106 |             },
9107 |             "mfa_enabled": {
9108 |               "type": "boolean"
9109 |             }
9110 |           },
9111 |           "required": [
9112 |             "user_id",
9113 |             "user_name",
9114 |             "role_name",
9115 |             "mfa_enabled"
9116 |           ]
9117 |         },
9118 |         "BillingPlanId": {
9119 |           "type": "string",
9120 |           "enum": [
9121 |             "free",
9122 |             "pro",
9123 |             "team",
9124 |             "enterprise"
9125 |           ]
9126 |         },
9127 |         "V1OrganizationSlugResponse": {
9128 |           "type": "object",
9129 |           "properties": {
9130 |             "plan": {
9131 |               "$ref": "#/components/schemas/BillingPlanId"
9132 |             },
9133 |             "opt_in_tags": {
9134 |               "type": "array",
9135 |               "items": {
9136 |                 "type": "string",
9137 |                 "enum": [
9138 |                   "AI_SQL_GENERATOR_OPT_IN"
9139 |                 ]
9140 |               }
9141 |             },
9142 |             "allowed_release_channels": {
9143 |               "type": "array",
9144 |               "items": {
9145 |                 "$ref": "#/components/schemas/ReleaseChannel"
9146 |               }
9147 |             },
9148 |             "id": {
9149 |               "type": "string"
9150 |             },
9151 |             "name": {
9152 |               "type": "string"
9153 |             }
9154 |           },
9155 |           "required": [
9156 |             "opt_in_tags",
9157 |             "allowed_release_channels",
9158 |             "id",
9159 |             "name"
9160 |           ]
9161 |         }
9162 |       }
9163 |     }
9164 |   }
9165 | 
```
Page 6/6FirstPrevNextLast