vito/public/api-docs/openapi.yaml
2025-01-30 23:52:51 +01:00

5350 lines
162 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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« 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: itaque
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: 8
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: 8
required: true
schema:
type: integer
-
in: path
name: cronJob_id
description: 'The ID of the cronJob.'
example: 18
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: xgaylord
databases: []
host: '%'
status: null
created_at: null
updated_at: null
-
id: null
server_id: null
username: una37
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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: null
server_id: null
username: xgaylord
databases: []
host: '%'
status: null
created_at: null
updated_at: null
-
id: null
server_id: null
username: una37
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: xgaylord
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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« 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: kari.farrell
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: kari.farrell
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: consequuntur
nullable: false
password:
type: string
description: ''
example: 'fI/i2.O4u&dla?eXvR2'
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: 8
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: caterina.mosciski
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: caterina.mosciski
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: 8
required: true
schema:
type: integer
-
in: path
name: databaseUser_id
description: 'The ID of the databaseUser.'
example: 18
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: kurtis05
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: kurtis05
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: non
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: 8
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: amalia38
status: ready
created_at: null
updated_at: null
-
id: null
server_id: null
name: troy.rippin
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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: null
server_id: null
name: amalia38
status: ready
created_at: null
updated_at: null
-
id: null
server_id: null
name: troy.rippin
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: amalia38
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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« 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: harvey.haskell
status: ready
created_at: null
updated_at: null
properties:
id:
type: string
example: null
server_id:
type: string
example: null
name:
type: string
example: harvey.haskell
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: et
nullable: false
required:
- name
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: 8
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: ruthie.koepp
status: ready
created_at: null
updated_at: null
properties:
id:
type: string
example: null
server_id:
type: string
example: null
name:
type: string
example: ruthie.koepp
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: 8
required: true
schema:
type: integer
-
in: path
name: id
description: 'The ID of the database.'
example: 19
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: 8
required: true
schema:
type: integer
-
in: path
name: database_id
description: 'The ID of the database.'
example: 15
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
server_id: null
type: allow
protocol: tcp
port: 38781
source: 79.116.255.150
mask: 24
note: test
status: null
created_at: null
updated_at: null
-
id: null
server_id: null
type: allow
protocol: tcp
port: 32141
source: 52.174.114.251
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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: null
server_id: null
type: allow
protocol: tcp
port: 38781
source: 79.116.255.150
mask: 24
note: test
status: null
created_at: null
updated_at: null
-
id: null
server_id: null
type: allow
protocol: tcp
port: 32141
source: 52.174.114.251
mask: 24
note: test
status: 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: allow
protocol:
type: string
example: tcp
port:
type: integer
example: 38781
source:
type: string
example: 79.116.255.150
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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« 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
server_id: null
type: allow
protocol: tcp
port: 47148
source: 119.182.8.45
mask: 24
note: test
status: null
created_at: null
updated_at: null
properties:
id:
type: string
example: null
server_id:
type: string
example: null
type:
type: string
example: allow
protocol:
type: string
example: tcp
port:
type: integer
example: 47148
source:
type: string
example: 119.182.8.45
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:
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: et
nullable: false
source:
type: string
description: ''
example: voluptates
nullable: false
mask:
type: string
description: 'Mask for source IP.'
example: '0'
nullable: false
required:
- type
- protocol
- port
- source
- 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: 8
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/firewall-rules/{firewallRule_id}':
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
server_id: null
type: allow
protocol: tcp
port: 2317
source: 44.161.134.114
mask: 24
note: test
status: null
created_at: null
updated_at: null
properties:
id:
type: string
example: null
server_id:
type: string
example: null
type:
type: string
example: allow
protocol:
type: string
example: tcp
port:
type: integer
example: 2317
source:
type: string
example: 44.161.134.114
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: 8
required: true
schema:
type: integer
-
in: path
name: firewallRule_id
description: 'The ID of the firewallRule.'
example: 29
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.1.0
properties:
success:
type: boolean
example: true
version:
type: string
example: 2.1.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: 'Jeffry Dickinson'
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
-
id: 4
name: 'Miss Tianna Dietrich PhD'
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 3
name: 'Jeffry Dickinson'
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
-
id: 4
name: 'Miss Tianna Dietrich PhD'
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
items:
type: object
properties:
id:
type: integer
example: 3
name:
type: string
example: 'Jeffry Dickinson'
created_at:
type: string
example: '2025-01-30T22:42:49.000000Z'
updated_at:
type: string
example: '2025-01-30T22:42:49.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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« 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: 'Isidro Franecki'
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
properties:
id:
type: integer
example: 3
name:
type: string
example: 'Isidro Franecki'
created_at:
type: string
example: '2025-01-30T22:42:49.000000Z'
updated_at:
type: string
example: '2025-01-30T22:42:49.000000Z'
tags:
- projects
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'The name of the project.'
example: quos
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: 'Rhoda Parisian'
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
properties:
id:
type: integer
example: 3
name:
type: string
example: 'Rhoda Parisian'
created_at:
type: string
example: '2025-01-30T22:42:49.000000Z'
updated_at:
type: string
example: '2025-01-30T22:42:49.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: 'Mr. Dashawn Jacobson Sr.'
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
properties:
id:
type: integer
example: 3
name:
type: string
example: 'Mr. Dashawn Jacobson Sr.'
created_at:
type: string
example: '2025-01-30T22:42:49.000000Z'
updated_at:
type: string
example: '2025-01-30T22:42:49.000000Z'
tags:
- projects
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'The name of the project.'
example: ullam
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}/server-providers':
get:
summary: list
operationId: list
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 2
project_id: null
global: true
name: laudantium
provider: vultr
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
-
id: 3
project_id: null
global: true
name: aut
provider: aws
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 2
project_id: null
global: true
name: laudantium
provider: vultr
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
-
id: 3
project_id: null
global: true
name: aut
provider: aws
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
items:
type: object
properties:
id:
type: integer
example: 2
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: laudantium
provider:
type: string
example: vultr
created_at:
type: string
example: '2025-01-30T22:42:49.000000Z'
updated_at:
type: string
example: '2025-01-30T22:42:49.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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« 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: 2
project_id: null
global: true
name: quia
provider: vultr
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
properties:
id:
type: integer
example: 2
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: quia
provider:
type: string
example: vultr
created_at:
type: string
example: '2025-01-30T22:42:49.000000Z'
updated_at:
type: string
example: '2025-01-30T22:42:49.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: voluptatem
nullable: false
name:
type: string
description: 'The name of the server provider.'
example: repellat
nullable: false
token:
type: string
description: 'The token if provider requires api token'
example: omnis
nullable: false
key:
type: string
description: 'The key if provider requires key'
example: recusandae
nullable: false
secret:
type: string
description: 'The secret if provider requires key'
example: in
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: 2
project_id: null
global: true
name: ab
provider: hetzner
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
properties:
id:
type: integer
example: 2
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: ab
provider:
type: string
example: hetzner
created_at:
type: string
example: '2025-01-30T22:42:49.000000Z'
updated_at:
type: string
example: '2025-01-30T22:42:49.000000Z'
tags:
- server-providers
put:
summary: update
operationId: update
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 2
project_id: null
global: true
name: nesciunt
provider: linode
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
properties:
id:
type: integer
example: 2
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: nesciunt
provider:
type: string
example: linode
created_at:
type: string
example: '2025-01-30T22:42:49.000000Z'
updated_at:
type: string
example: '2025-01-30T22:42:49.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: 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:
- 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: 'Amina DuBuque'
ssh_user: vito
ip: 163.77.69.73
local_ip: 137.139.200.70
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: 'Floy Cummerata'
ssh_user: vito
ip: 62.53.140.25
local_ip: 34.59.35.195
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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
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: 'Amina DuBuque'
ssh_user: vito
ip: 163.77.69.73
local_ip: 137.139.200.70
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: 'Floy Cummerata'
ssh_user: vito
ip: 62.53.140.25
local_ip: 34.59.35.195
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: 'Amina DuBuque'
ssh_user:
type: string
example: vito
ip:
type: string
example: 163.77.69.73
local_ip:
type: string
example: 137.139.200.70
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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« 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: 'Archibald Nolan'
ssh_user: vito
ip: 226.168.13.177
local_ip: 143.14.43.182
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: 'Archibald Nolan'
ssh_user:
type: string
example: vito
ip:
type: string
example: 226.168.13.177
local_ip:
type: string
example: 143.14.43.182
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: iste
nullable: false
server_provider:
type: string
description: 'If the provider is not custom, the ID of the server provider profile'
example: custom
nullable: false
enum:
- custom
- hetzner
- digitalocean
- linode
- vultr
region:
type: string
description: 'Provider region if the provider is not custom'
example: libero
nullable: false
plan:
type: string
description: 'Provider plan if the provider is not custom'
example: ut
nullable: false
ip:
type: string
description: 'SSH IP address if the provider is custom'
example: molestias
nullable: false
port:
type: string
description: 'SSH Port if the provider is custom'
example: laudantium
nullable: false
name:
type: string
description: 'The name of the server.'
example: illum
nullable: false
os:
type: string
description: 'The os of the server'
example: autem
nullable: false
webserver:
type: string
description: 'Web server'
example: none
nullable: false
enum:
- none
- nginx
database:
type: string
description: Database
example: postgresql12
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: 'Tevin Sipes'
ssh_user: vito
ip: 61.41.183.152
local_ip: 197.160.239.147
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: 'Tevin Sipes'
ssh_user:
type: string
example: vito
ip:
type: string
example: 61.41.183.152
local_ip:
type: string
example: 197.160.239.147
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: 8
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: 8
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: 8
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: 8
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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« 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: 8
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: 8
required: true
schema:
type: integer
-
in: path
name: id
description: 'The ID of the service.'
example: 53
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: 8
required: true
schema:
type: integer
-
in: path
name: service_id
description: 'The ID of the service.'
example: 53
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: 8
required: true
schema:
type: integer
-
in: path
name: service_id
description: 'The ID of the service.'
example: 53
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: 8
required: true
schema:
type: integer
-
in: path
name: service_id
description: 'The ID of the service.'
example: 53
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: 8
required: true
schema:
type: integer
-
in: path
name: service_id
description: 'The ID of the service.'
example: 53
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: 8
required: true
schema:
type: integer
-
in: path
name: service_id
description: 'The ID of the service.'
example: 53
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: 8
required: true
schema:
type: integer
-
in: path
name: service_id
description: 'The ID of the service.'
example: 53
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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« 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
nullable: false
enum:
- php
- php-blank
- phpmyadmin
- laravel
- wordpress
- load-balancer
domain:
type: string
description: ''
example: rem
nullable: false
aliases:
type: array
description: ''
example:
- libero
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: dolor
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: vitae
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: 8
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: 8
required: true
schema:
type: integer
-
in: path
name: id
description: 'The ID of the site.'
example: 26
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: 8
required: true
schema:
type: integer
-
in: path
name: site_id
description: 'The ID of the site.'
example: 26
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: least-connections
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:
- deleniti
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: 8
required: true
schema:
type: integer
-
in: path
name: site_id
description: 'The ID of the site.'
example: 26
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: 'Mr. Reuben Schimmel'
provider: github
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
-
id: 6
project_id: null
global: true
name: 'Ms. Brandy Mraz V'
provider: github
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 5
project_id: null
global: true
name: 'Mr. Reuben Schimmel'
provider: github
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
-
id: 6
project_id: null
global: true
name: 'Ms. Brandy Mraz V'
provider: github
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.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: 'Mr. Reuben Schimmel'
provider:
type: string
example: github
created_at:
type: string
example: '2025-01-30T22:42:49.000000Z'
updated_at:
type: string
example: '2025-01-30T22:42:49.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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« 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: 'Harmony Koss DVM'
provider: github
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
properties:
id:
type: integer
example: 5
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: 'Harmony Koss DVM'
provider:
type: string
example: github
created_at:
type: string
example: '2025-01-30T22:42:49.000000Z'
updated_at:
type: string
example: '2025-01-30T22:42:49.000000Z'
tags:
- source-controls
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
provider:
type: string
description: 'The provider'
example: bitbucket
nullable: false
enum:
- gitlab
- github
- bitbucket
name:
type: string
description: 'The name of the storage provider.'
example: dignissimos
nullable: false
token:
type: string
description: 'The token if provider requires api token'
example: voluptates
nullable: false
url:
type: string
description: 'The URL if the provider is Gitlab and it is self-hosted'
example: 'https://www.hamill.net/culpa-non-qui-suscipit-dolores-id-aliquam'
nullable: false
username:
type: string
description: 'The username if the provider is Bitbucket'
example: nisi
nullable: false
password:
type: string
description: 'The password if the provider is Bitbucket'
example: W~19Z0
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: 'Martin Welch'
provider: github
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
properties:
id:
type: integer
example: 5
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: 'Martin Welch'
provider:
type: string
example: github
created_at:
type: string
example: '2025-01-30T22:42:49.000000Z'
updated_at:
type: string
example: '2025-01-30T22:42:49.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: 'Miss Dulce Nicolas III'
provider: github
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
properties:
id:
type: integer
example: 5
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: 'Miss Dulce Nicolas III'
provider:
type: string
example: github
created_at:
type: string
example: '2025-01-30T22:42:49.000000Z'
updated_at:
type: string
example: '2025-01-30T22:42:49.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: aut
nullable: false
token:
type: string
description: 'The token if provider requires api token'
example: repudiandae
nullable: false
url:
type: string
description: 'The URL if the provider is Gitlab and it is self-hosted'
example: 'http://howe.net/eaque-assumenda-voluptatem-quo-libero-eius.html'
nullable: false
username:
type: string
description: 'The username if the provider is Bitbucket'
example: consequatur
nullable: false
password:
type: string
description: 'The password if the provider is Bitbucket'
example: 'oX/H"pAIt7R2"'
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: 'Godfrey Mills'
created_at: null
updated_at: null
-
id: null
user: null
name: 'Donato Streich'
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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: null
user: null
name: 'Godfrey Mills'
created_at: null
updated_at: null
-
id: null
user: null
name: 'Donato Streich'
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: null
user:
type: string
example: null
name:
type: string
example: 'Godfrey Mills'
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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« 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. Stanton Bergnaum'
created_at: null
updated_at: null
properties:
id:
type: string
example: null
user:
type: string
example: null
name:
type: string
example: 'Mr. Stanton Bergnaum'
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: numquam
nullable: false
name:
type: string
description: 'Key name, required if key_id is not provided.'
example: alias
nullable: false
public_key:
type: string
description: 'Public Key, required if key_id is not provided.'
example: voluptate
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: 8
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: 8
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: dolorem
provider: s3
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
-
id: 6
project_id: null
global: true
name: itaque
provider: s3
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 5
project_id: null
global: true
name: dolorem
provider: s3
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
-
id: 6
project_id: null
global: true
name: itaque
provider: s3
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.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: dolorem
provider:
type: string
example: s3
created_at:
type: string
example: '2025-01-30T22:42:49.000000Z'
updated_at:
type: string
example: '2025-01-30T22:42:49.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: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« 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: quos
provider: s3
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
properties:
id:
type: integer
example: 5
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: quos
provider:
type: string
example: s3
created_at:
type: string
example: '2025-01-30T22:42:49.000000Z'
updated_at:
type: string
example: '2025-01-30T22:42:49.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: alias
nullable: false
name:
type: string
description: 'The name of the storage provider.'
example: explicabo
nullable: false
token:
type: string
description: 'The token if provider requires api token'
example: ut
nullable: false
key:
type: string
description: 'The key if provider requires key'
example: libero
nullable: false
secret:
type: string
description: 'The secret if provider requires key'
example: consequatur
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: id
provider: s3
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
properties:
id:
type: integer
example: 5
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: id
provider:
type: string
example: s3
created_at:
type: string
example: '2025-01-30T22:42:49.000000Z'
updated_at:
type: string
example: '2025-01-30T22:42:49.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: velit
provider: s3
created_at: '2025-01-30T22:42:49.000000Z'
updated_at: '2025-01-30T22:42:49.000000Z'
properties:
id:
type: integer
example: 5
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: velit
provider:
type: string
example: s3
created_at:
type: string
example: '2025-01-30T22:42:49.000000Z'
updated_at:
type: string
example: '2025-01-30T22:42:49.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: sequi
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:
- 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: 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: []