diff --git a/.gitignore b/.gitignore
index 368c5ed..5df5645 100644
--- a/.gitignore
+++ b/.gitignore
@@ -40,3 +40,5 @@ yarn-error.log*
# Misc
.DS_Store
*.pem
+
+# Generated files
diff --git a/Dockerfile.docs b/Dockerfile.docs
index e7721d8..60c602f 100644
--- a/Dockerfile.docs
+++ b/Dockerfile.docs
@@ -11,6 +11,9 @@ WORKDIR /usr/src/app
# Install dependencies
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --filter=./apps/docs --frozen-lockfile
+# Generate OpenAPI documentation from apps/docs/public/openapi.json
+RUN pnpm --filter=./apps/docs run build:docs
+
# Deploy only the dokploy app
ENV NODE_ENV=production
diff --git a/apps/docs/content/docs/api/generated/reference-admin.mdx b/apps/docs/content/docs/api/generated/reference-admin.mdx
index 548d0bd..60462dc 100644
--- a/apps/docs/content/docs/api/generated/reference-admin.mdx
+++ b/apps/docs/content/docs/api/generated/reference-admin.mdx
@@ -4,33 +4,13 @@ full: true
_openapi:
toc:
- depth: 2
- title: Admin one
- url: '#admin-one'
- - depth: 2
- title: Admin create User Invitation
- url: '#admin-create-user-invitation'
- - depth: 2
- title: Admin remove User
- url: '#admin-remove-user'
- - depth: 2
- title: Admin get User By Token
- url: '#admin-get-user-by-token'
- - depth: 2
- title: Admin assign Permissions
- url: '#admin-assign-permissions'
+ title: Admin setup Monitoring
+ url: '#admin-setup-monitoring'
structuredData:
headings:
- - content: Admin one
- id: admin-one
- - content: Admin create User Invitation
- id: admin-create-user-invitation
- - content: Admin remove User
- id: admin-remove-user
- - content: Admin get User By Token
- id: admin-get-user-by-token
- - content: Admin assign Permissions
- id: admin-assign-permissions
+ - content: Admin setup Monitoring
+ id: admin-setup-monitoring
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
new file mode 100644
index 0000000..e27ea17
--- /dev/null
+++ b/apps/docs/content/docs/api/generated/reference-ai.mdx
@@ -0,0 +1,56 @@
+---
+title: Ai
+full: true
+_openapi:
+ toc:
+ - depth: 2
+ title: Ai one
+ url: '#ai-one'
+ - depth: 2
+ title: Ai get Models
+ url: '#ai-get-models'
+ - depth: 2
+ title: Ai create
+ url: '#ai-create'
+ - depth: 2
+ title: Ai update
+ url: '#ai-update'
+ - depth: 2
+ title: Ai get All
+ url: '#ai-get-all'
+ - depth: 2
+ title: Ai get
+ url: '#ai-get'
+ - depth: 2
+ title: Ai delete
+ url: '#ai-delete'
+ - depth: 2
+ title: Ai suggest
+ url: '#ai-suggest'
+ - depth: 2
+ title: Ai deploy
+ url: '#ai-deploy'
+ structuredData:
+ headings:
+ - content: Ai one
+ id: ai-one
+ - content: Ai get Models
+ id: ai-get-models
+ - content: Ai create
+ id: ai-create
+ - content: Ai update
+ id: ai-update
+ - content: Ai get All
+ id: ai-get-all
+ - content: Ai get
+ id: ai-get
+ - content: Ai delete
+ id: ai-delete
+ - content: Ai suggest
+ id: ai-suggest
+ - content: Ai deploy
+ id: ai-deploy
+ contents: []
+---
+
+
\ 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 3860b11..66611e4 100644
--- a/apps/docs/content/docs/api/generated/reference-application.mdx
+++ b/apps/docs/content/docs/api/generated/reference-application.mdx
@@ -39,12 +39,18 @@ _openapi:
- depth: 2
title: Application save Bitbucket Provider
url: '#application-save-bitbucket-provider'
+ - depth: 2
+ title: Application save Gitea Provider
+ url: '#application-save-gitea-provider'
- depth: 2
title: Application save Docker Provider
url: '#application-save-docker-provider'
- depth: 2
- title: Application save Git Prodiver
- url: '#application-save-git-prodiver'
+ title: Application save Git Provider
+ url: '#application-save-git-provider'
+ - depth: 2
+ title: Application disconnect Git Provider
+ url: '#application-disconnect-git-provider'
- depth: 2
title: Application mark Running
url: '#application-mark-running'
@@ -60,6 +66,9 @@ _openapi:
- depth: 2
title: Application clean Queues
url: '#application-clean-queues'
+ - depth: 2
+ title: Application kill Build
+ url: '#application-kill-build'
- depth: 2
title: Application read Traefik Config
url: '#application-read-traefik-config'
@@ -69,6 +78,12 @@ _openapi:
- depth: 2
title: Application read App Monitoring
url: '#application-read-app-monitoring'
+ - depth: 2
+ title: Application move
+ url: '#application-move'
+ - depth: 2
+ title: Application cancel Deployment
+ url: '#application-cancel-deployment'
structuredData:
headings:
- content: Application create
@@ -95,10 +110,14 @@ _openapi:
id: application-save-gitlab-provider
- content: Application save Bitbucket Provider
id: application-save-bitbucket-provider
+ - content: Application save Gitea Provider
+ id: application-save-gitea-provider
- content: Application save Docker Provider
id: application-save-docker-provider
- - content: Application save Git Prodiver
- id: application-save-git-prodiver
+ - content: Application save Git Provider
+ id: application-save-git-provider
+ - content: Application disconnect Git Provider
+ id: application-disconnect-git-provider
- content: Application mark Running
id: application-mark-running
- content: Application update
@@ -109,13 +128,19 @@ _openapi:
id: application-deploy
- content: Application clean Queues
id: application-clean-queues
+ - content: Application kill Build
+ id: application-kill-build
- content: Application read Traefik Config
id: application-read-traefik-config
- content: Application update Traefik Config
id: application-update-traefik-config
- content: Application read App Monitoring
id: application-read-app-monitoring
+ - content: Application move
+ id: application-move
+ - content: Application cancel Deployment
+ id: application-cancel-deployment
contents: []
---
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/generated/reference-auth.mdx b/apps/docs/content/docs/api/generated/reference-auth.mdx
deleted file mode 100644
index ebf1cbb..0000000
--- a/apps/docs/content/docs/api/generated/reference-auth.mdx
+++ /dev/null
@@ -1,86 +0,0 @@
----
-title: Auth
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Auth create Admin
- url: '#auth-create-admin'
- - depth: 2
- title: Auth create User
- url: '#auth-create-user'
- - depth: 2
- title: Auth login
- url: '#auth-login'
- - depth: 2
- title: Auth get
- url: '#auth-get'
- - depth: 2
- title: Auth logout
- url: '#auth-logout'
- - depth: 2
- title: Auth update
- url: '#auth-update'
- - depth: 2
- title: Auth generate Token
- url: '#auth-generate-token'
- - depth: 2
- title: Auth one
- url: '#auth-one'
- - depth: 2
- title: Auth generate2 F A Secret
- url: '#auth-generate2-f-a-secret'
- - depth: 2
- title: Auth verify2 F A Setup
- url: '#auth-verify2-f-a-setup'
- - depth: 2
- title: Auth verify Login2 F A
- url: '#auth-verify-login2-f-a'
- - depth: 2
- title: Auth disable2 F A
- url: '#auth-disable2-f-a'
- - depth: 2
- title: Auth send Reset Password Email
- url: '#auth-send-reset-password-email'
- - depth: 2
- title: Auth reset Password
- url: '#auth-reset-password'
- - depth: 2
- title: Auth confirm Email
- url: '#auth-confirm-email'
- structuredData:
- headings:
- - content: Auth create Admin
- id: auth-create-admin
- - content: Auth create User
- id: auth-create-user
- - content: Auth login
- id: auth-login
- - content: Auth get
- id: auth-get
- - content: Auth logout
- id: auth-logout
- - content: Auth update
- id: auth-update
- - content: Auth generate Token
- id: auth-generate-token
- - content: Auth one
- id: auth-one
- - content: Auth generate2 F A Secret
- id: auth-generate2-f-a-secret
- - content: Auth verify2 F A Setup
- id: auth-verify2-f-a-setup
- - content: Auth verify Login2 F A
- id: auth-verify-login2-f-a
- - content: Auth disable2 F A
- id: auth-disable2-f-a
- - content: Auth send Reset Password Email
- id: auth-send-reset-password-email
- - content: Auth reset Password
- id: auth-reset-password
- - content: Auth confirm Email
- id: auth-confirm-email
- contents: []
----
-
-
\ 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 5053281..540e858 100644
--- a/apps/docs/content/docs/api/generated/reference-backup.mdx
+++ b/apps/docs/content/docs/api/generated/reference-backup.mdx
@@ -24,9 +24,18 @@ _openapi:
- depth: 2
title: Backup manual Backup Mariadb
url: '#backup-manual-backup-mariadb'
+ - depth: 2
+ title: Backup manual Backup Compose
+ url: '#backup-manual-backup-compose'
- depth: 2
title: Backup manual Backup Mongo
url: '#backup-manual-backup-mongo'
+ - depth: 2
+ title: Backup manual Backup Web Server
+ url: '#backup-manual-backup-web-server'
+ - depth: 2
+ title: Backup list Backup Files
+ url: '#backup-list-backup-files'
structuredData:
headings:
- content: Backup create
@@ -43,9 +52,15 @@ _openapi:
id: backup-manual-backup-my-sql
- content: Backup manual Backup Mariadb
id: backup-manual-backup-mariadb
+ - content: Backup manual Backup Compose
+ id: backup-manual-backup-compose
- content: Backup manual Backup Mongo
id: backup-manual-backup-mongo
+ - content: Backup manual Backup Web Server
+ id: backup-manual-backup-web-server
+ - content: Backup list Backup Files
+ id: backup-list-backup-files
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 b8ca554..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 86000d0..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 6a8f92d..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 0fb7849..fdf7512 100644
--- a/apps/docs/content/docs/api/generated/reference-compose.mdx
+++ b/apps/docs/content/docs/api/generated/reference-compose.mdx
@@ -18,15 +18,24 @@ _openapi:
- depth: 2
title: Compose clean Queues
url: '#compose-clean-queues'
+ - depth: 2
+ title: Compose kill Build
+ url: '#compose-kill-build'
- depth: 2
title: Compose load Services
url: '#compose-load-services'
+ - depth: 2
+ title: Compose load Mounts By Service
+ url: '#compose-load-mounts-by-service'
- depth: 2
title: Compose fetch Source Type
url: '#compose-fetch-source-type'
- depth: 2
title: Compose randomize Compose
url: '#compose-randomize-compose'
+ - depth: 2
+ title: Compose isolated Deployment
+ url: '#compose-isolated-deployment'
- depth: 2
title: Compose get Converted Compose
url: '#compose-get-converted-compose'
@@ -39,6 +48,9 @@ _openapi:
- depth: 2
title: Compose stop
url: '#compose-stop'
+ - depth: 2
+ title: Compose start
+ url: '#compose-start'
- depth: 2
title: Compose get Default Command
url: '#compose-get-default-command'
@@ -54,6 +66,21 @@ _openapi:
- depth: 2
title: Compose get Tags
url: '#compose-get-tags'
+ - depth: 2
+ title: Compose disconnect Git Provider
+ url: '#compose-disconnect-git-provider'
+ - depth: 2
+ title: Compose move
+ url: '#compose-move'
+ - depth: 2
+ title: Compose process Template
+ url: '#compose-process-template'
+ - depth: 2
+ title: Compose import
+ url: '#compose-import'
+ - depth: 2
+ title: Compose cancel Deployment
+ url: '#compose-cancel-deployment'
structuredData:
headings:
- content: Compose create
@@ -66,12 +93,18 @@ _openapi:
id: compose-delete
- content: Compose clean Queues
id: compose-clean-queues
+ - content: Compose kill Build
+ id: compose-kill-build
- content: Compose load Services
id: compose-load-services
+ - content: Compose load Mounts By Service
+ id: compose-load-mounts-by-service
- content: Compose fetch Source Type
id: compose-fetch-source-type
- content: Compose randomize Compose
id: compose-randomize-compose
+ - content: Compose isolated Deployment
+ id: compose-isolated-deployment
- content: Compose get Converted Compose
id: compose-get-converted-compose
- content: Compose deploy
@@ -80,6 +113,8 @@ _openapi:
id: compose-redeploy
- content: Compose stop
id: compose-stop
+ - content: Compose start
+ id: compose-start
- content: Compose get Default Command
id: compose-get-default-command
- content: Compose refresh Token
@@ -90,7 +125,17 @@ _openapi:
id: compose-templates
- content: Compose get Tags
id: compose-get-tags
+ - content: Compose disconnect Git Provider
+ id: compose-disconnect-git-provider
+ - content: Compose move
+ id: compose-move
+ - content: Compose process Template
+ id: compose-process-template
+ - content: Compose import
+ id: compose-import
+ - content: Compose cancel Deployment
+ id: compose-cancel-deployment
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 3489956..2dd54f9 100644
--- a/apps/docs/content/docs/api/generated/reference-deployment.mdx
+++ b/apps/docs/content/docs/api/generated/reference-deployment.mdx
@@ -12,6 +12,12 @@ _openapi:
- depth: 2
title: Deployment all By Server
url: '#deployment-all-by-server'
+ - depth: 2
+ title: Deployment all By Type
+ url: '#deployment-all-by-type'
+ - depth: 2
+ title: Deployment kill Process
+ url: '#deployment-kill-process'
structuredData:
headings:
- content: Deployment all
@@ -20,7 +26,11 @@ _openapi:
id: deployment-all-by-compose
- content: Deployment all By Server
id: deployment-all-by-server
+ - content: Deployment all By Type
+ id: deployment-all-by-type
+ - content: Deployment kill Process
+ id: deployment-kill-process
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 1a1bc82..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 272c250..48e78e0 100644
--- a/apps/docs/content/docs/api/generated/reference-docker.mdx
+++ b/apps/docs/content/docs/api/generated/reference-docker.mdx
@@ -18,6 +18,12 @@ _openapi:
- depth: 2
title: Docker get Containers By App Label
url: '#docker-get-containers-by-app-label'
+ - depth: 2
+ title: Docker get Stack Containers By App Name
+ url: '#docker-get-stack-containers-by-app-name'
+ - depth: 2
+ title: Docker get Service Containers By App Name
+ url: '#docker-get-service-containers-by-app-name'
structuredData:
headings:
- content: Docker get Containers
@@ -30,7 +36,11 @@ _openapi:
id: docker-get-containers-by-app-name-match
- content: Docker get Containers By App Label
id: docker-get-containers-by-app-label
+ - content: Docker get Stack Containers By App Name
+ id: docker-get-stack-containers-by-app-name
+ - content: Docker get Service Containers By App Name
+ id: docker-get-service-containers-by-app-name
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 9fd844e..ebe4b20 100644
--- a/apps/docs/content/docs/api/generated/reference-domain.mdx
+++ b/apps/docs/content/docs/api/generated/reference-domain.mdx
@@ -15,6 +15,9 @@ _openapi:
- depth: 2
title: Domain generate Domain
url: '#domain-generate-domain'
+ - depth: 2
+ title: Domain can Generate Traefik Me Domains
+ url: '#domain-can-generate-traefik-me-domains'
- depth: 2
title: Domain update
url: '#domain-update'
@@ -24,6 +27,9 @@ _openapi:
- depth: 2
title: Domain delete
url: '#domain-delete'
+ - depth: 2
+ title: Domain validate Domain
+ url: '#domain-validate-domain'
structuredData:
headings:
- content: Domain create
@@ -34,13 +40,17 @@ _openapi:
id: domain-by-compose-id
- content: Domain generate Domain
id: domain-generate-domain
+ - content: Domain can Generate Traefik Me Domains
+ id: domain-can-generate-traefik-me-domains
- content: Domain update
id: domain-update
- content: Domain one
id: domain-one
- content: Domain delete
id: domain-delete
+ - content: Domain validate Domain
+ id: domain-validate-domain
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
new file mode 100644
index 0000000..49cc235
--- /dev/null
+++ b/apps/docs/content/docs/api/generated/reference-environment.mdx
@@ -0,0 +1,41 @@
+---
+title: Environment
+full: true
+_openapi:
+ toc:
+ - depth: 2
+ title: Environment create
+ url: '#environment-create'
+ - depth: 2
+ title: Environment one
+ url: '#environment-one'
+ - depth: 2
+ title: Environment by Project Id
+ url: '#environment-by-project-id'
+ - depth: 2
+ title: Environment remove
+ url: '#environment-remove'
+ - depth: 2
+ title: Environment update
+ url: '#environment-update'
+ - depth: 2
+ title: Environment duplicate
+ url: '#environment-duplicate'
+ structuredData:
+ headings:
+ - content: Environment create
+ id: environment-create
+ - content: Environment one
+ id: environment-one
+ - content: Environment by Project Id
+ id: environment-by-project-id
+ - content: Environment remove
+ id: environment-remove
+ - content: Environment update
+ id: environment-update
+ - content: Environment duplicate
+ id: environment-duplicate
+ contents: []
+---
+
+
\ 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 5e0266c..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
new file mode 100644
index 0000000..287fb5c
--- /dev/null
+++ b/apps/docs/content/docs/api/generated/reference-gitea.mdx
@@ -0,0 +1,51 @@
+---
+title: Gitea
+full: true
+_openapi:
+ toc:
+ - depth: 2
+ title: Gitea create
+ url: '#gitea-create'
+ - depth: 2
+ title: Gitea one
+ url: '#gitea-one'
+ - depth: 2
+ title: Gitea gitea Providers
+ url: '#gitea-gitea-providers'
+ - depth: 2
+ title: Gitea get Gitea Repositories
+ url: '#gitea-get-gitea-repositories'
+ - depth: 2
+ title: Gitea get Gitea Branches
+ url: '#gitea-get-gitea-branches'
+ - depth: 2
+ title: Gitea test Connection
+ url: '#gitea-test-connection'
+ - depth: 2
+ title: Gitea update
+ url: '#gitea-update'
+ - depth: 2
+ title: Gitea get Gitea Url
+ url: '#gitea-get-gitea-url'
+ structuredData:
+ headings:
+ - content: Gitea create
+ id: gitea-create
+ - content: Gitea one
+ id: gitea-one
+ - content: Gitea gitea Providers
+ id: gitea-gitea-providers
+ - content: Gitea get Gitea Repositories
+ id: gitea-get-gitea-repositories
+ - content: Gitea get Gitea Branches
+ id: gitea-get-gitea-branches
+ - content: Gitea test Connection
+ id: gitea-test-connection
+ - content: Gitea update
+ id: gitea-update
+ - content: Gitea get Gitea Url
+ id: gitea-get-gitea-url
+ contents: []
+---
+
+
\ 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 850f594..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 4aac6a1..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 f656f00..f92dc57 100644
--- a/apps/docs/content/docs/api/generated/reference-mariadb.mdx
+++ b/apps/docs/content/docs/api/generated/reference-mariadb.mdx
@@ -36,6 +36,12 @@ _openapi:
- depth: 2
title: Mariadb update
url: '#mariadb-update'
+ - depth: 2
+ title: Mariadb move
+ url: '#mariadb-move'
+ - depth: 2
+ title: Mariadb rebuild
+ url: '#mariadb-rebuild'
structuredData:
headings:
- content: Mariadb create
@@ -60,7 +66,11 @@ _openapi:
id: mariadb-reload
- content: Mariadb update
id: mariadb-update
+ - content: Mariadb move
+ id: mariadb-move
+ - content: Mariadb rebuild
+ id: mariadb-rebuild
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 418362e..334acd9 100644
--- a/apps/docs/content/docs/api/generated/reference-mongo.mdx
+++ b/apps/docs/content/docs/api/generated/reference-mongo.mdx
@@ -36,6 +36,12 @@ _openapi:
- depth: 2
title: Mongo update
url: '#mongo-update'
+ - depth: 2
+ title: Mongo move
+ url: '#mongo-move'
+ - depth: 2
+ title: Mongo rebuild
+ url: '#mongo-rebuild'
structuredData:
headings:
- content: Mongo create
@@ -60,7 +66,11 @@ _openapi:
id: mongo-save-environment
- content: Mongo update
id: mongo-update
+ - content: Mongo move
+ id: mongo-move
+ - content: Mongo rebuild
+ id: mongo-rebuild
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 f014d77..8082955 100644
--- a/apps/docs/content/docs/api/generated/reference-mounts.mdx
+++ b/apps/docs/content/docs/api/generated/reference-mounts.mdx
@@ -15,6 +15,9 @@ _openapi:
- depth: 2
title: Mounts update
url: '#mounts-update'
+ - depth: 2
+ title: Mounts all Named By Application Id
+ url: '#mounts-all-named-by-application-id'
structuredData:
headings:
- content: Mounts create
@@ -25,7 +28,9 @@ _openapi:
id: mounts-one
- content: Mounts update
id: mounts-update
+ - content: Mounts all Named By Application Id
+ id: mounts-all-named-by-application-id
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 8a0df9e..aeb72ac 100644
--- a/apps/docs/content/docs/api/generated/reference-mysql.mdx
+++ b/apps/docs/content/docs/api/generated/reference-mysql.mdx
@@ -36,6 +36,12 @@ _openapi:
- depth: 2
title: Mysql update
url: '#mysql-update'
+ - depth: 2
+ title: Mysql move
+ url: '#mysql-move'
+ - depth: 2
+ title: Mysql rebuild
+ url: '#mysql-rebuild'
structuredData:
headings:
- content: Mysql create
@@ -60,7 +66,11 @@ _openapi:
id: mysql-save-environment
- content: Mysql update
id: mysql-update
+ - content: Mysql move
+ id: mysql-move
+ - content: Mysql rebuild
+ id: mysql-rebuild
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 ef65dad..d7901b2 100644
--- a/apps/docs/content/docs/api/generated/reference-notification.mdx
+++ b/apps/docs/content/docs/api/generated/reference-notification.mdx
@@ -48,6 +48,39 @@ _openapi:
- depth: 2
title: Notification all
url: '#notification-all'
+ - depth: 2
+ title: Notification receive Notification
+ url: '#notification-receive-notification'
+ - depth: 2
+ title: Notification create Gotify
+ url: '#notification-create-gotify'
+ - depth: 2
+ title: Notification update Gotify
+ url: '#notification-update-gotify'
+ - depth: 2
+ title: Notification test Gotify Connection
+ url: '#notification-test-gotify-connection'
+ - depth: 2
+ title: Notification create Ntfy
+ url: '#notification-create-ntfy'
+ - depth: 2
+ title: Notification update Ntfy
+ url: '#notification-update-ntfy'
+ - depth: 2
+ title: Notification test Ntfy Connection
+ url: '#notification-test-ntfy-connection'
+ - depth: 2
+ title: Notification create Lark
+ url: '#notification-create-lark'
+ - depth: 2
+ title: Notification update Lark
+ url: '#notification-update-lark'
+ - depth: 2
+ title: Notification test Lark Connection
+ url: '#notification-test-lark-connection'
+ - depth: 2
+ title: Notification get Email Providers
+ url: '#notification-get-email-providers'
structuredData:
headings:
- content: Notification create Slack
@@ -80,7 +113,29 @@ _openapi:
id: notification-one
- content: Notification all
id: notification-all
+ - content: Notification receive Notification
+ id: notification-receive-notification
+ - content: Notification create Gotify
+ id: notification-create-gotify
+ - content: Notification update Gotify
+ id: notification-update-gotify
+ - content: Notification test Gotify Connection
+ id: notification-test-gotify-connection
+ - content: Notification create Ntfy
+ id: notification-create-ntfy
+ - content: Notification update Ntfy
+ id: notification-update-ntfy
+ - content: Notification test Ntfy Connection
+ id: notification-test-ntfy-connection
+ - content: Notification create Lark
+ id: notification-create-lark
+ - content: Notification update Lark
+ id: notification-update-lark
+ - content: Notification test Lark Connection
+ id: notification-test-lark-connection
+ - content: Notification get Email Providers
+ id: notification-get-email-providers
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
new file mode 100644
index 0000000..6ca7904
--- /dev/null
+++ b/apps/docs/content/docs/api/generated/reference-organization.mdx
@@ -0,0 +1,51 @@
+---
+title: Organization
+full: true
+_openapi:
+ toc:
+ - depth: 2
+ title: Organization create
+ url: '#organization-create'
+ - depth: 2
+ title: Organization all
+ url: '#organization-all'
+ - depth: 2
+ title: Organization one
+ url: '#organization-one'
+ - depth: 2
+ title: Organization update
+ url: '#organization-update'
+ - depth: 2
+ title: Organization delete
+ url: '#organization-delete'
+ - depth: 2
+ title: Organization all Invitations
+ url: '#organization-all-invitations'
+ - depth: 2
+ title: Organization remove Invitation
+ url: '#organization-remove-invitation'
+ - depth: 2
+ title: Organization set Default
+ url: '#organization-set-default'
+ structuredData:
+ headings:
+ - content: Organization create
+ id: organization-create
+ - content: Organization all
+ id: organization-all
+ - content: Organization one
+ id: organization-one
+ - content: Organization update
+ id: organization-update
+ - content: Organization delete
+ id: organization-delete
+ - content: Organization all Invitations
+ id: organization-all-invitations
+ - content: Organization remove Invitation
+ id: organization-remove-invitation
+ - content: Organization set Default
+ id: organization-set-default
+ contents: []
+---
+
+
\ 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 cf6f2e0..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 c1e6e1c..983f588 100644
--- a/apps/docs/content/docs/api/generated/reference-postgres.mdx
+++ b/apps/docs/content/docs/api/generated/reference-postgres.mdx
@@ -36,6 +36,12 @@ _openapi:
- depth: 2
title: Postgres update
url: '#postgres-update'
+ - depth: 2
+ title: Postgres move
+ url: '#postgres-move'
+ - depth: 2
+ title: Postgres rebuild
+ url: '#postgres-rebuild'
structuredData:
headings:
- content: Postgres create
@@ -60,7 +66,11 @@ _openapi:
id: postgres-reload
- content: Postgres update
id: postgres-update
+ - content: Postgres move
+ id: postgres-move
+ - content: Postgres rebuild
+ id: postgres-rebuild
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
new file mode 100644
index 0000000..c4dd088
--- /dev/null
+++ b/apps/docs/content/docs/api/generated/reference-previewDeployment.mdx
@@ -0,0 +1,26 @@
+---
+title: Preview Deployment
+full: true
+_openapi:
+ toc:
+ - depth: 2
+ title: Preview Deployment all
+ url: '#preview-deployment-all'
+ - depth: 2
+ title: Preview Deployment delete
+ url: '#preview-deployment-delete'
+ - depth: 2
+ title: Preview Deployment one
+ url: '#preview-deployment-one'
+ structuredData:
+ headings:
+ - content: Preview Deployment all
+ id: preview-deployment-all
+ - content: Preview Deployment delete
+ id: preview-deployment-delete
+ - content: Preview Deployment one
+ id: preview-deployment-one
+ contents: []
+---
+
+
\ 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 afde77f..86167e5 100644
--- a/apps/docs/content/docs/api/generated/reference-project.mdx
+++ b/apps/docs/content/docs/api/generated/reference-project.mdx
@@ -18,6 +18,9 @@ _openapi:
- depth: 2
title: Project update
url: '#project-update'
+ - depth: 2
+ title: Project duplicate
+ url: '#project-duplicate'
structuredData:
headings:
- content: Project create
@@ -30,7 +33,9 @@ _openapi:
id: project-remove
- content: Project update
id: project-update
+ - content: Project duplicate
+ id: project-duplicate
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 fac4dad..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 1ad55a5..0529270 100644
--- a/apps/docs/content/docs/api/generated/reference-redis.mdx
+++ b/apps/docs/content/docs/api/generated/reference-redis.mdx
@@ -36,6 +36,12 @@ _openapi:
- depth: 2
title: Redis update
url: '#redis-update'
+ - depth: 2
+ title: Redis move
+ url: '#redis-move'
+ - depth: 2
+ title: Redis rebuild
+ url: '#redis-rebuild'
structuredData:
headings:
- content: Redis create
@@ -60,7 +66,11 @@ _openapi:
id: redis-save-environment
- content: Redis update
id: redis-update
+ - content: Redis move
+ id: redis-move
+ - content: Redis rebuild
+ id: redis-rebuild
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 1b15d67..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
new file mode 100644
index 0000000..8b31b5b
--- /dev/null
+++ b/apps/docs/content/docs/api/generated/reference-rollback.mdx
@@ -0,0 +1,21 @@
+---
+title: Rollback
+full: true
+_openapi:
+ toc:
+ - depth: 2
+ title: Rollback delete
+ url: '#rollback-delete'
+ - depth: 2
+ title: Rollback rollback
+ url: '#rollback-rollback'
+ structuredData:
+ headings:
+ - content: Rollback delete
+ id: rollback-delete
+ - content: Rollback rollback
+ id: rollback-rollback
+ contents: []
+---
+
+
\ 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
new file mode 100644
index 0000000..32d5e85
--- /dev/null
+++ b/apps/docs/content/docs/api/generated/reference-schedule.mdx
@@ -0,0 +1,41 @@
+---
+title: Schedule
+full: true
+_openapi:
+ toc:
+ - depth: 2
+ title: Schedule create
+ url: '#schedule-create'
+ - depth: 2
+ title: Schedule update
+ url: '#schedule-update'
+ - depth: 2
+ title: Schedule delete
+ url: '#schedule-delete'
+ - depth: 2
+ title: Schedule list
+ url: '#schedule-list'
+ - depth: 2
+ title: Schedule one
+ url: '#schedule-one'
+ - depth: 2
+ title: Schedule run Manually
+ url: '#schedule-run-manually'
+ structuredData:
+ headings:
+ - content: Schedule create
+ id: schedule-create
+ - content: Schedule update
+ id: schedule-update
+ - content: Schedule delete
+ id: schedule-delete
+ - content: Schedule list
+ id: schedule-list
+ - content: Schedule one
+ id: schedule-one
+ - content: Schedule run Manually
+ id: schedule-run-manually
+ contents: []
+---
+
+
\ 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 9ddf724..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 7914637..3b2d59c 100644
--- a/apps/docs/content/docs/api/generated/reference-server.mdx
+++ b/apps/docs/content/docs/api/generated/reference-server.mdx
@@ -9,38 +9,83 @@ _openapi:
- depth: 2
title: Server one
url: '#server-one'
+ - depth: 2
+ title: Server get Default Command
+ url: '#server-get-default-command'
- depth: 2
title: Server all
url: '#server-all'
+ - depth: 2
+ title: Server count
+ url: '#server-count'
- depth: 2
title: Server with S S H Key
url: '#server-with-s-s-h-key'
+ - depth: 2
+ title: Server build Servers
+ url: '#server-build-servers'
- depth: 2
title: Server setup
url: '#server-setup'
+ - depth: 2
+ title: Server validate
+ url: '#server-validate'
+ - depth: 2
+ title: Server security
+ url: '#server-security'
+ - depth: 2
+ title: Server setup Monitoring
+ url: '#server-setup-monitoring'
- depth: 2
title: Server remove
url: '#server-remove'
- depth: 2
title: Server update
url: '#server-update'
+ - depth: 2
+ title: Server public Ip
+ url: '#server-public-ip'
+ - depth: 2
+ title: Server get Server Time
+ url: '#server-get-server-time'
+ - depth: 2
+ title: Server get Server Metrics
+ url: '#server-get-server-metrics'
structuredData:
headings:
- content: Server create
id: server-create
- content: Server one
id: server-one
+ - content: Server get Default Command
+ id: server-get-default-command
- content: Server all
id: server-all
+ - content: Server count
+ id: server-count
- content: Server with S S H Key
id: server-with-s-s-h-key
+ - content: Server build Servers
+ id: server-build-servers
- content: Server setup
id: server-setup
+ - content: Server validate
+ id: server-validate
+ - content: Server security
+ id: server-security
+ - content: Server setup Monitoring
+ id: server-setup-monitoring
- content: Server remove
id: server-remove
- content: Server update
id: server-update
+ - content: Server public Ip
+ id: server-public-ip
+ - content: Server get Server Time
+ id: server-get-server-time
+ - content: Server get Server Metrics
+ id: server-get-server-metrics
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 b66f4b4..9f8e4ba 100644
--- a/apps/docs/content/docs/api/generated/reference-settings.mdx
+++ b/apps/docs/content/docs/api/generated/reference-settings.mdx
@@ -6,6 +6,12 @@ _openapi:
- depth: 2
title: Settings reload Server
url: '#settings-reload-server'
+ - depth: 2
+ title: Settings clean Redis
+ url: '#settings-clean-redis'
+ - depth: 2
+ title: Settings reload Redis
+ url: '#settings-reload-redis'
- depth: 2
title: Settings reload Traefik
url: '#settings-reload-traefik'
@@ -64,14 +70,17 @@ _openapi:
title: Settings update Middleware Traefik Config
url: '#settings-update-middleware-traefik-config'
- depth: 2
- title: Settings check And Update Image
- url: '#settings-check-and-update-image'
+ title: Settings get Update Data
+ url: '#settings-get-update-data'
- depth: 2
title: Settings update Server
url: '#settings-update-server'
- depth: 2
title: Settings get Dokploy Version
url: '#settings-get-dokploy-version'
+ - depth: 2
+ title: Settings get Release Tag
+ url: '#settings-get-release-tag'
- depth: 2
title: Settings read Directories
url: '#settings-read-directories'
@@ -96,15 +105,6 @@ _openapi:
- depth: 2
title: Settings have Traefik Dashboard Port Enabled
url: '#settings-have-traefik-dashboard-port-enabled'
- - depth: 2
- title: Settings read Stats
- url: '#settings-read-stats'
- - depth: 2
- title: Settings get Log Rotate Status
- url: '#settings-get-log-rotate-status'
- - depth: 2
- title: Settings toggle Log Rotate
- url: '#settings-toggle-log-rotate'
- depth: 2
title: Settings have Activate Requests
url: '#settings-have-activate-requests'
@@ -114,13 +114,41 @@ _openapi:
- depth: 2
title: Settings is Cloud
url: '#settings-is-cloud'
+ - depth: 2
+ title: Settings is User Subscribed
+ url: '#settings-is-user-subscribed'
- depth: 2
title: Settings health
url: '#settings-health'
+ - depth: 2
+ title: Settings setup G P U
+ url: '#settings-setup-g-p-u'
+ - depth: 2
+ title: Settings check G P U Status
+ url: '#settings-check-g-p-u-status'
+ - depth: 2
+ title: Settings update Traefik Ports
+ url: '#settings-update-traefik-ports'
+ - depth: 2
+ title: Settings get Traefik Ports
+ url: '#settings-get-traefik-ports'
+ - depth: 2
+ title: Settings update Log Cleanup
+ url: '#settings-update-log-cleanup'
+ - depth: 2
+ title: Settings get Log Cleanup Status
+ url: '#settings-get-log-cleanup-status'
+ - depth: 2
+ title: Settings get Dokploy Cloud Ips
+ url: '#settings-get-dokploy-cloud-ips'
structuredData:
headings:
- content: Settings reload Server
id: settings-reload-server
+ - content: Settings clean Redis
+ id: settings-clean-redis
+ - content: Settings reload Redis
+ id: settings-reload-redis
- content: Settings reload Traefik
id: settings-reload-traefik
- content: Settings toggle Dashboard
@@ -159,12 +187,14 @@ _openapi:
id: settings-read-middleware-traefik-config
- content: Settings update Middleware Traefik Config
id: settings-update-middleware-traefik-config
- - content: Settings check And Update Image
- id: settings-check-and-update-image
+ - content: Settings get Update Data
+ id: settings-get-update-data
- content: Settings update Server
id: settings-update-server
- content: Settings get Dokploy Version
id: settings-get-dokploy-version
+ - content: Settings get Release Tag
+ id: settings-get-release-tag
- content: Settings read Directories
id: settings-read-directories
- content: Settings update Traefik File
@@ -181,21 +211,31 @@ _openapi:
id: settings-write-traefik-env
- content: Settings have Traefik Dashboard Port Enabled
id: settings-have-traefik-dashboard-port-enabled
- - content: Settings read Stats
- id: settings-read-stats
- - content: Settings get Log Rotate Status
- id: settings-get-log-rotate-status
- - content: Settings toggle Log Rotate
- id: settings-toggle-log-rotate
- content: Settings have Activate Requests
id: settings-have-activate-requests
- content: Settings toggle Requests
id: settings-toggle-requests
- content: Settings is Cloud
id: settings-is-cloud
+ - content: Settings is User Subscribed
+ id: settings-is-user-subscribed
- content: Settings health
id: settings-health
+ - content: Settings setup G P U
+ id: settings-setup-g-p-u
+ - content: Settings check G P U Status
+ id: settings-check-g-p-u-status
+ - content: Settings update Traefik Ports
+ id: settings-update-traefik-ports
+ - content: Settings get Traefik Ports
+ id: settings-get-traefik-ports
+ - content: Settings update Log Cleanup
+ id: settings-update-log-cleanup
+ - content: Settings get Log Cleanup Status
+ id: settings-get-log-cleanup-status
+ - content: Settings get Dokploy Cloud Ips
+ id: settings-get-dokploy-cloud-ips
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 c8a8bde..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 e530c0a..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
new file mode 100644
index 0000000..9d8d65c
--- /dev/null
+++ b/apps/docs/content/docs/api/generated/reference-swarm.mdx
@@ -0,0 +1,26 @@
+---
+title: Swarm
+full: true
+_openapi:
+ toc:
+ - depth: 2
+ title: Swarm get Nodes
+ url: '#swarm-get-nodes'
+ - depth: 2
+ title: Swarm get Node Info
+ url: '#swarm-get-node-info'
+ - depth: 2
+ title: Swarm get Node Apps
+ url: '#swarm-get-node-apps'
+ structuredData:
+ headings:
+ - content: Swarm get Nodes
+ id: swarm-get-nodes
+ - content: Swarm get Node Info
+ id: swarm-get-node-info
+ - content: Swarm get Node Apps
+ id: swarm-get-node-apps
+ contents: []
+---
+
+
\ 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 2984521..8acecac 100644
--- a/apps/docs/content/docs/api/generated/reference-user.mdx
+++ b/apps/docs/content/docs/api/generated/reference-user.mdx
@@ -7,20 +7,95 @@ _openapi:
title: User all
url: '#user-all'
- depth: 2
- title: User by Auth Id
- url: '#user-by-auth-id'
+ title: User one
+ url: '#user-one'
- depth: 2
- title: User by User Id
- url: '#user-by-user-id'
+ title: User get
+ url: '#user-get'
+ - depth: 2
+ title: User have Root Access
+ url: '#user-have-root-access'
+ - depth: 2
+ title: User get Backups
+ url: '#user-get-backups'
+ - depth: 2
+ title: User get Server Metrics
+ url: '#user-get-server-metrics'
+ - depth: 2
+ title: User update
+ url: '#user-update'
+ - depth: 2
+ title: User get User By Token
+ url: '#user-get-user-by-token'
+ - depth: 2
+ title: User get Metrics Token
+ url: '#user-get-metrics-token'
+ - depth: 2
+ title: User remove
+ url: '#user-remove'
+ - depth: 2
+ title: User assign Permissions
+ url: '#user-assign-permissions'
+ - depth: 2
+ title: User get Invitations
+ url: '#user-get-invitations'
+ - depth: 2
+ title: User get Container Metrics
+ url: '#user-get-container-metrics'
+ - depth: 2
+ title: User generate Token
+ url: '#user-generate-token'
+ - depth: 2
+ title: User delete Api Key
+ url: '#user-delete-api-key'
+ - depth: 2
+ title: User create Api Key
+ url: '#user-create-api-key'
+ - depth: 2
+ title: User check User Organizations
+ url: '#user-check-user-organizations'
+ - depth: 2
+ title: User send Invitation
+ url: '#user-send-invitation'
structuredData:
headings:
- content: User all
id: user-all
- - content: User by Auth Id
- id: user-by-auth-id
- - content: User by User Id
- id: user-by-user-id
+ - content: User one
+ id: user-one
+ - content: User get
+ id: user-get
+ - content: User have Root Access
+ id: user-have-root-access
+ - content: User get Backups
+ id: user-get-backups
+ - content: User get Server Metrics
+ id: user-get-server-metrics
+ - content: User update
+ id: user-update
+ - content: User get User By Token
+ id: user-get-user-by-token
+ - content: User get Metrics Token
+ id: user-get-metrics-token
+ - content: User remove
+ id: user-remove
+ - content: User assign Permissions
+ id: user-assign-permissions
+ - content: User get Invitations
+ id: user-get-invitations
+ - content: User get Container Metrics
+ id: user-get-container-metrics
+ - content: User generate Token
+ id: user-generate-token
+ - content: User delete Api Key
+ id: user-delete-api-key
+ - content: User create Api Key
+ id: user-create-api-key
+ - content: User check User Organizations
+ id: user-check-user-organizations
+ - content: User send Invitation
+ id: user-send-invitation
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
new file mode 100644
index 0000000..23972f6
--- /dev/null
+++ b/apps/docs/content/docs/api/generated/reference-volumeBackups.mdx
@@ -0,0 +1,41 @@
+---
+title: Volume Backups
+full: true
+_openapi:
+ toc:
+ - depth: 2
+ title: Volume Backups list
+ url: '#volume-backups-list'
+ - depth: 2
+ title: Volume Backups create
+ url: '#volume-backups-create'
+ - depth: 2
+ title: Volume Backups one
+ url: '#volume-backups-one'
+ - depth: 2
+ title: Volume Backups delete
+ url: '#volume-backups-delete'
+ - depth: 2
+ title: Volume Backups update
+ url: '#volume-backups-update'
+ - depth: 2
+ title: Volume Backups run Manually
+ url: '#volume-backups-run-manually'
+ structuredData:
+ headings:
+ - content: Volume Backups list
+ id: volume-backups-list
+ - content: Volume Backups create
+ id: volume-backups-create
+ - content: Volume Backups one
+ id: volume-backups-one
+ - content: Volume Backups delete
+ id: volume-backups-delete
+ - content: Volume Backups update
+ id: volume-backups-update
+ - content: Volume Backups run Manually
+ id: volume-backups-run-manually
+ contents: []
+---
+
+
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-admin.mdx b/apps/docs/content/docs/api/reference-admin.mdx
deleted file mode 100644
index 548d0bd..0000000
--- a/apps/docs/content/docs/api/reference-admin.mdx
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: Admin
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Admin one
- url: '#admin-one'
- - depth: 2
- title: Admin create User Invitation
- url: '#admin-create-user-invitation'
- - depth: 2
- title: Admin remove User
- url: '#admin-remove-user'
- - depth: 2
- title: Admin get User By Token
- url: '#admin-get-user-by-token'
- - depth: 2
- title: Admin assign Permissions
- url: '#admin-assign-permissions'
- structuredData:
- headings:
- - content: Admin one
- id: admin-one
- - content: Admin create User Invitation
- id: admin-create-user-invitation
- - content: Admin remove User
- id: admin-remove-user
- - content: Admin get User By Token
- id: admin-get-user-by-token
- - content: Admin assign Permissions
- id: admin-assign-permissions
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-application.mdx b/apps/docs/content/docs/api/reference-application.mdx
deleted file mode 100644
index 3860b11..0000000
--- a/apps/docs/content/docs/api/reference-application.mdx
+++ /dev/null
@@ -1,121 +0,0 @@
----
-title: Application
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Application create
- url: '#application-create'
- - depth: 2
- title: Application one
- url: '#application-one'
- - depth: 2
- title: Application reload
- url: '#application-reload'
- - depth: 2
- title: Application delete
- url: '#application-delete'
- - depth: 2
- title: Application stop
- url: '#application-stop'
- - depth: 2
- title: Application start
- url: '#application-start'
- - depth: 2
- title: Application redeploy
- url: '#application-redeploy'
- - depth: 2
- title: Application save Environment
- url: '#application-save-environment'
- - depth: 2
- title: Application save Build Type
- url: '#application-save-build-type'
- - depth: 2
- title: Application save Github Provider
- url: '#application-save-github-provider'
- - depth: 2
- title: Application save Gitlab Provider
- url: '#application-save-gitlab-provider'
- - depth: 2
- title: Application save Bitbucket Provider
- url: '#application-save-bitbucket-provider'
- - depth: 2
- title: Application save Docker Provider
- url: '#application-save-docker-provider'
- - depth: 2
- title: Application save Git Prodiver
- url: '#application-save-git-prodiver'
- - depth: 2
- title: Application mark Running
- url: '#application-mark-running'
- - depth: 2
- title: Application update
- url: '#application-update'
- - depth: 2
- title: Application refresh Token
- url: '#application-refresh-token'
- - depth: 2
- title: Application deploy
- url: '#application-deploy'
- - depth: 2
- title: Application clean Queues
- url: '#application-clean-queues'
- - depth: 2
- title: Application read Traefik Config
- url: '#application-read-traefik-config'
- - depth: 2
- title: Application update Traefik Config
- url: '#application-update-traefik-config'
- - depth: 2
- title: Application read App Monitoring
- url: '#application-read-app-monitoring'
- structuredData:
- headings:
- - content: Application create
- id: application-create
- - content: Application one
- id: application-one
- - content: Application reload
- id: application-reload
- - content: Application delete
- id: application-delete
- - content: Application stop
- id: application-stop
- - content: Application start
- id: application-start
- - content: Application redeploy
- id: application-redeploy
- - content: Application save Environment
- id: application-save-environment
- - content: Application save Build Type
- id: application-save-build-type
- - content: Application save Github Provider
- id: application-save-github-provider
- - content: Application save Gitlab Provider
- id: application-save-gitlab-provider
- - content: Application save Bitbucket Provider
- id: application-save-bitbucket-provider
- - content: Application save Docker Provider
- id: application-save-docker-provider
- - content: Application save Git Prodiver
- id: application-save-git-prodiver
- - content: Application mark Running
- id: application-mark-running
- - content: Application update
- id: application-update
- - content: Application refresh Token
- id: application-refresh-token
- - content: Application deploy
- id: application-deploy
- - content: Application clean Queues
- id: application-clean-queues
- - content: Application read Traefik Config
- id: application-read-traefik-config
- - content: Application update Traefik Config
- id: application-update-traefik-config
- - content: Application read App Monitoring
- id: application-read-app-monitoring
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-auth.mdx b/apps/docs/content/docs/api/reference-auth.mdx
deleted file mode 100644
index ebf1cbb..0000000
--- a/apps/docs/content/docs/api/reference-auth.mdx
+++ /dev/null
@@ -1,86 +0,0 @@
----
-title: Auth
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Auth create Admin
- url: '#auth-create-admin'
- - depth: 2
- title: Auth create User
- url: '#auth-create-user'
- - depth: 2
- title: Auth login
- url: '#auth-login'
- - depth: 2
- title: Auth get
- url: '#auth-get'
- - depth: 2
- title: Auth logout
- url: '#auth-logout'
- - depth: 2
- title: Auth update
- url: '#auth-update'
- - depth: 2
- title: Auth generate Token
- url: '#auth-generate-token'
- - depth: 2
- title: Auth one
- url: '#auth-one'
- - depth: 2
- title: Auth generate2 F A Secret
- url: '#auth-generate2-f-a-secret'
- - depth: 2
- title: Auth verify2 F A Setup
- url: '#auth-verify2-f-a-setup'
- - depth: 2
- title: Auth verify Login2 F A
- url: '#auth-verify-login2-f-a'
- - depth: 2
- title: Auth disable2 F A
- url: '#auth-disable2-f-a'
- - depth: 2
- title: Auth send Reset Password Email
- url: '#auth-send-reset-password-email'
- - depth: 2
- title: Auth reset Password
- url: '#auth-reset-password'
- - depth: 2
- title: Auth confirm Email
- url: '#auth-confirm-email'
- structuredData:
- headings:
- - content: Auth create Admin
- id: auth-create-admin
- - content: Auth create User
- id: auth-create-user
- - content: Auth login
- id: auth-login
- - content: Auth get
- id: auth-get
- - content: Auth logout
- id: auth-logout
- - content: Auth update
- id: auth-update
- - content: Auth generate Token
- id: auth-generate-token
- - content: Auth one
- id: auth-one
- - content: Auth generate2 F A Secret
- id: auth-generate2-f-a-secret
- - content: Auth verify2 F A Setup
- id: auth-verify2-f-a-setup
- - content: Auth verify Login2 F A
- id: auth-verify-login2-f-a
- - content: Auth disable2 F A
- id: auth-disable2-f-a
- - content: Auth send Reset Password Email
- id: auth-send-reset-password-email
- - content: Auth reset Password
- id: auth-reset-password
- - content: Auth confirm Email
- id: auth-confirm-email
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-backup.mdx b/apps/docs/content/docs/api/reference-backup.mdx
deleted file mode 100644
index 5053281..0000000
--- a/apps/docs/content/docs/api/reference-backup.mdx
+++ /dev/null
@@ -1,51 +0,0 @@
----
-title: Backup
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Backup create
- url: '#backup-create'
- - depth: 2
- title: Backup one
- url: '#backup-one'
- - depth: 2
- title: Backup update
- url: '#backup-update'
- - depth: 2
- title: Backup remove
- url: '#backup-remove'
- - depth: 2
- title: Backup manual Backup Postgres
- url: '#backup-manual-backup-postgres'
- - depth: 2
- title: Backup manual Backup My Sql
- url: '#backup-manual-backup-my-sql'
- - depth: 2
- title: Backup manual Backup Mariadb
- url: '#backup-manual-backup-mariadb'
- - depth: 2
- title: Backup manual Backup Mongo
- url: '#backup-manual-backup-mongo'
- structuredData:
- headings:
- - content: Backup create
- id: backup-create
- - content: Backup one
- id: backup-one
- - content: Backup update
- id: backup-update
- - content: Backup remove
- id: backup-remove
- - content: Backup manual Backup Postgres
- id: backup-manual-backup-postgres
- - content: Backup manual Backup My Sql
- id: backup-manual-backup-my-sql
- - content: Backup manual Backup Mariadb
- id: backup-manual-backup-mariadb
- - content: Backup manual Backup Mongo
- id: backup-manual-backup-mongo
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-bitbucket.mdx b/apps/docs/content/docs/api/reference-bitbucket.mdx
deleted file mode 100644
index b8ca554..0000000
--- a/apps/docs/content/docs/api/reference-bitbucket.mdx
+++ /dev/null
@@ -1,46 +0,0 @@
----
-title: Bitbucket
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Bitbucket create
- url: '#bitbucket-create'
- - depth: 2
- title: Bitbucket one
- url: '#bitbucket-one'
- - depth: 2
- title: Bitbucket bitbucket Providers
- url: '#bitbucket-bitbucket-providers'
- - depth: 2
- title: Bitbucket get Bitbucket Repositories
- url: '#bitbucket-get-bitbucket-repositories'
- - depth: 2
- title: Bitbucket get Bitbucket Branches
- url: '#bitbucket-get-bitbucket-branches'
- - depth: 2
- title: Bitbucket test Connection
- url: '#bitbucket-test-connection'
- - depth: 2
- title: Bitbucket update
- url: '#bitbucket-update'
- structuredData:
- headings:
- - content: Bitbucket create
- id: bitbucket-create
- - content: Bitbucket one
- id: bitbucket-one
- - content: Bitbucket bitbucket Providers
- id: bitbucket-bitbucket-providers
- - content: Bitbucket get Bitbucket Repositories
- id: bitbucket-get-bitbucket-repositories
- - content: Bitbucket get Bitbucket Branches
- id: bitbucket-get-bitbucket-branches
- - content: Bitbucket test Connection
- id: bitbucket-test-connection
- - content: Bitbucket update
- id: bitbucket-update
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-certificates.mdx b/apps/docs/content/docs/api/reference-certificates.mdx
deleted file mode 100644
index 86000d0..0000000
--- a/apps/docs/content/docs/api/reference-certificates.mdx
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: Certificates
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Certificates create
- url: '#certificates-create'
- - depth: 2
- title: Certificates one
- url: '#certificates-one'
- - depth: 2
- title: Certificates remove
- url: '#certificates-remove'
- - depth: 2
- title: Certificates all
- url: '#certificates-all'
- structuredData:
- headings:
- - content: Certificates create
- id: certificates-create
- - content: Certificates one
- id: certificates-one
- - content: Certificates remove
- id: certificates-remove
- - content: Certificates all
- id: certificates-all
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-cluster.mdx b/apps/docs/content/docs/api/reference-cluster.mdx
deleted file mode 100644
index 6a8f92d..0000000
--- a/apps/docs/content/docs/api/reference-cluster.mdx
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: Cluster
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Cluster get Nodes
- url: '#cluster-get-nodes'
- - depth: 2
- title: Cluster remove Worker
- url: '#cluster-remove-worker'
- - depth: 2
- title: Cluster add Worker
- url: '#cluster-add-worker'
- - depth: 2
- title: Cluster add Manager
- url: '#cluster-add-manager'
- structuredData:
- headings:
- - content: Cluster get Nodes
- id: cluster-get-nodes
- - content: Cluster remove Worker
- id: cluster-remove-worker
- - content: Cluster add Worker
- id: cluster-add-worker
- - content: Cluster add Manager
- id: cluster-add-manager
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-compose.mdx b/apps/docs/content/docs/api/reference-compose.mdx
deleted file mode 100644
index 0fb7849..0000000
--- a/apps/docs/content/docs/api/reference-compose.mdx
+++ /dev/null
@@ -1,96 +0,0 @@
----
-title: Compose
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Compose create
- url: '#compose-create'
- - depth: 2
- title: Compose one
- url: '#compose-one'
- - depth: 2
- title: Compose update
- url: '#compose-update'
- - depth: 2
- title: Compose delete
- url: '#compose-delete'
- - depth: 2
- title: Compose clean Queues
- url: '#compose-clean-queues'
- - depth: 2
- title: Compose load Services
- url: '#compose-load-services'
- - depth: 2
- title: Compose fetch Source Type
- url: '#compose-fetch-source-type'
- - depth: 2
- title: Compose randomize Compose
- url: '#compose-randomize-compose'
- - depth: 2
- title: Compose get Converted Compose
- url: '#compose-get-converted-compose'
- - depth: 2
- title: Compose deploy
- url: '#compose-deploy'
- - depth: 2
- title: Compose redeploy
- url: '#compose-redeploy'
- - depth: 2
- title: Compose stop
- url: '#compose-stop'
- - depth: 2
- title: Compose get Default Command
- url: '#compose-get-default-command'
- - depth: 2
- title: Compose refresh Token
- url: '#compose-refresh-token'
- - depth: 2
- title: Compose deploy Template
- url: '#compose-deploy-template'
- - depth: 2
- title: Compose templates
- url: '#compose-templates'
- - depth: 2
- title: Compose get Tags
- url: '#compose-get-tags'
- structuredData:
- headings:
- - content: Compose create
- id: compose-create
- - content: Compose one
- id: compose-one
- - content: Compose update
- id: compose-update
- - content: Compose delete
- id: compose-delete
- - content: Compose clean Queues
- id: compose-clean-queues
- - content: Compose load Services
- id: compose-load-services
- - content: Compose fetch Source Type
- id: compose-fetch-source-type
- - content: Compose randomize Compose
- id: compose-randomize-compose
- - content: Compose get Converted Compose
- id: compose-get-converted-compose
- - content: Compose deploy
- id: compose-deploy
- - content: Compose redeploy
- id: compose-redeploy
- - content: Compose stop
- id: compose-stop
- - content: Compose get Default Command
- id: compose-get-default-command
- - content: Compose refresh Token
- id: compose-refresh-token
- - content: Compose deploy Template
- id: compose-deploy-template
- - content: Compose templates
- id: compose-templates
- - content: Compose get Tags
- id: compose-get-tags
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-deployment.mdx b/apps/docs/content/docs/api/reference-deployment.mdx
deleted file mode 100644
index 3489956..0000000
--- a/apps/docs/content/docs/api/reference-deployment.mdx
+++ /dev/null
@@ -1,26 +0,0 @@
----
-title: Deployment
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Deployment all
- url: '#deployment-all'
- - depth: 2
- title: Deployment all By Compose
- url: '#deployment-all-by-compose'
- - depth: 2
- title: Deployment all By Server
- url: '#deployment-all-by-server'
- structuredData:
- headings:
- - content: Deployment all
- id: deployment-all
- - content: Deployment all By Compose
- id: deployment-all-by-compose
- - content: Deployment all By Server
- id: deployment-all-by-server
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-destination.mdx b/apps/docs/content/docs/api/reference-destination.mdx
deleted file mode 100644
index 1a1bc82..0000000
--- a/apps/docs/content/docs/api/reference-destination.mdx
+++ /dev/null
@@ -1,41 +0,0 @@
----
-title: Destination
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Destination create
- url: '#destination-create'
- - depth: 2
- title: Destination test Connection
- url: '#destination-test-connection'
- - depth: 2
- title: Destination one
- url: '#destination-one'
- - depth: 2
- title: Destination all
- url: '#destination-all'
- - depth: 2
- title: Destination remove
- url: '#destination-remove'
- - depth: 2
- title: Destination update
- url: '#destination-update'
- structuredData:
- headings:
- - content: Destination create
- id: destination-create
- - content: Destination test Connection
- id: destination-test-connection
- - content: Destination one
- id: destination-one
- - content: Destination all
- id: destination-all
- - content: Destination remove
- id: destination-remove
- - content: Destination update
- id: destination-update
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-docker.mdx b/apps/docs/content/docs/api/reference-docker.mdx
deleted file mode 100644
index 272c250..0000000
--- a/apps/docs/content/docs/api/reference-docker.mdx
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: Docker
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Docker get Containers
- url: '#docker-get-containers'
- - depth: 2
- title: Docker restart Container
- url: '#docker-restart-container'
- - depth: 2
- title: Docker get Config
- url: '#docker-get-config'
- - depth: 2
- title: Docker get Containers By App Name Match
- url: '#docker-get-containers-by-app-name-match'
- - depth: 2
- title: Docker get Containers By App Label
- url: '#docker-get-containers-by-app-label'
- structuredData:
- headings:
- - content: Docker get Containers
- id: docker-get-containers
- - content: Docker restart Container
- id: docker-restart-container
- - content: Docker get Config
- id: docker-get-config
- - content: Docker get Containers By App Name Match
- id: docker-get-containers-by-app-name-match
- - content: Docker get Containers By App Label
- id: docker-get-containers-by-app-label
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-domain.mdx b/apps/docs/content/docs/api/reference-domain.mdx
deleted file mode 100644
index 9fd844e..0000000
--- a/apps/docs/content/docs/api/reference-domain.mdx
+++ /dev/null
@@ -1,46 +0,0 @@
----
-title: Domain
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Domain create
- url: '#domain-create'
- - depth: 2
- title: Domain by Application Id
- url: '#domain-by-application-id'
- - depth: 2
- title: Domain by Compose Id
- url: '#domain-by-compose-id'
- - depth: 2
- title: Domain generate Domain
- url: '#domain-generate-domain'
- - depth: 2
- title: Domain update
- url: '#domain-update'
- - depth: 2
- title: Domain one
- url: '#domain-one'
- - depth: 2
- title: Domain delete
- url: '#domain-delete'
- structuredData:
- headings:
- - content: Domain create
- id: domain-create
- - content: Domain by Application Id
- id: domain-by-application-id
- - content: Domain by Compose Id
- id: domain-by-compose-id
- - content: Domain generate Domain
- id: domain-generate-domain
- - content: Domain update
- id: domain-update
- - content: Domain one
- id: domain-one
- - content: Domain delete
- id: domain-delete
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-gitProvider.mdx b/apps/docs/content/docs/api/reference-gitProvider.mdx
deleted file mode 100644
index 5e0266c..0000000
--- a/apps/docs/content/docs/api/reference-gitProvider.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: Git Provider
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Git Provider get All
- url: '#git-provider-get-all'
- - depth: 2
- title: Git Provider remove
- url: '#git-provider-remove'
- structuredData:
- headings:
- - content: Git Provider get All
- id: git-provider-get-all
- - content: Git Provider remove
- id: git-provider-remove
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-github.mdx b/apps/docs/content/docs/api/reference-github.mdx
deleted file mode 100644
index 850f594..0000000
--- a/apps/docs/content/docs/api/reference-github.mdx
+++ /dev/null
@@ -1,41 +0,0 @@
----
-title: Github
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Github one
- url: '#github-one'
- - depth: 2
- title: Github get Github Repositories
- url: '#github-get-github-repositories'
- - depth: 2
- title: Github get Github Branches
- url: '#github-get-github-branches'
- - depth: 2
- title: Github github Providers
- url: '#github-github-providers'
- - depth: 2
- title: Github test Connection
- url: '#github-test-connection'
- - depth: 2
- title: Github update
- url: '#github-update'
- structuredData:
- headings:
- - content: Github one
- id: github-one
- - content: Github get Github Repositories
- id: github-get-github-repositories
- - content: Github get Github Branches
- id: github-get-github-branches
- - content: Github github Providers
- id: github-github-providers
- - content: Github test Connection
- id: github-test-connection
- - content: Github update
- id: github-update
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-gitlab.mdx b/apps/docs/content/docs/api/reference-gitlab.mdx
deleted file mode 100644
index 4aac6a1..0000000
--- a/apps/docs/content/docs/api/reference-gitlab.mdx
+++ /dev/null
@@ -1,46 +0,0 @@
----
-title: Gitlab
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Gitlab create
- url: '#gitlab-create'
- - depth: 2
- title: Gitlab one
- url: '#gitlab-one'
- - depth: 2
- title: Gitlab gitlab Providers
- url: '#gitlab-gitlab-providers'
- - depth: 2
- title: Gitlab get Gitlab Repositories
- url: '#gitlab-get-gitlab-repositories'
- - depth: 2
- title: Gitlab get Gitlab Branches
- url: '#gitlab-get-gitlab-branches'
- - depth: 2
- title: Gitlab test Connection
- url: '#gitlab-test-connection'
- - depth: 2
- title: Gitlab update
- url: '#gitlab-update'
- structuredData:
- headings:
- - content: Gitlab create
- id: gitlab-create
- - content: Gitlab one
- id: gitlab-one
- - content: Gitlab gitlab Providers
- id: gitlab-gitlab-providers
- - content: Gitlab get Gitlab Repositories
- id: gitlab-get-gitlab-repositories
- - content: Gitlab get Gitlab Branches
- id: gitlab-get-gitlab-branches
- - content: Gitlab test Connection
- id: gitlab-test-connection
- - content: Gitlab update
- id: gitlab-update
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-mariadb.mdx b/apps/docs/content/docs/api/reference-mariadb.mdx
deleted file mode 100644
index f656f00..0000000
--- a/apps/docs/content/docs/api/reference-mariadb.mdx
+++ /dev/null
@@ -1,66 +0,0 @@
----
-title: Mariadb
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Mariadb create
- url: '#mariadb-create'
- - depth: 2
- title: Mariadb one
- url: '#mariadb-one'
- - depth: 2
- title: Mariadb start
- url: '#mariadb-start'
- - depth: 2
- title: Mariadb stop
- url: '#mariadb-stop'
- - depth: 2
- title: Mariadb save External Port
- url: '#mariadb-save-external-port'
- - depth: 2
- title: Mariadb deploy
- url: '#mariadb-deploy'
- - depth: 2
- title: Mariadb change Status
- url: '#mariadb-change-status'
- - depth: 2
- title: Mariadb remove
- url: '#mariadb-remove'
- - depth: 2
- title: Mariadb save Environment
- url: '#mariadb-save-environment'
- - depth: 2
- title: Mariadb reload
- url: '#mariadb-reload'
- - depth: 2
- title: Mariadb update
- url: '#mariadb-update'
- structuredData:
- headings:
- - content: Mariadb create
- id: mariadb-create
- - content: Mariadb one
- id: mariadb-one
- - content: Mariadb start
- id: mariadb-start
- - content: Mariadb stop
- id: mariadb-stop
- - content: Mariadb save External Port
- id: mariadb-save-external-port
- - content: Mariadb deploy
- id: mariadb-deploy
- - content: Mariadb change Status
- id: mariadb-change-status
- - content: Mariadb remove
- id: mariadb-remove
- - content: Mariadb save Environment
- id: mariadb-save-environment
- - content: Mariadb reload
- id: mariadb-reload
- - content: Mariadb update
- id: mariadb-update
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-mongo.mdx b/apps/docs/content/docs/api/reference-mongo.mdx
deleted file mode 100644
index 418362e..0000000
--- a/apps/docs/content/docs/api/reference-mongo.mdx
+++ /dev/null
@@ -1,66 +0,0 @@
----
-title: Mongo
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Mongo create
- url: '#mongo-create'
- - depth: 2
- title: Mongo one
- url: '#mongo-one'
- - depth: 2
- title: Mongo start
- url: '#mongo-start'
- - depth: 2
- title: Mongo stop
- url: '#mongo-stop'
- - depth: 2
- title: Mongo save External Port
- url: '#mongo-save-external-port'
- - depth: 2
- title: Mongo deploy
- url: '#mongo-deploy'
- - depth: 2
- title: Mongo change Status
- url: '#mongo-change-status'
- - depth: 2
- title: Mongo reload
- url: '#mongo-reload'
- - depth: 2
- title: Mongo remove
- url: '#mongo-remove'
- - depth: 2
- title: Mongo save Environment
- url: '#mongo-save-environment'
- - depth: 2
- title: Mongo update
- url: '#mongo-update'
- structuredData:
- headings:
- - content: Mongo create
- id: mongo-create
- - content: Mongo one
- id: mongo-one
- - content: Mongo start
- id: mongo-start
- - content: Mongo stop
- id: mongo-stop
- - content: Mongo save External Port
- id: mongo-save-external-port
- - content: Mongo deploy
- id: mongo-deploy
- - content: Mongo change Status
- id: mongo-change-status
- - content: Mongo reload
- id: mongo-reload
- - content: Mongo remove
- id: mongo-remove
- - content: Mongo save Environment
- id: mongo-save-environment
- - content: Mongo update
- id: mongo-update
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-mounts.mdx b/apps/docs/content/docs/api/reference-mounts.mdx
deleted file mode 100644
index f014d77..0000000
--- a/apps/docs/content/docs/api/reference-mounts.mdx
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: Mounts
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Mounts create
- url: '#mounts-create'
- - depth: 2
- title: Mounts remove
- url: '#mounts-remove'
- - depth: 2
- title: Mounts one
- url: '#mounts-one'
- - depth: 2
- title: Mounts update
- url: '#mounts-update'
- structuredData:
- headings:
- - content: Mounts create
- id: mounts-create
- - content: Mounts remove
- id: mounts-remove
- - content: Mounts one
- id: mounts-one
- - content: Mounts update
- id: mounts-update
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-mysql.mdx b/apps/docs/content/docs/api/reference-mysql.mdx
deleted file mode 100644
index 8a0df9e..0000000
--- a/apps/docs/content/docs/api/reference-mysql.mdx
+++ /dev/null
@@ -1,66 +0,0 @@
----
-title: Mysql
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Mysql create
- url: '#mysql-create'
- - depth: 2
- title: Mysql one
- url: '#mysql-one'
- - depth: 2
- title: Mysql start
- url: '#mysql-start'
- - depth: 2
- title: Mysql stop
- url: '#mysql-stop'
- - depth: 2
- title: Mysql save External Port
- url: '#mysql-save-external-port'
- - depth: 2
- title: Mysql deploy
- url: '#mysql-deploy'
- - depth: 2
- title: Mysql change Status
- url: '#mysql-change-status'
- - depth: 2
- title: Mysql reload
- url: '#mysql-reload'
- - depth: 2
- title: Mysql remove
- url: '#mysql-remove'
- - depth: 2
- title: Mysql save Environment
- url: '#mysql-save-environment'
- - depth: 2
- title: Mysql update
- url: '#mysql-update'
- structuredData:
- headings:
- - content: Mysql create
- id: mysql-create
- - content: Mysql one
- id: mysql-one
- - content: Mysql start
- id: mysql-start
- - content: Mysql stop
- id: mysql-stop
- - content: Mysql save External Port
- id: mysql-save-external-port
- - content: Mysql deploy
- id: mysql-deploy
- - content: Mysql change Status
- id: mysql-change-status
- - content: Mysql reload
- id: mysql-reload
- - content: Mysql remove
- id: mysql-remove
- - content: Mysql save Environment
- id: mysql-save-environment
- - content: Mysql update
- id: mysql-update
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-notification.mdx b/apps/docs/content/docs/api/reference-notification.mdx
deleted file mode 100644
index ef65dad..0000000
--- a/apps/docs/content/docs/api/reference-notification.mdx
+++ /dev/null
@@ -1,86 +0,0 @@
----
-title: Notification
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Notification create Slack
- url: '#notification-create-slack'
- - depth: 2
- title: Notification update Slack
- url: '#notification-update-slack'
- - depth: 2
- title: Notification test Slack Connection
- url: '#notification-test-slack-connection'
- - depth: 2
- title: Notification create Telegram
- url: '#notification-create-telegram'
- - depth: 2
- title: Notification update Telegram
- url: '#notification-update-telegram'
- - depth: 2
- title: Notification test Telegram Connection
- url: '#notification-test-telegram-connection'
- - depth: 2
- title: Notification create Discord
- url: '#notification-create-discord'
- - depth: 2
- title: Notification update Discord
- url: '#notification-update-discord'
- - depth: 2
- title: Notification test Discord Connection
- url: '#notification-test-discord-connection'
- - depth: 2
- title: Notification create Email
- url: '#notification-create-email'
- - depth: 2
- title: Notification update Email
- url: '#notification-update-email'
- - depth: 2
- title: Notification test Email Connection
- url: '#notification-test-email-connection'
- - depth: 2
- title: Notification remove
- url: '#notification-remove'
- - depth: 2
- title: Notification one
- url: '#notification-one'
- - depth: 2
- title: Notification all
- url: '#notification-all'
- structuredData:
- headings:
- - content: Notification create Slack
- id: notification-create-slack
- - content: Notification update Slack
- id: notification-update-slack
- - content: Notification test Slack Connection
- id: notification-test-slack-connection
- - content: Notification create Telegram
- id: notification-create-telegram
- - content: Notification update Telegram
- id: notification-update-telegram
- - content: Notification test Telegram Connection
- id: notification-test-telegram-connection
- - content: Notification create Discord
- id: notification-create-discord
- - content: Notification update Discord
- id: notification-update-discord
- - content: Notification test Discord Connection
- id: notification-test-discord-connection
- - content: Notification create Email
- id: notification-create-email
- - content: Notification update Email
- id: notification-update-email
- - content: Notification test Email Connection
- id: notification-test-email-connection
- - content: Notification remove
- id: notification-remove
- - content: Notification one
- id: notification-one
- - content: Notification all
- id: notification-all
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-port.mdx b/apps/docs/content/docs/api/reference-port.mdx
deleted file mode 100644
index cf6f2e0..0000000
--- a/apps/docs/content/docs/api/reference-port.mdx
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: Port
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Port create
- url: '#port-create'
- - depth: 2
- title: Port one
- url: '#port-one'
- - depth: 2
- title: Port delete
- url: '#port-delete'
- - depth: 2
- title: Port update
- url: '#port-update'
- structuredData:
- headings:
- - content: Port create
- id: port-create
- - content: Port one
- id: port-one
- - content: Port delete
- id: port-delete
- - content: Port update
- id: port-update
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-postgres.mdx b/apps/docs/content/docs/api/reference-postgres.mdx
deleted file mode 100644
index c1e6e1c..0000000
--- a/apps/docs/content/docs/api/reference-postgres.mdx
+++ /dev/null
@@ -1,66 +0,0 @@
----
-title: Postgres
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Postgres create
- url: '#postgres-create'
- - depth: 2
- title: Postgres one
- url: '#postgres-one'
- - depth: 2
- title: Postgres start
- url: '#postgres-start'
- - depth: 2
- title: Postgres stop
- url: '#postgres-stop'
- - depth: 2
- title: Postgres save External Port
- url: '#postgres-save-external-port'
- - depth: 2
- title: Postgres deploy
- url: '#postgres-deploy'
- - depth: 2
- title: Postgres change Status
- url: '#postgres-change-status'
- - depth: 2
- title: Postgres remove
- url: '#postgres-remove'
- - depth: 2
- title: Postgres save Environment
- url: '#postgres-save-environment'
- - depth: 2
- title: Postgres reload
- url: '#postgres-reload'
- - depth: 2
- title: Postgres update
- url: '#postgres-update'
- structuredData:
- headings:
- - content: Postgres create
- id: postgres-create
- - content: Postgres one
- id: postgres-one
- - content: Postgres start
- id: postgres-start
- - content: Postgres stop
- id: postgres-stop
- - content: Postgres save External Port
- id: postgres-save-external-port
- - content: Postgres deploy
- id: postgres-deploy
- - content: Postgres change Status
- id: postgres-change-status
- - content: Postgres remove
- id: postgres-remove
- - content: Postgres save Environment
- id: postgres-save-environment
- - content: Postgres reload
- id: postgres-reload
- - content: Postgres update
- id: postgres-update
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-project.mdx b/apps/docs/content/docs/api/reference-project.mdx
deleted file mode 100644
index afde77f..0000000
--- a/apps/docs/content/docs/api/reference-project.mdx
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: Project
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Project create
- url: '#project-create'
- - depth: 2
- title: Project one
- url: '#project-one'
- - depth: 2
- title: Project all
- url: '#project-all'
- - depth: 2
- title: Project remove
- url: '#project-remove'
- - depth: 2
- title: Project update
- url: '#project-update'
- structuredData:
- headings:
- - content: Project create
- id: project-create
- - content: Project one
- id: project-one
- - content: Project all
- id: project-all
- - content: Project remove
- id: project-remove
- - content: Project update
- id: project-update
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-redirects.mdx b/apps/docs/content/docs/api/reference-redirects.mdx
deleted file mode 100644
index fac4dad..0000000
--- a/apps/docs/content/docs/api/reference-redirects.mdx
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: Redirects
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Redirects create
- url: '#redirects-create'
- - depth: 2
- title: Redirects one
- url: '#redirects-one'
- - depth: 2
- title: Redirects delete
- url: '#redirects-delete'
- - depth: 2
- title: Redirects update
- url: '#redirects-update'
- structuredData:
- headings:
- - content: Redirects create
- id: redirects-create
- - content: Redirects one
- id: redirects-one
- - content: Redirects delete
- id: redirects-delete
- - content: Redirects update
- id: redirects-update
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-redis.mdx b/apps/docs/content/docs/api/reference-redis.mdx
deleted file mode 100644
index 1ad55a5..0000000
--- a/apps/docs/content/docs/api/reference-redis.mdx
+++ /dev/null
@@ -1,66 +0,0 @@
----
-title: Redis
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Redis create
- url: '#redis-create'
- - depth: 2
- title: Redis one
- url: '#redis-one'
- - depth: 2
- title: Redis start
- url: '#redis-start'
- - depth: 2
- title: Redis reload
- url: '#redis-reload'
- - depth: 2
- title: Redis stop
- url: '#redis-stop'
- - depth: 2
- title: Redis save External Port
- url: '#redis-save-external-port'
- - depth: 2
- title: Redis deploy
- url: '#redis-deploy'
- - depth: 2
- title: Redis change Status
- url: '#redis-change-status'
- - depth: 2
- title: Redis remove
- url: '#redis-remove'
- - depth: 2
- title: Redis save Environment
- url: '#redis-save-environment'
- - depth: 2
- title: Redis update
- url: '#redis-update'
- structuredData:
- headings:
- - content: Redis create
- id: redis-create
- - content: Redis one
- id: redis-one
- - content: Redis start
- id: redis-start
- - content: Redis reload
- id: redis-reload
- - content: Redis stop
- id: redis-stop
- - content: Redis save External Port
- id: redis-save-external-port
- - content: Redis deploy
- id: redis-deploy
- - content: Redis change Status
- id: redis-change-status
- - content: Redis remove
- id: redis-remove
- - content: Redis save Environment
- id: redis-save-environment
- - content: Redis update
- id: redis-update
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-registry.mdx b/apps/docs/content/docs/api/reference-registry.mdx
deleted file mode 100644
index 1b15d67..0000000
--- a/apps/docs/content/docs/api/reference-registry.mdx
+++ /dev/null
@@ -1,41 +0,0 @@
----
-title: Registry
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Registry create
- url: '#registry-create'
- - depth: 2
- title: Registry remove
- url: '#registry-remove'
- - depth: 2
- title: Registry update
- url: '#registry-update'
- - depth: 2
- title: Registry all
- url: '#registry-all'
- - depth: 2
- title: Registry one
- url: '#registry-one'
- - depth: 2
- title: Registry test Registry
- url: '#registry-test-registry'
- structuredData:
- headings:
- - content: Registry create
- id: registry-create
- - content: Registry remove
- id: registry-remove
- - content: Registry update
- id: registry-update
- - content: Registry all
- id: registry-all
- - content: Registry one
- id: registry-one
- - content: Registry test Registry
- id: registry-test-registry
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-security.mdx b/apps/docs/content/docs/api/reference-security.mdx
deleted file mode 100644
index 9ddf724..0000000
--- a/apps/docs/content/docs/api/reference-security.mdx
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: Security
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Security create
- url: '#security-create'
- - depth: 2
- title: Security one
- url: '#security-one'
- - depth: 2
- title: Security delete
- url: '#security-delete'
- - depth: 2
- title: Security update
- url: '#security-update'
- structuredData:
- headings:
- - content: Security create
- id: security-create
- - content: Security one
- id: security-one
- - content: Security delete
- id: security-delete
- - content: Security update
- id: security-update
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-server.mdx b/apps/docs/content/docs/api/reference-server.mdx
deleted file mode 100644
index 7914637..0000000
--- a/apps/docs/content/docs/api/reference-server.mdx
+++ /dev/null
@@ -1,46 +0,0 @@
----
-title: Server
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Server create
- url: '#server-create'
- - depth: 2
- title: Server one
- url: '#server-one'
- - depth: 2
- title: Server all
- url: '#server-all'
- - depth: 2
- title: Server with S S H Key
- url: '#server-with-s-s-h-key'
- - depth: 2
- title: Server setup
- url: '#server-setup'
- - depth: 2
- title: Server remove
- url: '#server-remove'
- - depth: 2
- title: Server update
- url: '#server-update'
- structuredData:
- headings:
- - content: Server create
- id: server-create
- - content: Server one
- id: server-one
- - content: Server all
- id: server-all
- - content: Server with S S H Key
- id: server-with-s-s-h-key
- - content: Server setup
- id: server-setup
- - content: Server remove
- id: server-remove
- - content: Server update
- id: server-update
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-settings.mdx b/apps/docs/content/docs/api/reference-settings.mdx
deleted file mode 100644
index b66f4b4..0000000
--- a/apps/docs/content/docs/api/reference-settings.mdx
+++ /dev/null
@@ -1,201 +0,0 @@
----
-title: Settings
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Settings reload Server
- url: '#settings-reload-server'
- - depth: 2
- title: Settings reload Traefik
- url: '#settings-reload-traefik'
- - depth: 2
- title: Settings toggle Dashboard
- url: '#settings-toggle-dashboard'
- - depth: 2
- title: Settings clean Unused Images
- url: '#settings-clean-unused-images'
- - depth: 2
- title: Settings clean Unused Volumes
- url: '#settings-clean-unused-volumes'
- - depth: 2
- title: Settings clean Stopped Containers
- url: '#settings-clean-stopped-containers'
- - depth: 2
- title: Settings clean Docker Builder
- url: '#settings-clean-docker-builder'
- - depth: 2
- title: Settings clean Docker Prune
- url: '#settings-clean-docker-prune'
- - depth: 2
- title: Settings clean All
- url: '#settings-clean-all'
- - depth: 2
- title: Settings clean Monitoring
- url: '#settings-clean-monitoring'
- - depth: 2
- title: Settings save S S H Private Key
- url: '#settings-save-s-s-h-private-key'
- - depth: 2
- title: Settings assign Domain Server
- url: '#settings-assign-domain-server'
- - depth: 2
- title: Settings clean S S H Private Key
- url: '#settings-clean-s-s-h-private-key'
- - depth: 2
- title: Settings update Docker Cleanup
- url: '#settings-update-docker-cleanup'
- - depth: 2
- title: Settings read Traefik Config
- url: '#settings-read-traefik-config'
- - depth: 2
- title: Settings update Traefik Config
- url: '#settings-update-traefik-config'
- - depth: 2
- title: Settings read Web Server Traefik Config
- url: '#settings-read-web-server-traefik-config'
- - depth: 2
- title: Settings update Web Server Traefik Config
- url: '#settings-update-web-server-traefik-config'
- - depth: 2
- title: Settings read Middleware Traefik Config
- url: '#settings-read-middleware-traefik-config'
- - depth: 2
- title: Settings update Middleware Traefik Config
- url: '#settings-update-middleware-traefik-config'
- - depth: 2
- title: Settings check And Update Image
- url: '#settings-check-and-update-image'
- - depth: 2
- title: Settings update Server
- url: '#settings-update-server'
- - depth: 2
- title: Settings get Dokploy Version
- url: '#settings-get-dokploy-version'
- - depth: 2
- title: Settings read Directories
- url: '#settings-read-directories'
- - depth: 2
- title: Settings update Traefik File
- url: '#settings-update-traefik-file'
- - depth: 2
- title: Settings read Traefik File
- url: '#settings-read-traefik-file'
- - depth: 2
- title: Settings get Ip
- url: '#settings-get-ip'
- - depth: 2
- title: Settings get Open Api Document
- url: '#settings-get-open-api-document'
- - depth: 2
- title: Settings read Traefik Env
- url: '#settings-read-traefik-env'
- - depth: 2
- title: Settings write Traefik Env
- url: '#settings-write-traefik-env'
- - depth: 2
- title: Settings have Traefik Dashboard Port Enabled
- url: '#settings-have-traefik-dashboard-port-enabled'
- - depth: 2
- title: Settings read Stats
- url: '#settings-read-stats'
- - depth: 2
- title: Settings get Log Rotate Status
- url: '#settings-get-log-rotate-status'
- - depth: 2
- title: Settings toggle Log Rotate
- url: '#settings-toggle-log-rotate'
- - depth: 2
- title: Settings have Activate Requests
- url: '#settings-have-activate-requests'
- - depth: 2
- title: Settings toggle Requests
- url: '#settings-toggle-requests'
- - depth: 2
- title: Settings is Cloud
- url: '#settings-is-cloud'
- - depth: 2
- title: Settings health
- url: '#settings-health'
- structuredData:
- headings:
- - content: Settings reload Server
- id: settings-reload-server
- - content: Settings reload Traefik
- id: settings-reload-traefik
- - content: Settings toggle Dashboard
- id: settings-toggle-dashboard
- - content: Settings clean Unused Images
- id: settings-clean-unused-images
- - content: Settings clean Unused Volumes
- id: settings-clean-unused-volumes
- - content: Settings clean Stopped Containers
- id: settings-clean-stopped-containers
- - content: Settings clean Docker Builder
- id: settings-clean-docker-builder
- - content: Settings clean Docker Prune
- id: settings-clean-docker-prune
- - content: Settings clean All
- id: settings-clean-all
- - content: Settings clean Monitoring
- id: settings-clean-monitoring
- - content: Settings save S S H Private Key
- id: settings-save-s-s-h-private-key
- - content: Settings assign Domain Server
- id: settings-assign-domain-server
- - content: Settings clean S S H Private Key
- id: settings-clean-s-s-h-private-key
- - content: Settings update Docker Cleanup
- id: settings-update-docker-cleanup
- - content: Settings read Traefik Config
- id: settings-read-traefik-config
- - content: Settings update Traefik Config
- id: settings-update-traefik-config
- - content: Settings read Web Server Traefik Config
- id: settings-read-web-server-traefik-config
- - content: Settings update Web Server Traefik Config
- id: settings-update-web-server-traefik-config
- - content: Settings read Middleware Traefik Config
- id: settings-read-middleware-traefik-config
- - content: Settings update Middleware Traefik Config
- id: settings-update-middleware-traefik-config
- - content: Settings check And Update Image
- id: settings-check-and-update-image
- - content: Settings update Server
- id: settings-update-server
- - content: Settings get Dokploy Version
- id: settings-get-dokploy-version
- - content: Settings read Directories
- id: settings-read-directories
- - content: Settings update Traefik File
- id: settings-update-traefik-file
- - content: Settings read Traefik File
- id: settings-read-traefik-file
- - content: Settings get Ip
- id: settings-get-ip
- - content: Settings get Open Api Document
- id: settings-get-open-api-document
- - content: Settings read Traefik Env
- id: settings-read-traefik-env
- - content: Settings write Traefik Env
- id: settings-write-traefik-env
- - content: Settings have Traefik Dashboard Port Enabled
- id: settings-have-traefik-dashboard-port-enabled
- - content: Settings read Stats
- id: settings-read-stats
- - content: Settings get Log Rotate Status
- id: settings-get-log-rotate-status
- - content: Settings toggle Log Rotate
- id: settings-toggle-log-rotate
- - content: Settings have Activate Requests
- id: settings-have-activate-requests
- - content: Settings toggle Requests
- id: settings-toggle-requests
- - content: Settings is Cloud
- id: settings-is-cloud
- - content: Settings health
- id: settings-health
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-sshKey.mdx b/apps/docs/content/docs/api/reference-sshKey.mdx
deleted file mode 100644
index c8a8bde..0000000
--- a/apps/docs/content/docs/api/reference-sshKey.mdx
+++ /dev/null
@@ -1,41 +0,0 @@
----
-title: Ssh Key
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Ssh Key create
- url: '#ssh-key-create'
- - depth: 2
- title: Ssh Key remove
- url: '#ssh-key-remove'
- - depth: 2
- title: Ssh Key one
- url: '#ssh-key-one'
- - depth: 2
- title: Ssh Key all
- url: '#ssh-key-all'
- - depth: 2
- title: Ssh Key generate
- url: '#ssh-key-generate'
- - depth: 2
- title: Ssh Key update
- url: '#ssh-key-update'
- structuredData:
- headings:
- - content: Ssh Key create
- id: ssh-key-create
- - content: Ssh Key remove
- id: ssh-key-remove
- - content: Ssh Key one
- id: ssh-key-one
- - content: Ssh Key all
- id: ssh-key-all
- - content: Ssh Key generate
- id: ssh-key-generate
- - content: Ssh Key update
- id: ssh-key-update
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-stripe.mdx b/apps/docs/content/docs/api/reference-stripe.mdx
deleted file mode 100644
index e530c0a..0000000
--- a/apps/docs/content/docs/api/reference-stripe.mdx
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: Stripe
-full: true
-_openapi:
- toc:
- - depth: 2
- title: Stripe get Products
- url: '#stripe-get-products'
- - depth: 2
- title: Stripe create Checkout Session
- url: '#stripe-create-checkout-session'
- - depth: 2
- title: Stripe create Customer Portal Session
- url: '#stripe-create-customer-portal-session'
- - depth: 2
- title: Stripe can Create More Servers
- url: '#stripe-can-create-more-servers'
- structuredData:
- headings:
- - content: Stripe get Products
- id: stripe-get-products
- - content: Stripe create Checkout Session
- id: stripe-create-checkout-session
- - content: Stripe create Customer Portal Session
- id: stripe-create-customer-portal-session
- - content: Stripe can Create More Servers
- id: stripe-can-create-more-servers
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/reference-user.mdx b/apps/docs/content/docs/api/reference-user.mdx
deleted file mode 100644
index 2984521..0000000
--- a/apps/docs/content/docs/api/reference-user.mdx
+++ /dev/null
@@ -1,26 +0,0 @@
----
-title: User
-full: true
-_openapi:
- toc:
- - depth: 2
- title: User all
- url: '#user-all'
- - depth: 2
- title: User by Auth Id
- url: '#user-by-auth-id'
- - depth: 2
- title: User by User Id
- url: '#user-by-user-id'
- structuredData:
- headings:
- - content: User all
- id: user-all
- - content: User by Auth Id
- id: user-by-auth-id
- - content: User by User Id
- id: user-by-user-id
- contents: []
----
-
-
\ No newline at end of file
diff --git a/apps/docs/content/docs/core/applications/advanced.mdx b/apps/docs/content/docs/core/applications/advanced.mdx
index 9847eef..619c22a 100644
--- a/apps/docs/content/docs/core/applications/advanced.mdx
+++ b/apps/docs/content/docs/core/applications/advanced.mdx
@@ -124,7 +124,8 @@ Configure persistent storage for your application to ensure data remains intact
**File Mount**: Specifically for single files, useful for configuration files.
1. **Content**: The content to store in the file.
-2. **Mount Path**: Path in the container where the file is placed.
+2. **File Path**: The name of the file.
+3. **Mount Path**: Path in the container where the file is placed. **The path must also contain the filename.**
File mounts are a dokploy features, this create a file in a folder called `files` inside your project, so it recreates every single time you deploy your project.
diff --git a/apps/docs/content/docs/core/applications/build-type.mdx b/apps/docs/content/docs/core/applications/build-type.mdx
index cb6e9ce..08f103c 100644
--- a/apps/docs/content/docs/core/applications/build-type.mdx
+++ b/apps/docs/content/docs/core/applications/build-type.mdx
@@ -50,11 +50,11 @@ Railpack exposes multiple Build Variables, you can define them in the `Environme
| Name | Description |
| :-------------------- | :--------------------------------------------------------------------------------------------------------- |
-| `BUILD_CMD` | Set the command to run for the build step. This overwrites any commands that come from providers |
-| `START_CMD` | Set the command to run when the container starts |
-| `PACKAGES` | Install additional Mise packages. In the format `pkg@version`. The latest version is used if not provided. |
-| `BUILD_APT_PACKAGES` | Install additional Apt packages during build |
-| `DEPLOY_APT_PACKAGES` | Install additional Apt packages in the final image |
+| `RAILPACK_BUILD_CMD` | Set the command to run for the build step. This overwrites any commands that come from providers |
+| `RAILPACK_START_CMD` | Set the command to run when the container starts |
+| `RAILPACK_PACKAGES` | Install additional Mise packages. In the format `pkg@version`. The latest version is used if not provided. |
+| `RAILPACK_BUILD_APT_PACKAGES` | Install additional Apt packages during build |
+| `RAILPACK_DEPLOY_APT_PACKAGES` | Install additional Apt packages in the final image |
you can read more about Railpack [here](https://railpack.com/config/environment-variables).
diff --git a/apps/docs/content/docs/core/domains/cloudflare.mdx b/apps/docs/content/docs/core/domains/cloudflare.mdx
index 61c353a..a85de68 100644
--- a/apps/docs/content/docs/core/domains/cloudflare.mdx
+++ b/apps/docs/content/docs/core/domains/cloudflare.mdx
@@ -39,8 +39,13 @@ To switch between modes, follow these steps:
Follow the steps in the same order to prevent any issues.
+You can create a certificate for your origin server using two methods:
+- Using Let's Encrypt to generate a certificate for your origin server.
+- Using Cloudflare's Origin CA to generate a certificate for your origin server.
+
We assume that you have enabled the `Full (Strict)` mode in the previous step, is super important to follow the steps in the same order to prevent any issues.
+### Using Let's Encrypt
1. Go to cloudflare dashboard and then click on `Account Home` -> Select the Domain.
2. On the left side, click `DNS`.
3. Click on `Records`.
@@ -62,6 +67,35 @@ We assume that you have enabled the `Full (Strict)` mode in the previous step, i
19. Wait a few seconds and refresh the application.
20. You should see the application running on the domain you just created.
+### Using Cloudflare's Origin CA
+1. Go to cloudflare dashboard and then click on `Account Home` -> Select the Domain.
+2. On the left side, click `SSL/TLS`.
+3. Click on `Origin Server`.
+4. Click on `Create Certificate`.
+5. Select `Generate private key and CSR with Cloudflare`.
+6. Choose the list of hostnames you want the certificate to cover eg. `api.dokploy.com`.
+7. Choose the validity period eg. `15 years`.
+8. Click `Create`.
+9. Using the PEM format, copy the `Origin Certificate` and `Private Key` in the respective fields in the dokploy new certificate panel (Certificates > Add Certificate).
+10. Go to `Domains` section in your application.
+11. Click `Create Domain`.
+12. In the `Host` field, enter the domain name eg. `api.dokploy.com`. (Make sure that the domain is already pointing to your server IP in Cloudflare DNS settings and the **hostname matches the one in the certificate**).
+13. In the `Path` field, enter the path eg. `/`.
+14. In the `Container Port` field, enter the port where your application is running eg. `3000`.
+15. In the `HTTPS` field enable `ON`.
+16. In the `Certificate` field select `None`.
+17. Click `Create`.
+
+Using Cloudflare's Origin CA, you are sure that the certificate will be valid for the next 15 years, or the duration you selected, and you don't have to worry about failed renewals.
+
+
+You can also create a certificate for wildcards domains eg. `*.dokploy.com` and use it for multiple subdomains.
+
+
+
+**Important**: With a free Cloudflare account, this methods work only for the main domain and subdomains, not for sub-subdomains. Eg. `api.dokploy.com` works but `staging.api.dokploy.com` does not work.
+
+
## Assign a Domain Flexible
diff --git a/apps/docs/content/docs/core/goodies.mdx b/apps/docs/content/docs/core/goodies.mdx
index 66c88d0..05c41bf 100644
--- a/apps/docs/content/docs/core/goodies.mdx
+++ b/apps/docs/content/docs/core/goodies.mdx
@@ -7,6 +7,7 @@ description: "Dokploy has certain goodies that are external that can be used wit
2. **Dokploy Oracle infrastructure**: Deploy Dokploy on Oracle infrastructure [Github](https://github.com/statickidz/dokploy-oci-free)
3. **Dokploy Deploy Action 1**: Automatic Dokploy deployments on Github [Github](https://github.com/benbristow/dokploy-deploy-action)
4. **Dokploy Deploy Action 2**: Automatic Dokploy deployments on Github [Github](https://github.com/jmischler72/dokploy-deploy-action)
+5. **Dokploy Deploy Action 3**: Automatic Dokploy deployments on Github (Support both `application` and `compose` deployment) [Github](https://github.com/nhridoy/dokploy-deploy-action)
5. **Dokploy JS Sdk**: Dokploy JS SDK [Github](https://github.com/quiint/dokploy.js)
6. **Templates Collection** : Docker compose collection for Dokploy [Github](https://github.com/benbristow/dokploy-compose-templates)
7. **Dokploy Port Updater**: Dokploy Port Updater [Github](https://github.com/clockradios/dokploy-port-updater)
diff --git a/apps/docs/content/docs/core/manual-installation.mdx b/apps/docs/content/docs/core/manual-installation.mdx
index a4cd347..ce8f6af 100644
--- a/apps/docs/content/docs/core/manual-installation.mdx
+++ b/apps/docs/content/docs/core/manual-installation.mdx
@@ -133,14 +133,14 @@ install_dokploy() {
--env POSTGRES_USER=dokploy \
--env POSTGRES_DB=dokploy \
--env POSTGRES_PASSWORD=amukds4wi9001583845717ad2 \
- --mount type=volume,source=dokploy-postgres-database,target=/var/lib/postgresql/data \
+ --mount type=volume,source=dokploy-postgres,target=/var/lib/postgresql/data \
postgres:16
docker service create \
--name dokploy-redis \
--constraint 'node.role==manager' \
--network dokploy-network \
- --mount type=volume,source=redis-data-volume,target=/data \
+ --mount type=volume,source=dokploy-redis,target=/data \
redis:7
docker pull traefik:v3.6.1
@@ -153,7 +153,7 @@ install_dokploy() {
--network dokploy-network \
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
--mount type=bind,source=/etc/dokploy,target=/etc/dokploy \
- --mount type=volume,source=dokploy-docker-config,target=/root/.docker \
+ --mount type=volume,source=dokploy,target=/root/.docker \
--publish published=3000,target=3000,mode=host \
--update-parallelism 1 \
--update-order stop-first \
diff --git a/apps/docs/content/docs/core/troubleshooting.mdx b/apps/docs/content/docs/core/troubleshooting.mdx
index 20e888a..ea0ffbf 100644
--- a/apps/docs/content/docs/core/troubleshooting.mdx
+++ b/apps/docs/content/docs/core/troubleshooting.mdx
@@ -439,7 +439,7 @@ docker service rm dokploy-redis
--name dokploy-redis \
--constraint 'node.role==manager' \
--network dokploy-network \
- --mount type=volume,source=redis-data-volume,target=/data \
+ --mount type=volume,source=dokploy-redis,target=/data \
redis:7
```
@@ -456,7 +456,7 @@ docker service rm dokploy-postgres
--env POSTGRES_USER=dokploy \
--env POSTGRES_DB=dokploy \
--env POSTGRES_PASSWORD=amukds4wi9001583845717ad2 \
- --mount type=volume,source=dokploy-postgres-database,target=/var/lib/postgresql/data \
+ --mount type=volume,source=dokploy-postgres,target=/var/lib/postgresql/data \
postgres:16
```
@@ -484,16 +484,17 @@ docker network connect dokploy-network dokploy-traefik
docker service rm dokploy-traefik
# Create a new dokploy-traefik service
-docker run -d \
- --name dokploy-traefik \
- --restart always \
- -v /etc/dokploy/traefik/traefik.yml:/etc/traefik/traefik.yml \
- -v /etc/dokploy/traefik/dynamic:/etc/dokploy/traefik/dynamic \
- -v /var/run/docker.sock:/var/run/docker.sock:ro \
- -p 80:80/tcp \
- -p 443:443/tcp \
- -p 443:443/udp \
- traefik:v3.6.1
+docker service create \
+ --name dokploy-traefik \
+ --constraint 'node.role==manager' \
+ --network dokploy-network \
+ --mount type=bind,source=/etc/dokploy/traefik/traefik.yml,target=/etc/traefik/traefik.yml \
+ --mount type=bind,source=/etc/dokploy/traefik/dynamic,target=/etc/dokploy/traefik/dynamic \
+ --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
+ --publish mode=host,published=443,target=443 \
+ --publish mode=host,published=80,target=80 \
+ --publish mode=host,published=443,target=443,protocol=udp \
+ traefik:v3.6.1
```
Remove the dokploy service:
@@ -517,7 +518,7 @@ docker service create \
--network dokploy-network \
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
--mount type=bind,source=/etc/dokploy,target=/etc/dokploy \
- --mount type=volume,source=dokploy-docker-config,target=/root/.docker \
+ --mount type=volume,source=dokploy,target=/root/.docker \
--publish published=3000,target=3000,mode=host \
--update-parallelism 1 \
--update-order stop-first \
diff --git a/apps/docs/generate-docs.mjs b/apps/docs/generate-docs.mjs
index fc6f488..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: ["./api.json"],
+ input: ["./public/openapi.json"],
output: "./content/docs/api/generated",
per: "tag",
name: (tag, name) => {
@@ -10,6 +10,7 @@ try {
return `reference-${name}`;
},
});
+ console.log("Done");
} catch (error) {
console.error(error);
}
diff --git a/apps/docs/package.json b/apps/docs/package.json
index 5ef7cc9..f15250f 100644
--- a/apps/docs/package.json
+++ b/apps/docs/package.json
@@ -7,7 +7,8 @@
"dev": "TURBOPACK=1 next dev",
"start": "next start",
"postinstall": "fumadocs-mdx",
- "build:docs": "node generate-docs.mjs",
+ "fix-openapi": "node scripts/fix-openapi.mjs",
+ "build:docs": "npm run fix-openapi && node generate-docs.mjs",
"typecheck": "tsc --noEmit"
},
"dependencies": {
diff --git a/apps/docs/public/assets/file-mount-configuration.webp b/apps/docs/public/assets/file-mount-configuration.webp
index ad3a4be..7db65fe 100644
Binary files a/apps/docs/public/assets/file-mount-configuration.webp and b/apps/docs/public/assets/file-mount-configuration.webp differ
diff --git a/apps/docs/public/openapi.json b/apps/docs/public/openapi.json
new file mode 100644
index 0000000..6f587ab
--- /dev/null
+++ b/apps/docs/public/openapi.json
@@ -0,0 +1,23476 @@
+{
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.all": {
+ "get": {
+ "operationId": "project-all",
+ "tags": [
+ "project"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.all": {
+ "get": {
+ "operationId": "user-all",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.get": {
+ "get": {
+ "operationId": "user-get",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.haveRootAccess": {
+ "get": {
+ "operationId": "user-haveRootAccess",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getBackups": {
+ "get": {
+ "operationId": "user-getBackups",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getServerMetrics": {
+ "get": {
+ "operationId": "user-getServerMetrics",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getMetricsToken": {
+ "get": {
+ "operationId": "user-getMetricsToken",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getInvitations": {
+ "get": {
+ "operationId": "user-getInvitations",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.generateToken": {
+ "post": {
+ "operationId": "user-generateToken",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.all": {
+ "get": {
+ "operationId": "destination-all",
+ "tags": [
+ "destination"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.all": {
+ "get": {
+ "operationId": "certificates-all",
+ "tags": [
+ "certificates"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.reloadServer": {
+ "post": {
+ "operationId": "settings-reloadServer",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanRedis": {
+ "post": {
+ "operationId": "settings-cleanRedis",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.reloadRedis": {
+ "post": {
+ "operationId": "settings-reloadRedis",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanMonitoring": {
+ "post": {
+ "operationId": "settings-cleanMonitoring",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanSSHPrivateKey": {
+ "post": {
+ "operationId": "settings-cleanSSHPrivateKey",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readTraefikConfig": {
+ "get": {
+ "operationId": "settings-readTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readWebServerTraefikConfig": {
+ "get": {
+ "operationId": "settings-readWebServerTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readMiddlewareTraefikConfig": {
+ "get": {
+ "operationId": "settings-readMiddlewareTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getUpdateData": {
+ "post": {
+ "operationId": "settings-getUpdateData",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateServer": {
+ "post": {
+ "operationId": "settings-updateServer",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getDokployVersion": {
+ "get": {
+ "operationId": "settings-getDokployVersion",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getReleaseTag": {
+ "get": {
+ "operationId": "settings-getReleaseTag",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getIp": {
+ "get": {
+ "operationId": "settings-getIp",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getOpenApiDocument": {
+ "get": {
+ "operationId": "settings-getOpenApiDocument",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.haveActivateRequests": {
+ "get": {
+ "operationId": "settings-haveActivateRequests",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.isCloud": {
+ "get": {
+ "operationId": "settings-isCloud",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.isUserSubscribed": {
+ "get": {
+ "operationId": "settings-isUserSubscribed",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.health": {
+ "get": {
+ "operationId": "settings-health",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getLogCleanupStatus": {
+ "get": {
+ "operationId": "settings-getLogCleanupStatus",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getDokployCloudIps": {
+ "get": {
+ "operationId": "settings-getDokployCloudIps",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.all": {
+ "get": {
+ "operationId": "registry-all",
+ "tags": [
+ "registry"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.all": {
+ "get": {
+ "operationId": "notification-all",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.getEmailProviders": {
+ "get": {
+ "operationId": "notification-getEmailProviders",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.all": {
+ "get": {
+ "operationId": "sshKey-all",
+ "tags": [
+ "sshKey"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitProvider.getAll": {
+ "get": {
+ "operationId": "gitProvider-getAll",
+ "tags": [
+ "gitProvider"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.giteaProviders": {
+ "get": {
+ "operationId": "gitea-giteaProviders",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.bitbucketProviders": {
+ "get": {
+ "operationId": "bitbucket-bitbucketProviders",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.gitlabProviders": {
+ "get": {
+ "operationId": "gitlab-gitlabProviders",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.githubProviders": {
+ "get": {
+ "operationId": "github-githubProviders",
+ "tags": [
+ "github"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.all": {
+ "get": {
+ "operationId": "server-all",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.count": {
+ "get": {
+ "operationId": "server-count",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.withSSHKey": {
+ "get": {
+ "operationId": "server-withSSHKey",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.buildServers": {
+ "get": {
+ "operationId": "server-buildServers",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.publicIp": {
+ "get": {
+ "operationId": "server-publicIp",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.getServerTime": {
+ "get": {
+ "operationId": "server-getServerTime",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.getProducts": {
+ "get": {
+ "operationId": "stripe-getProducts",
+ "tags": [
+ "stripe"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.createCustomerPortalSession": {
+ "post": {
+ "operationId": "stripe-createCustomerPortalSession",
+ "tags": [
+ "stripe"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.canCreateMoreServers": {
+ "get": {
+ "operationId": "stripe-canCreateMoreServers",
+ "tags": [
+ "stripe"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.getAll": {
+ "get": {
+ "operationId": "ai-getAll",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.all": {
+ "get": {
+ "operationId": "organization-all",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.allInvitations": {
+ "get": {
+ "operationId": "organization-allInvitations",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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": {
+ "schema": {
+ "type": "object",
+ "description": "Successful response"
+ }
+ }
+ }
+ },
+ "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."
+ },
+ "Authorization": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "API key authentication using Authorization header"
+ }
+ },
+ "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
diff --git a/apps/docs/scripts/fix-openapi.mjs b/apps/docs/scripts/fix-openapi.mjs
new file mode 100644
index 0000000..1c0a417
--- /dev/null
+++ b/apps/docs/scripts/fix-openapi.mjs
@@ -0,0 +1,65 @@
+import { readFileSync, writeFileSync } from 'fs';
+import { join } from 'path';
+
+const openapiPath = join(process.cwd(), 'public', 'openapi.json');
+
+console.log('Fixing OpenAPI schema...');
+
+try {
+ const openapi = JSON.parse(readFileSync(openapiPath, 'utf8'));
+
+ let fixed = 0;
+ let securityFixed = false;
+
+ // Fix missing Authorization security scheme
+ if (!openapi.components) {
+ openapi.components = {};
+ }
+ if (!openapi.components.securitySchemes) {
+ openapi.components.securitySchemes = {};
+ }
+ if (!openapi.components.securitySchemes.Authorization) {
+ openapi.components.securitySchemes.Authorization = {
+ type: 'apiKey',
+ in: 'header',
+ name: 'Authorization',
+ description: 'API key authentication using Authorization header'
+ };
+ securityFixed = true;
+ }
+
+ // Fix empty response schemas
+ for (const [path, pathItem] of Object.entries(openapi.paths || {})) {
+ for (const [method, operation] of Object.entries(pathItem)) {
+ if (operation.responses) {
+ for (const [status, response] of Object.entries(operation.responses)) {
+ if (response.content && response.content['application/json']) {
+ const content = response.content['application/json'];
+ // Check if schema is completely empty or missing
+ if (Object.keys(content).length === 0 || !content.schema) {
+ response.content['application/json'] = {
+ schema: {
+ type: 'object',
+ description: 'Successful response'
+ }
+ };
+ fixed++;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if (fixed > 0 || securityFixed) {
+ writeFileSync(openapiPath, JSON.stringify(openapi, null, 2));
+ if (fixed > 0) console.log(`✓ Fixed ${fixed} empty response schemas`);
+ if (securityFixed) console.log(`✓ Added missing Authorization security scheme`);
+ } else {
+ console.log('✓ No fixes needed');
+ }
+} catch (error) {
+ console.error('Error fixing OpenAPI schema:', error.message);
+ process.exit(1);
+}
+
diff --git a/apps/website/app/[locale]/[...rest]/page.tsx b/apps/website/app/[locale]/[...rest]/page.tsx
deleted file mode 100644
index 0ff9624..0000000
--- a/apps/website/app/[locale]/[...rest]/page.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-import { notFound } from 'next/navigation'
-
-export default function CatchAll() {
- notFound()
-}
diff --git a/apps/website/app/api/og/route.ts b/apps/website/app/api/og/route.ts
index aafbde0..2bbbddd 100644
--- a/apps/website/app/api/og/route.ts
+++ b/apps/website/app/api/og/route.ts
@@ -21,8 +21,6 @@ export async function GET(request: NextRequest) {
return new Response('Post not found', { status: 404 })
}
- console.log('Found post:', post.title)
-
const formattedDate = new Date(post.published_at).toLocaleDateString(
'en-US',
{
@@ -44,8 +42,6 @@ export async function GET(request: NextRequest) {
readingTime: post.reading_time,
})
- console.log('Successfully generated OG image')
-
return new Response(ogImage, {
headers: {
'Content-Type': 'image/png',
diff --git a/apps/website/app/blog/[slug]/page.tsx b/apps/website/app/blog/[slug]/page.tsx
index 5740d6b..4bad59b 100644
--- a/apps/website/app/blog/[slug]/page.tsx
+++ b/apps/website/app/blog/[slug]/page.tsx
@@ -17,7 +17,6 @@ import { CodeBlock } from './components/CodeBlock'
import { H1, H2, H3 } from './components/Headings'
import { TableOfContents } from './components/TableOfContents'
import { ZoomableImage } from './components/ZoomableImage'
-import { useTranslations } from '@/lib/intl'
type Props = {
params: { slug: string }
@@ -72,7 +71,6 @@ export async function generateMetadata(
export default async function BlogPostPage({ params }: Props) {
const { slug } = await params
- const t = useTranslations('blog')
const post = await getPost(slug)
const allPosts = await getPosts()
@@ -237,7 +235,7 @@ export default async function BlogPostPage({ params }: Props) {
clipRule="evenodd"
/>
- {t('backToBlog')}
+ Back to Blog
@@ -326,9 +324,7 @@ export default async function BlogPostPage({ params }: Props) {
{post.tags && post.tags.length > 0 && (
-
- {t('tags')}
-
+
Tags
{post.tags.map((tag) => (
0 && (
-
- {t('relatedPosts')}
-
+
Related Posts
{relatedPosts.map((relatedPost) => {
const relatedPostDate = new Date(
diff --git a/apps/website/app/blog/page.tsx b/apps/website/app/blog/page.tsx
index df37259..5ba5212 100644
--- a/apps/website/app/blog/page.tsx
+++ b/apps/website/app/blog/page.tsx
@@ -5,7 +5,6 @@ import type { Metadata } from 'next'
import Link from 'next/link'
import { BlogPostCard } from './components/BlogPostCard'
import { SearchAndFilter } from './components/SearchAndFilter'
-import { useTranslations } from '@/lib/intl'
interface Tag {
id: string
@@ -14,7 +13,7 @@ interface Tag {
}
export const metadata: Metadata = {
- title: 'Blog | Dokploy',
+ title: 'Blog',
description: 'Latest news, updates, and articles from Dokploy',
}
@@ -24,7 +23,6 @@ export default async function BlogPage({
searchParams: { [key: string]: string | string[] | undefined }
}) {
const searchParams2 = await searchParams
- const t = useTranslations('blog')
const posts = await getPosts()
const tags = (await getTags()) as Tag[]
const search =
@@ -68,14 +66,16 @@ export default async function BlogPage({
tags={tags}
initialSearch={search}
initialTag={selectedTag}
- searchPlaceholder={t('searchPlaceholder')}
- allTagsText={t('allTags')}
+ searchPlaceholder="Search posts..."
+ allTagsText="All Tags"
/>
{filteredPosts.length === 0 ? (
- {search || selectedTag ? t('noResults') : t('noPosts')}
+ {search || selectedTag
+ ? 'No posts found matching your criteria'
+ : 'No posts available'}
) : (
diff --git a/apps/website/app/blog/tag/[tag]/page.tsx b/apps/website/app/blog/tag/[tag]/page.tsx
index 490cd9d..b36a11c 100644
--- a/apps/website/app/blog/tag/[tag]/page.tsx
+++ b/apps/website/app/blog/tag/[tag]/page.tsx
@@ -4,7 +4,6 @@ import type { Metadata } from 'next'
import Image from 'next/image'
import Link from 'next/link'
import { notFound } from 'next/navigation'
-import { useTranslations } from '@/lib/intl'
type Props = {
params: { tag: string }
@@ -12,11 +11,22 @@ type Props = {
export async function generateMetadata({ params }: Props): Promise
{
const { tag } = await params
- const t = useTranslations('blog')
+ const posts = await getPostsByTag(tag)
+
+ if (!posts || posts.length === 0) {
+ return {
+ title: 'Tag Not Found',
+ description: 'The requested tag could not be found',
+ }
+ }
+
+ const tagName =
+ posts[0].tags?.find((t: { slug: string }) => t.slug === tag)?.name ||
+ tag
return {
- title: `${t('tagTitle', { tag })}`,
- description: t('tagDescription', { tag }),
+ title: `${tagName} Posts`,
+ description: `Browse all posts tagged with ${tagName}`,
}
}
@@ -27,7 +37,6 @@ export async function generateStaticParams() {
export default async function TagPage({ params }: Props) {
const { tag } = await params
- const t = useTranslations('blog')
const posts = await getPostsByTag(tag)
if (!posts || posts.length === 0) {
@@ -56,16 +65,16 @@ export default async function TagPage({ params }: Props) {
clipRule="evenodd"
/>
- {t('backToBlog')}
+ Back to Blog
- {t('postsTaggedWith')}{' '}
+ Posts tagged with{' '}
"{tagName}"
- {t('foundPosts', { count: posts.length })}
+ {posts.length} {posts.length === 1 ? 'post' : 'posts'} found
diff --git a/apps/website/app/[locale]/_changelog/page.tsx b/apps/website/app/changelog/page.tsx
similarity index 51%
rename from apps/website/app/[locale]/_changelog/page.tsx
rename to apps/website/app/changelog/page.tsx
index 9c1181d..5fbd963 100644
--- a/apps/website/app/[locale]/_changelog/page.tsx
+++ b/apps/website/app/changelog/page.tsx
@@ -1,6 +1,11 @@
-// import { ScrollArea } from "@/components/ui/scroll-area";
+import type { Metadata } from 'next'
+
+export const metadata: Metadata = {
+ title: 'Changelog',
+ description:
+ 'Stay updated with the latest changes, improvements, and features in Dokploy',
+}
-// Datos de ejemplo del changelog
const changelogEntries = [
{
date: '2023-11-01',
@@ -52,7 +57,7 @@ const changelogEntries = [
},
]
-const Comp = () => {
+export default function ChangelogPage() {
return (