5579 lines
		
	
	
		
			184 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			5579 lines
		
	
	
		
			184 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
 | |
|                 - environment_uuid
 | |
|                 - git_repository
 | |
|                 - git_branch
 | |
|                 - build_pack
 | |
|                 - ports_exposes
 | |
|               properties:
 | |
|                 project_uuid:
 | |
|                   type: string
 | |
|                   description: 'The project UUID.'
 | |
|                 server_uuid:
 | |
|                   type: string
 | |
|                   description: 'The server UUID.'
 | |
|                 environment_name:
 | |
|                   type: string
 | |
|                   description: 'The environment name. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 environment_uuid:
 | |
|                   type: string
 | |
|                   description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 git_repository:
 | |
|                   type: string
 | |
|                   description: 'The git repository URL.'
 | |
|                 git_branch:
 | |
|                   type: string
 | |
|                   description: 'The git branch.'
 | |
|                 build_pack:
 | |
|                   type: string
 | |
|                   enum: [nixpacks, static, dockerfile, dockercompose]
 | |
|                   description: 'The build pack type.'
 | |
|                 ports_exposes:
 | |
|                   type: string
 | |
|                   description: 'The ports to expose.'
 | |
|                 destination_uuid:
 | |
|                   type: string
 | |
|                   description: 'The destination UUID.'
 | |
|                 name:
 | |
|                   type: string
 | |
|                   description: 'The application name.'
 | |
|                 description:
 | |
|                   type: string
 | |
|                   description: 'The application description.'
 | |
|                 domains:
 | |
|                   type: string
 | |
|                   description: 'The application domains.'
 | |
|                 git_commit_sha:
 | |
|                   type: string
 | |
|                   description: 'The git commit SHA.'
 | |
|                 docker_registry_image_name:
 | |
|                   type: string
 | |
|                   description: 'The docker registry image name.'
 | |
|                 docker_registry_image_tag:
 | |
|                   type: string
 | |
|                   description: 'The docker registry image tag.'
 | |
|                 is_static:
 | |
|                   type: boolean
 | |
|                   description: 'The flag to indicate if the application is static.'
 | |
|                 static_image:
 | |
|                   type: string
 | |
|                   enum: ['nginx:alpine']
 | |
|                   description: 'The static image.'
 | |
|                 install_command:
 | |
|                   type: string
 | |
|                   description: 'The install command.'
 | |
|                 build_command:
 | |
|                   type: string
 | |
|                   description: 'The build command.'
 | |
|                 start_command:
 | |
|                   type: string
 | |
|                   description: 'The start command.'
 | |
|                 ports_mappings:
 | |
|                   type: string
 | |
|                   description: 'The ports mappings.'
 | |
|                 base_directory:
 | |
|                   type: string
 | |
|                   description: 'The base directory for all commands.'
 | |
|                 publish_directory:
 | |
|                   type: string
 | |
|                   description: 'The publish directory.'
 | |
|                 health_check_enabled:
 | |
|                   type: boolean
 | |
|                   description: 'Health check enabled.'
 | |
|                 health_check_path:
 | |
|                   type: string
 | |
|                   description: 'Health check path.'
 | |
|                 health_check_port:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Health check port.'
 | |
|                 health_check_host:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Health check host.'
 | |
|                 health_check_method:
 | |
|                   type: string
 | |
|                   description: 'Health check method.'
 | |
|                 health_check_return_code:
 | |
|                   type: integer
 | |
|                   description: 'Health check return code.'
 | |
|                 health_check_scheme:
 | |
|                   type: string
 | |
|                   description: 'Health check scheme.'
 | |
|                 health_check_response_text:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Health check response text.'
 | |
|                 health_check_interval:
 | |
|                   type: integer
 | |
|                   description: 'Health check interval in seconds.'
 | |
|                 health_check_timeout:
 | |
|                   type: integer
 | |
|                   description: 'Health check timeout in seconds.'
 | |
|                 health_check_retries:
 | |
|                   type: integer
 | |
|                   description: 'Health check retries count.'
 | |
|                 health_check_start_period:
 | |
|                   type: integer
 | |
|                   description: 'Health check start period in seconds.'
 | |
|                 limits_memory:
 | |
|                   type: string
 | |
|                   description: 'Memory limit.'
 | |
|                 limits_memory_swap:
 | |
|                   type: string
 | |
|                   description: 'Memory swap limit.'
 | |
|                 limits_memory_swappiness:
 | |
|                   type: integer
 | |
|                   description: 'Memory swappiness.'
 | |
|                 limits_memory_reservation:
 | |
|                   type: string
 | |
|                   description: 'Memory reservation.'
 | |
|                 limits_cpus:
 | |
|                   type: string
 | |
|                   description: 'CPU limit.'
 | |
|                 limits_cpuset:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'CPU set.'
 | |
|                 limits_cpu_shares:
 | |
|                   type: integer
 | |
|                   description: 'CPU shares.'
 | |
|                 custom_labels:
 | |
|                   type: string
 | |
|                   description: 'Custom labels.'
 | |
|                 custom_docker_run_options:
 | |
|                   type: string
 | |
|                   description: 'Custom docker run options.'
 | |
|                 post_deployment_command:
 | |
|                   type: string
 | |
|                   description: 'Post deployment command.'
 | |
|                 post_deployment_command_container:
 | |
|                   type: string
 | |
|                   description: 'Post deployment command container.'
 | |
|                 pre_deployment_command:
 | |
|                   type: string
 | |
|                   description: 'Pre deployment command.'
 | |
|                 pre_deployment_command_container:
 | |
|                   type: string
 | |
|                   description: 'Pre deployment command container.'
 | |
|                 manual_webhook_secret_github:
 | |
|                   type: string
 | |
|                   description: 'Manual webhook secret for Github.'
 | |
|                 manual_webhook_secret_gitlab:
 | |
|                   type: string
 | |
|                   description: 'Manual webhook secret for Gitlab.'
 | |
|                 manual_webhook_secret_bitbucket:
 | |
|                   type: string
 | |
|                   description: 'Manual webhook secret for Bitbucket.'
 | |
|                 manual_webhook_secret_gitea:
 | |
|                   type: string
 | |
|                   description: 'Manual webhook secret for Gitea.'
 | |
|                 redirect:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'How to set redirect with Traefik / Caddy. www<->non-www.'
 | |
|                   enum: [www, non-www, both]
 | |
|                 instant_deploy:
 | |
|                   type: boolean
 | |
|                   description: 'The flag to indicate if the application should be deployed instantly.'
 | |
|                 dockerfile:
 | |
|                   type: string
 | |
|                   description: 'The Dockerfile content.'
 | |
|                 docker_compose_location:
 | |
|                   type: string
 | |
|                   description: 'The Docker Compose location.'
 | |
|                 docker_compose_raw:
 | |
|                   type: string
 | |
|                   description: 'The Docker Compose raw content.'
 | |
|                 docker_compose_custom_start_command:
 | |
|                   type: string
 | |
|                   description: 'The Docker Compose custom start command.'
 | |
|                 docker_compose_custom_build_command:
 | |
|                   type: string
 | |
|                   description: 'The Docker Compose custom build command.'
 | |
|                 docker_compose_domains:
 | |
|                   type: array
 | |
|                   description: 'The Docker Compose domains.'
 | |
|                 watch_paths:
 | |
|                   type: string
 | |
|                   description: 'The watch paths.'
 | |
|                 use_build_server:
 | |
|                   type: boolean
 | |
|                   nullable: true
 | |
|                   description: 'Use build server.'
 | |
|                 is_http_basic_auth_enabled:
 | |
|                   type: boolean
 | |
|                   description: 'HTTP Basic Authentication enabled.'
 | |
|                 http_basic_auth_username:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Username for HTTP Basic Authentication'
 | |
|                 http_basic_auth_password:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Password for HTTP Basic Authentication'
 | |
|               type: object
 | |
|       responses:
 | |
|         '201':
 | |
|           description: 'Application created successfully.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 properties:
 | |
|                   uuid: { type: string }
 | |
|                 type: object
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   /applications/private-github-app:
 | |
|     post:
 | |
|       tags:
 | |
|         - Applications
 | |
|       summary: 'Create (Private - GH App)'
 | |
|       description: 'Create new application based on a private repository through a Github App.'
 | |
|       operationId: create-private-github-app-application
 | |
|       requestBody:
 | |
|         description: 'Application object that needs to be created.'
 | |
|         required: true
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               required:
 | |
|                 - project_uuid
 | |
|                 - server_uuid
 | |
|                 - environment_name
 | |
|                 - environment_uuid
 | |
|                 - github_app_uuid
 | |
|                 - git_repository
 | |
|                 - git_branch
 | |
|                 - build_pack
 | |
|                 - ports_exposes
 | |
|               properties:
 | |
|                 project_uuid:
 | |
|                   type: string
 | |
|                   description: 'The project UUID.'
 | |
|                 server_uuid:
 | |
|                   type: string
 | |
|                   description: 'The server UUID.'
 | |
|                 environment_name:
 | |
|                   type: string
 | |
|                   description: 'The environment name. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 environment_uuid:
 | |
|                   type: string
 | |
|                   description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 github_app_uuid:
 | |
|                   type: string
 | |
|                   description: 'The Github App UUID.'
 | |
|                 git_repository:
 | |
|                   type: string
 | |
|                   description: 'The git repository URL.'
 | |
|                 git_branch:
 | |
|                   type: string
 | |
|                   description: 'The git branch.'
 | |
|                 ports_exposes:
 | |
|                   type: string
 | |
|                   description: 'The ports to expose.'
 | |
|                 destination_uuid:
 | |
|                   type: string
 | |
|                   description: 'The destination UUID.'
 | |
|                 build_pack:
 | |
|                   type: string
 | |
|                   enum: [nixpacks, static, dockerfile, dockercompose]
 | |
|                   description: 'The build pack type.'
 | |
|                 name:
 | |
|                   type: string
 | |
|                   description: 'The application name.'
 | |
|                 description:
 | |
|                   type: string
 | |
|                   description: 'The application description.'
 | |
|                 domains:
 | |
|                   type: string
 | |
|                   description: 'The application domains.'
 | |
|                 git_commit_sha:
 | |
|                   type: string
 | |
|                   description: 'The git commit SHA.'
 | |
|                 docker_registry_image_name:
 | |
|                   type: string
 | |
|                   description: 'The docker registry image name.'
 | |
|                 docker_registry_image_tag:
 | |
|                   type: string
 | |
|                   description: 'The docker registry image tag.'
 | |
|                 is_static:
 | |
|                   type: boolean
 | |
|                   description: 'The flag to indicate if the application is static.'
 | |
|                 static_image:
 | |
|                   type: string
 | |
|                   enum: ['nginx:alpine']
 | |
|                   description: 'The static image.'
 | |
|                 install_command:
 | |
|                   type: string
 | |
|                   description: 'The install command.'
 | |
|                 build_command:
 | |
|                   type: string
 | |
|                   description: 'The build command.'
 | |
|                 start_command:
 | |
|                   type: string
 | |
|                   description: 'The start command.'
 | |
|                 ports_mappings:
 | |
|                   type: string
 | |
|                   description: 'The ports mappings.'
 | |
|                 base_directory:
 | |
|                   type: string
 | |
|                   description: 'The base directory for all commands.'
 | |
|                 publish_directory:
 | |
|                   type: string
 | |
|                   description: 'The publish directory.'
 | |
|                 health_check_enabled:
 | |
|                   type: boolean
 | |
|                   description: 'Health check enabled.'
 | |
|                 health_check_path:
 | |
|                   type: string
 | |
|                   description: 'Health check path.'
 | |
|                 health_check_port:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Health check port.'
 | |
|                 health_check_host:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Health check host.'
 | |
|                 health_check_method:
 | |
|                   type: string
 | |
|                   description: 'Health check method.'
 | |
|                 health_check_return_code:
 | |
|                   type: integer
 | |
|                   description: 'Health check return code.'
 | |
|                 health_check_scheme:
 | |
|                   type: string
 | |
|                   description: 'Health check scheme.'
 | |
|                 health_check_response_text:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Health check response text.'
 | |
|                 health_check_interval:
 | |
|                   type: integer
 | |
|                   description: 'Health check interval in seconds.'
 | |
|                 health_check_timeout:
 | |
|                   type: integer
 | |
|                   description: 'Health check timeout in seconds.'
 | |
|                 health_check_retries:
 | |
|                   type: integer
 | |
|                   description: 'Health check retries count.'
 | |
|                 health_check_start_period:
 | |
|                   type: integer
 | |
|                   description: 'Health check start period in seconds.'
 | |
|                 limits_memory:
 | |
|                   type: string
 | |
|                   description: 'Memory limit.'
 | |
|                 limits_memory_swap:
 | |
|                   type: string
 | |
|                   description: 'Memory swap limit.'
 | |
|                 limits_memory_swappiness:
 | |
|                   type: integer
 | |
