diff --git a/Dockerfile.docs b/Dockerfile.docs
index 647779d..16dc907 100644
--- a/Dockerfile.docs
+++ b/Dockerfile.docs
@@ -11,6 +11,10 @@ WORKDIR /usr/src/app
# Install dependencies
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --filter=./apps/docs --frozen-lockfile
+# Copy openapi.json to docs public folder
+RUN mkdir -p /usr/src/app/apps/docs/public && \
+ cp /usr/src/app/public/openapi.json /usr/src/app/apps/docs/public/openapi.json
+
# Generate OpenAPI documentation
RUN pnpm --filter=./apps/docs run build:docs
diff --git a/apps/docs/content/docs/api/generated/reference-admin.mdx b/apps/docs/content/docs/api/generated/reference-admin.mdx
index 539122b..60462dc 100644
--- a/apps/docs/content/docs/api/generated/reference-admin.mdx
+++ b/apps/docs/content/docs/api/generated/reference-admin.mdx
@@ -13,4 +13,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-ai.mdx b/apps/docs/content/docs/api/generated/reference-ai.mdx
index 08a752c..e27ea17 100644
--- a/apps/docs/content/docs/api/generated/reference-ai.mdx
+++ b/apps/docs/content/docs/api/generated/reference-ai.mdx
@@ -53,4 +53,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-application.mdx b/apps/docs/content/docs/api/generated/reference-application.mdx
index 5c6b679..66611e4 100644
--- a/apps/docs/content/docs/api/generated/reference-application.mdx
+++ b/apps/docs/content/docs/api/generated/reference-application.mdx
@@ -143,4 +143,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-backup.mdx b/apps/docs/content/docs/api/generated/reference-backup.mdx
index 58b640e..540e858 100644
--- a/apps/docs/content/docs/api/generated/reference-backup.mdx
+++ b/apps/docs/content/docs/api/generated/reference-backup.mdx
@@ -63,4 +63,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-bitbucket.mdx b/apps/docs/content/docs/api/generated/reference-bitbucket.mdx
index 3c713cb..32c1edf 100644
--- a/apps/docs/content/docs/api/generated/reference-bitbucket.mdx
+++ b/apps/docs/content/docs/api/generated/reference-bitbucket.mdx
@@ -43,4 +43,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-certificates.mdx b/apps/docs/content/docs/api/generated/reference-certificates.mdx
index 23f607b..b0b51b9 100644
--- a/apps/docs/content/docs/api/generated/reference-certificates.mdx
+++ b/apps/docs/content/docs/api/generated/reference-certificates.mdx
@@ -28,4 +28,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-cluster.mdx b/apps/docs/content/docs/api/generated/reference-cluster.mdx
index 6854095..8729864 100644
--- a/apps/docs/content/docs/api/generated/reference-cluster.mdx
+++ b/apps/docs/content/docs/api/generated/reference-cluster.mdx
@@ -28,4 +28,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-compose.mdx b/apps/docs/content/docs/api/generated/reference-compose.mdx
index 6fa350f..fdf7512 100644
--- a/apps/docs/content/docs/api/generated/reference-compose.mdx
+++ b/apps/docs/content/docs/api/generated/reference-compose.mdx
@@ -138,4 +138,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-deployment.mdx b/apps/docs/content/docs/api/generated/reference-deployment.mdx
index dd83a01..2dd54f9 100644
--- a/apps/docs/content/docs/api/generated/reference-deployment.mdx
+++ b/apps/docs/content/docs/api/generated/reference-deployment.mdx
@@ -33,4 +33,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-destination.mdx b/apps/docs/content/docs/api/generated/reference-destination.mdx
index f7b361f..7427ec0 100644
--- a/apps/docs/content/docs/api/generated/reference-destination.mdx
+++ b/apps/docs/content/docs/api/generated/reference-destination.mdx
@@ -38,4 +38,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-docker.mdx b/apps/docs/content/docs/api/generated/reference-docker.mdx
index 9015360..48e78e0 100644
--- a/apps/docs/content/docs/api/generated/reference-docker.mdx
+++ b/apps/docs/content/docs/api/generated/reference-docker.mdx
@@ -43,4 +43,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-domain.mdx b/apps/docs/content/docs/api/generated/reference-domain.mdx
index 859008d..ebe4b20 100644
--- a/apps/docs/content/docs/api/generated/reference-domain.mdx
+++ b/apps/docs/content/docs/api/generated/reference-domain.mdx
@@ -53,4 +53,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-environment.mdx b/apps/docs/content/docs/api/generated/reference-environment.mdx
index 608b3ab..49cc235 100644
--- a/apps/docs/content/docs/api/generated/reference-environment.mdx
+++ b/apps/docs/content/docs/api/generated/reference-environment.mdx
@@ -38,4 +38,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-gitProvider.mdx b/apps/docs/content/docs/api/generated/reference-gitProvider.mdx
index 9552fbc..00eeb7c 100644
--- a/apps/docs/content/docs/api/generated/reference-gitProvider.mdx
+++ b/apps/docs/content/docs/api/generated/reference-gitProvider.mdx
@@ -18,4 +18,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-gitea.mdx b/apps/docs/content/docs/api/generated/reference-gitea.mdx
index 780806b..287fb5c 100644
--- a/apps/docs/content/docs/api/generated/reference-gitea.mdx
+++ b/apps/docs/content/docs/api/generated/reference-gitea.mdx
@@ -48,4 +48,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-github.mdx b/apps/docs/content/docs/api/generated/reference-github.mdx
index 85eb62c..29b3a5d 100644
--- a/apps/docs/content/docs/api/generated/reference-github.mdx
+++ b/apps/docs/content/docs/api/generated/reference-github.mdx
@@ -38,4 +38,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-gitlab.mdx b/apps/docs/content/docs/api/generated/reference-gitlab.mdx
index 9ba9247..573f241 100644
--- a/apps/docs/content/docs/api/generated/reference-gitlab.mdx
+++ b/apps/docs/content/docs/api/generated/reference-gitlab.mdx
@@ -43,4 +43,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-mariadb.mdx b/apps/docs/content/docs/api/generated/reference-mariadb.mdx
index 8b69d62..f92dc57 100644
--- a/apps/docs/content/docs/api/generated/reference-mariadb.mdx
+++ b/apps/docs/content/docs/api/generated/reference-mariadb.mdx
@@ -73,4 +73,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-mongo.mdx b/apps/docs/content/docs/api/generated/reference-mongo.mdx
index bf1264f..334acd9 100644
--- a/apps/docs/content/docs/api/generated/reference-mongo.mdx
+++ b/apps/docs/content/docs/api/generated/reference-mongo.mdx
@@ -73,4 +73,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-mounts.mdx b/apps/docs/content/docs/api/generated/reference-mounts.mdx
index 1cee9b6..8082955 100644
--- a/apps/docs/content/docs/api/generated/reference-mounts.mdx
+++ b/apps/docs/content/docs/api/generated/reference-mounts.mdx
@@ -33,4 +33,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-mysql.mdx b/apps/docs/content/docs/api/generated/reference-mysql.mdx
index 32259d3..aeb72ac 100644
--- a/apps/docs/content/docs/api/generated/reference-mysql.mdx
+++ b/apps/docs/content/docs/api/generated/reference-mysql.mdx
@@ -73,4 +73,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-notification.mdx b/apps/docs/content/docs/api/generated/reference-notification.mdx
index d199fb8..d7901b2 100644
--- a/apps/docs/content/docs/api/generated/reference-notification.mdx
+++ b/apps/docs/content/docs/api/generated/reference-notification.mdx
@@ -138,4 +138,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-organization.mdx b/apps/docs/content/docs/api/generated/reference-organization.mdx
index b856179..6ca7904 100644
--- a/apps/docs/content/docs/api/generated/reference-organization.mdx
+++ b/apps/docs/content/docs/api/generated/reference-organization.mdx
@@ -48,4 +48,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-port.mdx b/apps/docs/content/docs/api/generated/reference-port.mdx
index 6cfcd65..3b96040 100644
--- a/apps/docs/content/docs/api/generated/reference-port.mdx
+++ b/apps/docs/content/docs/api/generated/reference-port.mdx
@@ -28,4 +28,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-postgres.mdx b/apps/docs/content/docs/api/generated/reference-postgres.mdx
index 8626bf2..983f588 100644
--- a/apps/docs/content/docs/api/generated/reference-postgres.mdx
+++ b/apps/docs/content/docs/api/generated/reference-postgres.mdx
@@ -73,4 +73,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-previewDeployment.mdx b/apps/docs/content/docs/api/generated/reference-previewDeployment.mdx
index bbb7db8..c4dd088 100644
--- a/apps/docs/content/docs/api/generated/reference-previewDeployment.mdx
+++ b/apps/docs/content/docs/api/generated/reference-previewDeployment.mdx
@@ -23,4 +23,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-project.mdx b/apps/docs/content/docs/api/generated/reference-project.mdx
index 26477d9..86167e5 100644
--- a/apps/docs/content/docs/api/generated/reference-project.mdx
+++ b/apps/docs/content/docs/api/generated/reference-project.mdx
@@ -38,4 +38,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-redirects.mdx b/apps/docs/content/docs/api/generated/reference-redirects.mdx
index da160ff..7797dbb 100644
--- a/apps/docs/content/docs/api/generated/reference-redirects.mdx
+++ b/apps/docs/content/docs/api/generated/reference-redirects.mdx
@@ -28,4 +28,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-redis.mdx b/apps/docs/content/docs/api/generated/reference-redis.mdx
index 47de3a2..0529270 100644
--- a/apps/docs/content/docs/api/generated/reference-redis.mdx
+++ b/apps/docs/content/docs/api/generated/reference-redis.mdx
@@ -73,4 +73,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-registry.mdx b/apps/docs/content/docs/api/generated/reference-registry.mdx
index 8947c8b..8ee38a4 100644
--- a/apps/docs/content/docs/api/generated/reference-registry.mdx
+++ b/apps/docs/content/docs/api/generated/reference-registry.mdx
@@ -38,4 +38,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-rollback.mdx b/apps/docs/content/docs/api/generated/reference-rollback.mdx
index aa167d2..8b31b5b 100644
--- a/apps/docs/content/docs/api/generated/reference-rollback.mdx
+++ b/apps/docs/content/docs/api/generated/reference-rollback.mdx
@@ -18,4 +18,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-schedule.mdx b/apps/docs/content/docs/api/generated/reference-schedule.mdx
index a7c8f2b..32d5e85 100644
--- a/apps/docs/content/docs/api/generated/reference-schedule.mdx
+++ b/apps/docs/content/docs/api/generated/reference-schedule.mdx
@@ -38,4 +38,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-security.mdx b/apps/docs/content/docs/api/generated/reference-security.mdx
index 5ee4a3c..8cd948e 100644
--- a/apps/docs/content/docs/api/generated/reference-security.mdx
+++ b/apps/docs/content/docs/api/generated/reference-security.mdx
@@ -28,4 +28,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-server.mdx b/apps/docs/content/docs/api/generated/reference-server.mdx
index 76ccf94..3b2d59c 100644
--- a/apps/docs/content/docs/api/generated/reference-server.mdx
+++ b/apps/docs/content/docs/api/generated/reference-server.mdx
@@ -88,4 +88,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-settings.mdx b/apps/docs/content/docs/api/generated/reference-settings.mdx
index 09d4249..9f8e4ba 100644
--- a/apps/docs/content/docs/api/generated/reference-settings.mdx
+++ b/apps/docs/content/docs/api/generated/reference-settings.mdx
@@ -238,4 +238,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-sshKey.mdx b/apps/docs/content/docs/api/generated/reference-sshKey.mdx
index 892f4a6..5b6c17b 100644
--- a/apps/docs/content/docs/api/generated/reference-sshKey.mdx
+++ b/apps/docs/content/docs/api/generated/reference-sshKey.mdx
@@ -38,4 +38,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-stripe.mdx b/apps/docs/content/docs/api/generated/reference-stripe.mdx
index 652d2e6..cae965b 100644
--- a/apps/docs/content/docs/api/generated/reference-stripe.mdx
+++ b/apps/docs/content/docs/api/generated/reference-stripe.mdx
@@ -28,4 +28,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-swarm.mdx b/apps/docs/content/docs/api/generated/reference-swarm.mdx
index b58485f..9d8d65c 100644
--- a/apps/docs/content/docs/api/generated/reference-swarm.mdx
+++ b/apps/docs/content/docs/api/generated/reference-swarm.mdx
@@ -23,4 +23,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-user.mdx b/apps/docs/content/docs/api/generated/reference-user.mdx
index bca7975..8acecac 100644
--- a/apps/docs/content/docs/api/generated/reference-user.mdx
+++ b/apps/docs/content/docs/api/generated/reference-user.mdx
@@ -98,4 +98,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-volumeBackups.mdx b/apps/docs/content/docs/api/generated/reference-volumeBackups.mdx
index c8e3e66..23972f6 100644
--- a/apps/docs/content/docs/api/generated/reference-volumeBackups.mdx
+++ b/apps/docs/content/docs/api/generated/reference-volumeBackups.mdx
@@ -38,4 +38,4 @@ _openapi:
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/generate-docs.mjs b/apps/docs/generate-docs.mjs
index 4505bd0..ba639a7 100644
--- a/apps/docs/generate-docs.mjs
+++ b/apps/docs/generate-docs.mjs
@@ -2,7 +2,7 @@ import { generateFiles } from "fumadocs-openapi";
try {
void generateFiles({
- input: ["../../public/openapi.json"],
+ input: ["./public/openapi.json"],
output: "./content/docs/api/generated",
per: "tag",
name: (tag, name) => {
diff --git a/apps/docs/public/openapi.json b/apps/docs/public/openapi.json
new file mode 100644
index 0000000..399e4a1
--- /dev/null
+++ b/apps/docs/public/openapi.json
@@ -0,0 +1,21555 @@
+{
+ "openapi": "3.0.3",
+ "info": {
+ "title": "Dokploy API",
+ "description": "Complete API documentation for Dokploy - Deploy applications, manage databases, and orchestrate your infrastructure. This API allows you to programmatically manage all aspects of your Dokploy instance.",
+ "version": "1.0.0",
+ "contact": {
+ "name": "Dokploy Team",
+ "url": "https://dokploy.com"
+ },
+ "license": {
+ "name": "Apache 2.0",
+ "url": "https://github.com/dokploy/dokploy/blob/canary/LICENSE"
+ }
+ },
+ "servers": [
+ {
+ "url": "https://your-dokploy-instance.com/api"
+ }
+ ],
+ "paths": {
+ "/admin.setupMonitoring": {
+ "post": {
+ "operationId": "admin-setupMonitoring",
+ "tags": [
+ "admin"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "metricsConfig": {
+ "type": "object",
+ "properties": {
+ "server": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number",
+ "minimum": 2
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1
+ },
+ "token": {
+ "type": "string"
+ },
+ "urlCallback": {
+ "type": "string",
+ "format": "uri"
+ },
+ "retentionDays": {
+ "type": "number",
+ "minimum": 1
+ },
+ "cronJob": {
+ "type": "string",
+ "minLength": 1
+ },
+ "thresholds": {
+ "type": "object",
+ "properties": {
+ "cpu": {
+ "type": "number",
+ "minimum": 0
+ },
+ "memory": {
+ "type": "number",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "cpu",
+ "memory"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "refreshRate",
+ "port",
+ "token",
+ "urlCallback",
+ "retentionDays",
+ "cronJob",
+ "thresholds"
+ ],
+ "additionalProperties": false
+ },
+ "containers": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number",
+ "minimum": 2
+ },
+ "services": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "refreshRate",
+ "services"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "server",
+ "containers"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "metricsConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getContainers": {
+ "get": {
+ "operationId": "docker-getContainers",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.restartContainer": {
+ "post": {
+ "operationId": "docker-restartContainer",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "containerId": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ "required": [
+ "containerId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getConfig": {
+ "get": {
+ "operationId": "docker-getConfig",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "containerId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getContainersByAppNameMatch": {
+ "get": {
+ "operationId": "docker-getContainersByAppNameMatch",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appType",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "anyOf": [
+ {
+ "type": "string",
+ "enum": [
+ "stack"
+ ]
+ },
+ {
+ "type": "string",
+ "enum": [
+ "docker-compose"
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getContainersByAppLabel": {
+ "get": {
+ "operationId": "docker-getContainersByAppLabel",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "type",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "standalone",
+ "swarm"
+ ]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getStackContainersByAppName": {
+ "get": {
+ "operationId": "docker-getStackContainersByAppName",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getServiceContainersByAppName": {
+ "get": {
+ "operationId": "docker-getServiceContainersByAppName",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.create": {
+ "post": {
+ "operationId": "project-create",
+ "tags": [
+ "project"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.one": {
+ "get": {
+ "operationId": "project-one",
+ "tags": [
+ "project"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.all": {
+ "get": {
+ "operationId": "project-all",
+ "tags": [
+ "project"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.remove": {
+ "post": {
+ "operationId": "project-remove",
+ "tags": [
+ "project"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "projectId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "projectId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.update": {
+ "post": {
+ "operationId": "project-update",
+ "tags": [
+ "project"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "projectId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "organizationId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "projectId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.duplicate": {
+ "post": {
+ "operationId": "project-duplicate",
+ "tags": [
+ "project"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "sourceEnvironmentId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "includeServices": {
+ "type": "boolean",
+ "default": true
+ },
+ "selectedServices": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mariadb",
+ "mongo",
+ "mysql",
+ "redis",
+ "compose"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "duplicateInSameProject": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ "required": [
+ "sourceEnvironmentId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.create": {
+ "post": {
+ "operationId": "application-create",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.one": {
+ "get": {
+ "operationId": "application-one",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.reload": {
+ "post": {
+ "operationId": "application-reload",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appName": {
+ "type": "string"
+ },
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "appName",
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.delete": {
+ "post": {
+ "operationId": "application-delete",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.stop": {
+ "post": {
+ "operationId": "application-stop",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.start": {
+ "post": {
+ "operationId": "application-start",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.redeploy": {
+ "post": {
+ "operationId": "application-redeploy",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveEnvironment": {
+ "post": {
+ "operationId": "application-saveEnvironment",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildArgs": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildSecrets": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveBuildType": {
+ "post": {
+ "operationId": "application-saveBuildType",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "buildType": {
+ "type": "string",
+ "enum": [
+ "dockerfile",
+ "heroku_buildpacks",
+ "paketo_buildpacks",
+ "nixpacks",
+ "static",
+ "railpack"
+ ]
+ },
+ "dockerfile": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerContextPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerBuildStage": {
+ "type": "string",
+ "nullable": true
+ },
+ "herokuVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "railpackVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "publishDirectory": {
+ "type": "string",
+ "nullable": true
+ },
+ "isStaticSpa": {
+ "type": "boolean",
+ "nullable": true
+ }
+ },
+ "required": [
+ "applicationId",
+ "buildType",
+ "dockerContextPath",
+ "dockerBuildStage"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveGithubProvider": {
+ "post": {
+ "operationId": "application-saveGithubProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "repository": {
+ "type": "string",
+ "nullable": true
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "owner": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubId": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ },
+ "triggerType": {
+ "type": "string",
+ "enum": [
+ "push",
+ "tag"
+ ],
+ "default": "push"
+ }
+ },
+ "required": [
+ "applicationId",
+ "owner",
+ "githubId",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveGitlabProvider": {
+ "post": {
+ "operationId": "application-saveGitlabProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "gitlabBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabId": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabProjectId": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitlabPathNamespace": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "applicationId",
+ "gitlabBranch",
+ "gitlabBuildPath",
+ "gitlabOwner",
+ "gitlabRepository",
+ "gitlabId",
+ "gitlabProjectId",
+ "gitlabPathNamespace",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveBitbucketProvider": {
+ "post": {
+ "operationId": "application-saveBitbucketProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "bitbucketBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketId": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "bitbucketBranch",
+ "bitbucketBuildPath",
+ "bitbucketOwner",
+ "bitbucketRepository",
+ "bitbucketId",
+ "applicationId",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveGiteaProvider": {
+ "post": {
+ "operationId": "application-saveGiteaProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "giteaBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaId": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "applicationId",
+ "giteaBranch",
+ "giteaBuildPath",
+ "giteaOwner",
+ "giteaRepository",
+ "giteaId",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveDockerProvider": {
+ "post": {
+ "operationId": "application-saveDockerProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "dockerImage": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string",
+ "nullable": true
+ },
+ "password": {
+ "type": "string",
+ "nullable": true
+ },
+ "registryUrl": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveGitProvider": {
+ "post": {
+ "operationId": "application-saveGitProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "customGitBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "customGitBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ },
+ "customGitSSHKeyId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "applicationId",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.disconnectGitProvider": {
+ "post": {
+ "operationId": "application-disconnectGitProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.markRunning": {
+ "post": {
+ "operationId": "application-markRunning",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.update": {
+ "post": {
+ "operationId": "application-update",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewEnv": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "previewBuildArgs": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewBuildSecrets": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewLabels": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "previewWildcard": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "previewHttps": {
+ "type": "boolean"
+ },
+ "previewPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewCertificateType": {
+ "type": "string",
+ "enum": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "previewCustomCertResolver": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewLimit": {
+ "type": "number",
+ "nullable": true
+ },
+ "isPreviewDeploymentsActive": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "previewRequireCollaboratorPermissions": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "rollbackActive": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "buildArgs": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildSecrets": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "subtitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "refreshToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "sourceType": {
+ "type": "string",
+ "enum": [
+ "github",
+ "docker",
+ "git",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "drop"
+ ]
+ },
+ "cleanCache": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "repository": {
+ "type": "string",
+ "nullable": true
+ },
+ "owner": {
+ "type": "string",
+ "nullable": true
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "triggerType": {
+ "type": "string",
+ "enum": [
+ "push",
+ "tag"
+ ],
+ "nullable": true
+ },
+ "autoDeploy": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "gitlabProjectId": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitlabRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabPathNamespace": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "username": {
+ "type": "string",
+ "nullable": true
+ },
+ "password": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerImage": {
+ "type": "string",
+ "nullable": true
+ },
+ "registryUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitSSHKeyId": {
+ "type": "string",
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ },
+ "dockerfile": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerContextPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerBuildStage": {
+ "type": "string",
+ "nullable": true
+ },
+ "dropBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "SpreadDescriptor"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "Spread"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Architecture",
+ "OS"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "buildType": {
+ "type": "string",
+ "enum": [
+ "dockerfile",
+ "heroku_buildpacks",
+ "paketo_buildpacks",
+ "nixpacks",
+ "static",
+ "railpack"
+ ]
+ },
+ "railpackVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "herokuVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "publishDirectory": {
+ "type": "string",
+ "nullable": true
+ },
+ "isStaticSpa": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "registryId": {
+ "type": "string",
+ "nullable": true
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "githubId": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabId": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaId": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketId": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildServerId": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildRegistryId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.refreshToken": {
+ "post": {
+ "operationId": "application-refreshToken",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.deploy": {
+ "post": {
+ "operationId": "application-deploy",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.cleanQueues": {
+ "post": {
+ "operationId": "application-cleanQueues",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.killBuild": {
+ "post": {
+ "operationId": "application-killBuild",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.readTraefikConfig": {
+ "get": {
+ "operationId": "application-readTraefikConfig",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.updateTraefikConfig": {
+ "post": {
+ "operationId": "application-updateTraefikConfig",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "traefikConfig": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId",
+ "traefikConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.readAppMonitoring": {
+ "get": {
+ "operationId": "application-readAppMonitoring",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.move": {
+ "post": {
+ "operationId": "application-move",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.cancelDeployment": {
+ "post": {
+ "operationId": "application-cancelDeployment",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.create": {
+ "post": {
+ "operationId": "mysql-create",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mysql:8"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "databaseRootPassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "environmentId",
+ "databaseName",
+ "databaseUser",
+ "databasePassword",
+ "databaseRootPassword"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.one": {
+ "get": {
+ "operationId": "mysql-one",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "mysqlId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.start": {
+ "post": {
+ "operationId": "mysql-start",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.stop": {
+ "post": {
+ "operationId": "mysql-stop",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.saveExternalPort": {
+ "post": {
+ "operationId": "mysql-saveExternalPort",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mysqlId",
+ "externalPort"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.deploy": {
+ "post": {
+ "operationId": "mysql-deploy",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.changeStatus": {
+ "post": {
+ "operationId": "mysql-changeStatus",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ }
+ },
+ "required": [
+ "mysqlId",
+ "applicationStatus"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.reload": {
+ "post": {
+ "operationId": "mysql-reload",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "mysqlId",
+ "appName"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.remove": {
+ "post": {
+ "operationId": "mysql-remove",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.saveEnvironment": {
+ "post": {
+ "operationId": "mysql-saveEnvironment",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.update": {
+ "post": {
+ "operationId": "mysql-update",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "databaseRootPassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mysql:8"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "SpreadDescriptor"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "Spread"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Architecture",
+ "OS"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "environmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.move": {
+ "post": {
+ "operationId": "mysql-move",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.rebuild": {
+ "post": {
+ "operationId": "mysql-rebuild",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.create": {
+ "post": {
+ "operationId": "postgres-create",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "postgres:15"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "databaseName",
+ "databaseUser",
+ "databasePassword",
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.one": {
+ "get": {
+ "operationId": "postgres-one",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "postgresId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.start": {
+ "post": {
+ "operationId": "postgres-start",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.stop": {
+ "post": {
+ "operationId": "postgres-stop",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.saveExternalPort": {
+ "post": {
+ "operationId": "postgres-saveExternalPort",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": [
+ "postgresId",
+ "externalPort"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.deploy": {
+ "post": {
+ "operationId": "postgres-deploy",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.changeStatus": {
+ "post": {
+ "operationId": "postgres-changeStatus",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ }
+ },
+ "required": [
+ "postgresId",
+ "applicationStatus"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.remove": {
+ "post": {
+ "operationId": "postgres-remove",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.saveEnvironment": {
+ "post": {
+ "operationId": "postgres-saveEnvironment",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.reload": {
+ "post": {
+ "operationId": "postgres-reload",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId",
+ "appName"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.update": {
+ "post": {
+ "operationId": "postgres-update",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "postgres:15"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "SpreadDescriptor"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "Spread"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Architecture",
+ "OS"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "environmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.move": {
+ "post": {
+ "operationId": "postgres-move",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.rebuild": {
+ "post": {
+ "operationId": "postgres-rebuild",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.create": {
+ "post": {
+ "operationId": "redis-create",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "redis:8"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "databasePassword",
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.one": {
+ "get": {
+ "operationId": "redis-one",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "redisId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.start": {
+ "post": {
+ "operationId": "redis-start",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.reload": {
+ "post": {
+ "operationId": "redis-reload",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "redisId",
+ "appName"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.stop": {
+ "post": {
+ "operationId": "redis-stop",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.saveExternalPort": {
+ "post": {
+ "operationId": "redis-saveExternalPort",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": [
+ "redisId",
+ "externalPort"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.deploy": {
+ "post": {
+ "operationId": "redis-deploy",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.changeStatus": {
+ "post": {
+ "operationId": "redis-changeStatus",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ }
+ },
+ "required": [
+ "redisId",
+ "applicationStatus"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.remove": {
+ "post": {
+ "operationId": "redis-remove",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.saveEnvironment": {
+ "post": {
+ "operationId": "redis-saveEnvironment",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.update": {
+ "post": {
+ "operationId": "redis-update",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databasePassword": {
+ "type": "string"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "redis:8"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "SpreadDescriptor"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "Spread"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Architecture",
+ "OS"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "environmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.move": {
+ "post": {
+ "operationId": "redis-move",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.rebuild": {
+ "post": {
+ "operationId": "redis-rebuild",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.create": {
+ "post": {
+ "operationId": "mongo-create",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mongo:15"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ },
+ "replicaSets": {
+ "type": "boolean",
+ "default": false,
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "environmentId",
+ "databaseUser",
+ "databasePassword"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.one": {
+ "get": {
+ "operationId": "mongo-one",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "mongoId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.start": {
+ "post": {
+ "operationId": "mongo-start",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.stop": {
+ "post": {
+ "operationId": "mongo-stop",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.saveExternalPort": {
+ "post": {
+ "operationId": "mongo-saveExternalPort",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mongoId",
+ "externalPort"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.deploy": {
+ "post": {
+ "operationId": "mongo-deploy",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.changeStatus": {
+ "post": {
+ "operationId": "mongo-changeStatus",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ }
+ },
+ "required": [
+ "mongoId",
+ "applicationStatus"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.reload": {
+ "post": {
+ "operationId": "mongo-reload",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "mongoId",
+ "appName"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.remove": {
+ "post": {
+ "operationId": "mongo-remove",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.saveEnvironment": {
+ "post": {
+ "operationId": "mongo-saveEnvironment",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.update": {
+ "post": {
+ "operationId": "mongo-update",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mongo:15"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "SpreadDescriptor"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "Spread"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Architecture",
+ "OS"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "replicaSets": {
+ "type": "boolean",
+ "default": false,
+ "nullable": true
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.move": {
+ "post": {
+ "operationId": "mongo-move",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mongoId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.rebuild": {
+ "post": {
+ "operationId": "mongo-rebuild",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.create": {
+ "post": {
+ "operationId": "mariadb-create",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mariadb:6"
+ },
+ "databaseRootPassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "databaseRootPassword",
+ "environmentId",
+ "databaseName",
+ "databaseUser",
+ "databasePassword"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.one": {
+ "get": {
+ "operationId": "mariadb-one",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "mariadbId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.start": {
+ "post": {
+ "operationId": "mariadb-start",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.stop": {
+ "post": {
+ "operationId": "mariadb-stop",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.saveExternalPort": {
+ "post": {
+ "operationId": "mariadb-saveExternalPort",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mariadbId",
+ "externalPort"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.deploy": {
+ "post": {
+ "operationId": "mariadb-deploy",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.changeStatus": {
+ "post": {
+ "operationId": "mariadb-changeStatus",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ }
+ },
+ "required": [
+ "mariadbId",
+ "applicationStatus"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.remove": {
+ "post": {
+ "operationId": "mariadb-remove",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.saveEnvironment": {
+ "post": {
+ "operationId": "mariadb-saveEnvironment",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.reload": {
+ "post": {
+ "operationId": "mariadb-reload",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "mariadbId",
+ "appName"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.update": {
+ "post": {
+ "operationId": "mariadb-update",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "databaseRootPassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mariadb:6"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "SpreadDescriptor"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "Spread"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Architecture",
+ "OS"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "environmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.move": {
+ "post": {
+ "operationId": "mariadb-move",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.rebuild": {
+ "post": {
+ "operationId": "mariadb-rebuild",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.create": {
+ "post": {
+ "operationId": "compose-create",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "composeType": {
+ "type": "string",
+ "enum": [
+ "docker-compose",
+ "stack"
+ ]
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeFile": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.one": {
+ "get": {
+ "operationId": "compose-one",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.update": {
+ "post": {
+ "operationId": "compose-update",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeFile": {
+ "type": "string"
+ },
+ "refreshToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "sourceType": {
+ "type": "string",
+ "enum": [
+ "git",
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "raw"
+ ]
+ },
+ "composeType": {
+ "type": "string",
+ "enum": [
+ "docker-compose",
+ "stack"
+ ]
+ },
+ "repository": {
+ "type": "string",
+ "nullable": true
+ },
+ "owner": {
+ "type": "string",
+ "nullable": true
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "autoDeploy": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "gitlabProjectId": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitlabRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabPathNamespace": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitSSHKeyId": {
+ "type": "string",
+ "nullable": true
+ },
+ "command": {
+ "type": "string"
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ },
+ "composePath": {
+ "type": "string",
+ "minLength": 1
+ },
+ "suffix": {
+ "type": "string"
+ },
+ "randomize": {
+ "type": "boolean"
+ },
+ "isolatedDeployment": {
+ "type": "boolean"
+ },
+ "isolatedDeploymentsVolume": {
+ "type": "boolean"
+ },
+ "triggerType": {
+ "type": "string",
+ "enum": [
+ "push",
+ "tag"
+ ],
+ "nullable": true
+ },
+ "composeStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "githubId": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabId": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketId": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.delete": {
+ "post": {
+ "operationId": "compose-delete",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "deleteVolumes": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "composeId",
+ "deleteVolumes"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.cleanQueues": {
+ "post": {
+ "operationId": "compose-cleanQueues",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.killBuild": {
+ "post": {
+ "operationId": "compose-killBuild",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.loadServices": {
+ "get": {
+ "operationId": "compose-loadServices",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "type",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "anyOf": [
+ {
+ "not": {}
+ },
+ {
+ "type": "string",
+ "enum": [
+ "fetch",
+ "cache"
+ ]
+ }
+ ],
+ "default": "cache"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.loadMountsByService": {
+ "get": {
+ "operationId": "compose-loadMountsByService",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "serviceName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.fetchSourceType": {
+ "post": {
+ "operationId": "compose-fetchSourceType",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.randomizeCompose": {
+ "post": {
+ "operationId": "compose-randomizeCompose",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "suffix": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.isolatedDeployment": {
+ "post": {
+ "operationId": "compose-isolatedDeployment",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "suffix": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.getConvertedCompose": {
+ "get": {
+ "operationId": "compose-getConvertedCompose",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.deploy": {
+ "post": {
+ "operationId": "compose-deploy",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.redeploy": {
+ "post": {
+ "operationId": "compose-redeploy",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.stop": {
+ "post": {
+ "operationId": "compose-stop",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.start": {
+ "post": {
+ "operationId": "compose-start",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.getDefaultCommand": {
+ "get": {
+ "operationId": "compose-getDefaultCommand",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.refreshToken": {
+ "post": {
+ "operationId": "compose-refreshToken",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.deployTemplate": {
+ "post": {
+ "operationId": "compose-deployTemplate",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "baseUrl": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "environmentId",
+ "id"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.templates": {
+ "get": {
+ "operationId": "compose-templates",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "baseUrl",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.getTags": {
+ "get": {
+ "operationId": "compose-getTags",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "baseUrl",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.disconnectGitProvider": {
+ "post": {
+ "operationId": "compose-disconnectGitProvider",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.move": {
+ "post": {
+ "operationId": "compose-move",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "composeId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.processTemplate": {
+ "post": {
+ "operationId": "compose-processTemplate",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "base64": {
+ "type": "string"
+ },
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "base64",
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.import": {
+ "post": {
+ "operationId": "compose-import",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "base64": {
+ "type": "string"
+ },
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "base64",
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.cancelDeployment": {
+ "post": {
+ "operationId": "compose-cancelDeployment",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.all": {
+ "get": {
+ "operationId": "user-all",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.one": {
+ "get": {
+ "operationId": "user-one",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "userId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.get": {
+ "get": {
+ "operationId": "user-get",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.haveRootAccess": {
+ "get": {
+ "operationId": "user-haveRootAccess",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getBackups": {
+ "get": {
+ "operationId": "user-getBackups",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getServerMetrics": {
+ "get": {
+ "operationId": "user-getServerMetrics",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.update": {
+ "post": {
+ "operationId": "user-update",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string"
+ },
+ "isRegistered": {
+ "type": "boolean"
+ },
+ "expirationDate": {
+ "type": "string"
+ },
+ "createdAt2": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "twoFactorEnabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "email": {
+ "type": "string",
+ "format": "email",
+ "minLength": 1
+ },
+ "emailVerified": {
+ "type": "boolean"
+ },
+ "image": {
+ "type": "string",
+ "nullable": true
+ },
+ "banned": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "banReason": {
+ "type": "string",
+ "nullable": true
+ },
+ "banExpires": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "updatedAt": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "serverIp": {
+ "type": "string",
+ "nullable": true
+ },
+ "certificateType": {
+ "type": "string",
+ "enum": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "https": {
+ "type": "boolean"
+ },
+ "host": {
+ "type": "string",
+ "nullable": true
+ },
+ "letsEncryptEmail": {
+ "type": "string",
+ "nullable": true
+ },
+ "sshPrivateKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "enableDockerCleanup": {
+ "type": "boolean"
+ },
+ "logCleanupCron": {
+ "type": "string",
+ "nullable": true
+ },
+ "enablePaidFeatures": {
+ "type": "boolean"
+ },
+ "allowImpersonation": {
+ "type": "boolean"
+ },
+ "metricsConfig": {
+ "type": "object",
+ "properties": {
+ "server": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "Dokploy",
+ "Remote"
+ ]
+ },
+ "refreshRate": {
+ "type": "number"
+ },
+ "port": {
+ "type": "number"
+ },
+ "token": {
+ "type": "string"
+ },
+ "urlCallback": {
+ "type": "string"
+ },
+ "retentionDays": {
+ "type": "number"
+ },
+ "cronJob": {
+ "type": "string"
+ },
+ "thresholds": {
+ "type": "object",
+ "properties": {
+ "cpu": {
+ "type": "number"
+ },
+ "memory": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "cpu",
+ "memory"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "type",
+ "refreshRate",
+ "port",
+ "token",
+ "urlCallback",
+ "retentionDays",
+ "cronJob",
+ "thresholds"
+ ],
+ "additionalProperties": false
+ },
+ "containers": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number"
+ },
+ "services": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "include",
+ "exclude"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "refreshRate",
+ "services"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "server",
+ "containers"
+ ],
+ "additionalProperties": false
+ },
+ "cleanupCacheApplications": {
+ "type": "boolean"
+ },
+ "cleanupCacheOnPreviews": {
+ "type": "boolean"
+ },
+ "cleanupCacheOnCompose": {
+ "type": "boolean"
+ },
+ "stripeCustomerId": {
+ "type": "string",
+ "nullable": true
+ },
+ "stripeSubscriptionId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serversQuantity": {
+ "type": "number"
+ },
+ "password": {
+ "type": "string"
+ },
+ "currentPassword": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getUserByToken": {
+ "get": {
+ "operationId": "user-getUserByToken",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "token",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getMetricsToken": {
+ "get": {
+ "operationId": "user-getMetricsToken",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.remove": {
+ "post": {
+ "operationId": "user-remove",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "userId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.assignPermissions": {
+ "post": {
+ "operationId": "user-assignPermissions",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessedProjects": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "accessedEnvironments": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "accessedServices": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "canCreateProjects": {
+ "type": "boolean"
+ },
+ "canCreateServices": {
+ "type": "boolean"
+ },
+ "canDeleteProjects": {
+ "type": "boolean"
+ },
+ "canDeleteServices": {
+ "type": "boolean"
+ },
+ "canAccessToDocker": {
+ "type": "boolean"
+ },
+ "canAccessToTraefikFiles": {
+ "type": "boolean"
+ },
+ "canAccessToAPI": {
+ "type": "boolean"
+ },
+ "canAccessToSSHKeys": {
+ "type": "boolean"
+ },
+ "canAccessToGitProviders": {
+ "type": "boolean"
+ },
+ "canDeleteEnvironments": {
+ "type": "boolean"
+ },
+ "canCreateEnvironments": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "id",
+ "accessedProjects",
+ "accessedEnvironments",
+ "accessedServices",
+ "canCreateProjects",
+ "canCreateServices",
+ "canDeleteProjects",
+ "canDeleteServices",
+ "canAccessToDocker",
+ "canAccessToTraefikFiles",
+ "canAccessToAPI",
+ "canAccessToSSHKeys",
+ "canAccessToGitProviders",
+ "canDeleteEnvironments",
+ "canCreateEnvironments"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getInvitations": {
+ "get": {
+ "operationId": "user-getInvitations",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getContainerMetrics": {
+ "get": {
+ "operationId": "user-getContainerMetrics",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "url",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "token",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "dataPoints",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.generateToken": {
+ "post": {
+ "operationId": "user-generateToken",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.deleteApiKey": {
+ "post": {
+ "operationId": "user-deleteApiKey",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "apiKeyId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "apiKeyId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.createApiKey": {
+ "post": {
+ "operationId": "user-createApiKey",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "prefix": {
+ "type": "string"
+ },
+ "expiresIn": {
+ "type": "number"
+ },
+ "metadata": {
+ "type": "object",
+ "properties": {
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "organizationId"
+ ],
+ "additionalProperties": false
+ },
+ "rateLimitEnabled": {
+ "type": "boolean"
+ },
+ "rateLimitTimeWindow": {
+ "type": "number"
+ },
+ "rateLimitMax": {
+ "type": "number"
+ },
+ "remaining": {
+ "type": "number"
+ },
+ "refillAmount": {
+ "type": "number"
+ },
+ "refillInterval": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "name",
+ "metadata"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.checkUserOrganizations": {
+ "get": {
+ "operationId": "user-checkUserOrganizations",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "userId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.sendInvitation": {
+ "post": {
+ "operationId": "user-sendInvitation",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "invitationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "invitationId",
+ "notificationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.create": {
+ "post": {
+ "operationId": "domain-create",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "minLength": 1
+ },
+ "path": {
+ "type": "string",
+ "minLength": 1,
+ "nullable": true
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1,
+ "maximum": 65535,
+ "nullable": true
+ },
+ "https": {
+ "type": "boolean"
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "certificateType": {
+ "type": "string",
+ "enum": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "customCertResolver": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "domainType": {
+ "type": "string",
+ "enum": [
+ "compose",
+ "application",
+ "preview"
+ ],
+ "nullable": true
+ },
+ "previewDeploymentId": {
+ "type": "string",
+ "nullable": true
+ },
+ "internalPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "stripPath": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "host"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.byApplicationId": {
+ "get": {
+ "operationId": "domain-byApplicationId",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.byComposeId": {
+ "get": {
+ "operationId": "domain-byComposeId",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.generateDomain": {
+ "post": {
+ "operationId": "domain-generateDomain",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appName": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "appName"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.canGenerateTraefikMeDomains": {
+ "get": {
+ "operationId": "domain-canGenerateTraefikMeDomains",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.update": {
+ "post": {
+ "operationId": "domain-update",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "minLength": 1
+ },
+ "path": {
+ "type": "string",
+ "minLength": 1,
+ "nullable": true
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1,
+ "maximum": 65535,
+ "nullable": true
+ },
+ "https": {
+ "type": "boolean"
+ },
+ "certificateType": {
+ "type": "string",
+ "enum": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "customCertResolver": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "domainType": {
+ "type": "string",
+ "enum": [
+ "compose",
+ "application",
+ "preview"
+ ],
+ "nullable": true
+ },
+ "internalPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "stripPath": {
+ "type": "boolean"
+ },
+ "domainId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "host",
+ "domainId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.one": {
+ "get": {
+ "operationId": "domain-one",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "domainId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.delete": {
+ "post": {
+ "operationId": "domain-delete",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "domainId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "domainId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.validateDomain": {
+ "post": {
+ "operationId": "domain-validateDomain",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "domain": {
+ "type": "string"
+ },
+ "serverIp": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "domain"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.create": {
+ "post": {
+ "operationId": "destination-create",
+ "tags": [
+ "destination"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "provider": {
+ "type": "string",
+ "nullable": true
+ },
+ "accessKey": {
+ "type": "string"
+ },
+ "bucket": {
+ "type": "string"
+ },
+ "region": {
+ "type": "string"
+ },
+ "endpoint": {
+ "type": "string"
+ },
+ "secretAccessKey": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "provider",
+ "accessKey",
+ "bucket",
+ "region",
+ "endpoint",
+ "secretAccessKey"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.testConnection": {
+ "post": {
+ "operationId": "destination-testConnection",
+ "tags": [
+ "destination"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "provider": {
+ "type": "string",
+ "nullable": true
+ },
+ "accessKey": {
+ "type": "string"
+ },
+ "bucket": {
+ "type": "string"
+ },
+ "region": {
+ "type": "string"
+ },
+ "endpoint": {
+ "type": "string"
+ },
+ "secretAccessKey": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "provider",
+ "accessKey",
+ "bucket",
+ "region",
+ "endpoint",
+ "secretAccessKey"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.one": {
+ "get": {
+ "operationId": "destination-one",
+ "tags": [
+ "destination"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "destinationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.all": {
+ "get": {
+ "operationId": "destination-all",
+ "tags": [
+ "destination"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.remove": {
+ "post": {
+ "operationId": "destination-remove",
+ "tags": [
+ "destination"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "destinationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "destinationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.update": {
+ "post": {
+ "operationId": "destination-update",
+ "tags": [
+ "destination"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessKey": {
+ "type": "string"
+ },
+ "bucket": {
+ "type": "string"
+ },
+ "region": {
+ "type": "string"
+ },
+ "endpoint": {
+ "type": "string"
+ },
+ "secretAccessKey": {
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "provider": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "accessKey",
+ "bucket",
+ "region",
+ "endpoint",
+ "secretAccessKey",
+ "destinationId",
+ "provider"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.create": {
+ "post": {
+ "operationId": "backup-create",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "schedule": {
+ "type": "string"
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "prefix": {
+ "type": "string",
+ "minLength": 1
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "keepLatestCount": {
+ "type": "number",
+ "nullable": true
+ },
+ "database": {
+ "type": "string",
+ "minLength": 1
+ },
+ "mariadbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mysqlId": {
+ "type": "string",
+ "nullable": true
+ },
+ "postgresId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mongoId": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseType": {
+ "type": "string",
+ "enum": [
+ "postgres",
+ "mariadb",
+ "mysql",
+ "mongo",
+ "web-server"
+ ]
+ },
+ "userId": {
+ "type": "string",
+ "nullable": true
+ },
+ "backupType": {
+ "type": "string",
+ "enum": [
+ "database",
+ "compose"
+ ]
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "metadata": {
+ "nullable": true
+ }
+ },
+ "required": [
+ "schedule",
+ "prefix",
+ "destinationId",
+ "database",
+ "databaseType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.one": {
+ "get": {
+ "operationId": "backup-one",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "backupId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.update": {
+ "post": {
+ "operationId": "backup-update",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "schedule": {
+ "type": "string"
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "prefix": {
+ "type": "string",
+ "minLength": 1
+ },
+ "backupId": {
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "database": {
+ "type": "string",
+ "minLength": 1
+ },
+ "keepLatestCount": {
+ "type": "number",
+ "nullable": true
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "metadata": {
+ "nullable": true
+ },
+ "databaseType": {
+ "type": "string",
+ "enum": [
+ "postgres",
+ "mariadb",
+ "mysql",
+ "mongo",
+ "web-server"
+ ]
+ }
+ },
+ "required": [
+ "schedule",
+ "prefix",
+ "backupId",
+ "destinationId",
+ "database",
+ "serviceName",
+ "databaseType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.remove": {
+ "post": {
+ "operationId": "backup-remove",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupPostgres": {
+ "post": {
+ "operationId": "backup-manualBackupPostgres",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupMySql": {
+ "post": {
+ "operationId": "backup-manualBackupMySql",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupMariadb": {
+ "post": {
+ "operationId": "backup-manualBackupMariadb",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupCompose": {
+ "post": {
+ "operationId": "backup-manualBackupCompose",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupMongo": {
+ "post": {
+ "operationId": "backup-manualBackupMongo",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupWebServer": {
+ "post": {
+ "operationId": "backup-manualBackupWebServer",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.listBackupFiles": {
+ "get": {
+ "operationId": "backup-listBackupFiles",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "destinationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "search",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.all": {
+ "get": {
+ "operationId": "deployment-all",
+ "tags": [
+ "deployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.allByCompose": {
+ "get": {
+ "operationId": "deployment-allByCompose",
+ "tags": [
+ "deployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.allByServer": {
+ "get": {
+ "operationId": "deployment-allByServer",
+ "tags": [
+ "deployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.allByType": {
+ "get": {
+ "operationId": "deployment-allByType",
+ "tags": [
+ "deployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "type",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "application",
+ "compose",
+ "server",
+ "schedule",
+ "previewDeployment",
+ "backup",
+ "volumeBackup"
+ ]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.killProcess": {
+ "post": {
+ "operationId": "deployment-killProcess",
+ "tags": [
+ "deployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "deploymentId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "deploymentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/previewDeployment.all": {
+ "get": {
+ "operationId": "previewDeployment-all",
+ "tags": [
+ "previewDeployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/previewDeployment.delete": {
+ "post": {
+ "operationId": "previewDeployment-delete",
+ "tags": [
+ "previewDeployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "previewDeploymentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "previewDeploymentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/previewDeployment.one": {
+ "get": {
+ "operationId": "previewDeployment-one",
+ "tags": [
+ "previewDeployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "previewDeploymentId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.create": {
+ "post": {
+ "operationId": "mounts-create",
+ "tags": [
+ "mounts"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "bind",
+ "volume",
+ "file"
+ ]
+ },
+ "hostPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "volumeName": {
+ "type": "string",
+ "nullable": true
+ },
+ "content": {
+ "type": "string",
+ "nullable": true
+ },
+ "mountPath": {
+ "type": "string",
+ "minLength": 1
+ },
+ "serviceType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ],
+ "default": "application"
+ },
+ "filePath": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "type",
+ "mountPath",
+ "serviceId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.remove": {
+ "post": {
+ "operationId": "mounts-remove",
+ "tags": [
+ "mounts"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mountId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mountId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.one": {
+ "get": {
+ "operationId": "mounts-one",
+ "tags": [
+ "mounts"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "mountId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.update": {
+ "post": {
+ "operationId": "mounts-update",
+ "tags": [
+ "mounts"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mountId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "bind",
+ "volume",
+ "file"
+ ]
+ },
+ "hostPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "volumeName": {
+ "type": "string",
+ "nullable": true
+ },
+ "filePath": {
+ "type": "string",
+ "nullable": true
+ },
+ "content": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ],
+ "default": "application"
+ },
+ "mountPath": {
+ "type": "string",
+ "minLength": 1
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "postgresId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mariadbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mongoId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mysqlId": {
+ "type": "string",
+ "nullable": true
+ },
+ "redisId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mountId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.allNamedByApplicationId": {
+ "get": {
+ "operationId": "mounts-allNamedByApplicationId",
+ "tags": [
+ "mounts"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.create": {
+ "post": {
+ "operationId": "certificates-create",
+ "tags": [
+ "certificates"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "certificateId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "certificateData": {
+ "type": "string",
+ "minLength": 1
+ },
+ "privateKey": {
+ "type": "string",
+ "minLength": 1
+ },
+ "certificatePath": {
+ "type": "string"
+ },
+ "autoRenew": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "organizationId": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "certificateData",
+ "privateKey",
+ "organizationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.one": {
+ "get": {
+ "operationId": "certificates-one",
+ "tags": [
+ "certificates"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "certificateId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.remove": {
+ "post": {
+ "operationId": "certificates-remove",
+ "tags": [
+ "certificates"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "certificateId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "certificateId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.all": {
+ "get": {
+ "operationId": "certificates-all",
+ "tags": [
+ "certificates"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.reloadServer": {
+ "post": {
+ "operationId": "settings-reloadServer",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanRedis": {
+ "post": {
+ "operationId": "settings-cleanRedis",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.reloadRedis": {
+ "post": {
+ "operationId": "settings-reloadRedis",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.reloadTraefik": {
+ "post": {
+ "operationId": "settings-reloadTraefik",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.toggleDashboard": {
+ "post": {
+ "operationId": "settings-toggleDashboard",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "enableDashboard": {
+ "type": "boolean"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanUnusedImages": {
+ "post": {
+ "operationId": "settings-cleanUnusedImages",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanUnusedVolumes": {
+ "post": {
+ "operationId": "settings-cleanUnusedVolumes",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanStoppedContainers": {
+ "post": {
+ "operationId": "settings-cleanStoppedContainers",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanDockerBuilder": {
+ "post": {
+ "operationId": "settings-cleanDockerBuilder",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanDockerPrune": {
+ "post": {
+ "operationId": "settings-cleanDockerPrune",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanAll": {
+ "post": {
+ "operationId": "settings-cleanAll",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanMonitoring": {
+ "post": {
+ "operationId": "settings-cleanMonitoring",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.saveSSHPrivateKey": {
+ "post": {
+ "operationId": "settings-saveSSHPrivateKey",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "sshPrivateKey": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "sshPrivateKey"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.assignDomainServer": {
+ "post": {
+ "operationId": "settings-assignDomainServer",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "nullable": true
+ },
+ "certificateType": {
+ "type": "string",
+ "enum": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "letsEncryptEmail": {
+ "type": "string",
+ "nullable": true
+ },
+ "https": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "host",
+ "certificateType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanSSHPrivateKey": {
+ "post": {
+ "operationId": "settings-cleanSSHPrivateKey",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateDockerCleanup": {
+ "post": {
+ "operationId": "settings-updateDockerCleanup",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "enableDockerCleanup": {
+ "type": "boolean"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "enableDockerCleanup"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readTraefikConfig": {
+ "get": {
+ "operationId": "settings-readTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateTraefikConfig": {
+ "post": {
+ "operationId": "settings-updateTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "traefikConfig": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "traefikConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readWebServerTraefikConfig": {
+ "get": {
+ "operationId": "settings-readWebServerTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateWebServerTraefikConfig": {
+ "post": {
+ "operationId": "settings-updateWebServerTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "traefikConfig": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "traefikConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readMiddlewareTraefikConfig": {
+ "get": {
+ "operationId": "settings-readMiddlewareTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateMiddlewareTraefikConfig": {
+ "post": {
+ "operationId": "settings-updateMiddlewareTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "traefikConfig": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "traefikConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getUpdateData": {
+ "post": {
+ "operationId": "settings-getUpdateData",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateServer": {
+ "post": {
+ "operationId": "settings-updateServer",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getDokployVersion": {
+ "get": {
+ "operationId": "settings-getDokployVersion",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getReleaseTag": {
+ "get": {
+ "operationId": "settings-getReleaseTag",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readDirectories": {
+ "get": {
+ "operationId": "settings-readDirectories",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateTraefikFile": {
+ "post": {
+ "operationId": "settings-updateTraefikFile",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "path": {
+ "type": "string",
+ "minLength": 1
+ },
+ "traefikConfig": {
+ "type": "string",
+ "minLength": 1
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "path",
+ "traefikConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readTraefikFile": {
+ "get": {
+ "operationId": "settings-readTraefikFile",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "path",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getIp": {
+ "get": {
+ "operationId": "settings-getIp",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getOpenApiDocument": {
+ "get": {
+ "operationId": "settings-getOpenApiDocument",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readTraefikEnv": {
+ "get": {
+ "operationId": "settings-readTraefikEnv",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.writeTraefikEnv": {
+ "post": {
+ "operationId": "settings-writeTraefikEnv",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "env": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.haveTraefikDashboardPortEnabled": {
+ "get": {
+ "operationId": "settings-haveTraefikDashboardPortEnabled",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.haveActivateRequests": {
+ "get": {
+ "operationId": "settings-haveActivateRequests",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.toggleRequests": {
+ "post": {
+ "operationId": "settings-toggleRequests",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "enable": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "enable"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.isCloud": {
+ "get": {
+ "operationId": "settings-isCloud",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.isUserSubscribed": {
+ "get": {
+ "operationId": "settings-isUserSubscribed",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.health": {
+ "get": {
+ "operationId": "settings-health",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.setupGPU": {
+ "post": {
+ "operationId": "settings-setupGPU",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.checkGPUStatus": {
+ "get": {
+ "operationId": "settings-checkGPUStatus",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateTraefikPorts": {
+ "post": {
+ "operationId": "settings-updateTraefikPorts",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ },
+ "additionalPorts": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "targetPort": {
+ "type": "number"
+ },
+ "publishedPort": {
+ "type": "number"
+ },
+ "protocol": {
+ "type": "string",
+ "enum": [
+ "tcp",
+ "udp",
+ "sctp"
+ ]
+ }
+ },
+ "required": [
+ "targetPort",
+ "publishedPort",
+ "protocol"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "required": [
+ "additionalPorts"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getTraefikPorts": {
+ "get": {
+ "operationId": "settings-getTraefikPorts",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateLogCleanup": {
+ "post": {
+ "operationId": "settings-updateLogCleanup",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "cronExpression": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "cronExpression"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getLogCleanupStatus": {
+ "get": {
+ "operationId": "settings-getLogCleanupStatus",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getDokployCloudIps": {
+ "get": {
+ "operationId": "settings-getDokployCloudIps",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/security.create": {
+ "post": {
+ "operationId": "security-create",
+ "tags": [
+ "security"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "applicationId",
+ "username",
+ "password"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/security.one": {
+ "get": {
+ "operationId": "security-one",
+ "tags": [
+ "security"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "securityId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/security.delete": {
+ "post": {
+ "operationId": "security-delete",
+ "tags": [
+ "security"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "securityId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "securityId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/security.update": {
+ "post": {
+ "operationId": "security-update",
+ "tags": [
+ "security"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "securityId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "securityId",
+ "username",
+ "password"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redirects.create": {
+ "post": {
+ "operationId": "redirects-create",
+ "tags": [
+ "redirects"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "regex": {
+ "type": "string",
+ "minLength": 1
+ },
+ "replacement": {
+ "type": "string",
+ "minLength": 1
+ },
+ "permanent": {
+ "type": "boolean"
+ },
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "regex",
+ "replacement",
+ "permanent",
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redirects.one": {
+ "get": {
+ "operationId": "redirects-one",
+ "tags": [
+ "redirects"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "redirectId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redirects.delete": {
+ "post": {
+ "operationId": "redirects-delete",
+ "tags": [
+ "redirects"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redirectId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "redirectId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redirects.update": {
+ "post": {
+ "operationId": "redirects-update",
+ "tags": [
+ "redirects"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redirectId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "regex": {
+ "type": "string",
+ "minLength": 1
+ },
+ "replacement": {
+ "type": "string",
+ "minLength": 1
+ },
+ "permanent": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "redirectId",
+ "regex",
+ "replacement",
+ "permanent"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/port.create": {
+ "post": {
+ "operationId": "port-create",
+ "tags": [
+ "port"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "publishedPort": {
+ "type": "number"
+ },
+ "publishMode": {
+ "type": "string",
+ "enum": [
+ "ingress",
+ "host"
+ ],
+ "default": "ingress"
+ },
+ "targetPort": {
+ "type": "number"
+ },
+ "protocol": {
+ "type": "string",
+ "enum": [
+ "tcp",
+ "udp"
+ ],
+ "default": "tcp"
+ },
+ "applicationId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "publishedPort",
+ "targetPort",
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/port.one": {
+ "get": {
+ "operationId": "port-one",
+ "tags": [
+ "port"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "portId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/port.delete": {
+ "post": {
+ "operationId": "port-delete",
+ "tags": [
+ "port"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "portId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "portId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/port.update": {
+ "post": {
+ "operationId": "port-update",
+ "tags": [
+ "port"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "portId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "publishedPort": {
+ "type": "number"
+ },
+ "publishMode": {
+ "type": "string",
+ "enum": [
+ "ingress",
+ "host"
+ ],
+ "default": "ingress"
+ },
+ "targetPort": {
+ "type": "number"
+ },
+ "protocol": {
+ "type": "string",
+ "enum": [
+ "tcp",
+ "udp"
+ ],
+ "default": "tcp"
+ }
+ },
+ "required": [
+ "portId",
+ "publishedPort",
+ "targetPort"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.create": {
+ "post": {
+ "operationId": "registry-create",
+ "tags": [
+ "registry"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "registryName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "registryUrl": {
+ "type": "string"
+ },
+ "registryType": {
+ "type": "string",
+ "enum": [
+ "cloud"
+ ]
+ },
+ "imagePrefix": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "registryName",
+ "username",
+ "password",
+ "registryUrl",
+ "registryType",
+ "imagePrefix"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.remove": {
+ "post": {
+ "operationId": "registry-remove",
+ "tags": [
+ "registry"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "registryId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "registryId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.update": {
+ "post": {
+ "operationId": "registry-update",
+ "tags": [
+ "registry"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "registryId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "registryName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "imagePrefix": {
+ "type": "string",
+ "nullable": true
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "registryUrl": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "registryType": {
+ "type": "string",
+ "enum": [
+ "cloud"
+ ]
+ },
+ "organizationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "registryId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.all": {
+ "get": {
+ "operationId": "registry-all",
+ "tags": [
+ "registry"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.one": {
+ "get": {
+ "operationId": "registry-one",
+ "tags": [
+ "registry"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "registryId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.testRegistry": {
+ "post": {
+ "operationId": "registry-testRegistry",
+ "tags": [
+ "registry"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "registryName": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "registryUrl": {
+ "type": "string"
+ },
+ "registryType": {
+ "type": "string",
+ "enum": [
+ "cloud"
+ ]
+ },
+ "imagePrefix": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "username",
+ "password",
+ "registryUrl",
+ "registryType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/cluster.getNodes": {
+ "get": {
+ "operationId": "cluster-getNodes",
+ "tags": [
+ "cluster"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/cluster.removeWorker": {
+ "post": {
+ "operationId": "cluster-removeWorker",
+ "tags": [
+ "cluster"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "nodeId": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "nodeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/cluster.addWorker": {
+ "get": {
+ "operationId": "cluster-addWorker",
+ "tags": [
+ "cluster"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/cluster.addManager": {
+ "get": {
+ "operationId": "cluster-addManager",
+ "tags": [
+ "cluster"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createSlack": {
+ "post": {
+ "operationId": "notification-createSlack",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "channel": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "webhookUrl",
+ "channel"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateSlack": {
+ "post": {
+ "operationId": "notification-updateSlack",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "channel": {
+ "type": "string"
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "slackId": {
+ "type": "string"
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "slackId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testSlackConnection": {
+ "post": {
+ "operationId": "notification-testSlackConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "channel": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "webhookUrl",
+ "channel"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createTelegram": {
+ "post": {
+ "operationId": "notification-createTelegram",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "botToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "chatId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "messageThreadId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "botToken",
+ "chatId",
+ "messageThreadId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateTelegram": {
+ "post": {
+ "operationId": "notification-updateTelegram",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "botToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "chatId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "messageThreadId": {
+ "type": "string"
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "telegramId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "telegramId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testTelegramConnection": {
+ "post": {
+ "operationId": "notification-testTelegramConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "botToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "chatId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "messageThreadId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "botToken",
+ "chatId",
+ "messageThreadId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createDiscord": {
+ "post": {
+ "operationId": "notification-createDiscord",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "webhookUrl",
+ "decoration"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateDiscord": {
+ "post": {
+ "operationId": "notification-updateDiscord",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "discordId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "discordId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testDiscordConnection": {
+ "post": {
+ "operationId": "notification-testDiscordConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "webhookUrl"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createEmail": {
+ "post": {
+ "operationId": "notification-createEmail",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "smtpServer": {
+ "type": "string",
+ "minLength": 1
+ },
+ "smtpPort": {
+ "type": "number",
+ "minimum": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "fromAddress": {
+ "type": "string",
+ "minLength": 1
+ },
+ "toAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "smtpServer",
+ "smtpPort",
+ "username",
+ "password",
+ "fromAddress",
+ "toAddresses"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateEmail": {
+ "post": {
+ "operationId": "notification-updateEmail",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "smtpServer": {
+ "type": "string",
+ "minLength": 1
+ },
+ "smtpPort": {
+ "type": "number",
+ "minimum": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "fromAddress": {
+ "type": "string",
+ "minLength": 1
+ },
+ "toAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "emailId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "emailId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testEmailConnection": {
+ "post": {
+ "operationId": "notification-testEmailConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "smtpServer": {
+ "type": "string",
+ "minLength": 1
+ },
+ "smtpPort": {
+ "type": "number",
+ "minimum": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "toAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1
+ },
+ "fromAddress": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "smtpServer",
+ "smtpPort",
+ "username",
+ "password",
+ "toAddresses",
+ "fromAddress"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.remove": {
+ "post": {
+ "operationId": "notification-remove",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "notificationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.one": {
+ "get": {
+ "operationId": "notification-one",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "notificationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.all": {
+ "get": {
+ "operationId": "notification-all",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.receiveNotification": {
+ "post": {
+ "operationId": "notification-receiveNotification",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "ServerType": {
+ "type": "string",
+ "enum": [
+ "Dokploy",
+ "Remote"
+ ],
+ "default": "Dokploy"
+ },
+ "Type": {
+ "type": "string",
+ "enum": [
+ "Memory",
+ "CPU"
+ ]
+ },
+ "Value": {
+ "type": "number"
+ },
+ "Threshold": {
+ "type": "number"
+ },
+ "Message": {
+ "type": "string"
+ },
+ "Timestamp": {
+ "type": "string"
+ },
+ "Token": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Type",
+ "Value",
+ "Threshold",
+ "Message",
+ "Timestamp",
+ "Token"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createGotify": {
+ "post": {
+ "operationId": "notification-createGotify",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverUrl",
+ "appToken",
+ "priority",
+ "decoration"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateGotify": {
+ "post": {
+ "operationId": "notification-updateGotify",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "gotifyId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "gotifyId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testGotifyConnection": {
+ "post": {
+ "operationId": "notification-testGotifyConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "serverUrl",
+ "appToken",
+ "priority"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createNtfy": {
+ "post": {
+ "operationId": "notification-createNtfy",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "topic": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverUrl",
+ "topic",
+ "accessToken",
+ "priority"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateNtfy": {
+ "post": {
+ "operationId": "notification-updateNtfy",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "topic": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "ntfyId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "ntfyId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testNtfyConnection": {
+ "post": {
+ "operationId": "notification-testNtfyConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "topic": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ }
+ },
+ "required": [
+ "serverUrl",
+ "topic",
+ "accessToken",
+ "priority"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createLark": {
+ "post": {
+ "operationId": "notification-createLark",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "webhookUrl"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateLark": {
+ "post": {
+ "operationId": "notification-updateLark",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "larkId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "larkId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testLarkConnection": {
+ "post": {
+ "operationId": "notification-testLarkConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "webhookUrl"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.getEmailProviders": {
+ "get": {
+ "operationId": "notification-getEmailProviders",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.create": {
+ "post": {
+ "operationId": "sshKey-create",
+ "tags": [
+ "sshKey"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "privateKey": {
+ "type": "string"
+ },
+ "publicKey": {
+ "type": "string"
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "privateKey",
+ "publicKey",
+ "organizationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.remove": {
+ "post": {
+ "operationId": "sshKey-remove",
+ "tags": [
+ "sshKey"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "sshKeyId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "sshKeyId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.one": {
+ "get": {
+ "operationId": "sshKey-one",
+ "tags": [
+ "sshKey"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "sshKeyId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.all": {
+ "get": {
+ "operationId": "sshKey-all",
+ "tags": [
+ "sshKey"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.generate": {
+ "post": {
+ "operationId": "sshKey-generate",
+ "tags": [
+ "sshKey"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "rsa",
+ "ed25519"
+ ]
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.update": {
+ "post": {
+ "operationId": "sshKey-update",
+ "tags": [
+ "sshKey"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "lastUsedAt": {
+ "type": "string",
+ "nullable": true
+ },
+ "sshKeyId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "sshKeyId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitProvider.getAll": {
+ "get": {
+ "operationId": "gitProvider-getAll",
+ "tags": [
+ "gitProvider"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitProvider.remove": {
+ "post": {
+ "operationId": "gitProvider-remove",
+ "tags": [
+ "gitProvider"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "gitProviderId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "gitProviderId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.create": {
+ "post": {
+ "operationId": "gitea-create",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "giteaId": {
+ "type": "string"
+ },
+ "giteaUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "redirectUri": {
+ "type": "string"
+ },
+ "clientId": {
+ "type": "string"
+ },
+ "clientSecret": {
+ "type": "string"
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "accessToken": {
+ "type": "string"
+ },
+ "refreshToken": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "type": "number"
+ },
+ "scopes": {
+ "type": "string"
+ },
+ "lastAuthenticatedAt": {
+ "type": "number"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "giteaUsername": {
+ "type": "string"
+ },
+ "organizationName": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "giteaUrl",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.one": {
+ "get": {
+ "operationId": "gitea-one",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "giteaId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.giteaProviders": {
+ "get": {
+ "operationId": "gitea-giteaProviders",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.getGiteaRepositories": {
+ "get": {
+ "operationId": "gitea-getGiteaRepositories",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "giteaId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.getGiteaBranches": {
+ "get": {
+ "operationId": "gitea-getGiteaBranches",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "repositoryName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "giteaId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.testConnection": {
+ "post": {
+ "operationId": "gitea-testConnection",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "giteaId": {
+ "type": "string"
+ },
+ "organizationName": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.update": {
+ "post": {
+ "operationId": "gitea-update",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "giteaId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "giteaUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "redirectUri": {
+ "type": "string"
+ },
+ "clientId": {
+ "type": "string"
+ },
+ "clientSecret": {
+ "type": "string"
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "accessToken": {
+ "type": "string"
+ },
+ "refreshToken": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "type": "number"
+ },
+ "scopes": {
+ "type": "string"
+ },
+ "lastAuthenticatedAt": {
+ "type": "number"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "giteaUsername": {
+ "type": "string"
+ },
+ "organizationName": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "giteaId",
+ "giteaUrl",
+ "gitProviderId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.getGiteaUrl": {
+ "get": {
+ "operationId": "gitea-getGiteaUrl",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "giteaId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.create": {
+ "post": {
+ "operationId": "bitbucket-create",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "bitbucketId": {
+ "type": "string"
+ },
+ "bitbucketUsername": {
+ "type": "string"
+ },
+ "bitbucketEmail": {
+ "type": "string",
+ "format": "email"
+ },
+ "appPassword": {
+ "type": "string"
+ },
+ "apiToken": {
+ "type": "string"
+ },
+ "bitbucketWorkspaceName": {
+ "type": "string"
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "authId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "authId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.one": {
+ "get": {
+ "operationId": "bitbucket-one",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "bitbucketId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.bitbucketProviders": {
+ "get": {
+ "operationId": "bitbucket-bitbucketProviders",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.getBitbucketRepositories": {
+ "get": {
+ "operationId": "bitbucket-getBitbucketRepositories",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "bitbucketId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.getBitbucketBranches": {
+ "get": {
+ "operationId": "bitbucket-getBitbucketBranches",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "repo",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "bitbucketId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.testConnection": {
+ "post": {
+ "operationId": "bitbucket-testConnection",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "bitbucketId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "bitbucketUsername": {
+ "type": "string"
+ },
+ "bitbucketEmail": {
+ "type": "string",
+ "format": "email"
+ },
+ "workspaceName": {
+ "type": "string"
+ },
+ "apiToken": {
+ "type": "string"
+ },
+ "appPassword": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "bitbucketId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.update": {
+ "post": {
+ "operationId": "bitbucket-update",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "bitbucketId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "bitbucketUsername": {
+ "type": "string"
+ },
+ "bitbucketEmail": {
+ "type": "string",
+ "format": "email"
+ },
+ "appPassword": {
+ "type": "string"
+ },
+ "apiToken": {
+ "type": "string"
+ },
+ "bitbucketWorkspaceName": {
+ "type": "string"
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "bitbucketId",
+ "gitProviderId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.create": {
+ "post": {
+ "operationId": "gitlab-create",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "gitlabId": {
+ "type": "string"
+ },
+ "gitlabUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "redirectUri": {
+ "type": "string"
+ },
+ "secret": {
+ "type": "string"
+ },
+ "accessToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "refreshToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "groupName": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "authId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "gitlabUrl",
+ "authId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.one": {
+ "get": {
+ "operationId": "gitlab-one",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "gitlabId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.gitlabProviders": {
+ "get": {
+ "operationId": "gitlab-gitlabProviders",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.getGitlabRepositories": {
+ "get": {
+ "operationId": "gitlab-getGitlabRepositories",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "gitlabId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.getGitlabBranches": {
+ "get": {
+ "operationId": "gitlab-getGitlabBranches",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "number"
+ }
+ },
+ {
+ "name": "owner",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "repo",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "gitlabId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.testConnection": {
+ "post": {
+ "operationId": "gitlab-testConnection",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "gitlabId": {
+ "type": "string"
+ },
+ "groupName": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.update": {
+ "post": {
+ "operationId": "gitlab-update",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "gitlabId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "gitlabUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "redirectUri": {
+ "type": "string"
+ },
+ "secret": {
+ "type": "string"
+ },
+ "accessToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "refreshToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "groupName": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "gitlabId",
+ "gitlabUrl",
+ "gitProviderId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.one": {
+ "get": {
+ "operationId": "github-one",
+ "tags": [
+ "github"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "githubId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.getGithubRepositories": {
+ "get": {
+ "operationId": "github-getGithubRepositories",
+ "tags": [
+ "github"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "githubId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.getGithubBranches": {
+ "get": {
+ "operationId": "github-getGithubBranches",
+ "tags": [
+ "github"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "repo",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "owner",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "githubId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.githubProviders": {
+ "get": {
+ "operationId": "github-githubProviders",
+ "tags": [
+ "github"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.testConnection": {
+ "post": {
+ "operationId": "github-testConnection",
+ "tags": [
+ "github"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "githubId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "githubId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.update": {
+ "post": {
+ "operationId": "github-update",
+ "tags": [
+ "github"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "githubId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "githubAppName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "githubAppId": {
+ "type": "number",
+ "nullable": true
+ },
+ "githubClientId": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubClientSecret": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubInstallationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubPrivateKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubWebhookSecret": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitProviderId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "githubId",
+ "githubAppName",
+ "gitProviderId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.create": {
+ "post": {
+ "operationId": "server-create",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "ipAddress": {
+ "type": "string"
+ },
+ "port": {
+ "type": "number"
+ },
+ "username": {
+ "type": "string"
+ },
+ "sshKeyId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverType": {
+ "type": "string",
+ "enum": [
+ "deploy",
+ "build"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "ipAddress",
+ "port",
+ "username",
+ "sshKeyId",
+ "serverType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.one": {
+ "get": {
+ "operationId": "server-one",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.getDefaultCommand": {
+ "get": {
+ "operationId": "server-getDefaultCommand",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.all": {
+ "get": {
+ "operationId": "server-all",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.count": {
+ "get": {
+ "operationId": "server-count",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.withSSHKey": {
+ "get": {
+ "operationId": "server-withSSHKey",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.buildServers": {
+ "get": {
+ "operationId": "server-buildServers",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.setup": {
+ "post": {
+ "operationId": "server-setup",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "serverId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.validate": {
+ "get": {
+ "operationId": "server-validate",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.security": {
+ "get": {
+ "operationId": "server-security",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.setupMonitoring": {
+ "post": {
+ "operationId": "server-setupMonitoring",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "metricsConfig": {
+ "type": "object",
+ "properties": {
+ "server": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number",
+ "minimum": 2
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1
+ },
+ "token": {
+ "type": "string"
+ },
+ "urlCallback": {
+ "type": "string",
+ "format": "uri"
+ },
+ "retentionDays": {
+ "type": "number",
+ "minimum": 1
+ },
+ "cronJob": {
+ "type": "string",
+ "minLength": 1
+ },
+ "thresholds": {
+ "type": "object",
+ "properties": {
+ "cpu": {
+ "type": "number",
+ "minimum": 0
+ },
+ "memory": {
+ "type": "number",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "cpu",
+ "memory"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "refreshRate",
+ "port",
+ "token",
+ "urlCallback",
+ "retentionDays",
+ "cronJob",
+ "thresholds"
+ ],
+ "additionalProperties": false
+ },
+ "containers": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number",
+ "minimum": 2
+ },
+ "services": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "refreshRate",
+ "services"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "server",
+ "containers"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "serverId",
+ "metricsConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.remove": {
+ "post": {
+ "operationId": "server-remove",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "serverId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.update": {
+ "post": {
+ "operationId": "server-update",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "ipAddress": {
+ "type": "string"
+ },
+ "port": {
+ "type": "number"
+ },
+ "username": {
+ "type": "string"
+ },
+ "sshKeyId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverType": {
+ "type": "string",
+ "enum": [
+ "deploy",
+ "build"
+ ]
+ },
+ "command": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "serverId",
+ "ipAddress",
+ "port",
+ "username",
+ "sshKeyId",
+ "serverType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.publicIp": {
+ "get": {
+ "operationId": "server-publicIp",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.getServerTime": {
+ "get": {
+ "operationId": "server-getServerTime",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.getServerMetrics": {
+ "get": {
+ "operationId": "server-getServerMetrics",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "url",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "token",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "dataPoints",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.getProducts": {
+ "get": {
+ "operationId": "stripe-getProducts",
+ "tags": [
+ "stripe"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.createCheckoutSession": {
+ "post": {
+ "operationId": "stripe-createCheckoutSession",
+ "tags": [
+ "stripe"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "productId": {
+ "type": "string"
+ },
+ "serverQuantity": {
+ "type": "number",
+ "minimum": 1
+ },
+ "isAnnual": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "productId",
+ "serverQuantity",
+ "isAnnual"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.createCustomerPortalSession": {
+ "post": {
+ "operationId": "stripe-createCustomerPortalSession",
+ "tags": [
+ "stripe"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.canCreateMoreServers": {
+ "get": {
+ "operationId": "stripe-canCreateMoreServers",
+ "tags": [
+ "stripe"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/swarm.getNodes": {
+ "get": {
+ "operationId": "swarm-getNodes",
+ "tags": [
+ "swarm"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/swarm.getNodeInfo": {
+ "get": {
+ "operationId": "swarm-getNodeInfo",
+ "tags": [
+ "swarm"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "nodeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/swarm.getNodeApps": {
+ "get": {
+ "operationId": "swarm-getNodeApps",
+ "tags": [
+ "swarm"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.one": {
+ "get": {
+ "operationId": "ai-one",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "aiId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.getModels": {
+ "get": {
+ "operationId": "ai-getModels",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "apiUrl",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "apiKey",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.create": {
+ "post": {
+ "operationId": "ai-create",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "apiUrl": {
+ "type": "string",
+ "format": "uri"
+ },
+ "apiKey": {
+ "type": "string"
+ },
+ "model": {
+ "type": "string",
+ "minLength": 1
+ },
+ "isEnabled": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "name",
+ "apiUrl",
+ "apiKey",
+ "model",
+ "isEnabled"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.update": {
+ "post": {
+ "operationId": "ai-update",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "aiId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "apiUrl": {
+ "type": "string",
+ "format": "uri"
+ },
+ "apiKey": {
+ "type": "string"
+ },
+ "model": {
+ "type": "string",
+ "minLength": 1
+ },
+ "isEnabled": {
+ "type": "boolean"
+ },
+ "createdAt": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "aiId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.getAll": {
+ "get": {
+ "operationId": "ai-getAll",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.get": {
+ "get": {
+ "operationId": "ai-get",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "aiId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.delete": {
+ "post": {
+ "operationId": "ai-delete",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "aiId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "aiId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.suggest": {
+ "post": {
+ "operationId": "ai-suggest",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "aiId": {
+ "type": "string"
+ },
+ "input": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "aiId",
+ "input"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.deploy": {
+ "post": {
+ "operationId": "ai-deploy",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "id": {
+ "type": "string",
+ "minLength": 1
+ },
+ "dockerCompose": {
+ "type": "string",
+ "minLength": 1
+ },
+ "envVariables": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string"
+ },
+ "domains": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "minLength": 1
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1
+ },
+ "serviceName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "host",
+ "port",
+ "serviceName"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "configFiles": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "filePath": {
+ "type": "string",
+ "minLength": 1
+ },
+ "content": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "filePath",
+ "content"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "required": [
+ "environmentId",
+ "id",
+ "dockerCompose",
+ "envVariables",
+ "name",
+ "description"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.create": {
+ "post": {
+ "operationId": "organization-create",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "logo": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.all": {
+ "get": {
+ "operationId": "organization-all",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.one": {
+ "get": {
+ "operationId": "organization-one",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "organizationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.update": {
+ "post": {
+ "operationId": "organization-update",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "organizationId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "logo": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "organizationId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.delete": {
+ "post": {
+ "operationId": "organization-delete",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "organizationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.allInvitations": {
+ "get": {
+ "operationId": "organization-allInvitations",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.removeInvitation": {
+ "post": {
+ "operationId": "organization-removeInvitation",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "invitationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "invitationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.setDefault": {
+ "post": {
+ "operationId": "organization-setDefault",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "organizationId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "organizationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.create": {
+ "post": {
+ "operationId": "schedule-create",
+ "tags": [
+ "schedule"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "scheduleId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "cronExpression": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "shellType": {
+ "type": "string",
+ "enum": [
+ "bash",
+ "sh"
+ ]
+ },
+ "scheduleType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "compose",
+ "server",
+ "dokploy-server"
+ ]
+ },
+ "command": {
+ "type": "string"
+ },
+ "script": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ },
+ "userId": {
+ "type": "string",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "createdAt": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "cronExpression",
+ "command"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.update": {
+ "post": {
+ "operationId": "schedule-update",
+ "tags": [
+ "schedule"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "scheduleId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string"
+ },
+ "cronExpression": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "shellType": {
+ "type": "string",
+ "enum": [
+ "bash",
+ "sh"
+ ]
+ },
+ "scheduleType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "compose",
+ "server",
+ "dokploy-server"
+ ]
+ },
+ "command": {
+ "type": "string"
+ },
+ "script": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ },
+ "userId": {
+ "type": "string",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "createdAt": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "scheduleId",
+ "name",
+ "cronExpression",
+ "command"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.delete": {
+ "post": {
+ "operationId": "schedule-delete",
+ "tags": [
+ "schedule"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "scheduleId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "scheduleId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.list": {
+ "get": {
+ "operationId": "schedule-list",
+ "tags": [
+ "schedule"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "scheduleType",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "application",
+ "compose",
+ "server",
+ "dokploy-server"
+ ]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.one": {
+ "get": {
+ "operationId": "schedule-one",
+ "tags": [
+ "schedule"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "scheduleId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.runManually": {
+ "post": {
+ "operationId": "schedule-runManually",
+ "tags": [
+ "schedule"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "scheduleId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "scheduleId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/rollback.delete": {
+ "post": {
+ "operationId": "rollback-delete",
+ "tags": [
+ "rollback"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "rollbackId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "rollbackId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/rollback.rollback": {
+ "post": {
+ "operationId": "rollback-rollback",
+ "tags": [
+ "rollback"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "rollbackId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "rollbackId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.list": {
+ "get": {
+ "operationId": "volumeBackups-list",
+ "tags": [
+ "volumeBackups"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "volumeBackupType",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.create": {
+ "post": {
+ "operationId": "volumeBackups-create",
+ "tags": [
+ "volumeBackups"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "volumeName": {
+ "type": "string"
+ },
+ "prefix": {
+ "type": "string"
+ },
+ "serviceType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "turnOff": {
+ "type": "boolean"
+ },
+ "cronExpression": {
+ "type": "string"
+ },
+ "keepLatestCount": {
+ "type": "number",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "postgresId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mariadbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mongoId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mysqlId": {
+ "type": "string",
+ "nullable": true
+ },
+ "redisId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "volumeName",
+ "prefix",
+ "cronExpression",
+ "destinationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.one": {
+ "get": {
+ "operationId": "volumeBackups-one",
+ "tags": [
+ "volumeBackups"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "volumeBackupId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.delete": {
+ "post": {
+ "operationId": "volumeBackups-delete",
+ "tags": [
+ "volumeBackups"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "volumeBackupId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "volumeBackupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.update": {
+ "post": {
+ "operationId": "volumeBackups-update",
+ "tags": [
+ "volumeBackups"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "volumeName": {
+ "type": "string"
+ },
+ "prefix": {
+ "type": "string"
+ },
+ "serviceType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "turnOff": {
+ "type": "boolean"
+ },
+ "cronExpression": {
+ "type": "string"
+ },
+ "keepLatestCount": {
+ "type": "number",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "postgresId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mariadbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mongoId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mysqlId": {
+ "type": "string",
+ "nullable": true
+ },
+ "redisId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "volumeBackupId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "name",
+ "volumeName",
+ "prefix",
+ "cronExpression",
+ "destinationId",
+ "volumeBackupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.runManually": {
+ "post": {
+ "operationId": "volumeBackups-runManually",
+ "tags": [
+ "volumeBackups"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "volumeBackupId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "volumeBackupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.create": {
+ "post": {
+ "operationId": "environment-create",
+ "tags": [
+ "environment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "projectId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "projectId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.one": {
+ "get": {
+ "operationId": "environment-one",
+ "tags": [
+ "environment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "environmentId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.byProjectId": {
+ "get": {
+ "operationId": "environment-byProjectId",
+ "tags": [
+ "environment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.remove": {
+ "post": {
+ "operationId": "environment-remove",
+ "tags": [
+ "environment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.update": {
+ "post": {
+ "operationId": "environment-update",
+ "tags": [
+ "environment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string"
+ },
+ "projectId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.duplicate": {
+ "post": {
+ "operationId": "environment-duplicate",
+ "tags": [
+ "environment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "environmentId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ }
+ },
+ "components": {
+ "securitySchemes": {
+ "apiKey": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "x-api-key",
+ "description": "API key authentication. Generate an API key from your Dokploy dashboard under Settings > API Keys."
+ }
+ },
+ "responses": {
+ "error": {
+ "description": "Error response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string"
+ },
+ "code": {
+ "type": "string"
+ },
+ "issues": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "message"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "required": [
+ "message",
+ "code"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ {
+ "name": "admin"
+ },
+ {
+ "name": "docker"
+ },
+ {
+ "name": "compose"
+ },
+ {
+ "name": "registry"
+ },
+ {
+ "name": "cluster"
+ },
+ {
+ "name": "user"
+ },
+ {
+ "name": "domain"
+ },
+ {
+ "name": "destination"
+ },
+ {
+ "name": "backup"
+ },
+ {
+ "name": "deployment"
+ },
+ {
+ "name": "mounts"
+ },
+ {
+ "name": "certificates"
+ },
+ {
+ "name": "settings"
+ },
+ {
+ "name": "security"
+ },
+ {
+ "name": "redirects"
+ },
+ {
+ "name": "port"
+ },
+ {
+ "name": "project"
+ },
+ {
+ "name": "application"
+ },
+ {
+ "name": "mysql"
+ },
+ {
+ "name": "postgres"
+ },
+ {
+ "name": "redis"
+ },
+ {
+ "name": "mongo"
+ },
+ {
+ "name": "mariadb"
+ },
+ {
+ "name": "sshRouter"
+ },
+ {
+ "name": "gitProvider"
+ },
+ {
+ "name": "bitbucket"
+ },
+ {
+ "name": "github"
+ },
+ {
+ "name": "gitlab"
+ },
+ {
+ "name": "gitea"
+ },
+ {
+ "name": "server"
+ },
+ {
+ "name": "swarm"
+ },
+ {
+ "name": "ai"
+ },
+ {
+ "name": "organization"
+ },
+ {
+ "name": "schedule"
+ },
+ {
+ "name": "rollback"
+ },
+ {
+ "name": "volumeBackups"
+ },
+ {
+ "name": "environment"
+ }
+ ],
+ "externalDocs": {
+ "description": "Full documentation",
+ "url": "https://docs.dokploy.com"
+ },
+ "security": [
+ {
+ "apiKey": []
+ }
+ ]
+}
\ No newline at end of file