5363 lines
		
	
	
		
			175 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			5363 lines
		
	
	
		
			175 KiB
		
	
	
	
		
			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
 | 
						|
                - 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.'
 | 
						|
                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:
 | 
						|
        '200':
 | 
						|
          description: 'Application created successfully.'
 | 
						|
        '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
 | 
						|
                - 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.'
 | 
						|
                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:
 | 
						|
        '200':
 | 
						|
          description: 'Application created successfully.'
 | 
						|
        '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
 | 
						|
                - 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.'
 | 
						|
                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:
 | 
						|
        '200':
 | 
						|
          description: 'Application created successfully.'
 | 
						|
        '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
 | 
						|
                - 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.'
 | 
						|
                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:
 | 
						|
        '200':
 | 
						|
          description: 'Application created successfully.'
 | 
						|
        '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
 | 
						|
                - 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.'
 | 
						|
                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:
 | 
						|
        '200':
 | 
						|
          description: 'Application created successfully.'
 | 
						|
        '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
 | 
						|
                - 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.'
 | 
						|
                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:
 | 
						|
        '200':
 | 
						|
          description: 'Application created successfully.'
 | 
						|
        '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_init_database:
 | 
						|
                  type: string
 | 
						|
                  description: 'Mongo initdb init database'
 | 
						|
                mysql_root_password:
 | 
						|
                  type: string
 | 
						|
                  description: 'MySQL root 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
 | 
						|
              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'
 | 
						|
                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
 | 
						|
              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'
 | 
						|
                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
 | 
						|
              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'
 | 
						|
                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
 | 
						|
              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'
 | 
						|
                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
 | 
						|
              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'
 | 
						|
                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
 | 
						|
              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'
 | 
						|
                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
 | 
						|
              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'
 | 
						|
                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_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
 | 
						|
              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'
 | 
						|
                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}':
 | 
						|
    get:
 | 
						|
      tags:
 | 
						|
        - Projects
 | 
						|
      summary: Environment
 | 
						|
      description: 'Get environment by name.'
 | 
						|
      operationId: get-environment-by-name
 | 
						|
      parameters:
 | 
						|
        -
 | 
						|
          name: uuid
 | 
						|
          in: path
 | 
						|
          description: 'Project UUID'
 | 
						|
          required: true
 | 
						|
          schema:
 | 
						|
            type: string
 | 
						|
        -
 | 
						|
          name: environment_name
 | 
						|
          in: path
 | 
						|
          description: 'Environment name'
 | 
						|
          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
 | 
						|
                - 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.'
 | 
						|
                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
 | 
						|
        application_id:
 | 
						|
          type: integer
 | 
						|
        service_id:
 | 
						|
          type: integer
 | 
						|
        database_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.'
 | 
						|
        smtp_enabled:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether SMTP is enabled or not.'
 | 
						|
        smtp_from_address:
 | 
						|
          type: string
 | 
						|
          description: 'The email address to send emails from.'
 | 
						|
        smtp_from_name:
 | 
						|
          type: string
 | 
						|
          description: 'The name to send emails from.'
 | 
						|
        smtp_recipients:
 | 
						|
          type: string
 | 
						|
          description: 'The email addresses to send emails to.'
 | 
						|
        smtp_host:
 | 
						|
          type: string
 | 
						|
          description: 'The SMTP host.'
 | 
						|
        smtp_port:
 | 
						|
          type: string
 | 
						|
          description: 'The SMTP port.'
 | 
						|
        smtp_encryption:
 | 
						|
          type: string
 | 
						|
          description: 'The SMTP encryption.'
 | 
						|
        smtp_username:
 | 
						|
          type: string
 | 
						|
          description: 'The SMTP username.'
 | 
						|
        smtp_password:
 | 
						|
          type: string
 | 
						|
          description: 'The SMTP password.'
 | 
						|
        smtp_timeout:
 | 
						|
          type: string
 | 
						|
          description: 'The SMTP timeout.'
 | 
						|
        smtp_notifications_test:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether to send test notifications via SMTP.'
 | 
						|
        smtp_notifications_deployments:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether to send deployment notifications via SMTP.'
 | 
						|
        smtp_notifications_status_changes:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether to send status change notifications via SMTP.'
 | 
						|
        smtp_notifications_scheduled_tasks:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether to send scheduled task notifications via SMTP.'
 | 
						|
        smtp_notifications_database_backups:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether to send database backup notifications via SMTP.'
 | 
						|
        smtp_notifications_server_disk_usage:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether to send server disk usage notifications via SMTP.'
 | 
						|
        discord_enabled:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether Discord is enabled or not.'
 | 
						|
        discord_webhook_url:
 | 
						|
          type: string
 | 
						|
          description: 'The Discord webhook URL.'
 | 
						|
        discord_notifications_test:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether to send test notifications via Discord.'
 | 
						|
        discord_notifications_deployments:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether to send deployment notifications via Discord.'
 | 
						|
        discord_notifications_status_changes:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether to send status change notifications via Discord.'
 | 
						|
        discord_notifications_database_backups:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether to send database backup notifications via Discord.'
 | 
						|
        discord_notifications_scheduled_tasks:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether to send scheduled task notifications via Discord.'
 | 
						|
        discord_notifications_server_disk_usage:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether to send server disk usage notifications via Discord.'
 | 
						|
        show_boarding:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether to show the boarding screen or not.'
 | 
						|
        resend_enabled:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether to enable resending or not.'
 | 
						|
        resend_api_key:
 | 
						|
          type: string
 | 
						|
          description: 'The resending API key.'
 | 
						|
        use_instance_email_settings:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether to use instance email settings or not.'
 | 
						|
        telegram_enabled:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether Telegram is enabled or not.'
 | 
						|
        telegram_token:
 | 
						|
          type: string
 | 
						|
          description: 'The Telegram token.'
 | 
						|
        telegram_chat_id:
 | 
						|
          type: string
 | 
						|
          description: 'The Telegram chat ID.'
 | 
						|
        telegram_notifications_test:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether to send test notifications via Telegram.'
 | 
						|
        telegram_notifications_deployments:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether to send deployment notifications via Telegram.'
 | 
						|
        telegram_notifications_status_changes:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether to send status change notifications via Telegram.'
 | 
						|
        telegram_notifications_database_backups:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether to send database backup notifications via Telegram.'
 | 
						|
        telegram_notifications_test_message_thread_id:
 | 
						|
          type: string
 | 
						|
          description: 'The Telegram test message thread ID.'
 | 
						|
        telegram_notifications_deployments_message_thread_id:
 | 
						|
          type: string
 | 
						|
          description: 'The Telegram deployment message thread ID.'
 | 
						|
        telegram_notifications_status_changes_message_thread_id:
 | 
						|
          type: string
 | 
						|
          description: 'The Telegram status change message thread ID.'
 | 
						|
        telegram_notifications_database_backups_message_thread_id:
 | 
						|
          type: string
 | 
						|
          description: 'The Telegram database backup message thread ID.'
 | 
						|
        custom_server_limit:
 | 
						|
          type: string
 | 
						|
          description: 'The custom server limit.'
 | 
						|
        telegram_notifications_scheduled_tasks:
 | 
						|
          type: boolean
 | 
						|
          description: 'Whether to send scheduled task notifications via Telegram.'
 | 
						|
        telegram_notifications_scheduled_tasks_thread_id:
 | 
						|
          type: string
 | 
						|
          description: 'The Telegram scheduled task message thread ID.'
 | 
						|
        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
 |