|                   description: 'Memory swappiness.'
 | |
|                 limits_memory_reservation:
 | |
|                   type: string
 | |
|                   description: 'Memory reservation.'
 | |
|                 limits_cpus:
 | |
|                   type: string
 | |
|                   description: 'CPU limit.'
 | |
|                 limits_cpuset:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'CPU set.'
 | |
|                 limits_cpu_shares:
 | |
|                   type: integer
 | |
|                   description: 'CPU shares.'
 | |
|                 custom_labels:
 | |
|                   type: string
 | |
|                   description: 'Custom labels.'
 | |
|                 custom_docker_run_options:
 | |
|                   type: string
 | |
|                   description: 'Custom docker run options.'
 | |
|                 post_deployment_command:
 | |
|                   type: string
 | |
|                   description: 'Post deployment command.'
 | |
|                 post_deployment_command_container:
 | |
|                   type: string
 | |
|                   description: 'Post deployment command container.'
 | |
|                 pre_deployment_command:
 | |
|                   type: string
 | |
|                   description: 'Pre deployment command.'
 | |
|                 pre_deployment_command_container:
 | |
|                   type: string
 | |
|                   description: 'Pre deployment command container.'
 | |
|                 manual_webhook_secret_github:
 | |
|                   type: string
 | |
|                   description: 'Manual webhook secret for Github.'
 | |
|                 manual_webhook_secret_gitlab:
 | |
|                   type: string
 | |
|                   description: 'Manual webhook secret for Gitlab.'
 | |
|                 manual_webhook_secret_bitbucket:
 | |
|                   type: string
 | |
|                   description: 'Manual webhook secret for Bitbucket.'
 | |
|                 manual_webhook_secret_gitea:
 | |
|                   type: string
 | |
|                   description: 'Manual webhook secret for Gitea.'
 | |
|                 redirect:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'How to set redirect with Traefik / Caddy. www<->non-www.'
 | |
|                   enum: [www, non-www, both]
 | |
|                 instant_deploy:
 | |
|                   type: boolean
 | |
|                   description: 'The flag to indicate if the application should be deployed instantly.'
 | |
|                 dockerfile:
 | |
|                   type: string
 | |
|                   description: 'The Dockerfile content.'
 | |
|                 docker_compose_location:
 | |
|                   type: string
 | |
|                   description: 'The Docker Compose location.'
 | |
|                 docker_compose_raw:
 | |
|                   type: string
 | |
|                   description: 'The Docker Compose raw content.'
 | |
|                 docker_compose_custom_start_command:
 | |
|                   type: string
 | |
|                   description: 'The Docker Compose custom start command.'
 | |
|                 docker_compose_custom_build_command:
 | |
|                   type: string
 | |
|                   description: 'The Docker Compose custom build command.'
 | |
|                 docker_compose_domains:
 | |
|                   type: array
 | |
|                   description: 'The Docker Compose domains.'
 | |
|                 watch_paths:
 | |
|                   type: string
 | |
|                   description: 'The watch paths.'
 | |
|                 use_build_server:
 | |
|                   type: boolean
 | |
|                   nullable: true
 | |
|                   description: 'Use build server.'
 | |
|                 is_http_basic_auth_enabled:
 | |
|                   type: boolean
 | |
|                   description: 'HTTP Basic Authentication enabled.'
 | |
|                 http_basic_auth_username:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Username for HTTP Basic Authentication'
 | |
|                 http_basic_auth_password:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Password for HTTP Basic Authentication'
 | |
|               type: object
 | |
|       responses:
 | |
|         '201':
 | |
|           description: 'Application created successfully.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 properties:
 | |
|                   uuid: { type: string }
 | |
|                 type: object
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   /applications/private-deploy-key:
 | |
|     post:
 | |
|       tags:
 | |
|         - Applications
 | |
|       summary: 'Create (Private - Deploy Key)'
 | |
|       description: 'Create new application based on a private repository through a Deploy Key.'
 | |
|       operationId: create-private-deploy-key-application
 | |
|       requestBody:
 | |
|         description: 'Application object that needs to be created.'
 | |
|         required: true
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               required:
 | |
|                 - project_uuid
 | |
|                 - server_uuid
 | |
|                 - environment_name
 | |
|                 - environment_uuid
 | |
|                 - private_key_uuid
 | |
|                 - git_repository
 | |
|                 - git_branch
 | |
|                 - build_pack
 | |
|                 - ports_exposes
 | |
|               properties:
 | |
|                 project_uuid:
 | |
|                   type: string
 | |
|                   description: 'The project UUID.'
 | |
|                 server_uuid:
 | |
|                   type: string
 | |
|                   description: 'The server UUID.'
 | |
|                 environment_name:
 | |
|                   type: string
 | |
|                   description: 'The environment name. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 environment_uuid:
 | |
|                   type: string
 | |
|                   description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 private_key_uuid:
 | |
|                   type: string
 | |
|                   description: 'The private key UUID.'
 | |
|                 git_repository:
 | |
|                   type: string
 | |
|                   description: 'The git repository URL.'
 | |
|                 git_branch:
 | |
|                   type: string
 | |
|                   description: 'The git branch.'
 | |
|                 ports_exposes:
 | |
|                   type: string
 | |
|                   description: 'The ports to expose.'
 | |
|                 destination_uuid:
 | |
|                   type: string
 | |
|                   description: 'The destination UUID.'
 | |
|                 build_pack:
 | |
|                   type: string
 | |
|                   enum: [nixpacks, static, dockerfile, dockercompose]
 | |
|                   description: 'The build pack type.'
 | |
|                 name:
 | |
|                   type: string
 | |
|                   description: 'The application name.'
 | |
|                 description:
 | |
|                   type: string
 | |
|                   description: 'The application description.'
 | |
|                 domains:
 | |
|                   type: string
 | |
|                   description: 'The application domains.'
 | |
|                 git_commit_sha:
 | |
|                   type: string
 | |
|                   description: 'The git commit SHA.'
 | |
|                 docker_registry_image_name:
 | |
|                   type: string
 | |
|                   description: 'The docker registry image name.'
 | |
|                 docker_registry_image_tag:
 | |
|                   type: string
 | |
|                   description: 'The docker registry image tag.'
 | |
|                 is_static:
 | |
|                   type: boolean
 | |
|                   description: 'The flag to indicate if the application is static.'
 | |
|                 static_image:
 | |
|                   type: string
 | |
|                   enum: ['nginx:alpine']
 | |
|                   description: 'The static image.'
 | |
|                 install_command:
 | |
|                   type: string
 | |
|                   description: 'The install command.'
 | |
|                 build_command:
 | |
|                   type: string
 | |
|                   description: 'The build command.'
 | |
|                 start_command:
 | |
|                   type: string
 | |
|                   description: 'The start command.'
 | |
|                 ports_mappings:
 | |
|                   type: string
 | |
|                   description: 'The ports mappings.'
 | |
|                 base_directory:
 | |
|                   type: string
 | |
|                   description: 'The base directory for all commands.'
 | |
|                 publish_directory:
 | |
|                   type: string
 | |
|                   description: 'The publish directory.'
 | |
|                 health_check_enabled:
 | |
|                   type: boolean
 | |
|                   description: 'Health check enabled.'
 | |
|                 health_check_path:
 | |
|                   type: string
 | |
|                   description: 'Health check path.'
 | |
|                 health_check_port:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Health check port.'
 | |
|                 health_check_host:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Health check host.'
 | |
|                 health_check_method:
 | |
|                   type: string
 | |
|                   description: 'Health check method.'
 | |
|                 health_check_return_code:
 | |
|                   type: integer
 | |
|                   description: 'Health check return code.'
 | |
|                 health_check_scheme:
 | |
|                   type: string
 | |
|                   description: 'Health check scheme.'
 | |
|                 health_check_response_text:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Health check response text.'
 | |
|                 health_check_interval:
 | |
|                   type: integer
 | |
|                   description: 'Health check interval in seconds.'
 | |
|                 health_check_timeout:
 | |
|                   type: integer
 | |
|                   description: 'Health check timeout in seconds.'
 | |
|                 health_check_retries:
 | |
|                   type: integer
 | |
|                   description: 'Health check retries count.'
 | |
|                 health_check_start_period:
 | |
|                   type: integer
 | |
|                   description: 'Health check start period in seconds.'
 | |
|                 limits_memory:
 | |
|                   type: string
 | |
|                   description: 'Memory limit.'
 | |
|                 limits_memory_swap:
 | |
|                   type: string
 | |
|                   description: 'Memory swap limit.'
 | |
|                 limits_memory_swappiness:
 | |
|                   type: integer
 | |
|                   description: 'Memory swappiness.'
 | |
|                 limits_memory_reservation:
 | |
|                   type: string
 | |
|                   description: 'Memory reservation.'
 | |
|                 limits_cpus:
 | |
|                   type: string
 | |
|                   description: 'CPU limit.'
 | |
|                 limits_cpuset:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'CPU set.'
 | |
|                 limits_cpu_shares:
 | |
|                   type: integer
 | |
|                   description: 'CPU shares.'
 | |
|                 custom_labels:
 | |
|                   type: string
 | |
|                   description: 'Custom labels.'
 | |
|                 custom_docker_run_options:
 | |
|                   type: string
 | |
|                   description: 'Custom docker run options.'
 | |
|                 post_deployment_command:
 | |
|                   type: string
 | |
|                   description: 'Post deployment command.'
 | |
|                 post_deployment_command_container:
 | |
|                   type: string
 | |
|                   description: 'Post deployment command container.'
 | |
|                 pre_deployment_command:
 | |
|                   type: string
 | |
|                   description: 'Pre deployment command.'
 | |
|                 pre_deployment_command_container:
 | |
|                   type: string
 | |
|                   description: 'Pre deployment command container.'
 | |
|                 manual_webhook_secret_github:
 | |
|                   type: string
 | |
|                   description: 'Manual webhook secret for Github.'
 | |
|                 manual_webhook_secret_gitlab:
 | |
|                   type: string
 | |
|                   description: 'Manual webhook secret for Gitlab.'
 | |
|                 manual_webhook_secret_bitbucket:
 | |
|                   type: string
 | |
|                   description: 'Manual webhook secret for Bitbucket.'
 | |
|                 manual_webhook_secret_gitea:
 | |
|                   type: string
 | |
|                   description: 'Manual webhook secret for Gitea.'
 | |
|                 redirect:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'How to set redirect with Traefik / Caddy. www<->non-www.'
 | |
|                   enum: [www, non-www, both]
 | |
|                 instant_deploy:
 | |
|                   type: boolean
 | |
|                   description: 'The flag to indicate if the application should be deployed instantly.'
 | |
|                 dockerfile:
 | |
|                   type: string
 | |
|                   description: 'The Dockerfile content.'
 | |
|                 docker_compose_location:
 | |
|                   type: string
 | |
|                   description: 'The Docker Compose location.'
 | |
|                 docker_compose_raw:
 | |
|                   type: string
 | |
|                   description: 'The Docker Compose raw content.'
 | |
|                 docker_compose_custom_start_command:
 | |
|                   type: string
 | |
|                   description: 'The Docker Compose custom start command.'
 | |
|                 docker_compose_custom_build_command:
 | |
|                   type: string
 | |
|                   description: 'The Docker Compose custom build command.'
 | |
|                 docker_compose_domains:
 | |
|                   type: array
 | |
|                   description: 'The Docker Compose domains.'
 | |
|                 watch_paths:
 | |
|                   type: string
 | |
|                   description: 'The watch paths.'
 | |
|                 use_build_server:
 | |
|                   type: boolean
 | |
|                   nullable: true
 | |
|                   description: 'Use build server.'
 | |
|                 is_http_basic_auth_enabled:
 | |
|                   type: boolean
 | |
|                   description: 'HTTP Basic Authentication enabled.'
 | |
|                 http_basic_auth_username:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Username for HTTP Basic Authentication'
 | |
|                 http_basic_auth_password:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Password for HTTP Basic Authentication'
 | |
|               type: object
 | |
|       responses:
 | |
|         '201':
 | |
|           description: 'Application created successfully.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 properties:
 | |
|                   uuid: { type: string }
 | |
|                 type: object
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   /applications/dockerfile:
 | |
|     post:
 | |
|       tags:
 | |
|         - Applications
 | |
|       summary: 'Create (Dockerfile)'
 | |
|       description: 'Create new application based on a simple Dockerfile.'
 | |
|       operationId: create-dockerfile-application
 | |
|       requestBody:
 | |
|         description: 'Application object that needs to be created.'
 | |
|         required: true
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               required:
 | |
|                 - project_uuid
 | |
|                 - server_uuid
 | |
|                 - environment_name
 | |
|                 - environment_uuid
 | |
|                 - dockerfile
 | |
|               properties:
 | |
|                 project_uuid:
 | |
|                   type: string
 | |
|                   description: 'The project UUID.'
 | |
|                 server_uuid:
 | |
