vito/public/api-docs/openapi.yaml
Dimitar Yanakiev e98e974e20
Add endpoint for reading and updating site .env file (#564)
* feat(api): Add endpoint for reading site .env file

- Add GET /api/projects/{project}/servers/{server}/sites/{site}/env endpoint
- Add feature tests with SSH mocking

* added updating env

* fix coding style

* generate docs

---------

Co-authored-by: Saeed Vaziry <mr.saeedvaziry@gmail.com>
2025-04-05 19:59:57 +02:00

6031 lines
181 KiB
YAML

openapi: 3.0.3
info:
title: 'API Documentation'
description: "VitoDeploy's API documentation."
version: 1.0.0
servers:
-
url: 'https://your-vito-url'
paths:
'/api/projects/{project_id}/servers/{server_id}/cron-jobs':
get:
summary: list
operationId: list
description: 'Get all cron jobs.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: null
server_id: null
command: 'ls -la'
user: root
frequency: '* * * * *'
status: ready
created_at: null
updated_at: null
-
id: null
server_id: null
command: 'ls -la'
user: root
frequency: '* * * * *'
status: ready
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: null
server_id: null
command: 'ls -la'
user: root
frequency: '* * * * *'
status: ready
created_at: null
updated_at: null
-
id: null
server_id: null
command: 'ls -la'
user: root
frequency: '* * * * *'
status: ready
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: null
server_id:
type: string
example: null
command:
type: string
example: 'ls -la'
user:
type: string
example: root
frequency:
type: string
example: '* * * * *'
status:
type: string
example: ready
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '&laquo; Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- cron-jobs
post:
summary: create
operationId: create
description: 'Create a new cron job.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: null
server_id: null
command: 'ls -la'
user: root
frequency: '* * * * *'
status: ready
created_at: null
updated_at: null
properties:
id:
type: string
example: null
server_id:
type: string
example: null
command:
type: string
example: 'ls -la'
user:
type: string
example: root
frequency:
type: string
example: '* * * * *'
status:
type: string
example: ready
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- cron-jobs
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
command:
type: string
description: ''
example: quia
nullable: false
user:
type: string
description: ''
example: root
nullable: false
enum:
- root
- vito
frequency:
type: string
description: 'Frequency of the cron job.'
example: '* * * * *'
nullable: false
required:
- command
- user
- frequency
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/cron-jobs/{cronJob_id}':
get:
summary: show
operationId: show
description: 'Get a cron job by ID.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: null
server_id: null
command: 'ls -la'
user: root
frequency: '* * * * *'
status: ready
created_at: null
updated_at: null
properties:
id:
type: string
example: null
server_id:
type: string
example: null
command:
type: string
example: 'ls -la'
user:
type: string
example: root
frequency:
type: string
example: '* * * * *'
status:
type: string
example: ready
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- cron-jobs
delete:
summary: delete
operationId: delete
description: 'Delete cron job.'
parameters: []
responses:
204:
description: ''
tags:
- cron-jobs
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: cronJob_id
description: 'The ID of the cronJob.'
example: 6
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/database-users':
get:
summary: list
operationId: list
description: 'Get all database users.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: null
server_id: null
username: letha64
databases: []
host: '%'
status: null
created_at: null
updated_at: null
-
id: null
server_id: null
username: hagenes.lurline
databases: []
host: '%'
status: null
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: null
server_id: null
username: letha64
databases: []
host: '%'
status: null
created_at: null
updated_at: null
-
id: null
server_id: null
username: hagenes.lurline
databases: []
host: '%'
status: null
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: null
server_id:
type: string
example: null
username:
type: string
example: letha64
databases:
type: array
example: []
host:
type: string
example: '%'
status:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '&laquo; Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- database-users
post:
summary: create
operationId: create
description: 'Create a new database user.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: null
server_id: null
username: marcelle95
databases: []
host: '%'
status: null
created_at: null
updated_at: null
properties:
id:
type: string
example: null
server_id:
type: string
example: null
username:
type: string
example: marcelle95
databases:
type: array
example: []
host:
type: string
example: '%'
status:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- database-users
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
username:
type: string
description: ''
example: qui
nullable: false
password:
type: string
description: ''
example: 'xYv*3,#HQ=5<w!'
nullable: false
host:
type: string
description: 'Host, if it is a remote user.'
example: '%'
nullable: false
required:
- username
- password
- host
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/database-users/{databaseUser_id}':
get:
summary: show
operationId: show
description: 'Get a database user by ID.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: null
server_id: null
username: brandi53
databases: []
host: '%'
status: null
created_at: null
updated_at: null
properties:
id:
type: string
example: null
server_id:
type: string
example: null
username:
type: string
example: brandi53
databases:
type: array
example: []
host:
type: string
example: '%'
status:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- database-users
delete:
summary: delete
operationId: delete
description: 'Delete database user.'
parameters: []
responses:
204:
description: ''
tags:
- database-users
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: databaseUser_id
description: 'The ID of the databaseUser.'
example: 1
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/database-users/{databaseUser_id}/link':
post:
summary: link
operationId: link
description: 'Link to databases'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: null
server_id: null
username: kschmidt
databases: []
host: '%'
status: null
created_at: null
updated_at: null
properties:
id:
type: string
example: null
server_id:
type: string
example: null
username:
type: string
example: kschmidt
databases:
type: array
example: []
host:
type: string
example: '%'
status:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- database-users
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
databases:
type: string
description: 'Array of database names to link to the user.'
example: maiores
nullable: false
required:
- databases
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: databaseUser_id
description: 'The ID of the databaseUser.'
example: 4
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/databases':
get:
summary: list
operationId: list
description: 'Get all databases.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: null
server_id: null
name: leffler.esther
status: ready
created_at: null
updated_at: null
-
id: null
server_id: null
name: rhoda.rutherford
status: ready
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: null
server_id: null
name: leffler.esther
status: ready
created_at: null
updated_at: null
-
id: null
server_id: null
name: rhoda.rutherford
status: ready
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: null
server_id:
type: string
example: null
name:
type: string
example: leffler.esther
status:
type: string
example: ready
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '&laquo; Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- databases
post:
summary: create
operationId: create
description: 'Create a new database.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: null
server_id: null
name: csawayn
status: ready
created_at: null
updated_at: null
properties:
id:
type: string
example: null
server_id:
type: string
example: null
name:
type: string
example: csawayn
status:
type: string
example: ready
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- databases
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: ''
example: quisquam
nullable: false
charset:
type: string
description: ''
example: omnis
nullable: false
collation:
type: string
description: ''
example: at
nullable: false
required:
- name
- charset
- collation
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/databases/{id}':
get:
summary: show
operationId: show
description: 'Get a database by ID.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: null
server_id: null
name: sandrine43
status: ready
created_at: null
updated_at: null
properties:
id:
type: string
example: null
server_id:
type: string
example: null
name:
type: string
example: sandrine43
status:
type: string
example: ready
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- databases
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: id
description: 'The ID of the database.'
example: 8
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/databases/{database_id}':
delete:
summary: delete
operationId: delete
description: 'Delete database.'
parameters: []
responses:
204:
description: ''
tags:
- databases
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: database_id
description: 'The ID of the database.'
example: 8
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/firewall-rules':
get:
summary: list
operationId: list
description: 'Get all firewall rules.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: null
name: ut
server_id: null
type: allow
protocol: tcp
port: 35499
source: 177.130.54.250
mask: 24
note: test
status: null
created_at: null
updated_at: null
-
id: null
name: totam
server_id: null
type: allow
protocol: tcp
port: 29448
source: 181.194.26.13
mask: 24
note: test
status: null
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: null
name: ut
server_id: null
type: allow
protocol: tcp
port: 35499
source: 177.130.54.250
mask: 24
note: test
status: null
created_at: null
updated_at: null
-
id: null
name: totam
server_id: null
type: allow
protocol: tcp
port: 29448
source: 181.194.26.13
mask: 24
note: test
status: null
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: null
name:
type: string
example: ut
server_id:
type: string
example: null
type:
type: string
example: allow
protocol:
type: string
example: tcp
port:
type: integer
example: 35499
source:
type: string
example: 177.130.54.250
mask:
type: integer
example: 24
note:
type: string
example: test
status:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '&laquo; Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- firewall-rules
post:
summary: create
operationId: create
description: 'Create a new firewall rule.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: null
name: omnis
server_id: null
type: allow
protocol: tcp
port: 54634
source: 246.242.9.65
mask: 24
note: test
status: null
created_at: null
updated_at: null
properties:
id:
type: string
example: null
name:
type: string
example: omnis
server_id:
type: string
example: null
type:
type: string
example: allow
protocol:
type: string
example: tcp
port:
type: integer
example: 54634
source:
type: string
example: 246.242.9.65
mask:
type: integer
example: 24
note:
type: string
example: test
status:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- firewall-rules
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: ''
example: sapiente
nullable: false
type:
type: string
description: ''
example: allow
nullable: false
enum:
- allow
- deny
protocol:
type: string
description: ''
example: tcp
nullable: false
enum:
- tcp
- udp
port:
type: string
description: ''
example: et
nullable: false
source:
type: string
description: ''
example: doloribus
nullable: false
mask:
type: string
description: 'Mask for source IP.'
example: '0'
nullable: false
required:
- name
- type
- protocol
- port
- mask
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/firewall-rules/{firewallRule_id}':
put:
summary: edit
operationId: edit
description: 'Update an existing firewall rule.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: null
name: consequatur
server_id: null
type: allow
protocol: tcp
port: 879
source: 206.106.27.116
mask: 24
note: test
status: null
created_at: null
updated_at: null
properties:
id:
type: string
example: null
name:
type: string
example: consequatur
server_id:
type: string
example: null
type:
type: string
example: allow
protocol:
type: string
example: tcp
port:
type: integer
example: 879
source:
type: string
example: 206.106.27.116
mask:
type: integer
example: 24
note:
type: string
example: test
status:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- firewall-rules
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: ''
example: et
nullable: false
type:
type: string
description: ''
example: allow
nullable: false
enum:
- allow
- deny
protocol:
type: string
description: ''
example: tcp
nullable: false
enum:
- tcp
- udp
port:
type: string
description: ''
example: aut
nullable: false
source:
type: string
description: ''
example: et
nullable: false
mask:
type: string
description: 'Mask for source IP.'
example: '0'
nullable: false
required:
- name
- type
- protocol
- port
- mask
get:
summary: show
operationId: show
description: 'Get a firewall rule by ID.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: null
name: dolores
server_id: null
type: allow
protocol: tcp
port: 4691
source: 147.108.28.144
mask: 24
note: test
status: null
created_at: null
updated_at: null
properties:
id:
type: string
example: null
name:
type: string
example: dolores
server_id:
type: string
example: null
type:
type: string
example: allow
protocol:
type: string
example: tcp
port:
type: integer
example: 4691
source:
type: string
example: 147.108.28.144
mask:
type: integer
example: 24
note:
type: string
example: test
status:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- firewall-rules
delete:
summary: delete
operationId: delete
description: 'Delete firewall rule.'
parameters: []
responses:
204:
description: ''
tags:
- firewall-rules
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: firewallRule_id
description: 'The ID of the firewallRule.'
example: 85
required: true
schema:
type: integer
/api/health:
get:
summary: health-check
operationId: healthCheck
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
version: 2.4.0
properties:
success:
type: boolean
example: true
version:
type: string
example: 2.4.0
tags:
- general
security: []
/api/projects:
get:
summary: list
operationId: list
description: 'Get all projects.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 3
name: 'Mr. Drake Nader'
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
-
id: 4
name: 'Wilhelmine Jacobson'
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 3
name: 'Mr. Drake Nader'
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
-
id: 4
name: 'Wilhelmine Jacobson'
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
items:
type: object
properties:
id:
type: integer
example: 3
name:
type: string
example: 'Mr. Drake Nader'
created_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
updated_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '&laquo; Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- projects
post:
summary: create
operationId: create
description: 'Create a new project.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 3
name: 'Pattie Cole'
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
properties:
id:
type: integer
example: 3
name:
type: string
example: 'Pattie Cole'
created_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
updated_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
tags:
- projects
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'The name of the project.'
example: dignissimos
nullable: false
required:
- name
'/api/projects/{id}':
get:
summary: show
operationId: show
description: 'Get a project by ID.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 3
name: 'Mr. Elias Bauch'
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
properties:
id:
type: integer
example: 3
name:
type: string
example: 'Mr. Elias Bauch'
created_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
updated_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
tags:
- projects
put:
summary: update
operationId: update
description: 'Update project.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 3
name: 'Elfrieda Jakubowski'
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
properties:
id:
type: integer
example: 3
name:
type: string
example: 'Elfrieda Jakubowski'
created_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
updated_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
tags:
- projects
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'The name of the project.'
example: sunt
nullable: false
required:
- name
parameters:
-
in: path
name: id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
'/api/projects/{project_id}':
delete:
summary: delete
operationId: delete
description: 'Delete project.'
parameters: []
responses:
204:
description: ''
tags:
- projects
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects':
get:
summary: index
operationId: index
description: 'Get all redirects.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: null
site_id: null
mode: 307
from: ipsum
to: 'http://fritsch.biz/'
status: ready
created_at: null
updated_at: null
-
id: null
site_id: null
mode: 302
from: culpa
to: 'http://www.huels.net/aut-ut-ut-porro-non-rerum-voluptatum.html'
status: ready
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: null
site_id: null
mode: 307
from: ipsum
to: 'http://fritsch.biz/'
status: ready
created_at: null
updated_at: null
-
id: null
site_id: null
mode: 302
from: culpa
to: 'http://www.huels.net/aut-ut-ut-porro-non-rerum-voluptatum.html'
status: ready
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: null
site_id:
type: string
example: null
mode:
type: integer
example: 307
from:
type: string
example: ipsum
to:
type: string
example: 'http://fritsch.biz/'
status:
type: string
example: ready
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '&laquo; Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- redirects
post:
summary: create
operationId: create
description: 'Create a new redirect.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- redirects
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
from:
type: string
description: ''
example: odit
nullable: false
to:
type: string
description: ''
example: incidunt
nullable: false
mode:
type: string
description: ''
example: 301
nullable: false
enum:
- 301
- 302
- 307
- 308
required:
- from
- to
- mode
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: site_id
description: 'The ID of the site.'
example: 44
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects/{redirect_id}':
delete:
summary: delete
operationId: delete
description: 'Delete a redirect.'
parameters: []
responses:
204:
description: ''
tags:
- redirects
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: site_id
description: 'The ID of the site.'
example: 44
required: true
schema:
type: integer
-
in: path
name: redirect_id
description: 'The ID of the redirect.'
example: 9
required: true
schema:
type: integer
'/api/projects/{project_id}/server-providers':
get:
summary: list
operationId: list
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 3
project_id: null
global: true
name: aut
provider: hetzner
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
-
id: 4
project_id: null
global: true
name: qui
provider: aws
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 3
project_id: null
global: true
name: aut
provider: hetzner
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
-
id: 4
project_id: null
global: true
name: qui
provider: aws
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
items:
type: object
properties:
id:
type: integer
example: 3
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: aut
provider:
type: string
example: hetzner
created_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
updated_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '&laquo; Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- server-providers
post:
summary: create
operationId: create
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 3
project_id: null
global: true
name: voluptas
provider: vultr
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
properties:
id:
type: integer
example: 3
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: voluptas
provider:
type: string
example: vultr
created_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
updated_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
tags:
- server-providers
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
provider:
type: string
description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)'
example: corrupti
nullable: false
name:
type: string
description: 'The name of the server provider.'
example: est
nullable: false
token:
type: string
description: 'The token if provider requires api token'
example: rerum
nullable: false
key:
type: string
description: 'The key if provider requires key'
example: ut
nullable: false
secret:
type: string
description: 'The secret if provider requires key'
example: sed
nullable: false
required:
- provider
- name
- token
- key
- secret
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
'/api/projects/{project_id}/server-providers/{serverProvider_id}':
get:
summary: show
operationId: show
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 3
project_id: null
global: true
name: et
provider: digitalocean
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
properties:
id:
type: integer
example: 3
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: et
provider:
type: string
example: digitalocean
created_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
updated_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
tags:
- server-providers
put:
summary: update
operationId: update
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 3
project_id: null
global: true
name: architecto
provider: digitalocean
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
properties:
id:
type: integer
example: 3
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: architecto
provider:
type: string
example: digitalocean
created_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
updated_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
tags:
- server-providers
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'The name of the server provider.'
example: earum
nullable: false
global:
type: string
description: 'Accessible in all projects'
example: false
nullable: false
enum:
- true
- false
required:
- name
- global
delete:
summary: delete
operationId: delete
description: ''
parameters: []
responses:
204:
description: ''
tags:
- server-providers
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: serverProvider_id
description: 'The ID of the serverProvider.'
example: 1
required: true
schema:
type: integer
'/api/projects/{project_id}/servers':
get:
summary: list
operationId: list
description: 'Get all servers in a project.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: null
project_id: null
user_id: null
provider_id: null
name: 'Miss Bonita Vandervort IV'
ssh_user: vito
ip: 120.222.195.212
local_ip: 138.119.37.248
port: 22
os: ubuntu_22
type: regular
type_data: null
provider: custom
provider_data: null
public_key: test
status: ready
auto_update: null
available_updates: 0
security_updates: null
progress: 100
progress_step: null
updates: null
last_update_check: null
created_at: null
updated_at: null
-
id: null
project_id: null
user_id: null
provider_id: null
name: 'Dr. Shanie Batz IV'
ssh_user: vito
ip: 241.88.138.163
local_ip: 138.226.232.93
port: 22
os: ubuntu_22
type: regular
type_data: null
provider: custom
provider_data: null
public_key: test
status: ready
auto_update: null
available_updates: 0
security_updates: null
progress: 100
progress_step: null
updates: null
last_update_check: null
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: null
project_id: null
user_id: null
provider_id: null
name: 'Miss Bonita Vandervort IV'
ssh_user: vito
ip: 120.222.195.212
local_ip: 138.119.37.248
port: 22
os: ubuntu_22
type: regular
type_data: null
provider: custom
provider_data: null
public_key: test
status: ready
auto_update: null
available_updates: 0
security_updates: null
progress: 100
progress_step: null
updates: null
last_update_check: null
created_at: null
updated_at: null
-
id: null
project_id: null
user_id: null
provider_id: null
name: 'Dr. Shanie Batz IV'
ssh_user: vito
ip: 241.88.138.163
local_ip: 138.226.232.93
port: 22
os: ubuntu_22
type: regular
type_data: null
provider: custom
provider_data: null
public_key: test
status: ready
auto_update: null
available_updates: 0
security_updates: null
progress: 100
progress_step: null
updates: null
last_update_check: null
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: null
project_id:
type: string
example: null
user_id:
type: string
example: null
provider_id:
type: string
example: null
name:
type: string
example: 'Miss Bonita Vandervort IV'
ssh_user:
type: string
example: vito
ip:
type: string
example: 120.222.195.212
local_ip:
type: string
example: 138.119.37.248
port:
type: integer
example: 22
os:
type: string
example: ubuntu_22
type:
type: string
example: regular
type_data:
type: string
example: null
provider:
type: string
example: custom
provider_data:
type: string
example: null
public_key:
type: string
example: test
status:
type: string
example: ready
auto_update:
type: string
example: null
available_updates:
type: integer
example: 0
security_updates:
type: string
example: null
progress:
type: integer
example: 100
progress_step:
type: string
example: null
updates:
type: string
example: null
last_update_check:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '&laquo; Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- servers
post:
summary: create
operationId: create
description: 'Create a new server.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: null
project_id: null
user_id: null
provider_id: null
name: 'Jeromy Mann'
ssh_user: vito
ip: 128.70.209.89
local_ip: 150.217.250.187
port: 22
os: ubuntu_22
type: regular
type_data: null
provider: custom
provider_data: null
public_key: test
status: ready
auto_update: null
available_updates: 0
security_updates: null
progress: 100
progress_step: null
updates: null
last_update_check: null
created_at: null
updated_at: null
properties:
id:
type: string
example: null
project_id:
type: string
example: null
user_id:
type: string
example: null
provider_id:
type: string
example: null
name:
type: string
example: 'Jeromy Mann'
ssh_user:
type: string
example: vito
ip:
type: string
example: 128.70.209.89
local_ip:
type: string
example: 150.217.250.187
port:
type: integer
example: 22
os:
type: string
example: ubuntu_22
type:
type: string
example: regular
type_data:
type: string
example: null
provider:
type: string
example: custom
provider_data:
type: string
example: null
public_key:
type: string
example: test
status:
type: string
example: ready
auto_update:
type: string
example: null
available_updates:
type: integer
example: 0
security_updates:
type: string
example: null
progress:
type: integer
example: 100
progress_step:
type: string
example: null
updates:
type: string
example: null
last_update_check:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- servers
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
provider:
type: string
description: 'The server provider type'
example: fugiat
nullable: false
server_provider:
type: string
description: 'If the provider is not custom, the ID of the server provider profile'
example: digitalocean
nullable: false
enum:
- custom
- hetzner
- digitalocean
- linode
- vultr
region:
type: string
description: 'Provider region if the provider is not custom'
example: itaque
nullable: false
plan:
type: string
description: 'Provider plan if the provider is not custom'
example: voluptatum
nullable: false
ip:
type: string
description: 'SSH IP address if the provider is custom'
example: ut
nullable: false
port:
type: string
description: 'SSH Port if the provider is custom'
example: reiciendis
nullable: false
name:
type: string
description: 'The name of the server.'
example: et
nullable: false
os:
type: string
description: 'The os of the server'
example: vel
nullable: false
webserver:
type: string
description: 'Web server'
example: nginx
nullable: false
enum:
- none
- nginx
database:
type: string
description: Database
example: mysql80
nullable: false
enum:
- none
- mysql57
- mysql80
- mariadb103
- mariadb104
- mariadb103
- postgresql12
- postgresql13
- postgresql14
- postgresql15
- postgresql16
php:
type: string
description: 'PHP version'
example: '7.2'
nullable: false
enum:
- '7.0'
- '7.1'
- '7.2'
- '7.3'
- '7.4'
- '8.0'
- '8.1'
- '8.2'
- '8.3'
required:
- provider
- server_provider
- region
- plan
- ip
- port
- name
- os
- webserver
- database
- php
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{id}':
get:
summary: show
operationId: show
description: 'Get a server by ID.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: null
project_id: null
user_id: null
provider_id: null
name: 'Miss Maya Schaden I'
ssh_user: vito
ip: 44.57.83.39
local_ip: 46.22.92.58
port: 22
os: ubuntu_22
type: regular
type_data: null
provider: custom
provider_data: null
public_key: test
status: ready
auto_update: null
available_updates: 0
security_updates: null
progress: 100
progress_step: null
updates: null
last_update_check: null
created_at: null
updated_at: null
properties:
id:
type: string
example: null
project_id:
type: string
example: null
user_id:
type: string
example: null
provider_id:
type: string
example: null
name:
type: string
example: 'Miss Maya Schaden I'
ssh_user:
type: string
example: vito
ip:
type: string
example: 44.57.83.39
local_ip:
type: string
example: 46.22.92.58
port:
type: integer
example: 22
os:
type: string
example: ubuntu_22
type:
type: string
example: regular
type_data:
type: string
example: null
provider:
type: string
example: custom
provider_data:
type: string
example: null
public_key:
type: string
example: test
status:
type: string
example: ready
auto_update:
type: string
example: null
available_updates:
type: integer
example: 0
security_updates:
type: string
example: null
progress:
type: integer
example: 100
progress_step:
type: string
example: null
updates:
type: string
example: null
last_update_check:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- servers
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/reboot':
post:
summary: reboot
operationId: reboot
description: 'Reboot a server.'
parameters: []
responses:
204:
description: ''
tags:
- servers
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/upgrade':
post:
summary: upgrade
operationId: upgrade
description: 'Upgrade server.'
parameters: []
responses:
204:
description: ''
tags:
- servers
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}':
delete:
summary: delete
operationId: delete
description: 'Delete server.'
parameters: []
responses:
204:
description: ''
tags:
- servers
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/services':
get:
summary: list
operationId: list
description: 'Get all services.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: null
server_id: null
type: null
type_data: null
name: null
version: null
unit: null
status: null
is_default: null
created_at: null
updated_at: null
-
id: null
server_id: null
type: null
type_data: null
name: null
version: null
unit: null
status: null
is_default: null
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: null
server_id: null
type: null
type_data: null
name: null
version: null
unit: null
status: null
is_default: null
created_at: null
updated_at: null
-
id: null
server_id: null
type: null
type_data: null
name: null
version: null
unit: null
status: null
is_default: null
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: null
server_id:
type: string
example: null
type:
type: string
example: null
type_data:
type: string
example: null
name:
type: string
example: null
version:
type: string
example: null
unit:
type: string
example: null
status:
type: string
example: null
is_default:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '&laquo; Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- services
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/services/{id}':
get:
summary: show
operationId: show
description: 'Get a service by ID.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: null
server_id: null
type: null
type_data: null
name: null
version: null
unit: null
status: null
is_default: null
created_at: null
updated_at: null
properties:
id:
type: string
example: null
server_id:
type: string
example: null
type:
type: string
example: null
type_data:
type: string
example: null
name:
type: string
example: null
version:
type: string
example: null
unit:
type: string
example: null
status:
type: string
example: null
is_default:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- services
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: id
description: 'The ID of the service.'
example: 169
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/services/{service_id}/start':
post:
summary: start
operationId: start
description: 'Start service.'
parameters: []
responses:
204:
description: ''
tags:
- services
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: service_id
description: 'The ID of the service.'
example: 169
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/services/{service_id}/stop':
post:
summary: stop
operationId: stop
description: 'Stop service.'
parameters: []
responses:
204:
description: ''
tags:
- services
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: service_id
description: 'The ID of the service.'
example: 169
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/services/{service_id}/restart':
post:
summary: restart
operationId: restart
description: 'Restart service.'
parameters: []
responses:
204:
description: ''
tags:
- services
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: service_id
description: 'The ID of the service.'
example: 169
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/services/{service_id}/enable':
post:
summary: enable
operationId: enable
description: 'Enable service.'
parameters: []
responses:
204:
description: ''
tags:
- services
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: service_id
description: 'The ID of the service.'
example: 169
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/services/{service_id}/disable':
post:
summary: disable
operationId: disable
description: 'Disable service.'
parameters: []
responses:
204:
description: ''
tags:
- services
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: service_id
description: 'The ID of the service.'
example: 169
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/services/{service_id}':
delete:
summary: delete
operationId: delete
description: 'Delete service.'
parameters: []
responses:
204:
description: ''
tags:
- services
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: service_id
description: 'The ID of the service.'
example: 169
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/sites':
get:
summary: list
operationId: list
description: 'Get all sites.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: null
server_id: null
source_control_id: null
type: laravel
type_data: null
domain: test.com
aliases: null
web_directory: /
path: /home
php_version: '8.2'
repository: null
branch: main
status: ready
port: null
user: vito
progress: 100
created_at: null
updated_at: null
-
id: null
server_id: null
source_control_id: null
type: laravel
type_data: null
domain: test.com
aliases: null
web_directory: /
path: /home
php_version: '8.2'
repository: null
branch: main
status: ready
port: null
user: vito
progress: 100
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: null
server_id: null
source_control_id: null
type: laravel
type_data: null
domain: test.com
aliases: null
web_directory: /
path: /home
php_version: '8.2'
repository: null
branch: main
status: ready
port: null
user: vito
progress: 100
created_at: null
updated_at: null
-
id: null
server_id: null
source_control_id: null
type: laravel
type_data: null
domain: test.com
aliases: null
web_directory: /
path: /home
php_version: '8.2'
repository: null
branch: main
status: ready
port: null
user: vito
progress: 100
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: null
server_id:
type: string
example: null
source_control_id:
type: string
example: null
type:
type: string
example: laravel
type_data:
type: string
example: null
domain:
type: string
example: test.com
aliases:
type: string
example: null
web_directory:
type: string
example: /
path:
type: string
example: /home
php_version:
type: string
example: '8.2'
repository:
type: string
example: null
branch:
type: string
example: main
status:
type: string
example: ready
port:
type: string
example: null
user:
type: string
example: vito
progress:
type: integer
example: 100
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '&laquo; Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- sites
post:
summary: create
operationId: create
description: 'Create a new site.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: null
server_id: null
source_control_id: null
type: laravel
type_data: null
domain: test.com
aliases: null
web_directory: /
path: /home
php_version: '8.2'
repository: null
branch: main
status: ready
port: null
user: vito
progress: 100
created_at: null
updated_at: null
properties:
id:
type: string
example: null
server_id:
type: string
example: null
source_control_id:
type: string
example: null
type:
type: string
example: laravel
type_data:
type: string
example: null
domain:
type: string
example: test.com
aliases:
type: string
example: null
web_directory:
type: string
example: /
path:
type: string
example: /home
php_version:
type: string
example: '8.2'
repository:
type: string
example: null
branch:
type: string
example: main
status:
type: string
example: ready
port:
type: string
example: null
user:
type: string
example: vito
progress:
type: integer
example: 100
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- sites
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
type:
type: string
description: ''
example: php-blank
nullable: false
enum:
- php
- php-blank
- phpmyadmin
- laravel
- wordpress
- load-balancer
domain:
type: string
description: ''
example: impedit
nullable: false
aliases:
type: array
description: ''
example:
- cum
items:
type: string
php_version:
type: string
description: 'One of the installed PHP Versions'
example: '7.4'
nullable: false
web_directory:
type: string
description: 'Required for PHP and Laravel sites'
example: public
nullable: false
source_control:
type: string
description: 'Source control ID, Required for Sites which support source control'
example: non
nullable: false
repository:
type: string
description: 'Repository, Required for Sites which support source control'
example: organization/repository
nullable: false
branch:
type: string
description: 'Branch, Required for Sites which support source control'
example: main
nullable: false
composer:
type: boolean
description: 'Run composer if site supports composer'
example: true
nullable: false
version:
type: string
description: 'Version, if the site type requires a version like PHPMyAdmin'
example: 5.2.1
nullable: false
user:
type: string
description: 'user, to isolate the website under a new user'
example: voluptate
nullable: false
method:
type: string
description: 'Load balancer method, Required if the site type is Load balancer'
example: ip-hash
nullable: false
enum:
- round-robin
- least-connections
- ip-hash
required:
- type
- domain
- aliases
- php_version
- web_directory
- source_control
- repository
- branch
- composer
- version
- user
- method
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/sites/{id}':
get:
summary: show
operationId: show
description: 'Get a site by ID.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: null
server_id: null
source_control_id: null
type: laravel
type_data: null
domain: test.com
aliases: null
web_directory: /
path: /home
php_version: '8.2'
repository: null
branch: main
status: ready
port: null
user: vito
progress: 100
created_at: null
updated_at: null
properties:
id:
type: string
example: null
server_id:
type: string
example: null
source_control_id:
type: string
example: null
type:
type: string
example: laravel
type_data:
type: string
example: null
domain:
type: string
example: test.com
aliases:
type: string
example: null
web_directory:
type: string
example: /
path:
type: string
example: /home
php_version:
type: string
example: '8.2'
repository:
type: string
example: null
branch:
type: string
example: main
status:
type: string
example: ready
port:
type: string
example: null
user:
type: string
example: vito
progress:
type: integer
example: 100
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- sites
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: id
description: 'The ID of the site.'
example: 44
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/sites/{site_id}':
delete:
summary: delete
operationId: delete
description: 'Delete site.'
parameters: []
responses:
204:
description: ''
tags:
- sites
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: site_id
description: 'The ID of the site.'
example: 44
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/load-balancer':
post:
summary: load-balancer
operationId: loadBalancer
description: 'Update load balancer.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- sites
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
method:
type: string
description: 'Load balancer method, Required if the site type is Load balancer'
example: round-robin
nullable: false
enum:
- round-robin
- least-connections
- ip-hash
servers:
type: array
description: 'Array of servers including server, port, weight, backup. (server is the local IP of the server)'
example:
- omnis
items:
type: string
required:
- method
- servers
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: site_id
description: 'The ID of the site.'
example: 44
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/aliases':
put:
summary: aliases
operationId: aliases
description: 'Update aliases.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- sites
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
aliases:
type: array
description: 'Array of aliases'
example:
- doloremque
items:
type: string
required:
- aliases
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: site_id
description: 'The ID of the site.'
example: 44
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deploy':
post:
summary: deploy
operationId: deploy
description: 'Run site deployment script'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- sites
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: site_id
description: 'The ID of the site.'
example: 44
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deployment-script':
put:
summary: deployment-script
operationId: deploymentScript
description: 'Update site deployment script'
parameters: []
responses:
204:
description: ''
tags:
- sites
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
script:
type: string
description: 'Content of the deployment script'
example: voluptatem
nullable: false
required:
- script
get:
summary: deployment-script
operationId: deploymentScript
description: 'Get site deployment script content'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- sites
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: site_id
description: 'The ID of the site.'
example: 44
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/env':
get:
summary: env
operationId: env
description: 'Get site .env file content'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
env: APP_NAME=Laravel\nAPP_ENV=production
properties:
data:
type: object
properties:
env:
type: string
example: APP_NAME=Laravel\nAPP_ENV=production
tags:
- sites
put:
summary: env
operationId: env
description: 'Update site .env file'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- sites
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
env:
type: string
description: 'Content of the .env file'
example: quam
nullable: false
required:
- env
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: site_id
description: 'The ID of the site.'
example: 44
required: true
schema:
type: integer
'/api/projects/{project_id}/source-controls':
get:
summary: list
operationId: list
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 5
project_id: null
global: true
name: 'Zella Robel'
provider: github
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
-
id: 6
project_id: null
global: true
name: 'Jairo Williamson'
provider: github
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 5
project_id: null
global: true
name: 'Zella Robel'
provider: github
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
-
id: 6
project_id: null
global: true
name: 'Jairo Williamson'
provider: github
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
items:
type: object
properties:
id:
type: integer
example: 5
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: 'Zella Robel'
provider:
type: string
example: github
created_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
updated_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '&laquo; Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- source-controls
post:
summary: create
operationId: create
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 5
project_id: null
global: true
name: 'Miss Claudine Goyette'
provider: github
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
properties:
id:
type: integer
example: 5
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: 'Miss Claudine Goyette'
provider:
type: string
example: github
created_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
updated_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
tags:
- source-controls
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
provider:
type: string
description: 'The provider'
example: gitlab
nullable: false
enum:
- gitlab
- github
- bitbucket
name:
type: string
description: 'The name of the storage provider.'
example: molestias
nullable: false
token:
type: string
description: 'The token if provider requires api token'
example: in
nullable: false
url:
type: string
description: 'The URL if the provider is Gitlab and it is self-hosted'
example: 'https://www.white.com/aperiam-dolor-nemo-qui-rerum-quod-quas'
nullable: false
username:
type: string
description: 'The username if the provider is Bitbucket'
example: consectetur
nullable: false
password:
type: string
description: 'The password if the provider is Bitbucket'
example: 'y*P4_]ZdjE_:'
nullable: false
required:
- provider
- name
- token
- url
- username
- password
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
'/api/projects/{project_id}/source-controls/{sourceControl_id}':
get:
summary: show
operationId: show
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 5
project_id: null
global: true
name: 'Mona Stark'
provider: github
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
properties:
id:
type: integer
example: 5
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: 'Mona Stark'
provider:
type: string
example: github
created_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
updated_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
tags:
- source-controls
put:
summary: update
operationId: update
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 5
project_id: null
global: true
name: 'Neha Little'
provider: github
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
properties:
id:
type: integer
example: 5
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: 'Neha Little'
provider:
type: string
example: github
created_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
updated_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
tags:
- source-controls
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'The name of the storage provider.'
example: non
nullable: false
token:
type: string
description: 'The token if provider requires api token'
example: sunt
nullable: false
url:
type: string
description: 'The URL if the provider is Gitlab and it is self-hosted'
example: 'https://www.frami.org/ex-at-minus-rerum-quo-minus-ea'
nullable: false
username:
type: string
description: 'The username if the provider is Bitbucket'
example: natus
nullable: false
password:
type: string
description: 'The password if the provider is Bitbucket'
example: 'A^">*m{p]DI'
nullable: false
global:
type: string
description: 'Accessible in all projects'
example: true
nullable: false
enum:
- true
- false
required:
- name
- token
- url
- username
- password
- global
delete:
summary: delete
operationId: delete
description: ''
parameters: []
responses:
204:
description: ''
tags:
- source-controls
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: sourceControl_id
description: 'The ID of the sourceControl.'
example: 1
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/ssh-keys':
get:
summary: list
operationId: list
description: 'Get all ssh keys.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: null
user: null
name: 'Santa Goyette'
created_at: null
updated_at: null
-
id: null
user: null
name: 'Cecil Cummings'
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: null
user: null
name: 'Santa Goyette'
created_at: null
updated_at: null
-
id: null
user: null
name: 'Cecil Cummings'
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: null
user:
type: string
example: null
name:
type: string
example: 'Santa Goyette'
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '&laquo; Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- ssh-keys
post:
summary: create
operationId: create
description: 'Deploy ssh key to server.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: null
user: null
name: 'Mr. Reagan Jacobson V'
created_at: null
updated_at: null
properties:
id:
type: string
example: null
user:
type: string
example: null
name:
type: string
example: 'Mr. Reagan Jacobson V'
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- ssh-keys
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
key_id:
type: string
description: 'The ID of the key.'
example: explicabo
nullable: false
name:
type: string
description: 'Key name, required if key_id is not provided.'
example: deleniti
nullable: false
public_key:
type: string
description: 'Public Key, required if key_id is not provided.'
example: sapiente
nullable: false
required:
- key_id
- name
- public_key
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/ssh-keys/{sshKey_id}':
delete:
summary: delete
operationId: delete
description: 'Delete ssh key from server.'
parameters: []
responses:
204:
description: ''
tags:
- ssh-keys
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 29
required: true
schema:
type: integer
-
in: path
name: sshKey_id
description: 'The ID of the sshKey.'
example: 1
required: true
schema:
type: integer
'/api/projects/{project_id}/storage-providers':
get:
summary: list
operationId: list
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 5
project_id: null
global: true
name: veritatis
provider: ftp
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
-
id: 6
project_id: null
global: true
name: voluptas
provider: dropbox
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 5
project_id: null
global: true
name: veritatis
provider: ftp
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
-
id: 6
project_id: null
global: true
name: voluptas
provider: dropbox
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
items:
type: object
properties:
id:
type: integer
example: 5
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: veritatis
provider:
type: string
example: ftp
created_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
updated_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '&laquo; Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next &raquo;'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '&laquo; Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- storage-providers
post:
summary: create
operationId: create
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 5
project_id: null
global: true
name: asperiores
provider: dropbox
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
properties:
id:
type: integer
example: 5
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: asperiores
provider:
type: string
example: dropbox
created_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
updated_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
tags:
- storage-providers
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
provider:
type: string
description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)'
example: ab
nullable: false
name:
type: string
description: 'The name of the storage provider.'
example: quo
nullable: false
token:
type: string
description: 'The token if provider requires api token'
example: in
nullable: false
key:
type: string
description: 'The key if provider requires key'
example: sunt
nullable: false
secret:
type: string
description: 'The secret if provider requires key'
example: molestias
nullable: false
required:
- provider
- name
- token
- key
- secret
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
'/api/projects/{project_id}/storage-providers/{storageProvider_id}':
get:
summary: show
operationId: show
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 5
project_id: null
global: true
name: ipsum
provider: local
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
properties:
id:
type: integer
example: 5
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: ipsum
provider:
type: string
example: local
created_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
updated_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
tags:
- storage-providers
put:
summary: update
operationId: update
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 5
project_id: null
global: true
name: minima
provider: ftp
created_at: '2025-04-05T17:48:03.000000Z'
updated_at: '2025-04-05T17:48:03.000000Z'
properties:
id:
type: integer
example: 5
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: minima
provider:
type: string
example: ftp
created_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
updated_at:
type: string
example: '2025-04-05T17:48:03.000000Z'
tags:
- storage-providers
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'The name of the storage provider.'
example: voluptas
nullable: false
global:
type: string
description: 'Accessible in all projects'
example: true
nullable: false
enum:
- true
- false
required:
- name
- global
delete:
summary: delete
operationId: delete
description: ''
parameters: []
responses:
204:
description: ''
tags:
- storage-providers
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: storageProvider_id
description: 'The ID of the storageProvider.'
example: 3
required: true
schema:
type: integer
tags:
-
name: cron-jobs
description: ''
-
name: database-users
description: ''
-
name: databases
description: ''
-
name: firewall-rules
description: ''
-
name: general
description: ''
-
name: projects
description: ''
-
name: redirects
description: ''
-
name: server-providers
description: ''
-
name: servers
description: ''
-
name: services
description: ''
-
name: sites
description: ''
-
name: source-controls
description: ''
-
name: ssh-keys
description: ''
-
name: storage-providers
description: ''
components:
securitySchemes:
default:
type: http
scheme: bearer
description: 'You can retrieve your token by visiting <a href="/settings/api-keys" target="_blank">here</a>'
security:
-
default: []