vito/public/api-docs/openapi.yaml
Dimitar Yanakiev 2a670146d8
Add endpoint for triggering site deployment (#563)
* feat(api): Add endpoint for triggering site deployment

- Add POST /api/projects/{project}/servers/{server}/sites/{site}/deploy endpoint
- Add feature tests

* fix merge issue and generate api docs

* fix merge

---------

Co-authored-by: Saeed Vaziry <61919774+saeedvaziry@users.noreply.github.com>
Co-authored-by: Saeed Vaziry <mr.saeedvaziry@gmail.com>
2025-04-05 19:41:52 +02:00

5952 lines
179 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: nisi
nullable: false
user:
type: string
description: ''
example: vito
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: 14
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: lavina.zemlak
databases: []
host: '%'
status: null
created_at: null
updated_at: null
-
id: null
server_id: null
username: hill.cassidy
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: lavina.zemlak
databases: []
host: '%'
status: null
created_at: null
updated_at: null
-
id: null
server_id: null
username: hill.cassidy
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: lavina.zemlak
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: irwin45
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: irwin45
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: tempore
nullable: false
password:
type: string
description: ''
example: '!jUv.BBc]X'
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: frederic.koss
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: frederic.koss
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: 3
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: georgiana.hand
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: georgiana.hand
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: numquam
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: 12
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: conn.bridget
status: ready
created_at: null
updated_at: null
-
id: null
server_id: null
name: aiden47
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: conn.bridget
status: ready
created_at: null
updated_at: null
-
id: null
server_id: null
name: aiden47
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: conn.bridget
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: rodolfo.bradtke
status: ready
created_at: null
updated_at: null
properties:
id:
type: string
example: null
server_id:
type: string
example: null
name:
type: string
example: rodolfo.bradtke
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: vel
nullable: false
charset:
type: string
description: ''
example: qui
nullable: false
collation:
type: string
description: ''
example: autem
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: rhane
status: ready
created_at: null
updated_at: null
properties:
id:
type: string
example: null
server_id:
type: string
example: null
name:
type: string
example: rhane
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: 17
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: 5
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: sit
server_id: null
type: allow
protocol: tcp
port: 59225
source: 130.41.114.80
mask: 24
note: test
status: null
created_at: null
updated_at: null
-
id: null
name: sequi
server_id: null
type: allow
protocol: tcp
port: 17864
source: 170.103.31.60
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: sit
server_id: null
type: allow
protocol: tcp
port: 59225
source: 130.41.114.80
mask: 24
note: test
status: null
created_at: null
updated_at: null
-
id: null
name: sequi
server_id: null
type: allow
protocol: tcp
port: 17864
source: 170.103.31.60
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: sit
server_id:
type: string
example: null
type:
type: string
example: allow
protocol:
type: string
example: tcp
port:
type: integer
example: 59225
source:
type: string
example: 130.41.114.80
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: consequuntur
server_id: null
type: allow
protocol: tcp
port: 50101
source: 133.245.21.1
mask: 24
note: test
status: null
created_at: null
updated_at: null
properties:
id:
type: string
example: null
name:
type: string
example: consequuntur
server_id:
type: string
example: null
type:
type: string
example: allow
protocol:
type: string
example: tcp
port:
type: integer
example: 50101
source:
type: string
example: 133.245.21.1
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: eum
nullable: false
type:
type: string
description: ''
example: deny
nullable: false
enum:
- allow
- deny
protocol:
type: string
description: ''
example: udp
nullable: false
enum:
- tcp
- udp
port:
type: string
description: ''
example: incidunt
nullable: false
source:
type: string
description: ''
example: quisquam
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: numquam
server_id: null
type: allow
protocol: tcp
port: 52010
source: 159.227.119.185
mask: 24
note: test
status: null
created_at: null
updated_at: null
properties:
id:
type: string
example: null
name:
type: string
example: numquam
server_id:
type: string
example: null
type:
type: string
example: allow
protocol:
type: string
example: tcp
port:
type: integer
example: 52010
source:
type: string
example: 159.227.119.185
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: dolor
nullable: false
type:
type: string
description: ''
example: deny
nullable: false
enum:
- allow
- deny
protocol:
type: string
description: ''
example: tcp
nullable: false
enum:
- tcp
- udp
port:
type: string
description: ''
example: qui
nullable: false
source:
type: string
description: ''
example: porro
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: voluptatem
server_id: null
type: allow
protocol: tcp
port: 5812
source: 122.105.250.56
mask: 24
note: test
status: null
created_at: null
updated_at: null
properties:
id:
type: string
example: null
name:
type: string
example: voluptatem
server_id:
type: string
example: null
type:
type: string
example: allow
protocol:
type: string
example: tcp
port:
type: integer
example: 5812
source:
type: string
example: 122.105.250.56
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: 'Selina Wintheiser DDS'
created_at: '2025-04-05T17:35:55.000000Z'
updated_at: '2025-04-05T17:35:55.000000Z'
-
id: 4
name: 'Shanna Deckow'
created_at: '2025-04-05T17:35:55.000000Z'
updated_at: '2025-04-05T17:35:55.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: 'Selina Wintheiser DDS'
created_at: '2025-04-05T17:35:55.000000Z'
updated_at: '2025-04-05T17:35:55.000000Z'
-
id: 4
name: 'Shanna Deckow'
created_at: '2025-04-05T17:35:55.000000Z'
updated_at: '2025-04-05T17:35:55.000000Z'
items:
type: object
properties:
id:
type: integer
example: 3
name:
type: string
example: 'Selina Wintheiser DDS'
created_at:
type: string
example: '2025-04-05T17:35:55.000000Z'
updated_at:
type: string
example: '2025-04-05T17:35:55.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: 'Mr. Johathan Koch'
created_at: '2025-04-05T17:35:55.000000Z'
updated_at: '2025-04-05T17:35:55.000000Z'
properties:
id:
type: integer
example: 3
name:
type: string
example: 'Mr. Johathan Koch'
created_at:
type: string
example: '2025-04-05T17:35:55.000000Z'
updated_at:
type: string
example: '2025-04-05T17:35:55.000000Z'
tags:
- projects
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'The name of the project.'
example: quibusdam
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: 'Jorge Schulist V'
created_at: '2025-04-05T17:35:55.000000Z'
updated_at: '2025-04-05T17:35:55.000000Z'
properties:
id:
type: integer
example: 3
name:
type: string
example: 'Jorge Schulist V'
created_at:
type: string
example: '2025-04-05T17:35:55.000000Z'
updated_at:
type: string
example: '2025-04-05T17:35:55.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: 'Annie Windler'
created_at: '2025-04-05T17:35:55.000000Z'
updated_at: '2025-04-05T17:35:55.000000Z'
properties:
id:
type: integer
example: 3
name:
type: string
example: 'Annie Windler'
created_at:
type: string
example: '2025-04-05T17:35:55.000000Z'
updated_at:
type: string
example: '2025-04-05T17:35:55.000000Z'
tags:
- projects
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'The name of the project.'
example: enim
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: 301
from: eaque
to: 'http://www.windler.info/delectus-facilis-assumenda-consequatur-impedit-hic-dolorem-non-dolore.html'
status: ready
created_at: null
updated_at: null
-
id: null
site_id: null
mode: 308
from: neque
to: 'http://raynor.biz/velit-a-tempore-quas-explicabo-doloremque'
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: 301
from: eaque
to: 'http://www.windler.info/delectus-facilis-assumenda-consequatur-impedit-hic-dolorem-non-dolore.html'
status: ready
created_at: null
updated_at: null
-
id: null
site_id: null
mode: 308
from: neque
to: 'http://raynor.biz/velit-a-tempore-quas-explicabo-doloremque'
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: 301
from:
type: string
example: eaque
to:
type: string
example: 'http://www.windler.info/delectus-facilis-assumenda-consequatur-impedit-hic-dolorem-non-dolore.html'
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: qui
nullable: false
to:
type: string
description: ''
example: voluptatum
nullable: false
mode:
type: string
description: ''
example: 302
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: ducimus
provider: digitalocean
created_at: '2025-04-05T17:35:55.000000Z'
updated_at: '2025-04-05T17:35:55.000000Z'
-
id: 4
project_id: null
global: true
name: nesciunt
provider: hetzner
created_at: '2025-04-05T17:35:55.000000Z'
updated_at: '2025-04-05T17:35:55.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: ducimus
provider: digitalocean
created_at: '2025-04-05T17:35:55.000000Z'
updated_at: '2025-04-05T17:35:55.000000Z'
-
id: 4
project_id: null
global: true
name: nesciunt
provider: hetzner
created_at: '2025-04-05T17:35:55.000000Z'
updated_at: '2025-04-05T17:35:55.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: ducimus
provider:
type: string
example: digitalocean
created_at:
type: string
example: '2025-04-05T17:35:55.000000Z'
updated_at:
type: string
example: '2025-04-05T17:35:55.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: nemo
provider: linode
created_at: '2025-04-05T17:35:56.000000Z'
updated_at: '2025-04-05T17:35:56.000000Z'
properties:
id:
type: integer
example: 3
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: nemo
provider:
type: string
example: linode
created_at:
type: string
example: '2025-04-05T17:35:56.000000Z'
updated_at:
type: string
example: '2025-04-05T17:35:56.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: sunt
nullable: false
name:
type: string
description: 'The name of the server provider.'
example: aut
nullable: false
token:
type: string
description: 'The token if provider requires api token'
example: id
nullable: false
key:
type: string
description: 'The key if provider requires key'
example: porro
nullable: false
secret:
type: string
description: 'The secret if provider requires key'
example: voluptas
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: ut
provider: aws
created_at: '2025-04-05T17:35:56.000000Z'
updated_at: '2025-04-05T17:35:56.000000Z'
properties:
id:
type: integer
example: 3
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: ut
provider:
type: string
example: aws
created_at:
type: string
example: '2025-04-05T17:35:56.000000Z'
updated_at:
type: string
example: '2025-04-05T17:35:56.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: et
provider: digitalocean
created_at: '2025-04-05T17:35:56.000000Z'
updated_at: '2025-04-05T17:35:56.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:35:56.000000Z'
updated_at:
type: string
example: '2025-04-05T17:35:56.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: aliquam
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:
- 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: 'Marcelino Rodriguez'
ssh_user: vito
ip: 128.182.22.13
local_ip: 19.119.134.124
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: 'Everardo Conn'
ssh_user: vito
ip: 62.215.59.124
local_ip: 32.153.141.12
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: 'Marcelino Rodriguez'
ssh_user: vito
ip: 128.182.22.13
local_ip: 19.119.134.124
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: 'Everardo Conn'
ssh_user: vito
ip: 62.215.59.124
local_ip: 32.153.141.12
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: 'Marcelino Rodriguez'
ssh_user:
type: string
example: vito
ip:
type: string
example: 128.182.22.13
local_ip:
type: string
example: 19.119.134.124
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: 'Sidney Grant'
ssh_user: vito
ip: 22.232.10.97
local_ip: 107.107.187.150
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: 'Sidney Grant'
ssh_user:
type: string
example: vito
ip:
type: string
example: 22.232.10.97
local_ip:
type: string
example: 107.107.187.150
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: ut
nullable: false
server_provider:
type: string
description: 'If the provider is not custom, the ID of the server provider profile'
example: hetzner
nullable: false
enum:
- custom
- hetzner
- digitalocean
- linode
- vultr
region:
type: string
description: 'Provider region if the provider is not custom'
example: consectetur
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: quisquam
nullable: false
port:
type: string
description: 'SSH Port if the provider is custom'
example: sapiente
nullable: false
name:
type: string
description: 'The name of the server.'
example: itaque
nullable: false
os:
type: string
description: 'The os of the server'
example: aut
nullable: false
webserver:
type: string
description: 'Web server'
example: nginx
nullable: false
enum:
- none
- nginx
database:
type: string
description: Database
example: postgresql13
nullable: false
enum:
- none
- mysql57
- mysql80
- mariadb103
- mariadb104
- mariadb103
- postgresql12
- postgresql13
- postgresql14
- postgresql15
- postgresql16
php:
type: string
description: 'PHP version'
example: '7.4'
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: 'Maria Zemlak'
ssh_user: vito
ip: 4.166.233.247
local_ip: 92.197.44.184
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: 'Maria Zemlak'
ssh_user:
type: string
example: vito
ip:
type: string
example: 4.166.233.247
local_ip:
type: string
example: 92.197.44.184
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: wordpress
nullable: false
enum:
- php
- php-blank
- phpmyadmin
- laravel
- wordpress
- load-balancer
domain:
type: string
description: ''
example: ut
nullable: false
aliases:
type: array
description: ''
example:
- vitae
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: animi
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: est
nullable: false
method:
type: string
description: 'Load balancer method, Required if the site type is Load balancer'
example: least-connections
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:
- eaque
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:
- pariatur
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: culpa
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}/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: 'Dawson Ratke IV'
provider: github
created_at: '2025-04-05T17:35:56.000000Z'
updated_at: '2025-04-05T17:35:56.000000Z'
-
id: 6
project_id: null
global: true
name: 'Miss Caterina Mann DVM'
provider: github
created_at: '2025-04-05T17:35:56.000000Z'
updated_at: '2025-04-05T17:35:56.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: 'Dawson Ratke IV'
provider: github
created_at: '2025-04-05T17:35:56.000000Z'
updated_at: '2025-04-05T17:35:56.000000Z'
-
id: 6
project_id: null
global: true
name: 'Miss Caterina Mann DVM'
provider: github
created_at: '2025-04-05T17:35:56.000000Z'
updated_at: '2025-04-05T17:35:56.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: 'Dawson Ratke IV'
provider:
type: string
example: github
created_at:
type: string
example: '2025-04-05T17:35:56.000000Z'
updated_at:
type: string
example: '2025-04-05T17:35:56.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: 'Dr. Adella Greenholt'
provider: github
created_at: '2025-04-05T17:35:56.000000Z'
updated_at: '2025-04-05T17:35:56.000000Z'
properties:
id:
type: integer
example: 5
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: 'Dr. Adella Greenholt'
provider:
type: string
example: github
created_at:
type: string
example: '2025-04-05T17:35:56.000000Z'
updated_at:
type: string
example: '2025-04-05T17:35:56.000000Z'
tags:
- source-controls
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
provider:
type: string
description: 'The provider'
example: github
nullable: false
enum:
- gitlab
- github
- bitbucket
name:
type: string
description: 'The name of the storage provider.'
example: est
nullable: false
token:
type: string
description: 'The token if provider requires api token'
example: ea
nullable: false
url:
type: string
description: 'The URL if the provider is Gitlab and it is self-hosted'
example: 'http://koepp.info/maiores-nostrum-consequuntur-dicta-iure-ullam'
nullable: false
username:
type: string
description: 'The username if the provider is Bitbucket'
example: ducimus
nullable: false
password:
type: string
description: 'The password if the provider is Bitbucket'
example: 'S#AHlt"?l6SDU^b?T6'
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: 'Hettie Farrell'
provider: github
created_at: '2025-04-05T17:35:56.000000Z'
updated_at: '2025-04-05T17:35:56.000000Z'
properties:
id:
type: integer
example: 5
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: 'Hettie Farrell'
provider:
type: string
example: github
created_at:
type: string
example: '2025-04-05T17:35:56.000000Z'
updated_at:
type: string
example: '2025-04-05T17:35:56.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: 'Jadyn Hyatt'
provider: github
created_at: '2025-04-05T17:35:56.000000Z'
updated_at: '2025-04-05T17:35:56.000000Z'
properties:
id:
type: integer
example: 5
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: 'Jadyn Hyatt'
provider:
type: string
example: github
created_at:
type: string
example: '2025-04-05T17:35:56.000000Z'
updated_at:
type: string
example: '2025-04-05T17:35:56.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: sunt
nullable: false
token:
type: string
description: 'The token if provider requires api token'
example: est
nullable: false
url:
type: string
description: 'The URL if the provider is Gitlab and it is self-hosted'
example: 'http://www.fay.com/quisquam-autem-illum-omnis-quo-enim-eligendi-velit'
nullable: false
username:
type: string
description: 'The username if the provider is Bitbucket'
example: ab
nullable: false
password:
type: string
description: 'The password if the provider is Bitbucket'
example: 'M@-*%?(B(UNE~Ibc#'
nullable: false
global:
type: string
description: 'Accessible in all projects'
example: false
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: 'Moriah Kemmer'
created_at: null
updated_at: null
-
id: null
user: null
name: 'Delilah Gaylord'
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: 'Moriah Kemmer'
created_at: null
updated_at: null
-
id: null
user: null
name: 'Delilah Gaylord'
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: null
user:
type: string
example: null
name:
type: string
example: 'Moriah Kemmer'
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: 'Jesse Gleason'
created_at: null
updated_at: null
properties:
id:
type: string
example: null
user:
type: string
example: null
name:
type: string
example: 'Jesse Gleason'
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: id
nullable: false
name:
type: string
description: 'Key name, required if key_id is not provided.'
example: qui
nullable: false
public_key:
type: string
description: 'Public Key, required if key_id is not provided.'
example: vitae
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: et
provider: dropbox
created_at: '2025-04-05T17:35:56.000000Z'
updated_at: '2025-04-05T17:35:56.000000Z'
-
id: 6
project_id: null
global: true
name: sed
provider: dropbox
created_at: '2025-04-05T17:35:56.000000Z'
updated_at: '2025-04-05T17:35:56.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: et
provider: dropbox
created_at: '2025-04-05T17:35:56.000000Z'
updated_at: '2025-04-05T17:35:56.000000Z'
-
id: 6
project_id: null
global: true
name: sed
provider: dropbox
created_at: '2025-04-05T17:35:56.000000Z'
updated_at: '2025-04-05T17:35:56.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: et
provider:
type: string
example: dropbox
created_at:
type: string
example: '2025-04-05T17:35:56.000000Z'
updated_at:
type: string
example: '2025-04-05T17:35:56.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: veritatis
provider: ftp
created_at: '2025-04-05T17:35:56.000000Z'
updated_at: '2025-04-05T17:35:56.000000Z'
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:35:56.000000Z'
updated_at:
type: string
example: '2025-04-05T17:35:56.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: quia
nullable: false
name:
type: string
description: 'The name of the storage provider.'
example: rerum
nullable: false
token:
type: string
description: 'The token if provider requires api token'
example: hic
nullable: false
key:
type: string
description: 'The key if provider requires key'
example: repellat
nullable: false
secret:
type: string
description: 'The secret if provider requires key'
example: maiores
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: fuga
provider: local
created_at: '2025-04-05T17:35:56.000000Z'
updated_at: '2025-04-05T17:35:56.000000Z'
properties:
id:
type: integer
example: 5
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: fuga
provider:
type: string
example: local
created_at:
type: string
example: '2025-04-05T17:35:56.000000Z'
updated_at:
type: string
example: '2025-04-05T17:35:56.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: ut
provider: ftp
created_at: '2025-04-05T17:35:56.000000Z'
updated_at: '2025-04-05T17:35:56.000000Z'
properties:
id:
type: integer
example: 5
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: ut
provider:
type: string
example: ftp
created_at:
type: string
example: '2025-04-05T17:35:56.000000Z'
updated_at:
type: string
example: '2025-04-05T17:35:56.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: est
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: []