|                   type: string
 | |
|                   description: 'The server UUID.'
 | |
|                 environment_name:
 | |
|                   type: string
 | |
|                   description: 'The environment name. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 environment_uuid:
 | |
|                   type: string
 | |
|                   description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 dockerfile:
 | |
|                   type: string
 | |
|                   description: 'The Dockerfile content.'
 | |
|                 build_pack:
 | |
|                   type: string
 | |
|                   enum: [nixpacks, static, dockerfile, dockercompose]
 | |
|                   description: 'The build pack type.'
 | |
|                 ports_exposes:
 | |
|                   type: string
 | |
|                   description: 'The ports to expose.'
 | |
|                 destination_uuid:
 | |
|                   type: string
 | |
|                   description: 'The destination UUID.'
 | |
|                 name:
 | |
|                   type: string
 | |
|                   description: 'The application name.'
 | |
|                 description:
 | |
|                   type: string
 | |
|                   description: 'The application description.'
 | |
|                 domains:
 | |
|                   type: string
 | |
|                   description: 'The application domains.'
 | |
|                 docker_registry_image_name:
 | |
|                   type: string
 | |
|                   description: 'The docker registry image name.'
 | |
|                 docker_registry_image_tag:
 | |
|                   type: string
 | |
|                   description: 'The docker registry image tag.'
 | |
|                 ports_mappings:
 | |
|                   type: string
 | |
|                   description: 'The ports mappings.'
 | |
|                 base_directory:
 | |
|                   type: string
 | |
|                   description: 'The base directory for all commands.'
 | |
|                 health_check_enabled:
 | |
|                   type: boolean
 | |
|                   description: 'Health check enabled.'
 | |
|                 health_check_path:
 | |
|                   type: string
 | |
|                   description: 'Health check path.'
 | |
|                 health_check_port:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Health check port.'
 | |
|                 health_check_host:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Health check host.'
 | |
|                 health_check_method:
 | |
|                   type: string
 | |
|                   description: 'Health check method.'
 | |
|                 health_check_return_code:
 | |
|                   type: integer
 | |
|                   description: 'Health check return code.'
 | |
|                 health_check_scheme:
 | |
|                   type: string
 | |
|                   description: 'Health check scheme.'
 | |
|                 health_check_response_text:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Health check response text.'
 | |
|                 health_check_interval:
 | |
|                   type: integer
 | |
|                   description: 'Health check interval in seconds.'
 | |
|                 health_check_timeout:
 | |
|                   type: integer
 | |
|                   description: 'Health check timeout in seconds.'
 | |
|                 health_check_retries:
 | |
|                   type: integer
 | |
|                   description: 'Health check retries count.'
 | |
|                 health_check_start_period:
 | |
|                   type: integer
 | |
|                   description: 'Health check start period in seconds.'
 | |
|                 limits_memory:
 | |
|                   type: string
 | |
|                   description: 'Memory limit.'
 | |
|                 limits_memory_swap:
 | |
|                   type: string
 | |
|                   description: 'Memory swap limit.'
 | |
|                 limits_memory_swappiness:
 | |
|                   type: integer
 | |
|                   description: 'Memory swappiness.'
 | |
|                 limits_memory_reservation:
 | |
|                   type: string
 | |
|                   description: 'Memory reservation.'
 | |
|                 limits_cpus:
 | |
|                   type: string
 | |
|                   description: 'CPU limit.'
 | |
|                 limits_cpuset:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'CPU set.'
 | |
|                 limits_cpu_shares:
 | |
|                   type: integer
 | |
|                   description: 'CPU shares.'
 | |
|                 custom_labels:
 | |
|                   type: string
 | |
|                   description: 'Custom labels.'
 | |
|                 custom_docker_run_options:
 | |
|                   type: string
 | |
|                   description: 'Custom docker run options.'
 | |
|                 post_deployment_command:
 | |
|                   type: string
 | |
|                   description: 'Post deployment command.'
 | |
|                 post_deployment_command_container:
 | |
|                   type: string
 | |
|                   description: 'Post deployment command container.'
 | |
|                 pre_deployment_command:
 | |
|                   type: string
 | |
|                   description: 'Pre deployment command.'
 | |
|                 pre_deployment_command_container:
 | |
|                   type: string
 | |
|                   description: 'Pre deployment command container.'
 | |
|                 manual_webhook_secret_github:
 | |
|                   type: string
 | |
|                   description: 'Manual webhook secret for Github.'
 | |
|                 manual_webhook_secret_gitlab:
 | |
|                   type: string
 | |
|                   description: 'Manual webhook secret for Gitlab.'
 | |
|                 manual_webhook_secret_bitbucket:
 | |
|                   type: string
 | |
|                   description: 'Manual webhook secret for Bitbucket.'
 | |
|                 manual_webhook_secret_gitea:
 | |
|                   type: string
 | |
|                   description: 'Manual webhook secret for Gitea.'
 | |
|                 redirect:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'How to set redirect with Traefik / Caddy. www<->non-www.'
 | |
|                   enum: [www, non-www, both]
 | |
|                 instant_deploy:
 | |
|                   type: boolean
 | |
|                   description: 'The flag to indicate if the application should be deployed instantly.'
 | |
|                 use_build_server:
 | |
|                   type: boolean
 | |
|                   nullable: true
 | |
|                   description: 'Use build server.'
 | |
|                 is_http_basic_auth_enabled:
 | |
|                   type: boolean
 | |
|                   description: 'HTTP Basic Authentication enabled.'
 | |
|                 http_basic_auth_username:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Username for HTTP Basic Authentication'
 | |
|                 http_basic_auth_password:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Password for HTTP Basic Authentication'
 | |
|               type: object
 | |
|       responses:
 | |
|         '201':
 | |
|           description: 'Application created successfully.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 properties:
 | |
|                   uuid: { type: string }
 | |
|                 type: object
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   /applications/dockerimage:
 | |
|     post:
 | |
|       tags:
 | |
|         - Applications
 | |
|       summary: 'Create (Docker Image)'
 | |
|       description: 'Create new application based on a prebuilt docker image'
 | |
|       operationId: create-dockerimage-application
 | |
|       requestBody:
 | |
|         description: 'Application object that needs to be created.'
 | |
|         required: true
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               required:
 | |
|                 - project_uuid
 | |
|                 - server_uuid
 | |
|                 - environment_name
 | |
|                 - environment_uuid
 | |
|                 - docker_registry_image_name
 | |
|                 - ports_exposes
 | |
|               properties:
 | |
|                 project_uuid:
 | |
|                   type: string
 | |
|                   description: 'The project UUID.'
 | |
|                 server_uuid:
 | |
|                   type: string
 | |
|                   description: 'The server UUID.'
 | |
|                 environment_name:
 | |
|                   type: string
 | |
|                   description: 'The environment name. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 environment_uuid:
 | |
|                   type: string
 | |
|                   description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 docker_registry_image_name:
 | |
|                   type: string
 | |
|                   description: 'The docker registry image name.'
 | |
|                 docker_registry_image_tag:
 | |
|                   type: string
 | |
|                   description: 'The docker registry image tag.'
 | |
|                 ports_exposes:
 | |
|                   type: string
 | |
|                   description: 'The ports to expose.'
 | |
|                 destination_uuid:
 | |
|                   type: string
 | |
|                   description: 'The destination UUID.'
 | |
|                 name:
 | |
|                   type: string
 | |
|                   description: 'The application name.'
 | |
|                 description:
 | |
|                   type: string
 | |
|                   description: 'The application description.'
 | |
|                 domains:
 | |
|                   type: string
 | |
|                   description: 'The application domains.'
 | |
|                 ports_mappings:
 | |
|                   type: string
 | |
|                   description: 'The ports mappings.'
 | |
|                 health_check_enabled:
 | |
|                   type: boolean
 | |
|                   description: 'Health check enabled.'
 | |
|                 health_check_path:
 | |
|                   type: string
 | |
|                   description: 'Health check path.'
 | |
|                 health_check_port:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Health check port.'
 | |
|                 health_check_host:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Health check host.'
 | |
|                 health_check_method:
 | |
|                   type: string
 | |
|                   description: 'Health check method.'
 | |
|                 health_check_return_code:
 | |
|                   type: integer
 | |
|                   description: 'Health check return code.'
 | |
|                 health_check_scheme:
 | |
|                   type: string
 | |
|                   description: 'Health check scheme.'
 | |
|                 health_check_response_text:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Health check response text.'
 | |
|                 health_check_interval:
 | |
|                   type: integer
 | |
|                   description: 'Health check interval in seconds.'
 | |
|                 health_check_timeout:
 | |
|                   type: integer
 | |
|                   description: 'Health check timeout in seconds.'
 | |
|                 health_check_retries:
 | |
|                   type: integer
 | |
|                   description: 'Health check retries count.'
 | |
|                 health_check_start_period:
 | |
|                   type: integer
 | |
|                   description: 'Health check start period in seconds.'
 | |
|                 limits_memory:
 | |
|                   type: string
 | |
|                   description: 'Memory limit.'
 | |
|                 limits_memory_swap:
 | |
|                   type: string
 | |
|                   description: 'Memory swap limit.'
 | |
|                 limits_memory_swappiness:
 | |
|                   type: integer
 | |
|                   description: 'Memory swappiness.'
 | |
|                 limits_memory_reservation:
 | |
|                   type: string
 | |
|                   description: 'Memory reservation.'
 | |
|                 limits_cpus:
 | |
|                   type: string
 | |
|                   description: 'CPU limit.'
 | |
|                 limits_cpuset:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'CPU set.'
 | |
|                 limits_cpu_shares:
 | |
|                   type: integer
 | |
|                   description: 'CPU shares.'
 | |
|                 custom_labels:
 | |
|                   type: string
 | |
|                   description: 'Custom labels.'
 | |
|                 custom_docker_run_options:
 | |
|                   type: string
 | |
|                   description: 'Custom docker run options.'
 | |
|                 post_deployment_command:
 | |
|                   type: string
 | |
|                   description: 'Post deployment command.'
 | |
|                 post_deployment_command_container:
 | |
|                   type: string
 | |
|                   description: 'Post deployment command container.'
 | |
|                 pre_deployment_command:
 | |
|                   type: string
 | |
|                   description: 'Pre deployment command.'
 | |
|                 pre_deployment_command_container:
 | |
|                   type: string
 | |
|                   description: 'Pre deployment command container.'
 | |
|                 manual_webhook_secret_github:
 | |
|                   type: string
 | |
|                   description: 'Manual webhook secret for Github.'
 | |
|                 manual_webhook_secret_gitlab:
 | |
|                   type: string
 | |
|                   description: 'Manual webhook secret for Gitlab.'
 | |
|                 manual_webhook_secret_bitbucket:
 | |
|                   type: string
 | |
|                   description: 'Manual webhook secret for Bitbucket.'
 | |
|                 manual_webhook_secret_gitea:
 | |
|                   type: string
 | |
|                   description: 'Manual webhook secret for Gitea.'
 | |
|                 redirect:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'How to set redirect with Traefik / Caddy. www<->non-www.'
 | |
|                   enum: [www, non-www, both]
 | |
|                 instant_deploy:
 | |
|                   type: boolean
 | |
|                   description: 'The flag to indicate if the application should be deployed instantly.'
 | |
|                 use_build_server:
 | |
|                   type: boolean
 | |
|                   nullable: true
 | |
|                   description: 'Use build server.'
 | |
|                 is_http_basic_auth_enabled:
 | |
|                   type: boolean
 | |
|                   description: 'HTTP Basic Authentication enabled.'
 | |
|                 http_basic_auth_username:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Username for HTTP Basic Authentication'
 | |
|                 http_basic_auth_password:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Password for HTTP Basic Authentication'
 | |
|               type: object
 | |
|       responses:
 | |
|         '201':
 | |
|           description: 'Application created successfully.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 properties:
 | |
|                   uuid: { type: string }
 | |
|                 type: object
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   /applications/dockercompose:
 | |
|     post:
 | |
|       tags:
 | |
|         - Applications
 | |
|       summary: 'Create (Docker Compose)'
 | |
|       description: 'Create new application based on a docker-compose file.'
 | |
|       operationId: create-dockercompose-application
 | |
|       requestBody:
 | |
|         description: 'Application object that needs to be created.'
 | |
|         required: true
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               required:
 | |
|                 - project_uuid
 | |
|                 - server_uuid
 | |
|                 - environment_name
 | |
|                 - environment_uuid
 | |
|                 - docker_compose_raw
 | |
|               properties:
 | |
|                 project_uuid:
 | |
|                   type: string
 | |
|                   description: 'The project UUID.'
 | |
|                 server_uuid:
 | |
|                   type: string
 | |
|                   description: 'The server UUID.'
 | |
|                 environment_name:
 | |
|                   type: string
 | |
|                   description: 'The environment name. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 environment_uuid:
 | |
|                   type: string
 | |
|                   description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 docker_compose_raw:
 | |
