#
tokens: 33584/50000 1/56 files (page 3/4)
lines: off (toggle) GitHub
raw markdown copy
This is page 3 of 4. Use http://codebase.md/stumason/coolify-mcp?page={x} to view the full context.

# Directory Structure

```
├── .cursor
│   └── rules
│       ├── 000-cursor-rules.mdc
│       ├── 801-feature-workflow.mdc
│       ├── 802-coolify-mcp-workflow.mdc
│       └── 803-npm-publish-workflow.mdc
├── .eslintrc.json
├── .github
│   └── workflows
│       └── ci.yml
├── .gitignore
├── .lintstagedrc.json
├── .markdownlint-cli2.jsonc
├── .prettierrc
├── .repomixignore
├── debug.js
├── docs
│   ├── coolify-openapi.yaml
│   ├── features
│   │   ├── 001-core-server-setup.md
│   │   ├── 002-server-info-resource.md
│   │   ├── 003-project-management.md
│   │   ├── 004-environment-management.md
│   │   ├── 005-application-deployment.md
│   │   ├── 006-database-management.md
│   │   ├── 007-service-management.md
│   │   ├── 008-mcp-resources-implementation.md
│   │   ├── 009-mcp-prompts-implementation.md
│   │   ├── 010-private-key-management.md
│   │   ├── 011-team-management.md
│   │   ├── 012-backup-management.md
│   │   ├── 013-npx-config-fix.md
│   │   └── future-adrs.md
│   ├── mcp-example-clients.md
│   ├── mcp-js-readme.md
│   └── openapi-chunks
│       ├── applications-api.yaml
│       ├── databases-api.yaml
│       ├── deployments-api.yaml
│       ├── private-keys-api.yaml
│       ├── projects-api.yaml
│       ├── resources-api.yaml
│       ├── schemas.yaml
│       ├── servers-api.yaml
│       ├── services-api.yaml
│       ├── teams-api.yaml
│       └── untagged-api.yaml
├── jest.config.js
├── package-lock.json
├── package.json
├── README.md
├── repomix-output.xml
├── src
│   ├── __tests__
│   │   ├── coolify-client.test.ts
│   │   └── resources
│   │       ├── application-resources.test.ts
│   │       ├── database-resources.test.ts
│   │       ├── deployment-resources.test.ts
│   │       └── service-resources.test.ts
│   ├── index.ts
│   ├── lib
│   │   ├── coolify-client.ts
│   │   ├── mcp-server.ts
│   │   └── resource.ts
│   ├── resources
│   │   ├── application-resources.ts
│   │   ├── database-resources.ts
│   │   ├── deployment-resources.ts
│   │   ├── index.ts
│   │   └── service-resources.ts
│   └── types
│       └── coolify.ts
└── tsconfig.json
```

# Files

--------------------------------------------------------------------------------
/docs/coolify-openapi.yaml:
--------------------------------------------------------------------------------