|                   type: string
 | |
|                   description: 'The Docker Compose raw content.'
 | |
|                 destination_uuid:
 | |
|                   type: string
 | |
|                   description: 'The destination UUID if the server has more than one destinations.'
 | |
|                 name:
 | |
|                   type: string
 | |
|                   description: 'The application name.'
 | |
|                 description:
 | |
|                   type: string
 | |
|                   description: 'The application description.'
 | |
|                 instant_deploy:
 | |
|                   type: boolean
 | |
|                   description: 'The flag to indicate if the application should be deployed instantly.'
 | |
|                 use_build_server:
 | |
|                   type: boolean
 | |
|                   nullable: true
 | |
|                   description: 'Use build server.'
 | |
|               type: object
 | |
|       responses:
 | |
|         '201':
 | |
|           description: 'Application created successfully.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 properties:
 | |
|                   uuid: { type: string }
 | |
|                 type: object
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   '/applications/{uuid}':
 | |
|     get:
 | |
|       tags:
 | |
|         - Applications
 | |
|       summary: Get
 | |
|       description: 'Get application by UUID.'
 | |
|       operationId: get-application-by-uuid
 | |
|       parameters:
 | |
|         -
 | |
|           name: uuid
 | |
|           in: path
 | |
|           description: 'UUID of the application.'
 | |
|           required: true
 | |
|           schema:
 | |
|             type: string
 | |
|             format: uuid
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Get application by UUID.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 $ref: '#/components/schemas/Application'
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|         '404':
 | |
|           $ref: '#/components/responses/404'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|     delete:
 | |
|       tags:
 | |
|         - Applications
 | |
|       summary: Delete
 | |
|       description: 'Delete application by UUID.'
 | |
|       operationId: delete-application-by-uuid
 | |
|       parameters:
 | |
|         -
 | |
|           name: uuid
 | |
|           in: path
 | |
|           description: 'UUID of the application.'
 | |
|           required: true
 | |
|           schema:
 | |
|             type: string
 | |
|             format: uuid
 | |
|         -
 | |
|           name: delete_configurations
 | |
|           in: query
 | |
|           description: 'Delete configurations.'
 | |
|           required: false
 | |
|           schema:
 | |
|             type: boolean
 | |
|             default: true
 | |
|         -
 | |
|           name: delete_volumes
 | |
|           in: query
 | |
|           description: 'Delete volumes.'
 | |
|           required: false
 | |
|           schema:
 | |
|             type: boolean
 | |
|             default: true
 | |
|         -
 | |
|           name: docker_cleanup
 | |
|           in: query
 | |
|           description: 'Run docker cleanup.'
 | |
|           required: false
 | |
|           schema:
 | |
|             type: boolean
 | |
|             default: true
 | |
|         -
 | |
|           name: delete_connected_networks
 | |
|           in: query
 | |
|           description: 'Delete connected networks.'
 | |
|           required: false
 | |
|           schema:
 | |
|             type: boolean
 | |
|             default: true
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Application deleted.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 properties:
 | |
|                   message: { type: string, example: 'Application deleted.' }
 | |
|                 type: object
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|         '404':
 | |
|           $ref: '#/components/responses/404'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|     patch:
 | |
|       tags:
 | |
|         - Applications
 | |
|       summary: Update
 | |
|       description: 'Update application by UUID.'
 | |
|       operationId: update-application-by-uuid
 | |
|       parameters:
 | |
|         -
 | |
|           name: uuid
 | |
|           in: path
 | |
|           description: 'UUID of the application.'
 | |
|           required: true
 | |
|           schema:
 | |
|             type: string
 | |
|             format: 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}/logs':
 | |
|     get:
 | |
|       tags:
 | |
|         - Applications
 | |
|       summary: 'Get application logs.'
 | |
|       description: 'Get application logs by UUID.'
 | |
|       operationId: get-application-logs-by-uuid
 | |
|       parameters:
 | |
|         -
 | |
|           name: uuid
 | |
|           in: path
 | |
|           description: 'UUID of the application.'
 | |
|           required: true
 | |
|           schema:
 | |
|             type: string
 | |
|             format: uuid
 | |
|         -
 | |
|           name: lines
 | |
|           in: query
 | |
|           description: 'Number of lines to show from the end of the logs.'
 | |
|           required: false
 | |
|           schema:
 | |
|             type: integer
 | |
|             format: int32
 | |
|             default: 100
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Get application logs by UUID.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 properties:
 | |