```yaml
openapi: 3.1.0
info:
  title: Coolify
  version: '0.1'
servers:
  - url: 'https://app.coolify.io/api/v1'
    description: 'Coolify Cloud API. Change the host to your own instance if you are self-hosting.'
paths:
  /applications:
    get:
      tags:
        - Applications
      summary: List
      description: 'List all applications.'
      operationId: list-applications
      responses:
        '200':
          description: 'Get all applications.'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Application'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  /applications/public:
    post:
      tags:
        - Applications
      summary: 'Create (Public)'
      description: 'Create new application based on a public git repository.'
      operationId: create-public-application
      requestBody:
        description: 'Application object that needs to be created.'
        required: true
        content:
          application/json:
            schema:
              required:
                - project_uuid
                - server_uuid
                - environment_name
                - environment_uuid
                - git_repository
                - git_branch
                - build_pack
                - ports_exposes
              properties:
                project_uuid:
                  type: string
                  description: 'The project UUID.'
                server_uuid:
                  type: string
                  description: 'The server UUID.'
                environment_name:
                  type: string
                  description: 'The environment name. You need to provide at least one of environment_name or environment_uuid.'
                environment_uuid:
                  type: string
                  description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.'
                git_repository:
                  type: string
                  description: 'The git repository URL.'
                git_branch:
                  type: string
                  description: 'The git branch.'
                build_pack:
                  type: string
                  enum: [nixpacks, static, dockerfile, dockercompose]
                  description: 'The build pack type.'
                ports_exposes:
                  type: string
                  description: 'The ports to expose.'
                destination_uuid:
                  type: string
                  description: 'The destination UUID.'
                name:
                  type: string
                  description: 'The application name.'
                description:
                  type: string
                  description: 'The application description.'
                domains:
                  type: string
                  description: 'The application domains.'
                git_commit_sha:
                  type: string
                  description: 'The git commit SHA.'
                docker_registry_image_name:
                  type: string
                  description: 'The docker registry image name.'
                docker_registry_image_tag:
                  type: string
                  description: 'The docker registry image tag.'
                is_static:
                  type: boolean
                  description: 'The flag to indicate if the application is static.'
                static_image:
                  type: string
                  enum: ['nginx:alpine']
                  description: 'The static image.'
                install_command:
                  type: string
                  description: 'The install command.'
                build_command:
                  type: string
                  description: 'The build command.'
                start_command:
                  type: string
                  description: 'The start command.'
                ports_mappings:
                  type: string
                  description: 'The ports mappings.'
                base_directory:
                  type: string
                  description: 'The base directory for all commands.'
                publish_directory:
                  type: string
                  description: 'The publish directory.'
                health_check_enabled:
                  type: boolean
                  description: 'Health check enabled.'
                health_check_path:
                  type: string
                  description: 'Health check path.'
                health_check_port:
                  type: string
                  nullable: true
                  description: 'Health check port.'
                health_check_host:
                  type: string
                  nullable: true
                  description: 'Health check host.'
                health_check_method:
                  type: string
                  description: 'Health check method.'
                health_check_return_code:
                  type: integer
                  description: 'Health check return code.'
                health_check_scheme:
                  type: string
                  description: 'Health check scheme.'
                health_check_response_text:
                  type: string
                  nullable: true
                  description: 'Health check response text.'
                health_check_interval:
                  type: integer
                  description: 'Health check interval in seconds.'
                health_check_timeout:
                  type: integer
                  description: 'Health check timeout in seconds.'
                health_check_retries:
                  type: integer
                  description: 'Health check retries count.'
                health_check_start_period:
                  type: integer
                  description: 'Health check start period in seconds.'
                limits_memory:
                  type: string
                  description: 'Memory limit.'
                limits_memory_swap:
                  type: string
                  description: 'Memory swap limit.'
                limits_memory_swappiness:
                  type: integer
                  description: 'Memory swappiness.'
                limits_memory_reservation:
                  type: string
                  description: 'Memory reservation.'
                limits_cpus:
                  type: string
                  description: 'CPU limit.'
                limits_cpuset:
                  type: string
                  nullable: true
                  description: 'CPU set.'
                limits_cpu_shares:
                  type: integer
                  description: 'CPU shares.'
                custom_labels:
                  type: string
                  description: 'Custom labels.'
                custom_docker_run_options:
                  type: string
                  description: 'Custom docker run options.'
                post_deployment_command:
                  type: string
                  description: 'Post deployment command.'
                post_deployment_command_container:
                  type: string
                  description: 'Post deployment command container.'
                pre_deployment_command:
                  type: string
                  description: 'Pre deployment command.'
                pre_deployment_command_container:
                  type: string
                  description: 'Pre deployment command container.'
                manual_webhook_secret_github:
                  type: string
                  description: 'Manual webhook secret for Github.'
                manual_webhook_secret_gitlab:
                  type: string
                  description: 'Manual webhook secret for Gitlab.'
                manual_webhook_secret_bitbucket:
                  type: string
                  description: 'Manual webhook secret for Bitbucket.'
                manual_webhook_secret_gitea:
                  type: string
                  description: 'Manual webhook secret for Gitea.'
                redirect:
                  type: string
                  nullable: true
                  description: 'How to set redirect with Traefik / Caddy. www<->non-www.'
                  enum: [www, non-www, both]
                instant_deploy:
                  type: boolean
                  description: 'The flag to indicate if the application should be deployed instantly.'
                dockerfile:
                  type: string
                  description: 'The Dockerfile content.'
                docker_compose_location:
                  type: string
                  description: 'The Docker Compose location.'
                docker_compose_raw:
                  type: string
                  description: 'The Docker Compose raw content.'
                docker_compose_custom_start_command:
                  type: string
                  description: 'The Docker Compose custom start command.'
                docker_compose_custom_build_command:
                  type: string
                  description: 'The Docker Compose custom build command.'
                docker_compose_domains:
                  type: array
                  description: 'The Docker Compose domains.'
                watch_paths:
                  type: string
                  description: 'The watch paths.'
                use_build_server:
                  type: boolean
                  nullable: true
                  description: 'Use build server.'
              type: object
      responses:
        '201':
          description: 'Application created successfully.'
          content:
            application/json:
              schema:
                properties:
                  uuid: { type: string }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  /applications/private-github-app:
    post:
      tags:
        - Applications
      summary: 'Create (Private - GH App)'
      description: 'Create new application based on a private repository through a Github App.'
      operationId: create-private-github-app-application
      requestBody:
        description: 'Application object that needs to be created.'
        required: true
        content:
          application/json:
            schema:
              required:
                - project_uuid
                - server_uuid
                - environment_name
                - environment_uuid
                - github_app_uuid
                - git_repository
                - git_branch
                - build_pack
                - ports_exposes
              properties:
                project_uuid:
                  type: string
                  description: 'The project UUID.'
                server_uuid:
                  type: string
                  description: 'The server UUID.'
                environment_name:
                  type: string
                  description: 'The environment name. You need to provide at least one of environment_name or environment_uuid.'
                environment_uuid:
                  type: string
                  description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.'
                github_app_uuid:
                  type: string
                  description: 'The Github App UUID.'
                git_repository:
                  type: string
                  description: 'The git repository URL.'
                git_branch:
                  type: string
                  description: 'The git branch.'
                ports_exposes:
                  type: string
                  description: 'The ports to expose.'
                destination_uuid:
                  type: string
                  description: 'The destination UUID.'
                build_pack:
                  type: string
                  enum: [nixpacks, static, dockerfile, dockercompose]
                  description: 'The build pack type.'
                name:
                  type: string
                  description: 'The application name.'
                description:
                  type: string
                  description: 'The application description.'
                domains:
                  type: string
                  description: 'The application domains.'
                git_commit_sha:
                  type: string
                  description: 'The git commit SHA.'
                docker_registry_image_name:
                  type: string
                  description: 'The docker registry image name.'
                docker_registry_image_tag:
                  type: string
                  description: 'The docker registry image tag.'
                is_static:
                  type: boolean
                  description: 'The flag to indicate if the application is static.'
                static_image:
                  type: string
                  enum: ['nginx:alpine']
                  description: 'The static image.'
                install_command:
                  type: string
                  description: 'The install command.'
                build_command:
                  type: string
                  description: 'The build command.'
                start_command:
                  type: string
                  description: 'The start command.'
                ports_mappings:
                  type: string
                  description: 'The ports mappings.'
                base_directory:
                  type: string
                  description: 'The base directory for all commands.'
                publish_directory:
                  type: string
                  description: 'The publish directory.'
                health_check_enabled:
                  type: boolean
                  description: 'Health check enabled.'
                health_check_path:
                  type: string
                  description: 'Health check path.'
                health_check_port:
                  type: string
                  nullable: true
                  description: 'Health check port.'
                health_check_host:
                  type: string
                  nullable: true
                  description: 'Health check host.'
                health_check_method:
                  type: string
                  description: 'Health check method.'
                health_check_return_code:
                  type: integer
                  description: 'Health check return code.'
                health_check_scheme:
                  type: string
                  description: 'Health check scheme.'
                health_check_response_text:
                  type: string
                  nullable: true
                  description: 'Health check response text.'
                health_check_interval:
                  type: integer
                  description: 'Health check interval in seconds.'
                health_check_timeout:
                  type: integer
                  description: 'Health check timeout in seconds.'
                health_check_retries:
                  type: integer
                  description: 'Health check retries count.'
                health_check_start_period:
                  type: integer
                  description: 'Health check start period in seconds.'
                limits_memory:
                  type: string
                  description: 'Memory limit.'
                limits_memory_swap:
                  type: string
                  description: 'Memory swap limit.'
                limits_memory_swappiness:
                  type: integer
                  description: 'Memory swappiness.'
                limits_memory_reservation:
                  type: string
                  description: 'Memory reservation.'
                limits_cpus:
                  type: string
                  description: 'CPU limit.'
                limits_cpuset:
                  type: string
                  nullable: true
                  description: 'CPU set.'
                limits_cpu_shares:
                  type: integer
                  description: 'CPU shares.'
                custom_labels:
                  type: string
                  description: 'Custom labels.'
                custom_docker_run_options:
                  type: string
                  description: 'Custom docker run options.'
                post_deployment_command:
                  type: string
                  description: 'Post deployment command.'
                post_deployment_command_container:
                  type: string
                  description: 'Post deployment command container.'
                pre_deployment_command:
                  type: string
                  description: 'Pre deployment command.'
                pre_deployment_command_container:
                  type: string
                  description: 'Pre deployment command container.'
                manual_webhook_secret_github:
                  type: string
                  description: 'Manual webhook secret for Github.'
                manual_webhook_secret_gitlab:
                  type: string
                  description: 'Manual webhook secret for Gitlab.'
                manual_webhook_secret_bitbucket:
                  type: string
                  description: 'Manual webhook secret for Bitbucket.'
                manual_webhook_secret_gitea:
                  type: string
                  description: 'Manual webhook secret for Gitea.'
                redirect:
                  type: string
                  nullable: true
                  description: 'How to set redirect with Traefik / Caddy. www<->non-www.'
                  enum: [www, non-www, both]
                instant_deploy:
                  type: boolean
                  description: 'The flag to indicate if the application should be deployed instantly.'
                dockerfile:
                  type: string
                  description: 'The Dockerfile content.'
                docker_compose_location:
                  type: string
                  description: 'The Docker Compose location.'
                docker_compose_raw:
                  type: string
                  description: 'The Docker Compose raw content.'
                docker_compose_custom_start_command:
                  type: string
                  description: 'The Docker Compose custom start command.'
                docker_compose_custom_build_command:
                  type: string
                  description: 'The Docker Compose custom build command.'
                docker_compose_domains:
                  type: array
                  description: 'The Docker Compose domains.'
                watch_paths:
                  type: string
                  description: 'The watch paths.'
                use_build_server:
                  type: boolean
                  nullable: true
                  description: 'Use build server.'
              type: object
      responses:
        '201':
          description: 'Application created successfully.'
          content:
            application/json:
              schema:
                properties:
                  uuid: { type: string }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  /applications/private-deploy-key:
    post:
      tags:
        - Applications
      summary: 'Create (Private - Deploy Key)'
      description: 'Create new application based on a private repository through a Deploy Key.'
      operationId: create-private-deploy-key-application
      requestBody:
        description: 'Application object that needs to be created.'
        required: true
        content:
          application/json:
            schema:
              required:
                - project_uuid
                - server_uuid
                - environment_name
                - environment_uuid
                - private_key_uuid
                - git_repository
                - git_branch
                - build_pack
                - ports_exposes
              properties:
                project_uuid:
                  type: string
                  description: 'The project UUID.'
                server_uuid:
                  type: string
                  description: 'The server UUID.'
                environment_name:
                  type: string
                  description: 'The environment name. You need to provide at least one of environment_name or environment_uuid.'
                environment_uuid:
                  type: string
                  description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.'
                private_key_uuid:
                  type: string
                  description: 'The private key UUID.'
                git_repository:
                  type: string
                  description: 'The git repository URL.'
                git_branch:
                  type: string
                  description: 'The git branch.'
                ports_exposes:
                  type: string
                  description: 'The ports to expose.'
                destination_uuid:
                  type: string
                  description: 'The destination UUID.'
                build_pack:
                  type: string
                  enum: [nixpacks, static, dockerfile, dockercompose]
                  description: 'The build pack type.'
                name:
                  type: string
                  description: 'The application name.'
                description:
                  type: string
                  description: 'The application description.'
                domains:
                  type: string
                  description: 'The application domains.'
                git_commit_sha:
                  type: string
                  description: 'The git commit SHA.'
                docker_registry_image_name:
                  type: string
                  description: 'The docker registry image name.'
                docker_registry_image_tag:
                  type: string
                  description: 'The docker registry image tag.'
                is_static:
                  type: boolean
                  description: 'The flag to indicate if the application is static.'
                static_image:
                  type: string
                  enum: ['nginx:alpine']
                  description: 'The static image.'
                install_command:
                  type: string
                  description: 'The install command.'
                build_command:
                  type: string
                  description: 'The build command.'
                start_command:
                  type: string
                  description: 'The start command.'
                ports_mappings:
                  type: string
                  description: 'The ports mappings.'
                base_directory:
                  type: string
                  description: 'The base directory for all commands.'
                publish_directory:
                  type: string
                  description: 'The publish directory.'
                health_check_enabled:
                  type: boolean
                  description: 'Health check enabled.'
                health_check_path:
                  type: string
                  description: 'Health check path.'
                health_check_port:
                  type: string
                  nullable: true
                  description: 'Health check port.'
                health_check_host:
                  type: string
                  nullable: true
                  description: 'Health check host.'
                health_check_method:
                  type: string
                  description: 'Health check method.'
                health_check_return_code:
                  type: integer
                  description: 'Health check return code.'
                health_check_scheme:
                  type: string
                  description: 'Health check scheme.'
                health_check_response_text:
                  type: string
                  nullable: true
                  description: 'Health check response text.'
                health_check_interval:
                  type: integer
                  description: 'Health check interval in seconds.'
                health_check_timeout:
                  type: integer
                  description: 'Health check timeout in seconds.'
                health_check_retries:
                  type: integer
                  description: 'Health check retries count.'
                health_check_start_period:
                  type: integer
                  description: 'Health check start period in seconds.'
                limits_memory:
                  type: string
                  description: 'Memory limit.'
                limits_memory_swap:
                  type: string
                  description: 'Memory swap limit.'
                limits_memory_swappiness:
                  type: integer
                  description: 'Memory swappiness.'
                limits_memory_reservation:
                  type: string
                  description: 'Memory reservation.'
                limits_cpus:
                  type: string
                  description: 'CPU limit.'
                limits_cpuset:
                  type: string
                  nullable: true
                  description: 'CPU set.'
                limits_cpu_shares:
                  type: integer
                  description: 'CPU shares.'
                custom_labels:
                  type: string
                  description: 'Custom labels.'
                custom_docker_run_options:
                  type: string
                  description: 'Custom docker run options.'
                post_deployment_command:
                  type: string
                  description: 'Post deployment command.'
                post_deployment_command_container:
                  type: string
                  description: 'Post deployment command container.'
                pre_deployment_command:
                  type: string
                  description: 'Pre deployment command.'
                pre_deployment_command_container:
                  type: string
                  description: 'Pre deployment command container.'
                manual_webhook_secret_github:
                  type: string
                  description: 'Manual webhook secret for Github.'
                manual_webhook_secret_gitlab:
                  type: string
                  description: 'Manual webhook secret for Gitlab.'
                manual_webhook_secret_bitbucket:
                  type: string
                  description: 'Manual webhook secret for Bitbucket.'
                manual_webhook_secret_gitea:
                  type: string
                  description: 'Manual webhook secret for Gitea.'
                redirect:
                  type: string
                  nullable: true
                  description: 'How to set redirect with Traefik / Caddy. www<->non-www.'
                  enum: [www, non-www, both]
                instant_deploy:
                  type: boolean
                  description: 'The flag to indicate if the application should be deployed instantly.'
                dockerfile:
                  type: string
                  description: 'The Dockerfile content.'
                docker_compose_location:
                  type: string
                  description: 'The Docker Compose location.'
                docker_compose_raw:
                  type: string
                  description: 'The Docker Compose raw content.'
                docker_compose_custom_start_command:
                  type: string
                  description: 'The Docker Compose custom start command.'
                docker_compose_custom_build_command:
                  type: string
                  description: 'The Docker Compose custom build command.'
                docker_compose_domains:
                  type: array
                  description: 'The Docker Compose domains.'
                watch_paths:
                  type: string
                  description: 'The watch paths.'
                use_build_server:
                  type: boolean
                  nullable: true
                  description: 'Use build server.'
              type: object
      responses:
        '201':
          description: 'Application created successfully.'
          content:
            application/json:
              schema:
                properties:
                  uuid: { type: string }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  /applications/dockerfile:
    post:
      tags:
        - Applications
      summary: 'Create (Dockerfile)'
      description: 'Create new application based on a simple Dockerfile.'
      operationId: create-dockerfile-application
      requestBody:
        description: 'Application object that needs to be created.'
        required: true
        content:
          application/json:
            schema:
              required:
                - project_uuid
                - server_uuid
                - environment_name
                - environment_uuid
                - dockerfile
              properties:
                project_uuid:
                  type: string
                  description: 'The project UUID.'
                server_uuid:
                  type: string
                  description: 'The server UUID.'
                environment_name:
                  type: string
                  description: 'The environment name. You need to provide at least one of environment_name or environment_uuid.'
                environment_uuid:
                  type: string
                  description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.'
                dockerfile:
                  type: string
                  description: 'The Dockerfile content.'
                build_pack:
                  type: string
                  enum: [nixpacks, static, dockerfile, dockercompose]
                  description: 'The build pack type.'
                ports_exposes:
                  type: string
                  description: 'The ports to expose.'
                destination_uuid:
                  type: string
                  description: 'The destination UUID.'
                name:
                  type: string
                  description: 'The application name.'
                description:
                  type: string
                  description: 'The application description.'
                domains:
                  type: string
                  description: 'The application domains.'
                docker_registry_image_name:
                  type: string
                  description: 'The docker registry image name.'
                docker_registry_image_tag:
                  type: string
                  description: 'The docker registry image tag.'
                ports_mappings:
                  type: string
                  description: 'The ports mappings.'
                base_directory:
                  type: string
                  description: 'The base directory for all commands.'
                health_check_enabled:
                  type: boolean
                  description: 'Health check enabled.'
                health_check_path:
                  type: string
                  description: 'Health check path.'
                health_check_port:
                  type: string
                  nullable: true
                  description: 'Health check port.'
                health_check_host:
                  type: string
                  nullable: true
                  description: 'Health check host.'
                health_check_method:
                  type: string
                  description: 'Health check method.'
                health_check_return_code:
                  type: integer
                  description: 'Health check return code.'
                health_check_scheme:
                  type: string
                  description: 'Health check scheme.'
                health_check_response_text:
                  type: string
                  nullable: true
                  description: 'Health check response text.'
                health_check_interval:
                  type: integer
                  description: 'Health check interval in seconds.'
                health_check_timeout:
                  type: integer
                  description: 'Health check timeout in seconds.'
                health_check_retries:
                  type: integer
                  description: 'Health check retries count.'
                health_check_start_period:
                  type: integer
                  description: 'Health check start period in seconds.'
                limits_memory:
                  type: string
                  description: 'Memory limit.'
                limits_memory_swap:
                  type: string
                  description: 'Memory swap limit.'
                limits_memory_swappiness:
                  type: integer
                  description: 'Memory swappiness.'
                limits_memory_reservation:
                  type: string
                  description: 'Memory reservation.'
                limits_cpus:
                  type: string
                  description: 'CPU limit.'
                limits_cpuset:
                  type: string
                  nullable: true
                  description: 'CPU set.'
                limits_cpu_shares:
                  type: integer
                  description: 'CPU shares.'
                custom_labels:
                  type: string
                  description: 'Custom labels.'
                custom_docker_run_options:
                  type: string
                  description: 'Custom docker run options.'
                post_deployment_command:
                  type: string
                  description: 'Post deployment command.'
                post_deployment_command_container:
                  type: string
                  description: 'Post deployment command container.'
                pre_deployment_command:
                  type: string
                  description: 'Pre deployment command.'
                pre_deployment_command_container:
                  type: string
                  description: 'Pre deployment command container.'
                manual_webhook_secret_github:
                  type: string
                  description: 'Manual webhook secret for Github.'
                manual_webhook_secret_gitlab:
                  type: string
                  description: 'Manual webhook secret for Gitlab.'
                manual_webhook_secret_bitbucket:
                  type: string
                  description: 'Manual webhook secret for Bitbucket.'
                manual_webhook_secret_gitea:
                  type: string
                  description: 'Manual webhook secret for Gitea.'
                redirect:
                  type: string
                  nullable: true
                  description: 'How to set redirect with Traefik / Caddy. www<->non-www.'
                  enum: [www, non-www, both]
                instant_deploy:
                  type: boolean
                  description: 'The flag to indicate if the application should be deployed instantly.'
                use_build_server:
                  type: boolean
                  nullable: true
                  description: 'Use build server.'
              type: object
      responses:
        '201':
          description: 'Application created successfully.'
          content:
            application/json:
              schema:
                properties:
                  uuid: { type: string }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  /applications/dockerimage:
    post:
      tags:
        - Applications
      summary: 'Create (Docker Image)'
      description: 'Create new application based on a prebuilt docker image'
      operationId: create-dockerimage-application
      requestBody:
        description: 'Application object that needs to be created.'
        required: true
        content:
          application/json:
            schema:
              required:
                - project_uuid
                - server_uuid
                - environment_name
                - environment_uuid
                - docker_registry_image_name
                - ports_exposes
              properties:
                project_uuid:
                  type: string
                  description: 'The project UUID.'
                server_uuid:
                  type: string
                  description: 'The server UUID.'
                environment_name:
                  type: string
                  description: 'The environment name. You need to provide at least one of environment_name or environment_uuid.'
                environment_uuid:
                  type: string
                  description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.'
                docker_registry_image_name:
                  type: string
                  description: 'The docker registry image name.'
                docker_registry_image_tag:
                  type: string
                  description: 'The docker registry image tag.'
                ports_exposes:
                  type: string
                  description: 'The ports to expose.'
                destination_uuid:
                  type: string
                  description: 'The destination UUID.'
                name:
                  type: string
                  description: 'The application name.'
                description:
                  type: string
                  description: 'The application description.'
                domains:
                  type: string
                  description: 'The application domains.'
                ports_mappings:
                  type: string
                  description: 'The ports mappings.'
                health_check_enabled:
                  type: boolean
                  description: 'Health check enabled.'
                health_check_path:
                  type: string
                  description: 'Health check path.'
                health_check_port:
                  type: string
                  nullable: true
                  description: 'Health check port.'
                health_check_host:
                  type: string
                  nullable: true
                  description: 'Health check host.'
                health_check_method:
                  type: string
                  description: 'Health check method.'
                health_check_return_code:
                  type: integer
                  description: 'Health check return code.'
                health_check_scheme:
                  type: string
                  description: 'Health check scheme.'
                health_check_response_text:
                  type: string
                  nullable: true
                  description: 'Health check response text.'
                health_check_interval:
                  type: integer
                  description: 'Health check interval in seconds.'
                health_check_timeout:
                  type: integer
                  description: 'Health check timeout in seconds.'
                health_check_retries:
                  type: integer
                  description: 'Health check retries count.'
                health_check_start_period:
                  type: integer
                  description: 'Health check start period in seconds.'
                limits_memory:
                  type: string
                  description: 'Memory limit.'
                limits_memory_swap:
                  type: string
                  description: 'Memory swap limit.'
                limits_memory_swappiness:
                  type: integer
                  description: 'Memory swappiness.'
                limits_memory_reservation:
                  type: string
                  description: 'Memory reservation.'
                limits_cpus:
                  type: string
                  description: 'CPU limit.'
                limits_cpuset:
                  type: string
                  nullable: true
                  description: 'CPU set.'
                limits_cpu_shares:
                  type: integer
                  description: 'CPU shares.'
                custom_labels:
                  type: string
                  description: 'Custom labels.'
                custom_docker_run_options:
                  type: string
                  description: 'Custom docker run options.'
                post_deployment_command:
                  type: string
                  description: 'Post deployment command.'
                post_deployment_command_container:
                  type: string
                  description: 'Post deployment command container.'
                pre_deployment_command:
                  type: string
                  description: 'Pre deployment command.'
                pre_deployment_command_container:
                  type: string
                  description: 'Pre deployment command container.'
                manual_webhook_secret_github:
                  type: string
                  description: 'Manual webhook secret for Github.'
                manual_webhook_secret_gitlab:
                  type: string
                  description: 'Manual webhook secret for Gitlab.'
                manual_webhook_secret_bitbucket:
                  type: string
                  description: 'Manual webhook secret for Bitbucket.'
                manual_webhook_secret_gitea:
                  type: string
                  description: 'Manual webhook secret for Gitea.'
                redirect:
                  type: string
                  nullable: true
                  description: 'How to set redirect with Traefik / Caddy. www<->non-www.'
                  enum: [www, non-www, both]
                instant_deploy:
                  type: boolean
                  description: 'The flag to indicate if the application should be deployed instantly.'
                use_build_server:
                  type: boolean
                  nullable: true
                  description: 'Use build server.'
              type: object
      responses:
        '201':
          description: 'Application created successfully.'
          content:
            application/json:
              schema:
                properties:
                  uuid: { type: string }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  /applications/dockercompose:
    post:
      tags:
        - Applications
      summary: 'Create (Docker Compose)'
      description: 'Create new application based on a docker-compose file.'
      operationId: create-dockercompose-application
      requestBody:
        description: 'Application object that needs to be created.'
        required: true
        content:
          application/json:
            schema:
              required:
                - project_uuid
                - server_uuid
                - environment_name
                - environment_uuid
                - docker_compose_raw
              properties:
                project_uuid:
                  type: string
                  description: 'The project UUID.'
                server_uuid:
                  type: string
                  description: 'The server UUID.'
                environment_name:
                  type: string
                  description: 'The environment name. You need to provide at least one of environment_name or environment_uuid.'
                environment_uuid:
                  type: string
                  description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.'
                docker_compose_raw:
                  type: string
                  description: 'The Docker Compose raw content.'
                destination_uuid:
                  type: string
                  description: 'The destination UUID if the server has more than one destinations.'
                name:
                  type: string
                  description: 'The application name.'
                description:
                  type: string
                  description: 'The application description.'
                instant_deploy:
                  type: boolean
                  description: 'The flag to indicate if the application should be deployed instantly.'
                use_build_server:
                  type: boolean
                  nullable: true
                  description: 'Use build server.'
              type: object
      responses:
        '201':
          description: 'Application created successfully.'
          content:
            application/json:
              schema:
                properties:
                  uuid: { type: string }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  '/applications/{uuid}':
    get:
      tags:
        - Applications
      summary: Get
      description: 'Get application by UUID.'
      operationId: get-application-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the application.'
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: 'Get application by UUID.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
    delete:
      tags:
        - Applications
      summary: Delete
      description: 'Delete application by UUID.'
      operationId: delete-application-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the application.'
          required: true
          schema:
            type: string
            format: uuid
        - name: delete_configurations
          in: query
          description: 'Delete configurations.'
          required: false
          schema:
            type: boolean
            default: true
        - name: delete_volumes
          in: query
          description: 'Delete volumes.'
          required: false
          schema:
            type: boolean
            default: true
        - name: docker_cleanup
          in: query
          description: 'Run docker cleanup.'
          required: false
          schema:
            type: boolean
            default: true
        - name: delete_connected_networks
          in: query
          description: 'Delete connected networks.'
          required: false
          schema:
            type: boolean
            default: true
      responses:
        '200':
          description: 'Application deleted.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Application deleted.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
    patch:
      tags:
        - Applications
      summary: Update
      description: 'Update application by UUID.'
      operationId: update-application-by-uuid
      requestBody:
        description: 'Application updated.'
        required: true
        content:
          application/json:
            schema:
              properties:
                project_uuid:
                  type: string
                  description: 'The project UUID.'
                server_uuid:
                  type: string
                  description: 'The server UUID.'
                environment_name:
                  type: string
                  description: 'The environment name.'
                github_app_uuid:
                  type: string
                  description: 'The Github App UUID.'
                git_repository:
                  type: string
                  description: 'The git repository URL.'
                git_branch:
                  type: string
                  description: 'The git branch.'
                ports_exposes:
                  type: string
                  description: 'The ports to expose.'
                destination_uuid:
                  type: string
                  description: 'The destination UUID.'
                build_pack:
                  type: string
                  enum: [nixpacks, static, dockerfile, dockercompose]
                  description: 'The build pack type.'
                name:
                  type: string
                  description: 'The application name.'
                description:
                  type: string
                  description: 'The application description.'
                domains:
                  type: string
                  description: 'The application domains.'
                git_commit_sha:
                  type: string
                  description: 'The git commit SHA.'
                docker_registry_image_name:
                  type: string
                  description: 'The docker registry image name.'
                docker_registry_image_tag:
                  type: string
                  description: 'The docker registry image tag.'
                is_static:
                  type: boolean
                  description: 'The flag to indicate if the application is static.'
                install_command:
                  type: string
                  description: 'The install command.'
                build_command:
                  type: string
                  description: 'The build command.'
                start_command:
                  type: string
                  description: 'The start command.'
                ports_mappings:
                  type: string
                  description: 'The ports mappings.'
                base_directory:
                  type: string
                  description: 'The base directory for all commands.'
                publish_directory:
                  type: string
                  description: 'The publish directory.'
                health_check_enabled:
                  type: boolean
                  description: 'Health check enabled.'
                health_check_path:
                  type: string
                  description: 'Health check path.'
                health_check_port:
                  type: string
                  nullable: true
                  description: 'Health check port.'
                health_check_host:
                  type: string
                  nullable: true
                  description: 'Health check host.'
                health_check_method:
                  type: string
                  description: 'Health check method.'
                health_check_return_code:
                  type: integer
                  description: 'Health check return code.'
                health_check_scheme:
                  type: string
                  description: 'Health check scheme.'
                health_check_response_text:
                  type: string
                  nullable: true
                  description: 'Health check response text.'
                health_check_interval:
                  type: integer
                  description: 'Health check interval in seconds.'
                health_check_timeout:
                  type: integer
                  description: 'Health check timeout in seconds.'
                health_check_retries:
                  type: integer
                  description: 'Health check retries count.'
                health_check_start_period:
                  type: integer
                  description: 'Health check start period in seconds.'
                limits_memory:
                  type: string
                  description: 'Memory limit.'
                limits_memory_swap:
                  type: string
                  description: 'Memory swap limit.'
                limits_memory_swappiness:
                  type: integer
                  description: 'Memory swappiness.'
                limits_memory_reservation:
                  type: string
                  description: 'Memory reservation.'
                limits_cpus:
                  type: string
                  description: 'CPU limit.'
                limits_cpuset:
                  type: string
                  nullable: true
                  description: 'CPU set.'
                limits_cpu_shares:
                  type: integer
                  description: 'CPU shares.'
                custom_labels:
                  type: string
                  description: 'Custom labels.'
                custom_docker_run_options:
                  type: string
                  description: 'Custom docker run options.'
                post_deployment_command:
                  type: string
                  description: 'Post deployment command.'
                post_deployment_command_container:
                  type: string
                  description: 'Post deployment command container.'
                pre_deployment_command:
                  type: string
                  description: 'Pre deployment command.'
                pre_deployment_command_container:
                  type: string
                  description: 'Pre deployment command container.'
                manual_webhook_secret_github:
                  type: string
                  description: 'Manual webhook secret for Github.'
                manual_webhook_secret_gitlab:
                  type: string
                  description: 'Manual webhook secret for Gitlab.'
                manual_webhook_secret_bitbucket:
                  type: string
                  description: 'Manual webhook secret for Bitbucket.'
                manual_webhook_secret_gitea:
                  type: string
                  description: 'Manual webhook secret for Gitea.'
                redirect:
                  type: string
                  nullable: true
                  description: 'How to set redirect with Traefik / Caddy. www<->non-www.'
                  enum: [www, non-www, both]
                instant_deploy:
                  type: boolean
                  description: 'The flag to indicate if the application should be deployed instantly.'
                dockerfile:
                  type: string
                  description: 'The Dockerfile content.'
                docker_compose_location:
                  type: string
                  description: 'The Docker Compose location.'
                docker_compose_raw:
                  type: string
                  description: 'The Docker Compose raw content.'
                docker_compose_custom_start_command:
                  type: string
                  description: 'The Docker Compose custom start command.'
                docker_compose_custom_build_command:
                  type: string
                  description: 'The Docker Compose custom build command.'
                docker_compose_domains:
                  type: array
                  description: 'The Docker Compose domains.'
                watch_paths:
                  type: string
                  description: 'The watch paths.'
                use_build_server:
                  type: boolean
                  nullable: true
                  description: 'Use build server.'
              type: object
      responses:
        '200':
          description: 'Application updated.'
          content:
            application/json:
              schema:
                properties:
                  uuid: { type: string }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  '/applications/{uuid}/envs':
    get:
      tags:
        - Applications
      summary: 'List Envs'
      description: 'List all envs by application UUID.'
      operationId: list-envs-by-application-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the application.'
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: 'All environment variables by application UUID.'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EnvironmentVariable'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
    post:
      tags:
        - Applications
      summary: 'Create Env'
      description: 'Create env by application UUID.'
      operationId: create-env-by-application-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the application.'
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: 'Env created.'
        required: true
        content:
          application/json:
            schema:
              properties:
                key:
                  type: string
                  description: 'The key of the environment variable.'
                value:
                  type: string
                  description: 'The value of the environment variable.'
                is_preview:
                  type: boolean
                  description: 'The flag to indicate if the environment variable is used in preview deployments.'
                is_build_time:
                  type: boolean
                  description: 'The flag to indicate if the environment variable is used in build time.'
                is_literal:
                  type: boolean
                  description: 'The flag to indicate if the environment variable is a literal, nothing espaced.'
                is_multiline:
                  type: boolean
                  description: 'The flag to indicate if the environment variable is multiline.'
                is_shown_once:
                  type: boolean
                  description: "The flag to indicate if the environment variable's value is shown on the UI."
              type: object
      responses:
        '201':
          description: 'Environment variable created.'
          content:
            application/json:
              schema:
                properties:
                  uuid: { type: string, example: nc0k04gk8g0cgsk440g0koko }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
    patch:
      tags:
        - Applications
      summary: 'Update Env'
      description: 'Update env by application UUID.'
      operationId: update-env-by-application-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the application.'
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: 'Env updated.'
        required: true
        content:
          application/json:
            schema:
              required:
                - key
                - value
              properties:
                key:
                  type: string
                  description: 'The key of the environment variable.'
                value:
                  type: string
                  description: 'The value of the environment variable.'
                is_preview:
                  type: boolean
                  description: 'The flag to indicate if the environment variable is used in preview deployments.'
                is_build_time:
                  type: boolean
                  description: 'The flag to indicate if the environment variable is used in build time.'
                is_literal:
                  type: boolean
                  description: 'The flag to indicate if the environment variable is a literal, nothing espaced.'
                is_multiline:
                  type: boolean
                  description: 'The flag to indicate if the environment variable is multiline.'
                is_shown_once:
                  type: boolean
                  description: "The flag to indicate if the environment variable's value is shown on the UI."
              type: object
      responses:
        '201':
          description: 'Environment variable updated.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Environment variable updated.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  '/applications/{uuid}/envs/bulk':
    patch:
      tags:
        - Applications
      summary: 'Update Envs (Bulk)'
      description: 'Update multiple envs by application UUID.'
      operationId: update-envs-by-application-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the application.'
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: 'Bulk envs updated.'
        required: true
        content:
          application/json:
            schema:
              required:
                - data
              properties:
                data:
                  type: array
                  items:
                    {
                      properties:
                        {
                          key:
                            { type: string, description: 'The key of the environment variable.' },
                          value:
                            { type: string, description: 'The value of the environment variable.' },
                          is_preview:
                            {
                              type: boolean,
                              description: 'The flag to indicate if the environment variable is used in preview deployments.',
                            },
                          is_build_time:
                            {
                              type: boolean,
                              description: 'The flag to indicate if the environment variable is used in build time.',
                            },
                          is_literal:
                            {
                              type: boolean,
                              description: 'The flag to indicate if the environment variable is a literal, nothing espaced.',
                            },
                          is_multiline:
                            {
                              type: boolean,
                              description: 'The flag to indicate if the environment variable is multiline.',
                            },
                          is_shown_once:
                            {
                              type: boolean,
                              description: "The flag to indicate if the environment variable's value is shown on the UI.",
                            },
                        },
                      type: object,
                    }
              type: object
      responses:
        '201':
          description: 'Environment variables updated.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Environment variables updated.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  '/applications/{uuid}/envs/{env_uuid}':
    delete:
      tags:
        - Applications
      summary: 'Delete Env'
      description: 'Delete env by UUID.'
      operationId: delete-env-by-application-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the application.'
          required: true
          schema:
            type: string
            format: uuid
        - name: env_uuid
          in: path
          description: 'UUID of the environment variable.'
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: 'Environment variable deleted.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Environment variable deleted.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  '/applications/{uuid}/start':
    get:
      tags:
        - Applications
      summary: Start
      description: 'Start application. `Post` request is also accepted.'
      operationId: start-application-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the application.'
          required: true
          schema:
            type: string
            format: uuid
        - name: force
          in: query
          description: 'Force rebuild.'
          schema:
            type: boolean
            default: false
        - name: instant_deploy
          in: query
          description: 'Instant deploy (skip queuing).'
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: 'Start application.'
          content:
            application/json:
              schema:
                properties:
                  message:
                    { type: string, example: 'Deployment request queued.', description: Message. }
                  deployment_uuid:
                    { type: string, example: doogksw, description: 'UUID of the deployment.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  '/applications/{uuid}/stop':
    get:
      tags:
        - Applications
      summary: Stop
      description: 'Stop application. `Post` request is also accepted.'
      operationId: stop-application-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the application.'
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: 'Stop application.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Application stopping request queued.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  '/applications/{uuid}/restart':
    get:
      tags:
        - Applications
      summary: Restart
      description: 'Restart application. `Post` request is also accepted.'
      operationId: restart-application-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the application.'
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: 'Restart application.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Restart request queued.' }
                  deployment_uuid:
                    { type: string, example: doogksw, description: 'UUID of the deployment.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  '/applications/{uuid}/execute':
    post:
      tags:
        - Applications
      summary: 'Execute Command'
      description: "Execute a command on the application's current container."
      operationId: execute-command-application
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the application.'
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: 'Command to execute.'
        required: true
        content:
          application/json:
            schema:
              properties:
                command:
                  type: string
                  description: 'Command to execute.'
              type: object
      responses:
        '200':
          description: "Execute a command on the application's current container."
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Command executed.' }
                  response: { type: string }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  /databases:
    get:
      tags:
        - Databases
      summary: List
      description: 'List all databases.'
      operationId: list-databases
      responses:
        '200':
          description: 'Get all databases'
          content:
            application/json:
              schema:
                type: string
              example: 'Content is very complex. Will be implemented later.'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  '/databases/{uuid}':
    get:
      tags:
        - Databases
      summary: Get
      description: 'Get database by UUID.'
      operationId: get-database-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the database.'
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: 'Get all databases'
          content:
            application/json:
              schema:
                type: string
              example: 'Content is very complex. Will be implemented later.'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
    delete:
      tags:
        - Databases
      summary: Delete
      description: 'Delete database by UUID.'
      operationId: delete-database-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the database.'
          required: true
          schema:
            type: string
            format: uuid
        - name: delete_configurations
          in: query
          description: 'Delete configurations.'
          required: false
          schema:
            type: boolean
            default: true
        - name: delete_volumes
          in: query
          description: 'Delete volumes.'
          required: false
          schema:
            type: boolean
            default: true
        - name: docker_cleanup
          in: query
          description: 'Run docker cleanup.'
          required: false
          schema:
            type: boolean
            default: true
        - name: delete_connected_networks
          in: query
          description: 'Delete connected networks.'
          required: false
          schema:
            type: boolean
            default: true
      responses:
        '200':
          description: 'Database deleted.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Database deleted.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
    patch:
      tags:
        - Databases
      summary: Update
      description: 'Update database by UUID.'
      operationId: update-database-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the database.'
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: 'Database data'
        required: true
        content:
          application/json:
            schema:
              properties:
                name:
                  type: string
                  description: 'Name of the database'
                description:
                  type: string
                  description: 'Description of the database'
                image:
                  type: string
                  description: 'Docker Image of the database'
                is_public:
                  type: boolean
                  description: 'Is the database public?'
                public_port:
                  type: integer
                  description: 'Public port of the database'
                limits_memory:
                  type: string
                  description: 'Memory limit of the database'
                limits_memory_swap:
                  type: string
                  description: 'Memory swap limit of the database'
                limits_memory_swappiness:
                  type: integer
                  description: 'Memory swappiness of the database'
                limits_memory_reservation:
                  type: string
                  description: 'Memory reservation of the database'
                limits_cpus:
                  type: string
                  description: 'CPU limit of the database'
                limits_cpuset:
                  type: string
                  description: 'CPU set of the database'
                limits_cpu_shares:
                  type: integer
                  description: 'CPU shares of the database'
                postgres_user:
                  type: string
                  description: 'PostgreSQL user'
                postgres_password:
                  type: string
                  description: 'PostgreSQL password'
                postgres_db:
                  type: string
                  description: 'PostgreSQL database'
                postgres_initdb_args:
                  type: string
                  description: 'PostgreSQL initdb args'
                postgres_host_auth_method:
                  type: string
                  description: 'PostgreSQL host auth method'
                postgres_conf:
                  type: string
                  description: 'PostgreSQL conf'
                clickhouse_admin_user:
                  type: string
                  description: 'Clickhouse admin user'
                clickhouse_admin_password:
                  type: string
                  description: 'Clickhouse admin password'
                dragonfly_password:
                  type: string
                  description: 'DragonFly password'
                redis_password:
                  type: string
                  description: 'Redis password'
                redis_conf:
                  type: string
                  description: 'Redis conf'
                keydb_password:
                  type: string
                  description: 'KeyDB password'
                keydb_conf:
                  type: string
                  description: 'KeyDB conf'
                mariadb_conf:
                  type: string
                  description: 'MariaDB conf'
                mariadb_root_password:
                  type: string
                  description: 'MariaDB root password'
                mariadb_user:
                  type: string
                  description: 'MariaDB user'
                mariadb_password:
                  type: string
                  description: 'MariaDB password'
                mariadb_database:
                  type: string
                  description: 'MariaDB database'
                mongo_conf:
                  type: string
                  description: 'Mongo conf'
                mongo_initdb_root_username:
                  type: string
                  description: 'Mongo initdb root username'
                mongo_initdb_root_password:
                  type: string
                  description: 'Mongo initdb root password'
                mongo_initdb_database:
                  type: string
                  description: 'Mongo initdb init database'
                mysql_root_password:
                  type: string
                  description: 'MySQL root password'
                mysql_password:
                  type: string
                  description: 'MySQL password'
                mysql_user:
                  type: string
                  description: 'MySQL user'
                mysql_database:
                  type: string
                  description: 'MySQL database'
                mysql_conf:
                  type: string
                  description: 'MySQL conf'
              type: object
      responses:
        '200':
          description: 'Database updated'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  /databases/postgresql:
    post:
      tags:
        - Databases
      summary: 'Create (PostgreSQL)'
      description: 'Create a new PostgreSQL database.'
      operationId: create-database-postgresql
      requestBody:
        description: 'Database data'
        required: true
        content:
          application/json:
            schema:
              required:
                - server_uuid
                - project_uuid
                - environment_name
                - environment_uuid
              properties:
                server_uuid:
                  type: string
                  description: 'UUID of the server'
                project_uuid:
                  type: string
                  description: 'UUID of the project'
                environment_name:
                  type: string
                  description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.'
                environment_uuid:
                  type: string
                  description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
                postgres_user:
                  type: string
                  description: 'PostgreSQL user'
                postgres_password:
                  type: string
                  description: 'PostgreSQL password'
                postgres_db:
                  type: string
                  description: 'PostgreSQL database'
                postgres_initdb_args:
                  type: string
                  description: 'PostgreSQL initdb args'
                postgres_host_auth_method:
                  type: string
                  description: 'PostgreSQL host auth method'
                postgres_conf:
                  type: string
                  description: 'PostgreSQL conf'
                destination_uuid:
                  type: string
                  description: 'UUID of the destination if the server has multiple destinations'
                name:
                  type: string
                  description: 'Name of the database'
                description:
                  type: string
                  description: 'Description of the database'
                image:
                  type: string
                  description: 'Docker Image of the database'
                is_public:
                  type: boolean
                  description: 'Is the database public?'
                public_port:
                  type: integer
                  description: 'Public port of the database'
                limits_memory:
                  type: string
                  description: 'Memory limit of the database'
                limits_memory_swap:
                  type: string
                  description: 'Memory swap limit of the database'
                limits_memory_swappiness:
                  type: integer
                  description: 'Memory swappiness of the database'
                limits_memory_reservation:
                  type: string
                  description: 'Memory reservation of the database'
                limits_cpus:
                  type: string
                  description: 'CPU limit of the database'
                limits_cpuset:
                  type: string
                  description: 'CPU set of the database'
                limits_cpu_shares:
                  type: integer
                  description: 'CPU shares of the database'
                instant_deploy:
                  type: boolean
                  description: 'Instant deploy the database'
              type: object
      responses:
        '200':
          description: 'Database updated'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  /databases/clickhouse:
    post:
      tags:
        - Databases
      summary: 'Create (Clickhouse)'
      description: 'Create a new Clickhouse database.'
      operationId: create-database-clickhouse
      requestBody:
        description: 'Database data'
        required: true
        content:
          application/json:
            schema:
              required:
                - server_uuid
                - project_uuid
                - environment_name
                - environment_uuid
              properties:
                server_uuid:
                  type: string
                  description: 'UUID of the server'
                project_uuid:
                  type: string
                  description: 'UUID of the project'
                environment_name:
                  type: string
                  description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.'
                environment_uuid:
                  type: string
                  description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
                destination_uuid:
                  type: string
                  description: 'UUID of the destination if the server has multiple destinations'
                clickhouse_admin_user:
                  type: string
                  description: 'Clickhouse admin user'
                clickhouse_admin_password:
                  type: string
                  description: 'Clickhouse admin password'
                name:
                  type: string
                  description: 'Name of the database'
                description:
                  type: string
                  description: 'Description of the database'
                image:
                  type: string
                  description: 'Docker Image of the database'
                is_public:
                  type: boolean
                  description: 'Is the database public?'
                public_port:
                  type: integer
                  description: 'Public port of the database'
                limits_memory:
                  type: string
                  description: 'Memory limit of the database'
                limits_memory_swap:
                  type: string
                  description: 'Memory swap limit of the database'
                limits_memory_swappiness:
                  type: integer
                  description: 'Memory swappiness of the database'
                limits_memory_reservation:
                  type: string
                  description: 'Memory reservation of the database'
                limits_cpus:
                  type: string
                  description: 'CPU limit of the database'
                limits_cpuset:
                  type: string
                  description: 'CPU set of the database'
                limits_cpu_shares:
                  type: integer
                  description: 'CPU shares of the database'
                instant_deploy:
                  type: boolean
                  description: 'Instant deploy the database'
              type: object
      responses:
        '200':
          description: 'Database updated'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  /databases/dragonfly:
    post:
      tags:
        - Databases
      summary: 'Create (DragonFly)'
      description: 'Create a new DragonFly database.'
      operationId: create-database-dragonfly
      requestBody:
        description: 'Database data'
        required: true
        content:
          application/json:
            schema:
              required:
                - server_uuid
                - project_uuid
                - environment_name
                - environment_uuid
              properties:
                server_uuid:
                  type: string
                  description: 'UUID of the server'
                project_uuid:
                  type: string
                  description: 'UUID of the project'
                environment_name:
                  type: string
                  description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.'
                environment_uuid:
                  type: string
                  description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
                destination_uuid:
                  type: string
                  description: 'UUID of the destination if the server has multiple destinations'
                dragonfly_password:
                  type: string
                  description: 'DragonFly password'
                name:
                  type: string
                  description: 'Name of the database'
                description:
                  type: string
                  description: 'Description of the database'
                image:
                  type: string
                  description: 'Docker Image of the database'
                is_public:
                  type: boolean
                  description: 'Is the database public?'
                public_port:
                  type: integer
                  description: 'Public port of the database'
                limits_memory:
                  type: string
                  description: 'Memory limit of the database'
                limits_memory_swap:
                  type: string
                  description: 'Memory swap limit of the database'
                limits_memory_swappiness:
                  type: integer
                  description: 'Memory swappiness of the database'
                limits_memory_reservation:
                  type: string
                  description: 'Memory reservation of the database'
                limits_cpus:
                  type: string
                  description: 'CPU limit of the database'
                limits_cpuset:
                  type: string
                  description: 'CPU set of the database'
                limits_cpu_shares:
                  type: integer
                  description: 'CPU shares of the database'
                instant_deploy:
                  type: boolean
                  description: 'Instant deploy the database'
              type: object
      responses:
        '200':
          description: 'Database updated'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  /databases/redis:
    post:
      tags:
        - Databases
      summary: 'Create (Redis)'
      description: 'Create a new Redis database.'
      operationId: create-database-redis
      requestBody:
        description: 'Database data'
        required: true
        content:
          application/json:
            schema:
              required:
                - server_uuid
                - project_uuid
                - environment_name
                - environment_uuid
              properties:
                server_uuid:
                  type: string
                  description: 'UUID of the server'
                project_uuid:
                  type: string
                  description: 'UUID of the project'
                environment_name:
                  type: string
                  description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.'
                environment_uuid:
                  type: string
                  description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
                destination_uuid:
                  type: string
                  description: 'UUID of the destination if the server has multiple destinations'
                redis_password:
                  type: string
                  description: 'Redis password'
                redis_conf:
                  type: string
                  description: 'Redis conf'
                name:
                  type: string
                  description: 'Name of the database'
                description:
                  type: string
                  description: 'Description of the database'
                image:
                  type: string
                  description: 'Docker Image of the database'
                is_public:
                  type: boolean
                  description: 'Is the database public?'
                public_port:
                  type: integer
                  description: 'Public port of the database'
                limits_memory:
                  type: string
                  description: 'Memory limit of the database'
                limits_memory_swap:
                  type: string
                  description: 'Memory swap limit of the database'
                limits_memory_swappiness:
                  type: integer
                  description: 'Memory swappiness of the database'
                limits_memory_reservation:
                  type: string
                  description: 'Memory reservation of the database'
                limits_cpus:
                  type: string
                  description: 'CPU limit of the database'
                limits_cpuset:
                  type: string
                  description: 'CPU set of the database'
                limits_cpu_shares:
                  type: integer
                  description: 'CPU shares of the database'
                instant_deploy:
                  type: boolean
                  description: 'Instant deploy the database'
              type: object
      responses:
        '200':
          description: 'Database updated'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  /databases/keydb:
    post:
      tags:
        - Databases
      summary: 'Create (KeyDB)'
      description: 'Create a new KeyDB database.'
      operationId: create-database-keydb
      requestBody:
        description: 'Database data'
        required: true
        content:
          application/json:
            schema:
              required:
                - server_uuid
                - project_uuid
                - environment_name
                - environment_uuid
              properties:
                server_uuid:
                  type: string
                  description: 'UUID of the server'
                project_uuid:
                  type: string
                  description: 'UUID of the project'
                environment_name:
                  type: string
                  description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.'
                environment_uuid:
                  type: string
                  description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
                destination_uuid:
                  type: string
                  description: 'UUID of the destination if the server has multiple destinations'
                keydb_password:
                  type: string
                  description: 'KeyDB password'
                keydb_conf:
                  type: string
                  description: 'KeyDB conf'
                name:
                  type: string
                  description: 'Name of the database'
                description:
                  type: string
                  description: 'Description of the database'
                image:
                  type: string
                  description: 'Docker Image of the database'
                is_public:
                  type: boolean
                  description: 'Is the database public?'
                public_port:
                  type: integer
                  description: 'Public port of the database'
                limits_memory:
                  type: string
                  description: 'Memory limit of the database'
                limits_memory_swap:
                  type: string
                  description: 'Memory swap limit of the database'
                limits_memory_swappiness:
                  type: integer
                  description: 'Memory swappiness of the database'
                limits_memory_reservation:
                  type: string
                  description: 'Memory reservation of the database'
                limits_cpus:
                  type: string
                  description: 'CPU limit of the database'
                limits_cpuset:
                  type: string
                  description: 'CPU set of the database'
                limits_cpu_shares:
                  type: integer
                  description: 'CPU shares of the database'
                instant_deploy:
                  type: boolean
                  description: 'Instant deploy the database'
              type: object
      responses:
        '200':
          description: 'Database updated'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  /databases/mariadb:
    post:
      tags:
        - Databases
      summary: 'Create (MariaDB)'
      description: 'Create a new MariaDB database.'
      operationId: create-database-mariadb
      requestBody:
        description: 'Database data'
        required: true
        content:
          application/json:
            schema:
              required:
                - server_uuid
                - project_uuid
                - environment_name
                - environment_uuid
              properties:
                server_uuid:
                  type: string
                  description: 'UUID of the server'
                project_uuid:
                  type: string
                  description: 'UUID of the project'
                environment_name:
                  type: string
                  description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.'
                environment_uuid:
                  type: string
                  description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
                destination_uuid:
                  type: string
                  description: 'UUID of the destination if the server has multiple destinations'
                mariadb_conf:
                  type: string
                  description: 'MariaDB conf'
                mariadb_root_password:
                  type: string
                  description: 'MariaDB root password'
                mariadb_user:
                  type: string
                  description: 'MariaDB user'
                mariadb_password:
                  type: string
                  description: 'MariaDB password'
                mariadb_database:
                  type: string
                  description: 'MariaDB database'
                name:
                  type: string
                  description: 'Name of the database'
                description:
                  type: string
                  description: 'Description of the database'
                image:
                  type: string
                  description: 'Docker Image of the database'
                is_public:
                  type: boolean
                  description: 'Is the database public?'
                public_port:
                  type: integer
                  description: 'Public port of the database'
                limits_memory:
                  type: string
                  description: 'Memory limit of the database'
                limits_memory_swap:
                  type: string
                  description: 'Memory swap limit of the database'
                limits_memory_swappiness:
                  type: integer
                  description: 'Memory swappiness of the database'
                limits_memory_reservation:
                  type: string
                  description: 'Memory reservation of the database'
                limits_cpus:
                  type: string
                  description: 'CPU limit of the database'
                limits_cpuset:
                  type: string
                  description: 'CPU set of the database'
                limits_cpu_shares:
                  type: integer
                  description: 'CPU shares of the database'
                instant_deploy:
                  type: boolean
                  description: 'Instant deploy the database'
              type: object
      responses:
        '200':
          description: 'Database updated'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  /databases/mysql:
    post:
      tags:
        - Databases
      summary: 'Create (MySQL)'
      description: 'Create a new MySQL database.'
      operationId: create-database-mysql
      requestBody:
        description: 'Database data'
        required: true
        content:
          application/json:
            schema:
              required:
                - server_uuid
                - project_uuid
                - environment_name
                - environment_uuid
              properties:
                server_uuid:
                  type: string
                  description: 'UUID of the server'
                project_uuid:
                  type: string
                  description: 'UUID of the project'
                environment_name:
                  type: string
                  description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.'
                environment_uuid:
                  type: string
                  description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
                destination_uuid:
                  type: string
                  description: 'UUID of the destination if the server has multiple destinations'
                mysql_root_password:
                  type: string
                  description: 'MySQL root password'
                mysql_password:
                  type: string
                  description: 'MySQL password'
                mysql_user:
                  type: string
                  description: 'MySQL user'
                mysql_database:
                  type: string
                  description: 'MySQL database'
                mysql_conf:
                  type: string
                  description: 'MySQL conf'
                name:
                  type: string
                  description: 'Name of the database'
                description:
                  type: string
                  description: 'Description of the database'
                image:
                  type: string
                  description: 'Docker Image of the database'
                is_public:
                  type: boolean
                  description: 'Is the database public?'
                public_port:
                  type: integer
                  description: 'Public port of the database'
                limits_memory:
                  type: string
                  description: 'Memory limit of the database'
                limits_memory_swap:
                  type: string
                  description: 'Memory swap limit of the database'
                limits_memory_swappiness:
                  type: integer
                  description: 'Memory swappiness of the database'
                limits_memory_reservation:
                  type: string
                  description: 'Memory reservation of the database'
                limits_cpus:
                  type: string
                  description: 'CPU limit of the database'
                limits_cpuset:
                  type: string
                  description: 'CPU set of the database'
                limits_cpu_shares:
                  type: integer
                  description: 'CPU shares of the database'
                instant_deploy:
                  type: boolean
                  description: 'Instant deploy the database'
              type: object
      responses:
        '200':
          description: 'Database updated'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  /databases/mongodb:
    post:
      tags:
        - Databases
      summary: 'Create (MongoDB)'
      description: 'Create a new MongoDB database.'
      operationId: create-database-mongodb
      requestBody:
        description: 'Database data'
        required: true
        content:
          application/json:
            schema:
              required:
                - server_uuid
                - project_uuid
                - environment_name
                - environment_uuid
              properties:
                server_uuid:
                  type: string
                  description: 'UUID of the server'
                project_uuid:
                  type: string
                  description: 'UUID of the project'
                environment_name:
                  type: string
                  description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.'
                environment_uuid:
                  type: string
                  description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
                destination_uuid:
                  type: string
                  description: 'UUID of the destination if the server has multiple destinations'
                mongo_conf:
                  type: string
                  description: 'MongoDB conf'
                mongo_initdb_root_username:
                  type: string
                  description: 'MongoDB initdb root username'
                name:
                  type: string
                  description: 'Name of the database'
                description:
                  type: string
                  description: 'Description of the database'
                image:
                  type: string
                  description: 'Docker Image of the database'
                is_public:
                  type: boolean
                  description: 'Is the database public?'
                public_port:
                  type: integer
                  description: 'Public port of the database'
                limits_memory:
                  type: string
                  description: 'Memory limit of the database'
                limits_memory_swap:
                  type: string
                  description: 'Memory swap limit of the database'
                limits_memory_swappiness:
                  type: integer
                  description: 'Memory swappiness of the database'
                limits_memory_reservation:
                  type: string
                  description: 'Memory reservation of the database'
                limits_cpus:
                  type: string
                  description: 'CPU limit of the database'
                limits_cpuset:
                  type: string
                  description: 'CPU set of the database'
                limits_cpu_shares:
                  type: integer
                  description: 'CPU shares of the database'
                instant_deploy:
                  type: boolean
                  description: 'Instant deploy the database'
              type: object
      responses:
        '200':
          description: 'Database updated'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  '/databases/{uuid}/start':
    get:
      tags:
        - Databases
      summary: Start
      description: 'Start database. `Post` request is also accepted.'
      operationId: start-database-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the database.'
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: 'Start database.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Database starting request queued.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  '/databases/{uuid}/stop':
    get:
      tags:
        - Databases
      summary: Stop
      description: 'Stop database. `Post` request is also accepted.'
      operationId: stop-database-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the database.'
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: 'Stop database.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Database stopping request queued.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  '/databases/{uuid}/restart':
    get:
      tags:
        - Databases
      summary: Restart
      description: 'Restart database. `Post` request is also accepted.'
      operationId: restart-database-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the database.'
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: 'Restart database.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Database restaring request queued.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  /deployments:
    get:
      tags:
        - Deployments
      summary: List
      description: 'List currently running deployments'
      operationId: list-deployments
      responses:
        '200':
          description: 'Get all currently running deployments.'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApplicationDeploymentQueue'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  '/deployments/{uuid}':
    get:
      tags:
        - Deployments
      summary: Get
      description: 'Get deployment by UUID.'
      operationId: get-deployment-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'Deployment UUID'
          required: true
          schema:
            type: string
      responses:
        '200':
          description: 'Get deployment by UUID.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationDeploymentQueue'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  /deploy:
    get:
      tags:
        - Deployments
      summary: Deploy
      description: 'Deploy by tag or uuid. `Post` request also accepted.'
      operationId: deploy-by-tag-or-uuid
      parameters:
        - name: tag
          in: query
          description: 'Tag name(s). Comma separated list is also accepted.'
          schema:
            type: string
        - name: uuid
          in: query
          description: 'Resource UUID(s). Comma separated list is also accepted.'
          schema:
            type: string
        - name: force
          in: query
          description: 'Force rebuild (without cache)'
          schema:
            type: boolean
      responses:
        '200':
          description: "Get deployment(s) UUID's"
          content:
            application/json:
              schema:
                properties:
                  deployments:
                    {
                      type: array,
                      items:
                        {
                          properties:
                            {
                              message: { type: string },
                              resource_uuid: { type: string },
                              deployment_uuid: { type: string },
                            },
                          type: object,
                        },
                    }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  /version:
    get:
      summary: Version
      description: 'Get Coolify version.'
      operationId: version
      responses:
        '200':
          description: 'Returns the version of the application'
          content:
            application/json:
              schema:
                type: string
              example: v4.0.0
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  /enable:
    get:
      summary: 'Enable API'
      description: 'Enable API (only with root permissions).'
      operationId: enable-api
      responses:
        '200':
          description: 'Enable API.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'API enabled.' }
                type: object
        '403':
          description: 'You are not allowed to enable the API.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'You are not allowed to enable the API.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  /disable:
    get:
      summary: 'Disable API'
      description: 'Disable API (only with root permissions).'
      operationId: disable-api
      responses:
        '200':
          description: 'Disable API.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'API disabled.' }
                type: object
        '403':
          description: 'You are not allowed to disable the API.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'You are not allowed to disable the API.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  /health:
    get:
      summary: Healthcheck
      description: 'Healthcheck endpoint.'
      operationId: healthcheck
      responses:
        '200':
          description: 'Healthcheck endpoint.'
          content:
            application/json:
              schema:
                type: string
              example: OK
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
  /projects:
    get:
      tags:
        - Projects
      summary: List
      description: 'List projects.'
      operationId: list-projects
      responses:
        '200':
          description: 'Get all projects.'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Project'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
    post:
      tags:
        - Projects
      summary: Create
      description: 'Create Project.'
      operationId: create-project
      requestBody:
        description: 'Project created.'
        required: true
        content:
          application/json:
            schema:
              properties:
                name:
                  type: string
                  description: 'The name of the project.'
                description:
                  type: string
                  description: 'The description of the project.'
              type: object
      responses:
        '201':
          description: 'Project created.'
          content:
            application/json:
              schema:
                properties:
                  uuid: { type: string, example: og888os, description: 'The UUID of the project.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  '/projects/{uuid}':
    get:
      tags:
        - Projects
      summary: Get
      description: 'Get project by UUID.'
      operationId: get-project-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'Project UUID'
          required: true
          schema:
            type: string
      responses:
        '200':
          description: 'Project details'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          description: 'Project not found.'
      security:
        - bearerAuth: []
    delete:
      tags:
        - Projects
      summary: Delete
      description: 'Delete project by UUID.'
      operationId: delete-project-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the application.'
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: 'Project deleted.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Project deleted.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
    patch:
      tags:
        - Projects
      summary: Update
      description: 'Update Project.'
      operationId: update-project-by-uuid
      requestBody:
        description: 'Project updated.'
        required: true
        content:
          application/json:
            schema:
              properties:
                name:
                  type: string
                  description: 'The name of the project.'
                description:
                  type: string
                  description: 'The description of the project.'
              type: object
      responses:
        '201':
          description: 'Project updated.'
          content:
            application/json:
              schema:
                properties:
                  uuid: { type: string, example: og888os }
                  name: { type: string, example: 'Project Name' }
                  description: { type: string, example: 'Project Description' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  '/projects/{uuid}/{environment_name_or_uuid}':
    get:
      tags:
        - Projects
      summary: Environment
      description: 'Get environment by name or UUID.'
      operationId: get-environment-by-name-or-uuid
      parameters:
        - name: uuid
          in: path
          description: 'Project UUID'
          required: true
          schema:
            type: string
        - name: environment_name_or_uuid
          in: path
          description: 'Environment name or UUID'
          required: true
          schema:
            type: string
      responses:
        '200':
          description: 'Environment details'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Environment'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  /resources:
    get:
      tags:
        - Resources
      summary: List
      description: 'Get all resources.'
      operationId: list-resources
      responses:
        '200':
          description: 'Get all resources'
          content:
            application/json:
              schema:
                type: string
              example: 'Content is very complex. Will be implemented later.'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  /security/keys:
    get:
      tags:
        - 'Private Keys'
      summary: List
      description: 'List all private keys.'
      operationId: list-private-keys
      responses:
        '200':
          description: 'Get all private keys.'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PrivateKey'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
    post:
      tags:
        - 'Private Keys'
      summary: Create
      description: 'Create a new private key.'
      operationId: create-private-key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - private_key
              properties:
                name:
                  type: string
                description:
                  type: string
                private_key:
                  type: string
              type: object
              additionalProperties: false
      responses:
        '201':
          description: "The created private key's UUID."
          content:
            application/json:
              schema:
                properties:
                  uuid: { type: string }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
    patch:
      tags:
        - 'Private Keys'
      summary: Update
      description: 'Update a private key.'
      operationId: update-private-key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - private_key
              properties:
                name:
                  type: string
                description:
                  type: string
                private_key:
                  type: string
              type: object
              additionalProperties: false
      responses:
        '201':
          description: "The updated private key's UUID."
          content:
            application/json:
              schema:
                properties:
                  uuid: { type: string }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  '/security/keys/{uuid}':
    get:
      tags:
        - 'Private Keys'
      summary: Get
      description: 'Get key by UUID.'
      operationId: get-private-key-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'Private Key UUID'
          required: true
          schema:
            type: string
      responses:
        '200':
          description: 'Get all private keys.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrivateKey'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          description: 'Private Key not found.'
      security:
        - bearerAuth: []
    delete:
      tags:
        - 'Private Keys'
      summary: Delete
      description: 'Delete a private key.'
      operationId: delete-private-key-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'Private Key UUID'
          required: true
          schema:
            type: string
      responses:
        '200':
          description: 'Private Key deleted.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Private Key deleted.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          description: 'Private Key not found.'
      security:
        - bearerAuth: []
  /servers:
    get:
      tags:
        - Servers
      summary: List
      description: 'List all servers.'
      operationId: list-servers
      responses:
        '200':
          description: 'Get all servers.'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Server'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
    post:
      tags:
        - Servers
      summary: Create
      description: 'Create Server.'
      operationId: create-server
      requestBody:
        description: 'Server created.'
        required: true
        content:
          application/json:
            schema:
              properties:
                name:
                  type: string
                  example: 'My Server'
                  description: 'The name of the server.'
                description:
                  type: string
                  example: 'My Server Description'
                  description: 'The description of the server.'
                ip:
                  type: string
                  example: 127.0.0.1
                  description: 'The IP of the server.'
                port:
                  type: integer
                  example: 22
                  description: 'The port of the server.'
                user:
                  type: string
                  example: root
                  description: 'The user of the server.'
                private_key_uuid:
                  type: string
                  example: og888os
                  description: 'The UUID of the private key.'
                is_build_server:
                  type: boolean
                  example: false
                  description: 'Is build server.'
                instant_validate:
                  type: boolean
                  example: false
                  description: 'Instant validate.'
                proxy_type:
                  type: string
                  enum: [traefik, caddy, none]
                  example: traefik
                  description: 'The proxy type.'
              type: object
      responses:
        '201':
          description: 'Server created.'
          content:
            application/json:
              schema:
                properties:
                  uuid: { type: string, example: og888os, description: 'The UUID of the server.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  '/servers/{uuid}':
    get:
      tags:
        - Servers
      summary: Get
      description: 'Get server by UUID.'
      operationId: get-server-by-uuid
      parameters:
        - name: uuid
          in: path
          description: "Server's UUID"
          required: true
          schema:
            type: string
      responses:
        '200':
          description: 'Get server by UUID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Server'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
    delete:
      tags:
        - Servers
      summary: Delete
      description: 'Delete server by UUID.'
      operationId: delete-server-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the server.'
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: 'Server deleted.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Server deleted.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
    patch:
      tags:
        - Servers
      summary: Update
      description: 'Update Server.'
      operationId: update-server-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'Server UUID'
          required: true
          schema:
            type: string
      requestBody:
        description: 'Server updated.'
        required: true
        content:
          application/json:
            schema:
              properties:
                name:
                  type: string
                  description: 'The name of the server.'
                description:
                  type: string
                  description: 'The description of the server.'
                ip:
                  type: string
                  description: 'The IP of the server.'
                port:
                  type: integer
                  description: 'The port of the server.'
                user:
                  type: string
                  description: 'The user of the server.'
                private_key_uuid:
                  type: string
                  description: 'The UUID of the private key.'
                is_build_server:
                  type: boolean
                  description: 'Is build server.'
                instant_validate:
                  type: boolean
                  description: 'Instant validate.'
                proxy_type:
                  type: string
                  enum: [traefik, caddy, none]
                  description: 'The proxy type.'
              type: object
      responses:
        '201':
          description: 'Server updated.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Server'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  '/servers/{uuid}/resources':
    get:
      tags:
        - Servers
      summary: Resources
      description: 'Get resources by server.'
      operationId: get-resources-by-server-uuid
      parameters:
        - name: uuid
          in: path
          description: "Server's UUID"
          required: true
          schema:
            type: string
      responses:
        '200':
          description: 'Get resources by server'
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    {
                      id: { type: integer },
                      uuid: { type: string },
                      name: { type: string },
                      type: { type: string },
                      created_at: { type: string },
                      updated_at: { type: string },
                      status: { type: string },
                    }
                  type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  '/servers/{uuid}/domains':
    get:
      tags:
        - Servers
      summary: Domains
      description: 'Get domains by server.'
      operationId: get-domains-by-server-uuid
      parameters:
        - name: uuid
          in: path
          description: "Server's UUID"
          required: true
          schema:
            type: string
      responses:
        '200':
          description: 'Get domains by server'
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    { ip: { type: string }, domains: { type: array, items: { type: string } } }
                  type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  '/servers/{uuid}/validate':
    get:
      tags:
        - Servers
      summary: Validate
      description: 'Validate server by UUID.'
      operationId: validate-server-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'Server UUID'
          required: true
          schema:
            type: string
      responses:
        '201':
          description: 'Server validation started.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Validation started.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  /services:
    get:
      tags:
        - Services
      summary: List
      description: 'List all services.'
      operationId: list-services
      responses:
        '200':
          description: 'Get all services'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Service'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
    post:
      tags:
        - Services
      summary: Create
      description: 'Create a one-click service'
      operationId: create-service
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - server_uuid
                - project_uuid
                - environment_name
                - environment_uuid
                - type
              properties:
                type:
                  description: 'The one-click service type'
                  type: string
                  enum:
                    [
                      activepieces,
                      appsmith,
                      appwrite,
                      authentik,
                      babybuddy,
                      budge,
                      changedetection,
                      chatwoot,
                      classicpress-with-mariadb,
                      classicpress-with-mysql,
                      classicpress-without-database,
                      cloudflared,
                      code-server,
                      dashboard,
                      directus,
                      directus-with-postgresql,
                      docker-registry,
                      docuseal,
                      docuseal-with-postgres,
                      dokuwiki,
                      duplicati,
                      emby,
                      embystat,
                      fider,
                      filebrowser,
                      firefly,
                      formbricks,
                      ghost,
                      gitea,
                      gitea-with-mariadb,
                      gitea-with-mysql,
                      gitea-with-postgresql,
                      glance,
                      glances,
                      glitchtip,
                      grafana,
                      grafana-with-postgresql,
                      grocy,
                      heimdall,
                      homepage,
                      jellyfin,
                      kuzzle,
                      listmonk,
                      logto,
                      mediawiki,
                      meilisearch,
                      metabase,
                      metube,
                      minio,
                      moodle,
                      n8n,
                      n8n-with-postgresql,
                      next-image-transformation,
                      nextcloud,
                      nocodb,
                      odoo,
                      openblocks,
                      pairdrop,
                      penpot,
                      phpmyadmin,
                      pocketbase,
                      posthog,
                      reactive-resume,
                      rocketchat,
                      shlink,
                      slash,
                      snapdrop,
                      statusnook,
                      stirling-pdf,
                      supabase,
                      syncthing,
                      tolgee,
                      trigger,
                      trigger-with-external-database,
                      twenty,
                      umami,
                      unleash-with-postgresql,
                      unleash-without-database,
                      uptime-kuma,
                      vaultwarden,
                      vikunja,
                      weblate,
                      whoogle,
                      wordpress-with-mariadb,
                      wordpress-with-mysql,
                      wordpress-without-database,
                    ]
                name:
                  type: string
                  maxLength: 255
                  description: 'Name of the service.'
                description:
                  type: string
                  nullable: true
                  description: 'Description of the service.'
                project_uuid:
                  type: string
                  description: 'Project UUID.'
                environment_name:
                  type: string
                  description: 'Environment name. You need to provide at least one of environment_name or environment_uuid.'
                environment_uuid:
                  type: string
                  description: 'Environment UUID. You need to provide at least one of environment_name or environment_uuid.'
                server_uuid:
                  type: string
                  description: 'Server UUID.'
                destination_uuid:
                  type: string
                  description: 'Destination UUID. Required if server has multiple destinations.'
                instant_deploy:
                  type: boolean
                  default: false
                  description: 'Start the service immediately after creation.'
              type: object
      responses:
        '201':
          description: 'Create a service.'
          content:
            application/json:
              schema:
                properties:
                  uuid: { type: string, description: 'Service UUID.' }
                  domains: { type: array, items: { type: string }, description: 'Service domains.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  '/services/{uuid}':
    get:
      tags:
        - Services
      summary: Get
      description: 'Get service by UUID.'
      operationId: get-service-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'Service UUID'
          required: true
          schema:
            type: string
      responses:
        '200':
          description: 'Get a service by UUID.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Service'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
    delete:
      tags:
        - Services
      summary: Delete
      description: 'Delete service by UUID.'
      operationId: delete-service-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'Service UUID'
          required: true
          schema:
            type: string
        - name: delete_configurations
          in: query
          description: 'Delete configurations.'
          required: false
          schema:
            type: boolean
            default: true
        - name: delete_volumes
          in: query
          description: 'Delete volumes.'
          required: false
          schema:
            type: boolean
            default: true
        - name: docker_cleanup
          in: query
          description: 'Run docker cleanup.'
          required: false
          schema:
            type: boolean
            default: true
        - name: delete_connected_networks
          in: query
          description: 'Delete connected networks.'
          required: false
          schema:
            type: boolean
            default: true
      responses:
        '200':
          description: 'Delete a service by UUID'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Service deletion request queued.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  '/services/{uuid}/envs':
    get:
      tags:
        - Services
      summary: 'List Envs'
      description: 'List all envs by service UUID.'
      operationId: list-envs-by-service-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the service.'
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: 'All environment variables by service UUID.'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EnvironmentVariable'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
    post:
      tags:
        - Services
      summary: 'Create Env'
      description: 'Create env by service UUID.'
      operationId: create-env-by-service-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the service.'
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: 'Env created.'
        required: true
        content:
          application/json:
            schema:
              properties:
                key:
                  type: string
                  description: 'The key of the environment variable.'
                value:
                  type: string
                  description: 'The value of the environment variable.'
                is_preview:
                  type: boolean
                  description: 'The flag to indicate if the environment variable is used in preview deployments.'
                is_build_time:
                  type: boolean
                  description: 'The flag to indicate if the environment variable is used in build time.'
                is_literal:
                  type: boolean
                  description: 'The flag to indicate if the environment variable is a literal, nothing espaced.'
                is_multiline:
                  type: boolean
                  description: 'The flag to indicate if the environment variable is multiline.'
                is_shown_once:
                  type: boolean
                  description: "The flag to indicate if the environment variable's value is shown on the UI."
              type: object
      responses:
        '201':
          description: 'Environment variable created.'
          content:
            application/json:
              schema:
                properties:
                  uuid: { type: string, example: nc0k04gk8g0cgsk440g0koko }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
    patch:
      tags:
        - Services
      summary: 'Update Env'
      description: 'Update env by service UUID.'
      operationId: update-env-by-service-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the service.'
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: 'Env updated.'
        required: true
        content:
          application/json:
            schema:
              required:
                - key
                - value
              properties:
                key:
                  type: string
                  description: 'The key of the environment variable.'
                value:
                  type: string
                  description: 'The value of the environment variable.'
                is_preview:
                  type: boolean
                  description: 'The flag to indicate if the environment variable is used in preview deployments.'
                is_build_time:
                  type: boolean
                  description: 'The flag to indicate if the environment variable is used in build time.'
                is_literal:
                  type: boolean
                  description: 'The flag to indicate if the environment variable is a literal, nothing espaced.'
                is_multiline:
                  type: boolean
                  description: 'The flag to indicate if the environment variable is multiline.'
                is_shown_once:
                  type: boolean
                  description: "The flag to indicate if the environment variable's value is shown on the UI."
              type: object
      responses:
        '201':
          description: 'Environment variable updated.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Environment variable updated.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  '/services/{uuid}/envs/bulk':
    patch:
      tags:
        - Services
      summary: 'Update Envs (Bulk)'
      description: 'Update multiple envs by service UUID.'
      operationId: update-envs-by-service-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the service.'
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: 'Bulk envs updated.'
        required: true
        content:
          application/json:
            schema:
              required:
                - data
              properties:
                data:
                  type: array
                  items:
                    {
                      properties:
                        {
                          key:
                            { type: string, description: 'The key of the environment variable.' },
                          value:
                            { type: string, description: 'The value of the environment variable.' },
                          is_preview:
                            {
                              type: boolean,
                              description: 'The flag to indicate if the environment variable is used in preview deployments.',
                            },
                          is_build_time:
                            {
                              type: boolean,
                              description: 'The flag to indicate if the environment variable is used in build time.',
                            },
                          is_literal:
                            {
                              type: boolean,
                              description: 'The flag to indicate if the environment variable is a literal, nothing espaced.',
                            },
                          is_multiline:
                            {
                              type: boolean,
                              description: 'The flag to indicate if the environment variable is multiline.',
                            },
                          is_shown_once:
                            {
                              type: boolean,
                              description: "The flag to indicate if the environment variable's value is shown on the UI.",
                            },
                        },
                      type: object,
                    }
              type: object
      responses:
        '201':
          description: 'Environment variables updated.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Environment variables updated.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  '/services/{uuid}/envs/{env_uuid}':
    delete:
      tags:
        - Services
      summary: 'Delete Env'
      description: 'Delete env by UUID.'
      operationId: delete-env-by-service-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the service.'
          required: true
          schema:
            type: string
            format: uuid
        - name: env_uuid
          in: path
          description: 'UUID of the environment variable.'
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: 'Environment variable deleted.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Environment variable deleted.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  '/services/{uuid}/start':
    get:
      tags:
        - Services
      summary: Start
      description: 'Start service. `Post` request is also accepted.'
      operationId: start-service-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the service.'
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: 'Start service.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Service starting request queued.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  '/services/{uuid}/stop':
    get:
      tags:
        - Services
      summary: Stop
      description: 'Stop service. `Post` request is also accepted.'
      operationId: stop-service-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the service.'
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: 'Stop service.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Service stopping request queued.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  '/services/{uuid}/restart':
    get:
      tags:
        - Services
      summary: Restart
      description: 'Restart service. `Post` request is also accepted.'
      operationId: restart-service-by-uuid
      parameters:
        - name: uuid
          in: path
          description: 'UUID of the service.'
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: 'Restart service.'
          content:
            application/json:
              schema:
                properties:
                  message: { type: string, example: 'Service restaring request queued.' }
                type: object
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  /teams:
    get:
      tags:
        - Teams
      summary: List
      description: 'Get all teams.'
      operationId: list-teams
      responses:
        '200':
          description: 'List of teams.'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Team'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  '/teams/{id}':
    get:
      tags:
        - Teams
      summary: Get
      description: 'Get team by TeamId.'
      operationId: get-team-by-id
      parameters:
        - name: id
          in: path
          description: 'Team ID'
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: 'List of teams.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Team'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  '/teams/{id}/members':
    get:
      tags:
        - Teams
      summary: Members
      description: 'Get members by TeamId.'
      operationId: get-members-by-team-id
      parameters:
        - name: id
          in: path
          description: 'Team ID'
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: 'List of members.'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/User'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
      security:
        - bearerAuth: []
  /teams/current:
    get:
      tags:
        - Teams
      summary: 'Authenticated Team'
      description: 'Get currently authenticated team.'
      operationId: get-current-team
      responses:
        '200':
          description: 'Current Team.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Team'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
  /teams/current/members:
    get:
      tags:
        - Teams
      summary: 'Authenticated Team Members'
      description: 'Get currently authenticated team members.'
      operationId: get-current-team-members
      responses:
        '200':
          description: 'Currently authenticated team members.'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/User'
        '401':
          $ref: '#/components/responses/401'
        '400':
          $ref: '#/components/responses/400'
      security:
        - bearerAuth: []
components:
  schemas:
    Application:
      description: 'Application model'
      properties:
        id:
          type: integer
          description: 'The application identifier in the database.'
        description:
          type: string
          nullable: true
          description: 'The application description.'
        repository_project_id:
          type: integer
          nullable: true
          description: 'The repository project identifier.'
        uuid:
          type: string
          description: 'The application UUID.'
        name:
          type: string
          description: 'The application name.'
        fqdn:
          type: string
          nullable: true
          description: 'The application domains.'
        config_hash:
          type: string
          description: 'Configuration hash.'
        git_repository:
          type: string
          description: 'Git repository URL.'
        git_branch:
          type: string
          description: 'Git branch.'
        git_commit_sha:
          type: string
          description: 'Git commit SHA.'
        git_full_url:
          type: string
          nullable: true
          description: 'Git full URL.'
        docker_registry_image_name:
          type: string
          nullable: true
          description: 'Docker registry image name.'
        docker_registry_image_tag:
          type: string
          nullable: true
          description: 'Docker registry image tag.'
        build_pack:
          type: string
          description: 'Build pack.'
          enum:
            - nixpacks
            - static
            - dockerfile
            - dockercompose
        static_image:
          type: string
          description: 'Static image used when static site is deployed.'
        install_command:
          type: string
          description: 'Install command.'
        build_command:
          type: string
          description: 'Build command.'
        start_command:
          type: string
          description: 'Start command.'
        ports_exposes:
          type: string
          description: 'Ports exposes.'
        ports_mappings:
          type: string
          nullable: true
          description: 'Ports mappings.'
        base_directory:
          type: string
          description: 'Base directory for all commands.'
        publish_directory:
          type: string
          description: 'Publish directory.'
        health_check_enabled:
          type: boolean
          description: 'Health check enabled.'
        health_check_path:
          type: string
          description: 'Health check path.'
        health_check_port:
          type: string
          nullable: true
          description: 'Health check port.'
        health_check_host:
          type: string
          nullable: true
          description: 'Health check host.'
        health_check_method:
          type: string
          description: 'Health check method.'
        health_check_return_code:
          type: integer
          description: 'Health check return code.'
        health_check_scheme:
          type: string
          description: 'Health check scheme.'
        health_check_response_text:
          type: string
          nullable: true
          description: 'Health check response text.'
        health_check_interval:
          type: integer
          description: 'Health check interval in seconds.'
        health_check_timeout:
          type: integer
          description: 'Health check timeout in seconds.'
        health_check_retries:
          type: integer
          description: 'Health check retries count.'
        health_check_start_period:
          type: integer
          description: 'Health check start period in seconds.'
        limits_memory:
          type: string
          description: 'Memory limit.'
        limits_memory_swap:
          type: string
          description: 'Memory swap limit.'
        limits_memory_swappiness:
          type: integer
          description: 'Memory swappiness.'
        limits_memory_reservation:
          type: string
          description: 'Memory reservation.'
        limits_cpus:
          type: string
          description: 'CPU limit.'
        limits_cpuset:
          type: string
          nullable: true
          description: 'CPU set.'
        limits_cpu_shares:
          type: integer
          description: 'CPU shares.'
        status:
          type: string
          description: 'Application status.'
        preview_url_template:
          type: string
          description: 'Preview URL template.'
        destination_type:
          type: string
          description: 'Destination type.'
        destination_id:
          type: integer
          description: 'Destination identifier.'
        source_id:
          type: integer
          nullable: true
          description: 'Source identifier.'
        private_key_id:
          type: integer
          nullable: true
          description: 'Private key identifier.'
        environment_id:
          type: integer
          description: 'Environment identifier.'
        dockerfile:
          type: string
          nullable: true
          description: 'Dockerfile content. Used for dockerfile build pack.'
        dockerfile_location:
          type: string
          description: 'Dockerfile location.'
        custom_labels:
          type: string
          nullable: true
          description: 'Custom labels.'
        dockerfile_target_build:
          type: string
          nullable: true
          description: 'Dockerfile target build.'
        manual_webhook_secret_github:
          type: string
          nullable: true
          description: 'Manual webhook secret for GitHub.'
        manual_webhook_secret_gitlab:
          type: string
          nullable: true
          description: 'Manual webhook secret for GitLab.'
        manual_webhook_secret_bitbucket:
          type: string
          nullable: true
          description: 'Manual webhook secret for Bitbucket.'
        manual_webhook_secret_gitea:
          type: string
          nullable: true
          description: 'Manual webhook secret for Gitea.'
        docker_compose_location:
          type: string
          description: 'Docker compose location.'
        docker_compose:
          type: string
          nullable: true
          description: 'Docker compose content. Used for docker compose build pack.'
        docker_compose_raw:
          type: string
          nullable: true
          description: 'Docker compose raw content.'
        docker_compose_domains:
          type: string
          nullable: true
          description: 'Docker compose domains.'
        docker_compose_custom_start_command:
          type: string
          nullable: true
          description: 'Docker compose custom start command.'
        docker_compose_custom_build_command:
          type: string
          nullable: true
          description: 'Docker compose custom build command.'
        swarm_replicas:
          type: integer
          nullable: true
          description: 'Swarm replicas. Only used for swarm deployments.'
        swarm_placement_constraints:
          type: string
          nullable: true
          description: 'Swarm placement constraints. Only used for swarm deployments.'
        custom_docker_run_options:
          type: string
          nullable: true
          description: 'Custom docker run options.'
        post_deployment_command:
          type: string
          nullable: true
          description: 'Post deployment command.'
        post_deployment_command_container:
          type: string
          nullable: true
          description: 'Post deployment command container.'
        pre_deployment_command:
          type: string
          nullable: true
          description: 'Pre deployment command.'
        pre_deployment_command_container:
          type: string
          nullable: true
          description: 'Pre deployment command container.'
        watch_paths:
          type: string
          nullable: true
          description: 'Watch paths.'
        custom_healthcheck_found:
          type: boolean
          description: 'Custom healthcheck found.'
        redirect:
          type: string
          nullable: true
          description: 'How to set redirect with Traefik / Caddy. www<->non-www.'
          enum:
            - www
            - non-www
            - both
        created_at:
          type: string
          format: date-time
          description: 'The date and time when the application was created.'
        updated_at:
          type: string
          format: date-time
          description: 'The date and time when the application was last updated.'
        deleted_at:
          type: string
          format: date-time
          nullable: true
          description: 'The date and time when the application was deleted.'
        compose_parsing_version:
          type: string
          description: 'How Coolify parse the compose file.'
        custom_nginx_configuration:
          type: string
          nullable: true
          description: 'Custom Nginx configuration base64 encoded.'
      type: object
    ApplicationDeploymentQueue:
      description: 'Project model'
      properties:
        id:
          type: integer
        application_id:
          type: string
        deployment_uuid:
          type: string
        pull_request_id:
          type: integer
        force_rebuild:
          type: boolean
        commit:
          type: string
        status:
          type: string
        is_webhook:
          type: boolean
        is_api:
          type: boolean
        created_at:
          type: string
        updated_at:
          type: string
        logs:
          type: string
        current_process_id:
          type: string
        restart_only:
          type: boolean
        git_type:
          type: string
        server_id:
          type: integer
        application_name:
          type: string
        server_name:
          type: string
        deployment_url:
          type: string
        destination_id:
          type: string
        only_this_server:
          type: boolean
        rollback:
          type: boolean
        commit_message:
          type: string
      type: object
    Environment:
      description: 'Environment model'
      properties:
        id:
          type: integer
        name:
          type: string
        project_id:
          type: integer
        created_at:
          type: string
        updated_at:
          type: string
        description:
          type: string
      type: object
    EnvironmentVariable:
      description: 'Environment Variable model'
      properties:
        id:
          type: integer
        uuid:
          type: string
        resourceable_type:
          type: string
        resourceable_id:
          type: integer
        is_build_time:
          type: boolean
        is_literal:
          type: boolean
        is_multiline:
          type: boolean
        is_preview:
          type: boolean
        is_shared:
          type: boolean
        is_shown_once:
          type: boolean
        key:
          type: string
        value:
          type: string
        real_value:
          type: string
        version:
          type: string
        created_at:
          type: string
        updated_at:
          type: string
      type: object
    PrivateKey:
      description: 'Private Key model'
      properties:
        id:
          type: integer
        uuid:
          type: string
        name:
          type: string
        description:
          type: string
        private_key:
          type: string
          format: private-key
        is_git_related:
          type: boolean
        team_id:
          type: integer
        created_at:
          type: string
        updated_at:
          type: string
      type: object
    Project:
      description: 'Project model'
      properties:
        id:
          type: integer
        uuid:
          type: string
        name:
          type: string
        description:
          type: string
        environments:
          description: 'The environments of the project.'
          type: array
          items:
            $ref: '#/components/schemas/Environment'
      type: object
    Server:
      description: 'Server model'
      properties:
        id:
          type: integer
          description: 'The server ID.'
        uuid:
          type: string
          description: 'The server UUID.'
        name:
          type: string
          description: 'The server name.'
        description:
          type: string
          description: 'The server description.'
        ip:
          type: string
          description: 'The IP address.'
        user:
          type: string
          description: 'The user.'
        port:
          type: integer
          description: 'The port number.'
        proxy:
          type: object
          description: 'The proxy configuration.'
        proxy_type:
          type: string
          enum:
            - traefik
            - caddy
            - none
          description: 'The proxy type.'
        high_disk_usage_notification_sent:
          type: boolean
          description: 'The flag to indicate if the high disk usage notification has been sent.'
        unreachable_notification_sent:
          type: boolean
          description: 'The flag to indicate if the unreachable notification has been sent.'
        unreachable_count:
          type: integer
          description: 'The unreachable count for your server.'
        validation_logs:
          type: string
          description: 'The validation logs.'
        log_drain_notification_sent:
          type: boolean
          description: 'The flag to indicate if the log drain notification has been sent.'
        swarm_cluster:
          type: string
          description: 'The swarm cluster configuration.'
        settings:
          $ref: '#/components/schemas/ServerSetting'
      type: object
    ServerSetting:
      description: 'Server Settings model'
      properties:
        id:
          type: integer
        concurrent_builds:
          type: integer
        dynamic_timeout:
          type: integer
        force_disabled:
          type: boolean
        force_server_cleanup:
          type: boolean
        is_build_server:
          type: boolean
        is_cloudflare_tunnel:
          type: boolean
        is_jump_server:
          type: boolean
        is_logdrain_axiom_enabled:
          type: boolean
        is_logdrain_custom_enabled:
          type: boolean
        is_logdrain_highlight_enabled:
          type: boolean
        is_logdrain_newrelic_enabled:
          type: boolean
        is_metrics_enabled:
          type: boolean
        is_reachable:
          type: boolean
        is_sentinel_enabled:
          type: boolean
        is_swarm_manager:
          type: boolean
        is_swarm_worker:
          type: boolean
        is_usable:
          type: boolean
        logdrain_axiom_api_key:
          type: string
        logdrain_axiom_dataset_name:
          type: string
        logdrain_custom_config:
          type: string
        logdrain_custom_config_parser:
          type: string
        logdrain_highlight_project_id:
          type: string
        logdrain_newrelic_base_uri:
          type: string
        logdrain_newrelic_license_key:
          type: string
        sentinel_metrics_history_days:
          type: integer
        sentinel_metrics_refresh_rate_seconds:
          type: integer
        sentinel_token:
          type: string
        docker_cleanup_frequency:
          type: string
        docker_cleanup_threshold:
          type: integer
        server_id:
          type: integer
        wildcard_domain:
          type: string
        created_at:
          type: string
        updated_at:
          type: string
        delete_unused_volumes:
          type: boolean
          description: 'The flag to indicate if the unused volumes should be deleted.'
        delete_unused_networks:
          type: boolean
          description: 'The flag to indicate if the unused networks should be deleted.'
      type: object
    Service:
      description: 'Service model'
      properties:
        id:
          type: integer
          description: 'The unique identifier of the service. Only used for database identification.'
        uuid:
          type: string
          description: 'The unique identifier of the service.'
        name:
          type: string
          description: 'The name of the service.'
        environment_id:
          type: integer
          description: 'The unique identifier of the environment where the service is attached to.'
        server_id:
          type: integer
          description: 'The unique identifier of the server where the service is running.'
        description:
          type: string
          description: 'The description of the service.'
        docker_compose_raw:
          type: string
          description: 'The raw docker-compose.yml file of the service.'
        docker_compose:
          type: string
          description: 'The docker-compose.yml file that is parsed and modified by Coolify.'
        destination_type:
          type: string
          description: 'Destination type.'
        destination_id:
          type: integer
          description: 'The unique identifier of the destination where the service is running.'
        connect_to_docker_network:
          type: boolean
          description: 'The flag to connect the service to the predefined Docker network.'
        is_container_label_escape_enabled:
          type: boolean
          description: 'The flag to enable the container label escape.'
        is_container_label_readonly_enabled:
          type: boolean
          description: 'The flag to enable the container label readonly.'
        config_hash:
          type: string
          description: 'The hash of the service configuration.'
        service_type:
          type: string
          description: 'The type of the service.'
        created_at:
          type: string
          description: 'The date and time when the service was created.'
        updated_at:
          type: string
          description: 'The date and time when the service was last updated.'
        deleted_at:
          type: string
          description: 'The date and time when the service was deleted.'
      type: object
    Team:
      description: 'Team model'
      properties:
        id:
          type: integer
          description: 'The unique identifier of the team.'
        name:
          type: string
          description: 'The name of the team.'
        description:
          type: string
          description: 'The description of the team.'
        personal_team:
          type: boolean
          description: 'Whether the team is personal or not.'
        created_at:
          type: string
          description: 'The date and time the team was created.'
        updated_at:
          type: string
          description: 'The date and time the team was last updated.'
        show_boarding:
          type: boolean
          description: 'Whether to show the boarding screen or not.'
        custom_server_limit:
          type: string
          description: 'The custom server limit.'
        members:
          description: 'The members of the team.'
          type: array
          items:
            $ref: '#/components/schemas/User'
      type: object
    User:
      description: 'User model'
      properties:
        id:
          type: integer
          description: 'The user identifier in the database.'
        name:
          type: string
          description: 'The user name.'
        email:
          type: string
          description: 'The user email.'
        email_verified_at:
          type: string
          description: 'The date when the user email was verified.'
        created_at:
          type: string
          description: 'The date when the user was created.'
        updated_at:
          type: string
          description: 'The date when the user was updated.'
        two_factor_confirmed_at:
          type: string
          description: 'The date when the user two factor was confirmed.'
        force_password_reset:
          type: boolean
          description: 'The flag to force the user to reset the password.'
        marketing_emails:
          type: boolean
          description: 'The flag to receive marketing emails.'
      type: object
  responses:
    '400':
      description: 'Invalid token.'
      content:
        application/json:
          schema:
            properties:
              message:
                type: string
                example: 'Invalid token.'
            type: object
    '401':
      description: Unauthenticated.
      content:
        application/json:
          schema:
            properties:
              message:
                type: string
                example: Unauthenticated.
            type: object
    '404':
      description: 'Resource not found.'
      content:
        application/json:
          schema:
            properties:
              message:
                type: string
                example: 'Resource not found.'
            type: object
  securitySchemes:
    bearerAuth:
      type: http
      description: 'Go to `Keys & Tokens` / `API tokens` and create a new token. Use the token as the bearer token.'
      scheme: bearer
tags:
  - name: Applications
    description: Applications
  - name: Databases
    description: Databases
  - name: Deployments
    description: Deployments
  - name: Projects
    description: Projects
  - name: Resources
    description: Resources
  - name: 'Private Keys'
    description: 'Private Keys'
  - name: Servers
    description: Servers
  - name: Services
    description: Services
  - name: Teams
    description: Teams

```
Page 3/4FirstPrevNextLast