|                   logs: { 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: []
 | |
|   /databases:
 | |
|     get:
 | |
|       tags:
 | |
|         - Databases
 | |
|       summary: List
 | |
|       description: 'List all databases.'
 | |
|       operationId: list-databases
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Get all databases'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 type: string
 | |
|               example: 'Content is very complex. Will be implemented later.'
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   '/databases/{uuid}':
 | |
|     get:
 | |
|       tags:
 | |
|         - Databases
 | |
|       summary: Get
 | |
|       description: 'Get database by UUID.'
 | |
|       operationId: get-database-by-uuid
 | |
|       parameters:
 | |
|         -
 | |
|           name: uuid
 | |
|           in: path
 | |
|           description: 'UUID of the database.'
 | |
|           required: true
 | |
|           schema:
 | |
|             type: string
 | |
|             format: uuid
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Get all databases'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 type: string
 | |
|               example: 'Content is very complex. Will be implemented later.'
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|         '404':
 | |
|           $ref: '#/components/responses/404'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|     delete:
 | |
|       tags:
 | |
|         - Databases
 | |
|       summary: Delete
 | |
|       description: 'Delete database by UUID.'
 | |
|       operationId: delete-database-by-uuid
 | |
|       parameters:
 | |
|         -
 | |
|           name: uuid
 | |
|           in: path
 | |
|           description: 'UUID of the database.'
 | |
|           required: true
 | |
|           schema:
 | |
|             type: string
 | |
|             format: uuid
 | |
|         -
 | |
|           name: delete_configurations
 | |
|           in: query
 | |
|           description: 'Delete configurations.'
 | |
|           required: false
 | |
|           schema:
 | |
|             type: boolean
 | |
|             default: true
 | |
|         -
 | |
|           name: delete_volumes
 | |
|           in: query
 | |
|           description: 'Delete volumes.'
 | |
|           required: false
 | |
|           schema:
 | |
|             type: boolean
 | |
|             default: true
 | |
|         -
 | |
|           name: docker_cleanup
 | |
|           in: query
 | |
|           description: 'Run docker cleanup.'
 | |
|           required: false
 | |
|           schema:
 | |
|             type: boolean
 | |
|             default: true
 | |
|         -
 | |
|           name: delete_connected_networks
 | |
|           in: query
 | |
|           description: 'Delete connected networks.'
 | |
|           required: false
 | |
|           schema:
 | |
|             type: boolean
 | |
|             default: true
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Database deleted.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 properties:
 | |
|                   message: { type: string, example: 'Database deleted.' }
 | |
|                 type: object
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|         '404':
 | |
|           $ref: '#/components/responses/404'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|     patch:
 | |
|       tags:
 | |
|         - Databases
 | |
|       summary: Update
 | |
|       description: 'Update database by UUID.'
 | |
|       operationId: update-database-by-uuid
 | |
|       parameters:
 | |
|         -
 | |
|           name: uuid
 | |
|           in: path
 | |
|           description: 'UUID of the database.'
 | |
|           required: true
 | |
|           schema:
 | |
|             type: string
 | |
|             format: uuid
 | |
|       requestBody:
 | |
|         description: 'Database data'
 | |
|         required: true
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               properties:
 | |
|                 name:
 | |
|                   type: string
 | |
|                   description: 'Name of the database'
 | |
|                 description:
 | |
|                   type: string
 | |
|                   description: 'Description of the database'
 | |
|                 image:
 | |
|                   type: string
 | |
|                   description: 'Docker Image of the database'
 | |
|                 is_public:
 | |
|                   type: boolean
 | |
|                   description: 'Is the database public?'
 | |
|                 public_port:
 | |
|                   type: integer
 | |
|                   description: 'Public port of the database'
 | |
|                 limits_memory:
 | |
|                   type: string
 | |
|                   description: 'Memory limit of the database'
 | |
|                 limits_memory_swap:
 | |
|                   type: string
 | |
|                   description: 'Memory swap limit of the database'
 | |
|                 limits_memory_swappiness:
 | |
|                   type: integer
 | |
|                   description: 'Memory swappiness of the database'
 | |
|                 limits_memory_reservation:
 | |
|                   type: string
 | |
|                   description: 'Memory reservation of the database'
 | |
|                 limits_cpus:
 | |
|                   type: string
 | |
|                   description: 'CPU limit of the database'
 | |
|                 limits_cpuset:
 | |
|                   type: string
 | |
|                   description: 'CPU set of the database'
 | |
|                 limits_cpu_shares:
 | |
|                   type: integer
 | |
|                   description: 'CPU shares of the database'
 | |
|                 postgres_user:
 | |
|                   type: string
 | |
|                   description: 'PostgreSQL user'
 | |
|                 postgres_password:
 | |
|                   type: string
 | |
|                   description: 'PostgreSQL password'
 | |
|                 postgres_db:
 | |
|                   type: string
 | |
|                   description: 'PostgreSQL database'
 | |
|                 postgres_initdb_args:
 | |
|                   type: string
 | |
|                   description: 'PostgreSQL initdb args'
 | |
|                 postgres_host_auth_method:
 | |
|                   type: string
 | |
|                   description: 'PostgreSQL host auth method'
 | |
|                 postgres_conf:
 | |
|                   type: string
 | |
|                   description: 'PostgreSQL conf'
 | |
|                 clickhouse_admin_user:
 | |
|                   type: string
 | |
|                   description: 'Clickhouse admin user'
 | |
|                 clickhouse_admin_password:
 | |
|                   type: string
 | |
|                   description: 'Clickhouse admin password'
 | |
|                 dragonfly_password:
 | |
|                   type: string
 | |
|                   description: 'DragonFly password'
 | |
|                 redis_password:
 | |
|                   type: string
 | |
|                   description: 'Redis password'
 | |
|                 redis_conf:
 | |
|                   type: string
 | |
|                   description: 'Redis conf'
 | |
|                 keydb_password:
 | |
|                   type: string
 | |
|                   description: 'KeyDB password'
 | |
|                 keydb_conf:
 | |
|                   type: string
 | |
|                   description: 'KeyDB conf'
 | |
|                 mariadb_conf:
 | |
|                   type: string
 | |
|                   description: 'MariaDB conf'
 | |
|                 mariadb_root_password:
 | |
|                   type: string
 | |
|                   description: 'MariaDB root password'
 | |
|                 mariadb_user:
 | |
|                   type: string
 | |
|                   description: 'MariaDB user'
 | |
|                 mariadb_password:
 | |
|                   type: string
 | |
|                   description: 'MariaDB password'
 | |
|                 mariadb_database:
 | |
|                   type: string
 | |
|                   description: 'MariaDB database'
 | |
|                 mongo_conf:
 | |
|                   type: string
 | |
|                   description: 'Mongo conf'
 | |
|                 mongo_initdb_root_username:
 | |
|                   type: string
 | |
|                   description: 'Mongo initdb root username'
 | |
|                 mongo_initdb_root_password:
 | |
|                   type: string
 | |
|                   description: 'Mongo initdb root password'
 | |
|                 mongo_initdb_database:
 | |
|                   type: string
 | |
|                   description: 'Mongo initdb init database'
 | |
|                 mysql_root_password:
 | |
|                   type: string
 | |
|                   description: 'MySQL root password'
 | |
|                 mysql_password:
 | |
|                   type: string
 | |
|                   description: 'MySQL password'
 | |
|                 mysql_user:
 | |
|                   type: string
 | |
|                   description: 'MySQL user'
 | |
|                 mysql_database:
 | |
|                   type: string
 | |
|                   description: 'MySQL database'
 | |
|                 mysql_conf:
 | |
|                   type: string
 | |
|                   description: 'MySQL conf'
 | |
|               type: object
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Database updated'
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|         '404':
 | |
|           $ref: '#/components/responses/404'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   /databases/postgresql:
 | |
|     post:
 | |
|       tags:
 | |
|         - Databases
 | |
|       summary: 'Create (PostgreSQL)'
 | |
|       description: 'Create a new PostgreSQL database.'
 | |
|       operationId: create-database-postgresql
 | |
|       requestBody:
 | |
|         description: 'Database data'
 | |
|         required: true
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               required:
 | |
|                 - server_uuid
 | |
|                 - project_uuid
 | |
|                 - environment_name
 | |
|                 - environment_uuid
 | |
|               properties:
 | |
|                 server_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the server'
 | |
|                 project_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the project'
 | |
|                 environment_name:
 | |
|                   type: string
 | |
|                   description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 environment_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 postgres_user:
 | |
|                   type: string
 | |
|                   description: 'PostgreSQL user'
 | |
|                 postgres_password:
 | |
|                   type: string
 | |
|                   description: 'PostgreSQL password'
 | |
|                 postgres_db:
 | |
|                   type: string
 | |
|                   description: 'PostgreSQL database'
 | |
|                 postgres_initdb_args:
 | |
|                   type: string
 | |
|                   description: 'PostgreSQL initdb args'
 | |
|                 postgres_host_auth_method:
 | |
|                   type: string
 | |
|                   description: 'PostgreSQL host auth method'
 | |
|                 postgres_conf:
 | |
|                   type: string
 | |
|                   description: 'PostgreSQL conf'
 | |
|                 destination_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the destination if the server has multiple destinations'
 | |
|                 name:
 | |
|                   type: string
 | |
|                   description: 'Name of the database'
 | |
|                 description:
 | |
|                   type: string
 | |
|                   description: 'Description of the database'
 | |
|                 image:
 | |
|                   type: string
 | |
|                   description: 'Docker Image of the database'
 | |
|                 is_public:
 | |
|                   type: boolean
 | |
|                   description: 'Is the database public?'
 | |
|                 public_port:
 | |
|                   type: integer
 | |
|                   description: 'Public port of the database'
 | |
|                 limits_memory:
 | |
|                   type: string
 | |
|                   description: 'Memory limit of the database'
 | |
|                 limits_memory_swap:
 | |
|                   type: string
 | |
|                   description: 'Memory swap limit of the database'
 | |
|                 limits_memory_swappiness:
 | |
|                   type: integer
 | |
|                   description: 'Memory swappiness of the database'
 | |
|                 limits_memory_reservation:
 | |
|                   type: string
 | |
|                   description: 'Memory reservation of the database'
 | |
|                 limits_cpus:
 | |
|                   type: string
 | |
|                   description: 'CPU limit of the database'
 | |
|                 limits_cpuset:
 | |
|                   type: string
 | |
|                   description: 'CPU set of the database'
 | |
|                 limits_cpu_shares:
 | |
|                   type: integer
 | |
|                   description: 'CPU shares of the database'
 | |
|                 instant_deploy:
 | |
|                   type: boolean
 | |
|                   description: 'Instant deploy the database'
 | |
|               type: object
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Database updated'
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   /databases/clickhouse:
 | |
|     post:
 | |
|       tags:
 | |
|         - Databases
 | |
|       summary: 'Create (Clickhouse)'
 | |
|       description: 'Create a new Clickhouse database.'
 | |
|       operationId: create-database-clickhouse
 | |
|       requestBody:
 | |
|         description: 'Database data'
 | |
|         required: true
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               required:
 | |
|                 - server_uuid
 | |
|                 - project_uuid
 | |
|                 - environment_name
 | |
|                 - environment_uuid
 | |
|               properties:
 | |
|                 server_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the server'
 | |
|                 project_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the project'
 | |
|                 environment_name:
 | |
|                   type: string
 | |
|                   description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 environment_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 destination_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the destination if the server has multiple destinations'
 | |
|                 clickhouse_admin_user:
 | |
|                   type: string
 | |
|                   description: 'Clickhouse admin user'
 | |
|                 clickhouse_admin_password:
 | |
|                   type: string
 | |
|                   description: 'Clickhouse admin password'
 | |
|                 name:
 | |
|                   type: string
 | |
|                   description: 'Name of the database'
 | |
|                 description:
 | |
|                   type: string
 | |
|                   description: 'Description of the database'
 | |
|                 image:
 | |
|                   type: string
 | |
|                   description: 'Docker Image of the database'
 | |
|                 is_public:
 | |
|                   type: boolean
 | |
|                   description: 'Is the database public?'
 | |
|                 public_port:
 | |
|                   type: integer
 | |
|                   description: 'Public port of the database'
 | |
|                 limits_memory:
 | |
|                   type: string
 | |
|                   description: 'Memory limit of the database'
 | |
|                 limits_memory_swap:
 | |
|                   type: string
 | |
|                   description: 'Memory swap limit of the database'
 | |
|                 limits_memory_swappiness:
 | |
|                   type: integer
 | |
|                   description: 'Memory swappiness of the database'
 | |
|                 limits_memory_reservation:
 | |
|                   type: string
 | |
|                   description: 'Memory reservation of the database'
 | |
|                 limits_cpus:
 | |
|                   type: string
 | |
|                   description: 'CPU limit of the database'
 | |
|                 limits_cpuset:
 | |
|                   type: string
 | |
|                   description: 'CPU set of the database'
 | |
|                 limits_cpu_shares:
 | |
|                   type: integer
 | |
|                   description: 'CPU shares of the database'
 | |
|                 instant_deploy:
 | |
|                   type: boolean
 | |
|                   description: 'Instant deploy the database'
 | |
|               type: object
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Database updated'
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   /databases/dragonfly:
 | |
|     post:
 | |
|       tags:
 | |
|         - Databases
 | |
|       summary: 'Create (DragonFly)'
 | |
|       description: 'Create a new DragonFly database.'
 | |
|       operationId: create-database-dragonfly
 | |
|       requestBody:
 | |
|         description: 'Database data'
 | |
|         required: true
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               required:
 | |
|                 - server_uuid
 | |
|                 - project_uuid
 | |
|                 - environment_name
 | |
|                 - environment_uuid
 | |
|               properties:
 | |
|                 server_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the server'
 | |
|                 project_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the project'
 | |
|                 environment_name:
 | |
|                   type: string
 | |
|                   description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 environment_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 destination_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the destination if the server has multiple destinations'
 | |
|                 dragonfly_password:
 | |
|                   type: string
 | |
|                   description: 'DragonFly password'
 | |
|                 name:
 | |
|                   type: string
 | |
|                   description: 'Name of the database'
 | |
|                 description:
 | |
|                   type: string
 | |
|                   description: 'Description of the database'
 | |
|                 image:
 | |
|                   type: string
 | |
|                   description: 'Docker Image of the database'
 | |
|                 is_public:
 | |
|                   type: boolean
 | |
|                   description: 'Is the database public?'
 | |
|                 public_port:
 | |
|                   type: integer
 | |
|                   description: 'Public port of the database'
 | |
|                 limits_memory:
 | |
|                   type: string
 | |
|                   description: 'Memory limit of the database'
 | |
|                 limits_memory_swap:
 | |
|                   type: string
 | |
|                   description: 'Memory swap limit of the database'
 | |
|                 limits_memory_swappiness:
 | |
|                   type: integer
 | |
|                   description: 'Memory swappiness of the database'
 | |
|                 limits_memory_reservation:
 | |
|                   type: string
 | |
|                   description: 'Memory reservation of the database'
 | |
|                 limits_cpus:
 | |
|                   type: string
 | |
|                   description: 'CPU limit of the database'
 | |
|                 limits_cpuset:
 | |
|                   type: string
 | |
|                   description: 'CPU set of the database'
 | |
|                 limits_cpu_shares:
 | |
|                   type: integer
 | |
|                   description: 'CPU shares of the database'
 | |
|                 instant_deploy:
 | |
|                   type: boolean
 | |
|                   description: 'Instant deploy the database'
 | |
|               type: object
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Database updated'
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   /databases/redis:
 | |
|     post:
 | |
|       tags:
 | |
|         - Databases
 | |
|       summary: 'Create (Redis)'
 | |
|       description: 'Create a new Redis database.'
 | |
|       operationId: create-database-redis
 | |
|       requestBody:
 | |
|         description: 'Database data'
 | |
|         required: true
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               required:
 | |
|                 - server_uuid
 | |
|                 - project_uuid
 | |
|                 - environment_name
 | |
|                 - environment_uuid
 | |
|               properties:
 | |
|                 server_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the server'
 | |
|                 project_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the project'
 | |
|                 environment_name:
 | |
|                   type: string
 | |
|                   description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 environment_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 destination_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the destination if the server has multiple destinations'
 | |
|                 redis_password:
 | |
|                   type: string
 | |
|                   description: 'Redis password'
 | |
|                 redis_conf:
 | |
|                   type: string
 | |
|                   description: 'Redis conf'
 | |
|                 name:
 | |
|                   type: string
 | |
|                   description: 'Name of the database'
 | |
|                 description:
 | |
|                   type: string
 | |
|                   description: 'Description of the database'
 | |
|                 image:
 | |
|                   type: string
 | |
|                   description: 'Docker Image of the database'
 | |
|                 is_public:
 | |
|                   type: boolean
 | |
|                   description: 'Is the database public?'
 | |
|                 public_port:
 | |
|                   type: integer
 | |
|                   description: 'Public port of the database'
 | |
|                 limits_memory:
 | |
|                   type: string
 | |
|                   description: 'Memory limit of the database'
 | |
|                 limits_memory_swap:
 | |
|                   type: string
 | |
|                   description: 'Memory swap limit of the database'
 | |
|                 limits_memory_swappiness:
 | |
|                   type: integer
 | |
|                   description: 'Memory swappiness of the database'
 | |
|                 limits_memory_reservation:
 | |
|                   type: string
 | |
|                   description: 'Memory reservation of the database'
 | |
|                 limits_cpus:
 | |
|                   type: string
 | |
|                   description: 'CPU limit of the database'
 | |
|                 limits_cpuset:
 | |
|                   type: string
 | |
|                   description: 'CPU set of the database'
 | |
|                 limits_cpu_shares:
 | |
|                   type: integer
 | |
|                   description: 'CPU shares of the database'
 | |
|                 instant_deploy:
 | |
|                   type: boolean
 | |
|                   description: 'Instant deploy the database'
 | |
|               type: object
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Database updated'
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   /databases/keydb:
 | |
|     post:
 | |
|       tags:
 | |
|         - Databases
 | |
|       summary: 'Create (KeyDB)'
 | |
|       description: 'Create a new KeyDB database.'
 | |
|       operationId: create-database-keydb
 | |
|       requestBody:
 | |
|         description: 'Database data'
 | |
|         required: true
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               required:
 | |
|                 - server_uuid
 | |
|                 - project_uuid
 | |
|                 - environment_name
 | |
|                 - environment_uuid
 | |
|               properties:
 | |
|                 server_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the server'
 | |
|                 project_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the project'
 | |
|                 environment_name:
 | |
|                   type: string
 | |
|                   description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 environment_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 destination_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the destination if the server has multiple destinations'
 | |
|                 keydb_password:
 | |
|                   type: string
 | |
|                   description: 'KeyDB password'
 | |
|                 keydb_conf:
 | |
|                   type: string
 | |
|                   description: 'KeyDB conf'
 | |
|                 name:
 | |
|                   type: string
 | |
|                   description: 'Name of the database'
 | |
|                 description:
 | |
|                   type: string
 | |
|                   description: 'Description of the database'
 | |
|                 image:
 | |
|                   type: string
 | |
|                   description: 'Docker Image of the database'
 | |
|                 is_public:
 | |
|                   type: boolean
 | |
|                   description: 'Is the database public?'
 | |
|                 public_port:
 | |
|                   type: integer
 | |
|                   description: 'Public port of the database'
 | |
|                 limits_memory:
 | |
|                   type: string
 | |
|                   description: 'Memory limit of the database'
 | |
|                 limits_memory_swap:
 | |
|                   type: string
 | |
|                   description: 'Memory swap limit of the database'
 | |
|                 limits_memory_swappiness:
 | |
|                   type: integer
 | |
|                   description: 'Memory swappiness of the database'
 | |
|                 limits_memory_reservation:
 | |
|                   type: string
 | |
|                   description: 'Memory reservation of the database'
 | |
|                 limits_cpus:
 | |
|                   type: string
 | |
|                   description: 'CPU limit of the database'
 | |
|                 limits_cpuset:
 | |
|                   type: string
 | |
|                   description: 'CPU set of the database'
 | |
|                 limits_cpu_shares:
 | |
|                   type: integer
 | |
|                   description: 'CPU shares of the database'
 | |
|                 instant_deploy:
 | |
|                   type: boolean
 | |
|                   description: 'Instant deploy the database'
 | |
|               type: object
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Database updated'
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   /databases/mariadb:
 | |
|     post:
 | |
|       tags:
 | |
|         - Databases
 | |
|       summary: 'Create (MariaDB)'
 | |
|       description: 'Create a new MariaDB database.'
 | |
|       operationId: create-database-mariadb
 | |
|       requestBody:
 | |
|         description: 'Database data'
 | |
|         required: true
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               required:
 | |
|                 - server_uuid
 | |
|                 - project_uuid
 | |
|                 - environment_name
 | |
|                 - environment_uuid
 | |
|               properties:
 | |
|                 server_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the server'
 | |
|                 project_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the project'
 | |
|                 environment_name:
 | |
|                   type: string
 | |
|                   description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 environment_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 destination_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the destination if the server has multiple destinations'
 | |
|                 mariadb_conf:
 | |
|                   type: string
 | |
|                   description: 'MariaDB conf'
 | |
|                 mariadb_root_password:
 | |
|                   type: string
 | |
|                   description: 'MariaDB root password'
 | |
|                 mariadb_user:
 | |
|                   type: string
 | |
|                   description: 'MariaDB user'
 | |
|                 mariadb_password:
 | |
|                   type: string
 | |
|                   description: 'MariaDB password'
 | |
|                 mariadb_database:
 | |
|                   type: string
 | |
|                   description: 'MariaDB database'
 | |
|                 name:
 | |
|                   type: string
 | |
|                   description: 'Name of the database'
 | |
|                 description:
 | |
|                   type: string
 | |
|                   description: 'Description of the database'
 | |
|                 image:
 | |
|                   type: string
 | |
|                   description: 'Docker Image of the database'
 | |
|                 is_public:
 | |
|                   type: boolean
 | |
|                   description: 'Is the database public?'
 | |
|                 public_port:
 | |
|                   type: integer
 | |
|                   description: 'Public port of the database'
 | |
|                 limits_memory:
 | |
|                   type: string
 | |
|                   description: 'Memory limit of the database'
 | |
|                 limits_memory_swap:
 | |
|                   type: string
 | |
|                   description: 'Memory swap limit of the database'
 | |
|                 limits_memory_swappiness:
 | |
|                   type: integer
 | |
|                   description: 'Memory swappiness of the database'
 | |
|                 limits_memory_reservation:
 | |
|                   type: string
 | |
|                   description: 'Memory reservation of the database'
 | |
|                 limits_cpus:
 | |
|                   type: string
 | |
|                   description: 'CPU limit of the database'
 | |
|                 limits_cpuset:
 | |
|                   type: string
 | |
|                   description: 'CPU set of the database'
 | |
|                 limits_cpu_shares:
 | |
|                   type: integer
 | |
|                   description: 'CPU shares of the database'
 | |
|                 instant_deploy:
 | |
|                   type: boolean
 | |
|                   description: 'Instant deploy the database'
 | |
|               type: object
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Database updated'
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   /databases/mysql:
 | |
|     post:
 | |
|       tags:
 | |
|         - Databases
 | |
|       summary: 'Create (MySQL)'
 | |
|       description: 'Create a new MySQL database.'
 | |
|       operationId: create-database-mysql
 | |
|       requestBody:
 | |
|         description: 'Database data'
 | |
|         required: true
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               required:
 | |
|                 - server_uuid
 | |
|                 - project_uuid
 | |
|                 - environment_name
 | |
|                 - environment_uuid
 | |
|               properties:
 | |
|                 server_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the server'
 | |
|                 project_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the project'
 | |
|                 environment_name:
 | |
|                   type: string
 | |
|                   description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 environment_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 destination_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the destination if the server has multiple destinations'
 | |
|                 mysql_root_password:
 | |
|                   type: string
 | |
|                   description: 'MySQL root password'
 | |
|                 mysql_password:
 | |
|                   type: string
 | |
|                   description: 'MySQL password'
 | |
|                 mysql_user:
 | |
|                   type: string
 | |
|                   description: 'MySQL user'
 | |
|                 mysql_database:
 | |
|                   type: string
 | |
|                   description: 'MySQL database'
 | |
|                 mysql_conf:
 | |
|                   type: string
 | |
|                   description: 'MySQL conf'
 | |
|                 name:
 | |
|                   type: string
 | |
|                   description: 'Name of the database'
 | |
|                 description:
 | |
|                   type: string
 | |
|                   description: 'Description of the database'
 | |
|                 image:
 | |
|                   type: string
 | |
|                   description: 'Docker Image of the database'
 | |
|                 is_public:
 | |
|                   type: boolean
 | |
|                   description: 'Is the database public?'
 | |
|                 public_port:
 | |
|                   type: integer
 | |
|                   description: 'Public port of the database'
 | |
|                 limits_memory:
 | |
|                   type: string
 | |
|                   description: 'Memory limit of the database'
 | |
|                 limits_memory_swap:
 | |
|                   type: string
 | |
|                   description: 'Memory swap limit of the database'
 | |
|                 limits_memory_swappiness:
 | |
|                   type: integer
 | |
|                   description: 'Memory swappiness of the database'
 | |
|                 limits_memory_reservation:
 | |
|                   type: string
 | |
|                   description: 'Memory reservation of the database'
 | |
|                 limits_cpus:
 | |
|                   type: string
 | |
|                   description: 'CPU limit of the database'
 | |
|                 limits_cpuset:
 | |
|                   type: string
 | |
|                   description: 'CPU set of the database'
 | |
|                 limits_cpu_shares:
 | |
|                   type: integer
 | |
|                   description: 'CPU shares of the database'
 | |
|                 instant_deploy:
 | |
|                   type: boolean
 | |
|                   description: 'Instant deploy the database'
 | |
|               type: object
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Database updated'
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   /databases/mongodb:
 | |
|     post:
 | |
|       tags:
 | |
|         - Databases
 | |
|       summary: 'Create (MongoDB)'
 | |
|       description: 'Create a new MongoDB database.'
 | |
|       operationId: create-database-mongodb
 | |
|       requestBody:
 | |
|         description: 'Database data'
 | |
|         required: true
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               required:
 | |
|                 - server_uuid
 | |
|                 - project_uuid
 | |
|                 - environment_name
 | |
|                 - environment_uuid
 | |
|               properties:
 | |
|                 server_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the server'
 | |
|                 project_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the project'
 | |
|                 environment_name:
 | |
|                   type: string
 | |
|                   description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 environment_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 destination_uuid:
 | |
|                   type: string
 | |
|                   description: 'UUID of the destination if the server has multiple destinations'
 | |
|                 mongo_conf:
 | |
|                   type: string
 | |
|                   description: 'MongoDB conf'
 | |
|                 mongo_initdb_root_username:
 | |
|                   type: string
 | |
|                   description: 'MongoDB initdb root username'
 | |
|                 name:
 | |
|                   type: string
 | |
|                   description: 'Name of the database'
 | |
|                 description:
 | |
|                   type: string
 | |
|                   description: 'Description of the database'
 | |
|                 image:
 | |
|                   type: string
 | |
|                   description: 'Docker Image of the database'
 | |
|                 is_public:
 | |
|                   type: boolean
 | |
|                   description: 'Is the database public?'
 | |
|                 public_port:
 | |
|                   type: integer
 | |
|                   description: 'Public port of the database'
 | |
|                 limits_memory:
 | |
|                   type: string
 | |
|                   description: 'Memory limit of the database'
 | |
|                 limits_memory_swap:
 | |
|                   type: string
 | |
|                   description: 'Memory swap limit of the database'
 | |
|                 limits_memory_swappiness:
 | |
|                   type: integer
 | |
|                   description: 'Memory swappiness of the database'
 | |
|                 limits_memory_reservation:
 | |
|                   type: string
 | |
|                   description: 'Memory reservation of the database'
 | |
|                 limits_cpus:
 | |
|                   type: string
 | |
|                   description: 'CPU limit of the database'
 | |
|                 limits_cpuset:
 | |
|                   type: string
 | |
|                   description: 'CPU set of the database'
 | |
|                 limits_cpu_shares:
 | |
|                   type: integer
 | |
|                   description: 'CPU shares of the database'
 | |
|                 instant_deploy:
 | |
|                   type: boolean
 | |
|                   description: 'Instant deploy the database'
 | |
|               type: object
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Database updated'
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   '/databases/{uuid}/start':
 | |
|     get:
 | |
|       tags:
 | |
|         - Databases
 | |
|       summary: Start
 | |
|       description: 'Start database. `Post` request is also accepted.'
 | |
|       operationId: start-database-by-uuid
 | |
|       parameters:
 | |
|         -
 | |
|           name: uuid
 | |
|           in: path
 | |
|           description: 'UUID of the database.'
 | |
|           required: true
 | |
|           schema:
 | |
|             type: string
 | |
|             format: uuid
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Start database.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 properties:
 | |
|                   message: { type: string, example: 'Database starting request queued.' }
 | |
|                 type: object
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|         '404':
 | |
|           $ref: '#/components/responses/404'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   '/databases/{uuid}/stop':
 | |
|     get:
 | |
|       tags:
 | |
|         - Databases
 | |
|       summary: Stop
 | |
|       description: 'Stop database. `Post` request is also accepted.'
 | |
|       operationId: stop-database-by-uuid
 | |
|       parameters:
 | |
|         -
 | |
|           name: uuid
 | |
|           in: path
 | |
|           description: 'UUID of the database.'
 | |
|           required: true
 | |
|           schema:
 | |
|             type: string
 | |
|             format: uuid
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Stop database.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 properties:
 | |
|                   message: { type: string, example: 'Database stopping request queued.' }
 | |
|                 type: object
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|         '404':
 | |
|           $ref: '#/components/responses/404'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   '/databases/{uuid}/restart':
 | |
|     get:
 | |
|       tags:
 | |
|         - Databases
 | |
|       summary: Restart
 | |
|       description: 'Restart database. `Post` request is also accepted.'
 | |
|       operationId: restart-database-by-uuid
 | |
|       parameters:
 | |
|         -
 | |
|           name: uuid
 | |
|           in: path
 | |
|           description: 'UUID of the database.'
 | |
|           required: true
 | |
|           schema:
 | |
|             type: string
 | |
|             format: uuid
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Restart database.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 properties:
 | |
|                   message: { type: string, example: 'Database restaring request queued.' }
 | |
|                 type: object
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|         '404':
 | |
|           $ref: '#/components/responses/404'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   /deployments:
 | |
|     get:
 | |
|       tags:
 | |
|         - Deployments
 | |
|       summary: List
 | |
|       description: 'List currently running deployments'
 | |
|       operationId: list-deployments
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Get all currently running deployments.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 type: array
 | |
|                 items:
 | |
|                   $ref: '#/components/schemas/ApplicationDeploymentQueue'
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   '/deployments/{uuid}':
 | |
|     get:
 | |
|       tags:
 | |
|         - Deployments
 | |
|       summary: Get
 | |
|       description: 'Get deployment by UUID.'
 | |
|       operationId: get-deployment-by-uuid
 | |
|       parameters:
 | |
|         -
 | |
|           name: uuid
 | |
|           in: path
 | |
|           description: 'Deployment UUID'
 | |
|           required: true
 | |
|           schema:
 | |
|             type: string
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Get deployment by UUID.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 $ref: '#/components/schemas/ApplicationDeploymentQueue'
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|         '404':
 | |
|           $ref: '#/components/responses/404'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   /deploy:
 | |
|     get:
 | |
|       tags:
 | |
|         - Deployments
 | |
|       summary: Deploy
 | |
|       description: 'Deploy by tag or uuid. `Post` request also accepted with `uuid` and `tag` json body.'
 | |
|       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
 | |
|         -
 | |
|           name: pr
 | |
|           in: query
 | |
|           description: 'Pull Request Id for deploying specific PR builds. Cannot be used with tag parameter.'
 | |
|           schema:
 | |
|             type: integer
 | |
|       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: []
 | |
|   '/deployments/applications/{uuid}':
 | |
|     get:
 | |
|       tags:
 | |
|         - Deployments
 | |
|       summary: 'List application deployments'
 | |
|       description: 'List application deployments by using the app uuid'
 | |
|       operationId: list-deployments-by-app-uuid
 | |
|       parameters:
 | |
|         -
 | |
|           name: uuid
 | |
|           in: path
 | |
|           description: 'UUID of the application.'
 | |
|           required: true
 | |
|           schema:
 | |
|             type: string
 | |
|             format: uuid
 | |
|         -
 | |
|           name: skip
 | |
|           in: query
 | |
|           description: 'Number of records to skip.'
 | |
|           required: false
 | |
|           schema:
 | |
|             type: integer
 | |
|             default: 0
 | |
|             minimum: 0
 | |
|         -
 | |
|           name: take
 | |
|           in: query
 | |
|           description: 'Number of records to take.'
 | |
|           required: false
 | |
|           schema:
 | |
|             type: integer
 | |
|             default: 10
 | |
|             minimum: 1
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'List application deployments by using the app uuid.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 type: array
 | |
|                 items:
 | |
|                   $ref: '#/components/schemas/Application'
 | |
|         '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
 | |
|       parameters:
 | |
|         -
 | |
|           name: uuid
 | |
|           in: path
 | |
|           description: 'UUID of the project.'
 | |
|           required: true
 | |
|           schema:
 | |
|             type: string
 | |
|             format: uuid
 | |
|       requestBody:
 | |
|         description: 'Project updated.'
 | |
|         required: true
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               properties:
 | |
|                 name:
 | |
|                   type: string
 | |
|                   description: 'The name of the project.'
 | |
|                 description:
 | |
|                   type: string
 | |
|                   description: 'The description of the project.'
 | |
|               type: object
 | |
|       responses:
 | |
|         '201':
 | |
|           description: 'Project updated.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 properties:
 | |
|                   uuid: { type: string, example: og888os }
 | |
|                   name: { type: string, example: 'Project Name' }
 | |
|                   description: { type: string, example: 'Project Description' }
 | |
|                 type: object
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|         '404':
 | |
|           $ref: '#/components/responses/404'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   '/projects/{uuid}/{environment_name_or_uuid}':
 | |
|     get:
 | |
|       tags:
 | |
|         - Projects
 | |
|       summary: Environment
 | |
|       description: 'Get environment by name or UUID.'
 | |
|       operationId: get-environment-by-name-or-uuid
 | |
|       parameters:
 | |
|         -
 | |
|           name: uuid
 | |
|           in: path
 | |
|           description: 'Project UUID'
 | |
|           required: true
 | |
|           schema:
 | |
|             type: string
 | |
|         -
 | |
|           name: environment_name_or_uuid
 | |
|           in: path
 | |
|           description: 'Environment name or UUID'
 | |
|           required: true
 | |
|           schema:
 | |
|             type: string
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Environment details'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 $ref: '#/components/schemas/Environment'
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|         '404':
 | |
|           $ref: '#/components/responses/404'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   /resources:
 | |
|     get:
 | |
|       tags:
 | |
|         - Resources
 | |
|       summary: List
 | |
|       description: 'Get all resources.'
 | |
|       operationId: list-resources
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Get all resources'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 type: string
 | |
|               example: 'Content is very complex. Will be implemented later.'
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   /security/keys:
 | |
|     get:
 | |
|       tags:
 | |
|         - 'Private Keys'
 | |
|       summary: List
 | |
|       description: 'List all private keys.'
 | |
|       operationId: list-private-keys
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Get all private keys.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 type: array
 | |
|                 items:
 | |
|                   $ref: '#/components/schemas/PrivateKey'
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|     post:
 | |
|       tags:
 | |
|         - 'Private Keys'
 | |
|       summary: Create
 | |
|       description: 'Create a new private key.'
 | |
|       operationId: create-private-key
 | |
|       requestBody:
 | |
|         required: true
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               required:
 | |
|                 - private_key
 | |
|               properties:
 | |
|                 name:
 | |
|                   type: string
 | |
|                 description:
 | |
|                   type: string
 | |
|                 private_key:
 | |
|                   type: string
 | |
|               type: object
 | |
|               additionalProperties: false
 | |
|       responses:
 | |
|         '201':
 | |
|           description: "The created private key's UUID."
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 properties:
 | |
|                   uuid: { type: string }
 | |
|                 type: object
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|     patch:
 | |
|       tags:
 | |
|         - 'Private Keys'
 | |
|       summary: Update
 | |
|       description: 'Update a private key.'
 | |
|       operationId: update-private-key
 | |
|       requestBody:
 | |
|         required: true
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               required:
 | |
|                 - private_key
 | |
|               properties:
 | |
|                 name:
 | |
|                   type: string
 | |
|                 description:
 | |
|                   type: string
 | |
|                 private_key:
 | |
|                   type: string
 | |
|               type: object
 | |
|               additionalProperties: false
 | |
|       responses:
 | |
|         '201':
 | |
|           description: "The updated private key's UUID."
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 properties:
 | |
|                   uuid: { type: string }
 | |
|                 type: object
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|   '/security/keys/{uuid}':
 | |
|     get:
 | |
|       tags:
 | |
|         - 'Private Keys'
 | |
|       summary: Get
 | |
|       description: 'Get key by UUID.'
 | |
|       operationId: get-private-key-by-uuid
 | |
|       parameters:
 | |
|         -
 | |
|           name: uuid
 | |
|           in: path
 | |
|           description: 'Private Key UUID'
 | |
|           required: true
 | |
|           schema:
 | |
|             type: string
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Get all private keys.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 $ref: '#/components/schemas/PrivateKey'
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|         '404':
 | |
|           description: 'Private Key not found.'
 | |
|       security:
 | |
|         -
 | |
|           bearerAuth: []
 | |
|     delete:
 | |
|       tags:
 | |
|         - 'Private Keys'
 | |
|       summary: Delete
 | |
|       description: 'Delete a private key.'
 | |
|       operationId: delete-private-key-by-uuid
 | |
|       parameters:
 | |
|         -
 | |
|           name: uuid
 | |
|           in: path
 | |
|           description: 'Private Key UUID'
 | |
|           required: true
 | |
|           schema:
 | |
|             type: string
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Private Key deleted.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 properties:
 | |
|                   message: { type: string, example: 'Private Key deleted.' }
 | |
|                 type: object
 | |
|         '401':
 | |
|           $ref: '#/components/responses/401'
 | |
|         '400':
 | |
|           $ref: '#/components/responses/400'
 | |
|         '404':
 | |
|           description: 'Private Key not found.'
 | |
|         '422':
 | |
|           description: 'Private Key is in use and cannot be deleted.'
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 properties:
 | |
|                   message: { type: string, example: 'Private Key is in use and cannot be deleted.' }
 | |
|                 type: object
 | |
|       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 service'
 | |
|       description: 'Create a one-click / custom service'
 | |
|       operationId: create-service
 | |
|       requestBody:
 | |
|         required: true
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               required:
 | |
|                 - server_uuid
 | |
|                 - project_uuid
 | |
|                 - environment_name
 | |
|                 - environment_uuid
 | |
|               properties:
 | |
|                 type:
 | |
|                   description: 'The one-click service type'
 | |
|                   type: string
 | |
|                   enum: [activepieces, appsmith, appwrite, authentik, babybuddy, budge, changedetection, chatwoot, classicpress-with-mariadb, classicpress-with-mysql, classicpress-without-database, cloudflared, code-server, dashboard, directus, directus-with-postgresql, docker-registry, docuseal, docuseal-with-postgres, dokuwiki, duplicati, emby, embystat, fider, filebrowser, firefly, formbricks, ghost, gitea, gitea-with-mariadb, gitea-with-mysql, gitea-with-postgresql, glance, glances, glitchtip, grafana, grafana-with-postgresql, grocy, heimdall, homepage, jellyfin, kuzzle, listmonk, logto, mediawiki, meilisearch, metabase, metube, minio, moodle, n8n, n8n-with-postgresql, next-image-transformation, nextcloud, nocodb, odoo, openblocks, pairdrop, penpot, phpmyadmin, pocketbase, posthog, reactive-resume, rocketchat, shlink, slash, snapdrop, statusnook, stirling-pdf, supabase, syncthing, tolgee, trigger, trigger-with-external-database, twenty, umami, unleash-with-postgresql, unleash-without-database, uptime-kuma, vaultwarden, vikunja, weblate, whoogle, wordpress-with-mariadb, wordpress-with-mysql, wordpress-without-database]
 | |
|                 name:
 | |
|                   type: string
 | |
|                   maxLength: 255
 | |
|                   description: 'Name of the service.'
 | |
|                 description:
 | |
|                   type: string
 | |
|                   nullable: true
 | |
|                   description: 'Description of the service.'
 | |
|                 project_uuid:
 | |
|                   type: string
 | |
|                   description: 'Project UUID.'
 | |
|                 environment_name:
 | |
|                   type: string
 | |
|                   description: 'Environment name. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 environment_uuid:
 | |
|                   type: string
 | |
|                   description: 'Environment UUID. You need to provide at least one of environment_name or environment_uuid.'
 | |
|                 server_uuid:
 | |
|                   type: string
 | |
|                   description: 'Server UUID.'
 | |
|                 destination_uuid:
 | |
|                   type: string
 | |
|                   description: 'Destination UUID. Required if server has multiple destinations.'
 | |
|                 instant_deploy:
 | |
|                   type: boolean
 | |
|                   default: false
 | |
|                   description: 'Start the service immediately after creation.'
 | |
|                 docker_compose_raw:
 | |
|                   type: string
 | |
|                   description: 'The Docker Compose raw content.'
 | |
|               type: object
 | |
|       responses:
 | |
|         '201':
 | |
|           description: 'Service created successfully.'
 | |
|           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: []
 | |
|     patch:
 | |
|       tags:
 | |
|         - Services
 | |
|       summary: Update
 | |
|       description: 'Update service by UUID.'
 | |
|       operationId: update-service-by-uuid
 | |
|       parameters:
 | |
|         -
 | |
|           name: uuid
 | |
|           in: path
 | |
|           description: 'UUID of the service.'
 | |
|           required: true
 | |
|           schema:
 | |
|             type: string
 | |
|             format: uuid
 | |
|       requestBody:
 | |
|         description: 'Service updated.'
 | |
|         required: true
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               required:
 | |
|                 - server_uuid
 | |
|                 - project_uuid
 | |
|                 - environment_name
 | |
|                 - environment_uuid
 | |
|                 - docker_compose_raw
 | |
|               properties:
 | |
|                 name:
 | |
|                   type: string
 | |
|                   description: 'The service name.'
 | |
|                 description:
 | |
|                   type: string
 | |
|                   description: 'The service description.'
 | |
|                 project_uuid:
 | |
|                   type: string
 | |
|                   description: 'The project UUID.'
 | |
|                 environment_name:
 | |
|                   type: string
 | |
|                   description: 'The environment name.'
 | |
|                 environment_uuid:
 | |
|                   type: string
 | |
|                   description: 'The environment UUID.'
 | |
|                 server_uuid:
 | |
|                   type: string
 | |
|                   description: 'The server UUID.'
 | |
|                 destination_uuid:
 | |
|                   type: string
 | |
|                   description: 'The destination UUID.'
 | |
|                 instant_deploy:
 | |
|                   type: boolean
 | |
|                   description: 'The flag to indicate if the service should be deployed instantly.'
 | |
|                 connect_to_docker_network:
 | |
|                   type: boolean
 | |
|                   default: false
 | |
|                   description: 'Connect the service to the predefined docker network.'
 | |
|                 docker_compose_raw:
 | |
|                   type: string
 | |
|                   description: 'The Docker Compose raw content.'
 | |
|               type: object
 | |
|       responses:
 | |
|         '200':
 | |
|           description: 'Service updated.'
 | |
|           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'
 | |
|         '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.'
 | |
|         custom_network_aliases:
 | |
|           type: string
 | |
|           nullable: true
 | |
|           description: 'Network aliases for Docker container.'
 | |
|         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.'
 | |
|         is_http_basic_auth_enabled:
 | |
|           type: boolean
 | |
|           description: 'HTTP Basic Authentication enabled.'
 | |
|         http_basic_auth_username:
 | |
|           type: string
 | |
|           nullable: true
 | |
|           description: 'Username for HTTP Basic Authentication'
 | |
|         http_basic_auth_password:
 | |
|           type: string
 | |
|           nullable: true
 | |
|           description: 'Password for HTTP Basic Authentication'
 | |
|       type: object
 | |
|     ApplicationDeploymentQueue:
 | |
|       description: 'Project model'
 | |
|       properties:
 | |
|         id:
 | |
|           type: integer
 | |
|         application_id:
 | |
|           type: string
 | |
|         deployment_uuid:
 | |
|           type: string
 | |
|         pull_request_id:
 | |
|           type: integer
 | |
|         force_rebuild:
 | |
|           type: boolean
 | |
|         commit:
 | |
|           type: string
 | |
|         status:
 | |
|           type: string
 | |
|         is_webhook:
 | |
|           type: boolean
 | |
|         is_api:
 | |
|           type: boolean
 | |
|         created_at:
 | |
|           type: string
 | |
|         updated_at:
 | |
|           type: string
 | |
|         logs:
 | |
|           type: string
 | |
|         current_process_id:
 | |
|           type: string
 | |
|         restart_only:
 | |
|           type: boolean
 | |
|         git_type:
 | |
|           type: string
 | |
|         server_id:
 | |
|           type: integer
 | |
|         application_name:
 | |
|           type: string
 | |
|         server_name:
 | |
|           type: string
 | |
|         deployment_url:
 | |
|           type: string
 | |
|         destination_id:
 | |
|           type: string
 | |
|         only_this_server:
 | |
|           type: boolean
 | |
|         rollback:
 | |
|           type: boolean
 | |
|         commit_message:
 | |
|           type: string
 | |
|       type: object
 | |
|     Environment:
 | |
|       description: 'Environment model'
 | |
|       properties:
 | |
|         id:
 | |
|           type: integer
 | |
|         name:
 | |
|           type: string
 | |
|         project_id:
 | |
|           type: integer
 | |
|         created_at:
 | |
|           type: string
 | |
|         updated_at:
 | |
|           type: string
 | |
|         description:
 | |
|           type: string
 | |
|       type: object
 | |
|     EnvironmentVariable:
 | |
|       description: 'Environment Variable model'
 | |
|       properties:
 | |
|         id:
 | |
|           type: integer
 | |
|         uuid:
 | |
|           type: string
 | |
|         resourceable_type:
 | |
|           type: string
 | |
|         resourceable_id:
 | |
|           type: integer
 | |
|         is_build_time:
 | |
|           type: boolean
 | |
|         is_literal:
 | |
|           type: boolean
 | |
|         is_multiline:
 | |
|           type: boolean
 | |
|         is_preview:
 | |
|           type: boolean
 | |
|         is_shared:
 | |
|           type: boolean
 | |
|         is_shown_once:
 | |
|           type: boolean
 | |
|         key:
 | |
|           type: string
 | |
|         value:
 | |
|           type: string
 | |
|         real_value:
 | |
|           type: string
 | |
|         version:
 | |
|           type: string
 | |
|         created_at:
 | |
|           type: string
 | |
|         updated_at:
 | |
|           type: string
 | |
|       type: object
 | |
|     PrivateKey:
 | |
|       description: 'Private Key model'
 | |
|       properties:
 | |
|         id:
 | |
|           type: integer
 | |
|         uuid:
 | |
|           type: string
 | |
|         name:
 | |
|           type: string
 | |
|         description:
 | |
|           type: string
 | |
|         private_key:
 | |
|           type: string
 | |
|           format: private-key
 | |
|         public_key:
 | |
|           type: string
 | |
|           description: 'The public key of the private key.'
 | |
|         fingerprint:
 | |
|           type: string
 | |
|           description: 'The fingerprint of the private key.'
 | |
|         is_git_related:
 | |
|           type: boolean
 | |
|         team_id:
 | |
|           type: integer
 | |
|         created_at:
 | |
|           type: string
 | |
|         updated_at:
 | |
|           type: string
 | |
|       type: object
 | |
|     Project:
 | |
|       description: 'Project model'
 | |
|       properties:
 | |
|         id:
 | |
|           type: integer
 | |
|         uuid:
 | |
|           type: string
 | |
|         name:
 | |
|           type: string
 | |
|         description:
 | |
|           type: string
 | |
|         environments:
 | |
|           description: 'The environments of the project.'
 | |
|           type: array
 | |
|           items:
 | |
|             $ref: '#/components/schemas/Environment'
 | |
|       type: object
 | |
|     Server:
 | |
|       description: 'Server model'
 | |
|       properties:
 | |
|         id:
 | |
|           type: integer
 | |
|           description: 'The server ID.'
 | |
|         uuid:
 | |
|           type: string
 | |
|           description: 'The server UUID.'
 | |
|         name:
 | |
|           type: string
 | |
|           description: 'The server name.'
 | |
|         description:
 | |
|           type: string
 | |
|           description: 'The server description.'
 | |
|         ip:
 | |
|           type: string
 | |
|           description: 'The IP address.'
 | |
|         user:
 | |
|           type: string
 | |
|           description: 'The user.'
 | |
|         port:
 | |
|           type: integer
 | |
|           description: 'The port number.'
 | |
|         proxy:
 | |
|           type: object
 | |
|           description: 'The proxy configuration.'
 | |
|         proxy_type:
 | |
|           type: string
 | |
|           enum:
 | |
|             - traefik
 | |
|             - caddy
 | |
|             - none
 | |
|           description: 'The proxy type.'
 | |
|         high_disk_usage_notification_sent:
 | |
|           type: boolean
 | |
|           description: 'The flag to indicate if the high disk usage notification has been sent.'
 | |
|         unreachable_notification_sent:
 | |
|           type: boolean
 | |
|           description: 'The flag to indicate if the unreachable notification has been sent.'
 | |
|         unreachable_count:
 | |
|           type: integer
 | |
|           description: 'The unreachable count for your server.'
 | |
|         validation_logs:
 | |
|           type: string
 | |
|           description: 'The validation logs.'
 | |
|         log_drain_notification_sent:
 | |
|           type: boolean
 | |
|           description: 'The flag to indicate if the log drain notification has been sent.'
 | |
|         swarm_cluster:
 | |
|           type: string
 | |
|           description: 'The swarm cluster configuration.'
 | |
|         settings:
 | |
|           $ref: '#/components/schemas/ServerSetting'
 | |
|       type: object
 | |
|     ServerSetting:
 | |
|       description: 'Server Settings model'
 | |
|       properties:
 | |
|         id:
 | |
|           type: integer
 | |
|         concurrent_builds:
 | |
|           type: integer
 | |
|         dynamic_timeout:
 | |
|           type: integer
 | |
|         force_disabled:
 | |
|           type: boolean
 | |
|         force_server_cleanup:
 | |
|           type: boolean
 | |
|         is_build_server:
 | |
|           type: boolean
 | |
|         is_cloudflare_tunnel:
 | |
|           type: boolean
 | |
|         is_jump_server:
 | |
|           type: boolean
 | |
|         is_logdrain_axiom_enabled:
 | |
|           type: boolean
 | |
|         is_logdrain_custom_enabled:
 | |
|           type: boolean
 | |
|         is_logdrain_highlight_enabled:
 | |
|           type: boolean
 | |
|         is_logdrain_newrelic_enabled:
 | |
|           type: boolean
 | |
|         is_metrics_enabled:
 | |
|           type: boolean
 | |
|         is_reachable:
 | |
|           type: boolean
 | |
|         is_sentinel_enabled:
 | |
|           type: boolean
 | |
|         is_swarm_manager:
 | |
|           type: boolean
 | |
|         is_swarm_worker:
 | |
|           type: boolean
 | |
|         is_usable:
 | |
|           type: boolean
 | |
|         logdrain_axiom_api_key:
 | |
|           type: string
 | |
|         logdrain_axiom_dataset_name:
 | |
|           type: string
 | |
|         logdrain_custom_config:
 | |
|           type: string
 | |
|         logdrain_custom_config_parser:
 | |
|           type: string
 | |
|         logdrain_highlight_project_id:
 | |
|           type: string
 | |
|         logdrain_newrelic_base_uri:
 | |
|           type: string
 | |
|         logdrain_newrelic_license_key:
 | |
|           type: string
 | |
|         sentinel_metrics_history_days:
 | |
|           type: integer
 | |
|         sentinel_metrics_refresh_rate_seconds:
 | |
|           type: integer
 | |
|         sentinel_token:
 | |
|           type: string
 | |
|         docker_cleanup_frequency:
 | |
|           type: string
 | |
|         docker_cleanup_threshold:
 | |
|           type: integer
 | |
|         server_id:
 | |
|           type: integer
 | |
|         wildcard_domain:
 | |
|           type: string
 | |
|         created_at:
 | |
|           type: string
 | |
|         updated_at:
 | |
|           type: string
 | |
|         delete_unused_volumes:
 | |
|           type: boolean
 | |
|           description: 'The flag to indicate if the unused volumes should be deleted.'
 | |
|         delete_unused_networks:
 | |
|           type: boolean
 | |
|           description: 'The flag to indicate if the unused networks should be deleted.'
 | |
|       type: object
 | |
|     Service:
 | |
|       description: 'Service model'
 | |
|       properties:
 | |
|         id:
 | |
|           type: integer
 | |
|           description: 'The unique identifier of the service. Only used for database identification.'
 | |
|         uuid:
 | |
|           type: string
 | |
|           description: 'The unique identifier of the service.'
 | |
|         name:
 | |
|           type: string
 | |
|           description: 'The name of the service.'
 | |
|         environment_id:
 | |
|           type: integer
 | |
|           description: 'The unique identifier of the environment where the service is attached to.'
 | |
|         server_id:
 | |
|           type: integer
 | |
|           description: 'The unique identifier of the server where the service is running.'
 | |
|         description:
 | |
|           type: string
 | |
|           description: 'The description of the service.'
 | |
|         docker_compose_raw:
 | |
|           type: string
 | |
|           description: 'The raw docker-compose.yml file of the service.'
 | |
|         docker_compose:
 | |
|           type: string
 | |
|           description: 'The docker-compose.yml file that is parsed and modified by Coolify.'
 | |
|         destination_type:
 | |
|           type: string
 | |
|           description: 'Destination type.'
 | |
|         destination_id:
 | |
|           type: integer
 | |
|           description: 'The unique identifier of the destination where the service is running.'
 | |
|         connect_to_docker_network:
 | |
|           type: boolean
 | |
|           description: 'The flag to connect the service to the predefined Docker network.'
 | |
|         is_container_label_escape_enabled:
 | |
|           type: boolean
 | |
|           description: 'The flag to enable the container label escape.'
 | |
|         is_container_label_readonly_enabled:
 | |
|           type: boolean
 | |
|           description: 'The flag to enable the container label readonly.'
 | |
|         config_hash:
 | |
|           type: string
 | |
|           description: 'The hash of the service configuration.'
 | |
|         service_type:
 | |
|           type: string
 | |
|           description: 'The type of the service.'
 | |
|         created_at:
 | |
|           type: string
 | |
|           description: 'The date and time when the service was created.'
 | |
|         updated_at:
 | |
|           type: string
 | |
|           description: 'The date and time when the service was last updated.'
 | |
|         deleted_at:
 | |
|           type: string
 | |
|           description: 'The date and time when the service was deleted.'
 | |
|       type: object
 | |
|     Team:
 | |
|       description: 'Team model'
 | |
|       properties:
 | |
|         id:
 | |
|           type: integer
 | |
|           description: 'The unique identifier of the team.'
 | |
|         name:
 | |
|           type: string
 | |
|           description: 'The name of the team.'
 | |
|         description:
 | |
|           type: string
 | |
|           description: 'The description of the team.'
 | |
|         personal_team:
 | |
|           type: boolean
 | |
|           description: 'Whether the team is personal or not.'
 | |
|         created_at:
 | |
|           type: string
 | |
|           description: 'The date and time the team was created.'
 | |
|         updated_at:
 | |
|           type: string
 | |
|           description: 'The date and time the team was last updated.'
 | |
|         show_boarding:
 | |
|           type: boolean
 | |
|           description: 'Whether to show the boarding screen or not.'
 | |
|         custom_server_limit:
 | |
|           type: string
 | |
|           description: 'The custom server limit.'
 | |
|         members:
 | |
|           description: 'The members of the team.'
 | |
|           type: array
 | |
|           items:
 | |
|             $ref: '#/components/schemas/User'
 | |
|       type: object
 | |
|     User:
 | |
|       description: 'User model'
 | |
|       properties:
 | |
|         id:
 | |
|           type: integer
 | |
|           description: 'The user identifier in the database.'
 | |
|         name:
 | |
|           type: string
 | |
|           description: 'The user name.'
 | |
|         email:
 | |
|           type: string
 | |
|           description: 'The user email.'
 | |
|         email_verified_at:
 | |
|           type: string
 | |
|           description: 'The date when the user email was verified.'
 | |
|         created_at:
 | |
|           type: string
 | |
|           description: 'The date when the user was created.'
 | |
|         updated_at:
 | |
|           type: string
 | |
|           description: 'The date when the user was updated.'
 | |
|         two_factor_confirmed_at:
 | |
|           type: string
 | |
|           description: 'The date when the user two factor was confirmed.'
 | |
|         force_password_reset:
 | |
|           type: boolean
 | |
|           description: 'The flag to force the user to reset the password.'
 | |
|         marketing_emails:
 | |
|           type: boolean
 | |
|           description: 'The flag to receive marketing emails.'
 | |
|       type: object
 | |
|   responses:
 | |
|     '400':
 | |
|       description: 'Invalid token.'
 | |
|       content:
 | |
|         application/json:
 | |
|           schema:
 | |
|             properties:
 | |
|               message:
 | |
|                 type: string
 | |
|                 example: 'Invalid token.'
 | |
|             type: object
 | |
|     '401':
 | |
|       description: Unauthenticated.
 | |
|       content:
 | |
|         application/json:
 | |
|           schema:
 | |
|             properties:
 | |
|               message:
 | |
|                 type: string
 | |
|                 example: Unauthenticated.
 | |
|             type: object
 | |
|     '404':
 | |
|       description: 'Resource not found.'
 | |
|       content:
 | |
|         application/json:
 | |
|           schema:
 | |
|             properties:
 | |
|               message:
 | |
|                 type: string
 | |
|                 example: 'Resource not found.'
 | |
|             type: object
 | |
|   securitySchemes:
 | |
|     bearerAuth:
 | |
|       type: http
 | |
|       description: 'Go to `Keys & Tokens` / `API tokens` and create a new token. Use the token as the bearer token.'
 | |
|       scheme: bearer
 | |
| tags:
 | |
|   -
 | |
|     name: Applications
 | |
|     description: Applications
 | |
|   -
 | |
|     name: Databases
 | |
|     description: Databases
 | |
|   -
 | |
|     name: Deployments
 | |
|     description: Deployments
 | |
|   -
 | |
|     name: Projects
 | |
|     description: Projects
 | |
|   -
 | |
|     name: Resources
 | |
|     description: Resources
 | |
|   -
 | |
|     name: 'Private Keys'
 | |
|     description: 'Private Keys'
 | |
|   -
 | |
|     name: Servers
 | |
|     description: Servers
 | |
|   -
 | |
|     name: Services
 | |
|     description: Services
 | |
|   -
 | |
|     name: Teams
 | |
|     description: Teams
 | 
