Add load balancer (#453)

This commit is contained in:
Saeed Vaziry 2025-01-30 23:52:51 +01:00 committed by GitHub
parent 53e20cbc2a
commit 6966f06b1a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
54 changed files with 3128 additions and 1833 deletions

View File

@ -35,7 +35,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -43,7 +43,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -60,7 +60,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 6ed1gv5ak6hEPcaV8D3Z4bf'
- 'Bearer ge6ZVa4kfD86hdv5a31EcbP'
controller: null
method: null
route: null
@ -97,7 +97,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -105,7 +105,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters:
@ -113,7 +113,7 @@ endpoints:
name: command
description: ''
required: true
example: qui
example: itaque
type: string
enumValues: []
exampleWasSpecified: false
@ -142,7 +142,7 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
command: qui
command: itaque
user: root
frequency: '* * * * *'
fileParameters: []
@ -157,7 +157,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer VEfc5h3gva68PkZ46Deabd1'
- 'Bearer cdh5bD8gVPkf34e1ZEva6a6'
controller: null
method: null
route: null
@ -194,7 +194,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -204,7 +204,7 @@ endpoints:
name: cronJob_id
description: 'The ID of the cronJob.'
required: true
example: 5
example: 18
type: integer
enumValues: []
exampleWasSpecified: false
@ -212,8 +212,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
cronJob_id: 5
server_id: 8
cronJob_id: 18
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -230,7 +230,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 614DaP5vZ6edcaVEgfhk83b'
- 'Bearer fa5VgdkaD8cZ6vh34Pb16eE'
controller: null
method: null
route: null
@ -267,7 +267,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -277,7 +277,7 @@ endpoints:
name: cronJob_id
description: 'The ID of the cronJob.'
required: true
example: 5
example: 10
type: integer
enumValues: []
exampleWasSpecified: false
@ -285,8 +285,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
cronJob_id: 5
server_id: 8
cronJob_id: 10
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -295,7 +295,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -303,7 +303,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer gDV6bZ1dEckvf45P86eaha3'
- 'Bearer P8hkva3ZD4fgb166adEVce5'
controller: null
method: null
route: null

View File

@ -35,7 +35,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -43,7 +43,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -52,7 +52,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"server_id":null,"name":"clockman","status":"ready","created_at":null,"updated_at":null},{"id":null,"server_id":null,"name":"wvonrueden","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}}'
content: '{"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}}'
headers: []
description: ''
custom: []
@ -60,7 +60,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer efEV4g86bd5PZac6vak3Dh1'
- 'Bearer Z641ebPacDV6f38kEgdah5v'
controller: null
method: null
route: null
@ -97,7 +97,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -105,7 +105,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters:
@ -113,19 +113,19 @@ endpoints:
name: name
description: ''
required: true
example: nesciunt
example: et
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
name: nesciunt
name: et
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"server_id":null,"name":"johanna76","status":"ready","created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"name":"harvey.haskell","status":"ready","created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -133,7 +133,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 3E6VD14dvaekbaZfh6Pg8c5'
- 'Bearer d4gbv56caV3aZ8D1h6kfEPe'
controller: null
method: null
route: null
@ -170,7 +170,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -180,7 +180,7 @@ endpoints:
name: id
description: 'The ID of the database.'
required: true
example: 6
example: 19
type: integer
enumValues: []
exampleWasSpecified: false
@ -188,8 +188,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
id: 6
server_id: 8
id: 19
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -198,7 +198,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":null,"server_id":null,"name":"chloe.huel","status":"ready","created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"name":"ruthie.koepp","status":"ready","created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -206,7 +206,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer fb5hVc38e1aDP6ZvkgEda46'
- 'Bearer P68VgDcaEZvk63f4b5aed1h'
controller: null
method: null
route: null
@ -243,7 +243,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -253,7 +253,7 @@ endpoints:
name: database_id
description: 'The ID of the database.'
required: true
example: 6
example: 15
type: integer
enumValues: []
exampleWasSpecified: false
@ -261,8 +261,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
database_id: 6
server_id: 8
database_id: 15
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -271,7 +271,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -279,7 +279,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer cPVbhaZkfg5aEv46D183ed6'
- 'Bearer DkPc6d1heEv5a8fb4V63agZ'
controller: null
method: null
route: null

View File

@ -35,7 +35,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -43,7 +43,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -52,7 +52,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"server_id":null,"username":"nyasia68","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null},{"id":null,"server_id":null,"username":"madyson20","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}}'
content: '{"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}}'
headers: []
description: ''
custom: []
@ -60,7 +60,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer egc5VaDdvabfP6843k61hZE'
- 'Bearer P4gD36fZeckvVh5ab86Ead1'
controller: null
method: null
route: null
@ -97,7 +97,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -105,7 +105,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters:
@ -113,7 +113,7 @@ endpoints:
name: username
description: ''
required: true
example: dignissimos
example: consequuntur
type: string
enumValues: []
exampleWasSpecified: false
@ -123,7 +123,7 @@ endpoints:
name: password
description: ''
required: true
example: OK+XEG2)
example: 'fI/i2.O4u&dla?eXvR2'
type: string
enumValues: []
exampleWasSpecified: false
@ -140,14 +140,14 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
username: dignissimos
password: OK+XEG2)
username: consequuntur
password: 'fI/i2.O4u&dla?eXvR2'
host: '%'
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"server_id":null,"username":"amya.nitzsche","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"username":"kari.farrell","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -155,7 +155,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 31hgfcvEb6Pkaa48D6dZ5Ve'
- 'Bearer 5k8Vced1baaE6f4ZvDPgh36'
controller: null
method: null
route: null
@ -192,7 +192,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -202,7 +202,7 @@ endpoints:
name: databaseUser_id
description: 'The ID of the databaseUser.'
required: true
example: 4
example: 18
type: integer
enumValues: []
exampleWasSpecified: false
@ -210,8 +210,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
databaseUser_id: 4
server_id: 8
databaseUser_id: 18
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -220,7 +220,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":null,"server_id":null,"username":"bergstrom.ericka","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"username":"caterina.mosciski","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -228,7 +228,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer aDv48631h5af6EdkcVbPZeg'
- 'Bearer 3kDveP5V8a6dghfa4E16cbZ'
controller: null
method: null
route: null
@ -265,7 +265,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -283,7 +283,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
databaseUser_id: 4
queryParameters: []
cleanQueryParameters: []
@ -292,19 +292,19 @@ endpoints:
name: databases
description: 'Array of database names to link to the user.'
required: true
example: accusantium
example: non
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
databases: accusantium
databases: non
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"server_id":null,"username":"fmurray","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"username":"kurtis05","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -312,7 +312,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer cf8ZPhV1k3d5DaEva46beg6'
- 'Bearer DgPea43EvV51a866dfbZckh'
controller: null
method: null
route: null
@ -349,7 +349,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -359,7 +359,7 @@ endpoints:
name: databaseUser_id
description: 'The ID of the databaseUser.'
required: true
example: 4
example: 6
type: integer
enumValues: []
exampleWasSpecified: false
@ -367,8 +367,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
databaseUser_id: 4
server_id: 8
databaseUser_id: 6
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -377,7 +377,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -385,7 +385,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer hdEvkbaPVf4cZ65a8631eDg'
- 'Bearer 6ackVP8hEZd3164gD5evafb'
controller: null
method: null
route: null

View File

@ -35,7 +35,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -43,7 +43,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -52,7 +52,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"server_id":null,"type":"allow","protocol":"tcp","port":18074,"source":"189.27.156.82","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null},{"id":null,"server_id":null,"type":"allow","protocol":"tcp","port":41088,"source":"86.177.121.87","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}}'
content: '{"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}}'
headers: []
description: ''
custom: []
@ -60,7 +60,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer vhkc4aPa6ZdeV8D3Ef156gb'
- 'Bearer h3P5gD8E4dkeZ6abac6vfV1'
controller: null
method: null
route: null
@ -97,7 +97,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -105,7 +105,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters:
@ -113,7 +113,7 @@ endpoints:
name: type
description: ''
required: true
example: allow
example: deny
type: string
enumValues:
- allow
@ -137,7 +137,7 @@ endpoints:
name: port
description: ''
required: true
example: voluptates
example: et
type: string
enumValues: []
exampleWasSpecified: false
@ -147,7 +147,7 @@ endpoints:
name: source
description: ''
required: true
example: saepe
example: voluptates
type: string
enumValues: []
exampleWasSpecified: false
@ -164,16 +164,16 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
type: allow
type: deny
protocol: udp
port: voluptates
source: saepe
port: et
source: voluptates
mask: '0'
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"server_id":null,"type":"allow","protocol":"tcp","port":61992,"source":"47.222.76.48","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
content: '{"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}'
headers: []
description: ''
custom: []
@ -181,7 +181,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 1cEb5P66VeDkf8aahg3Zdv4'
- 'Bearer 6a8DVv5k3gZfEe6hb1daPc4'
controller: null
method: null
route: null
@ -218,7 +218,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -228,7 +228,7 @@ endpoints:
name: firewallRule_id
description: 'The ID of the firewallRule.'
required: true
example: 7
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
@ -236,8 +236,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
firewallRule_id: 7
server_id: 8
firewallRule_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -246,7 +246,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":null,"server_id":null,"type":"allow","protocol":"tcp","port":43107,"source":"135.73.216.16","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
content: '{"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}'
headers: []
description: ''
custom: []
@ -254,7 +254,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 6VaPhkD5vd1Z8e6E3cba4gf'
- 'Bearer P4bZdV1geED3kfh568aa6cv'
controller: null
method: null
route: null
@ -291,7 +291,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -301,7 +301,7 @@ endpoints:
name: firewallRule_id
description: 'The ID of the firewallRule.'
required: true
example: 7
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
@ -309,8 +309,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
firewallRule_id: 7
server_id: 8
firewallRule_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -319,7 +319,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -327,7 +327,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer v81d5Efch636aVgZebaPkD4'
- 'Bearer Dh3kcaafdg6E5ZvV46ePb81'
controller: null
method: null
route: null

View File

@ -29,7 +29,7 @@ endpoints:
responses:
-
status: 200
content: '{"success":true,"version":"2.0.0"}'
content: '{"success":true,"version":"2.1.0"}'
headers:
cache-control: 'no-cache, private'
content-type: application/json

View File

@ -30,7 +30,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":29,"name":"Zachary Lueilwitz","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"},{"id":30,"name":"Mrs. Kiarra Heller IV","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.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}}'
content: '{"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}}'
headers: []
description: ''
custom: []
@ -38,7 +38,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer eb14DEPv6cdah65VfZgka38'
- 'Bearer 5DaveP3d6b6khEZVcg4fa18'
controller: null
method: null
route: null
@ -81,7 +81,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":29,"name":"Hershel Spinka","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"id":3,"name":"Isidro Franecki","created_at":"2025-01-30T22:42:49.000000Z","updated_at":"2025-01-30T22:42:49.000000Z"}'
headers: []
description: ''
custom: []
@ -89,7 +89,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer V1E3566Pf4gkvh8dDZabeca'
- 'Bearer a6P53EvkcZV6D4ghad1efb8'
controller: null
method: null
route: null
@ -132,7 +132,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":29,"name":"Emery Kiehn","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"id":3,"name":"Rhoda Parisian","created_at":"2025-01-30T22:42:49.000000Z","updated_at":"2025-01-30T22:42:49.000000Z"}'
headers: []
description: ''
custom: []
@ -140,7 +140,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer haD6e36VZbkf4P8aEcvd15g'
- 'Bearer v48Ve5ZghdcbE1akP66fD3a'
controller: null
method: null
route: null
@ -182,19 +182,19 @@ endpoints:
name: name
description: 'The name of the project.'
required: true
example: ut
example: ullam
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
name: ut
name: ullam
fileParameters: []
responses:
-
status: 200
content: '{"id":29,"name":"Mable Prohaska","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"id":3,"name":"Mr. Dashawn Jacobson Sr.","created_at":"2025-01-30T22:42:49.000000Z","updated_at":"2025-01-30T22:42:49.000000Z"}'
headers: []
description: ''
custom: []
@ -202,7 +202,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer V14kPa5deva8Ebgc36f6hDZ'
- 'Bearer fvEdh3Vgbk56Z4a61eP8caD'
controller: null
method: null
route: null
@ -245,7 +245,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -253,7 +253,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer k1D68d5ePavVZag6h4fb3cE'
- 'Bearer eg4c3vZ1Dhaa68d6PEfk5bV'
controller: null
method: null
route: null

View File

@ -41,7 +41,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Dorthy Toy","ssh_user":"vito","ip":"172.132.95.155","local_ip":"118.57.197.65","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":"Carrie Sporer","ssh_user":"vito","ip":"184.242.162.173","local_ip":"135.244.50.22","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}}'
content: '{"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}}'
headers: []
description: ''
custom: []
@ -49,7 +49,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 8VE41PdZcvb6kgafD635ahe'
- 'Bearer E81avahec6365dbZfgD4kPV'
controller: null
method: null
route: null
@ -91,7 +91,7 @@ endpoints:
name: provider
description: 'The server provider type'
required: true
example: et
example: iste
type: string
enumValues: []
exampleWasSpecified: false
@ -101,7 +101,7 @@ endpoints:
name: server_provider
description: 'If the provider is not custom, the ID of the server provider profile'
required: true
example: digitalocean
example: custom
type: string
enumValues:
- custom
@ -116,7 +116,7 @@ endpoints:
name: region
description: 'Provider region if the provider is not custom'
required: true
example: inventore
example: libero
type: string
enumValues: []
exampleWasSpecified: false
@ -126,7 +126,7 @@ endpoints:
name: plan
description: 'Provider plan if the provider is not custom'
required: true
example: atque
example: ut
type: string
enumValues: []
exampleWasSpecified: false
@ -136,7 +136,7 @@ endpoints:
name: ip
description: 'SSH IP address if the provider is custom'
required: true
example: quam
example: molestias
type: string
enumValues: []
exampleWasSpecified: false
@ -146,7 +146,7 @@ endpoints:
name: port
description: 'SSH Port if the provider is custom'
required: true
example: nemo
example: laudantium
type: string
enumValues: []
exampleWasSpecified: false
@ -156,7 +156,7 @@ endpoints:
name: name
description: 'The name of the server.'
required: true
example: perspiciatis
example: illum
type: string
enumValues: []
exampleWasSpecified: false
@ -166,24 +166,12 @@ endpoints:
name: os
description: 'The os of the server'
required: true
example: similique
example: autem
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
type:
name: type
description: 'Server type'
required: true
example: regular
type: string
enumValues:
- regular
- database
exampleWasSpecified: false
nullable: false
custom: []
webserver:
name: webserver
description: 'Web server'
@ -200,7 +188,7 @@ endpoints:
name: database
description: Database
required: true
example: none
example: postgresql12
type: string
enumValues:
- none
@ -221,7 +209,7 @@ endpoints:
name: php
description: 'PHP version'
required: true
example: '8.1'
example: '7.4'
type: string
enumValues:
- '7.0'
@ -237,23 +225,22 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
provider: et
server_provider: digitalocean
region: inventore
plan: atque
ip: quam
port: nemo
name: perspiciatis
os: similique
type: regular
provider: iste
server_provider: custom
region: libero
plan: ut
ip: molestias
port: laudantium
name: illum
os: autem
webserver: none
database: none
php: '8.1'
database: postgresql12
php: '7.4'
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Flo Beer PhD","ssh_user":"vito","ip":"168.238.14.230","local_ip":"40.232.73.41","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}'
content: '{"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}'
headers: []
description: ''
custom: []
@ -261,7 +248,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Z8g36aaV4E1bdcPfehDv65k'
- 'Bearer aad3Pvc4e65DghZVEk8f1b6'
controller: null
method: null
route: null
@ -298,7 +285,7 @@ endpoints:
name: id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -306,7 +293,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
id: 3
id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -315,7 +302,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Stephany Ankunding","ssh_user":"vito","ip":"145.28.94.46","local_ip":"69.133.44.100","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}'
content: '{"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}'
headers: []
description: ''
custom: []
@ -323,7 +310,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer adD3EfP5hZ4vgbkV861eca6'
- 'Bearer 5EhD3v6Z8Vdakfg46eP1cab'
controller: null
method: null
route: null
@ -360,7 +347,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -368,7 +355,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -377,7 +364,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -385,7 +372,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer P3ec6aagD4hbdV5fEk168vZ'
- 'Bearer Pc5Da6Vhdk1vag6fE84e3Zb'
controller: null
method: null
route: null
@ -422,7 +409,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -430,7 +417,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -439,7 +426,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -447,7 +434,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer P34ZV6D1bEegdvac8f5kh6a'
- 'Bearer a61v48DfkeEbcg3a6hd5PZV'
controller: null
method: null
route: null
@ -484,7 +471,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -492,7 +479,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -501,7 +488,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -509,7 +496,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer ha6v5V41afkdPgcZbDEe386'
- 'Bearer haE8D6Z6gePk1vadVb53c4f'
controller: null
method: null
route: null

View File

@ -41,7 +41,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":2,"project_id":null,"global":true,"name":"dolor","provider":"digitalocean","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"},{"id":3,"project_id":null,"global":true,"name":"enim","provider":"digitalocean","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.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}}'
content: '{"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}}'
headers: []
description: ''
custom: []
@ -49,7 +49,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 1a6kb58vEP3fZdVhcea64gD'
- 'Bearer Df16eda8Pa345EkgbZ6cvhV'
controller: null
method: null
route: null
@ -91,7 +91,7 @@ endpoints:
name: provider
description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)'
required: true
example: autem
example: voluptatem
type: string
enumValues: []
exampleWasSpecified: false
@ -101,7 +101,7 @@ endpoints:
name: name
description: 'The name of the server provider.'
required: true
example: enim
example: repellat
type: string
enumValues: []
exampleWasSpecified: false
@ -111,7 +111,7 @@ endpoints:
name: token
description: 'The token if provider requires api token'
required: true
example: culpa
example: omnis
type: string
enumValues: []
exampleWasSpecified: false
@ -121,7 +121,7 @@ endpoints:
name: key
description: 'The key if provider requires key'
required: true
example: sit
example: recusandae
type: string
enumValues: []
exampleWasSpecified: false
@ -131,23 +131,23 @@ endpoints:
name: secret
description: 'The secret if provider requires key'
required: true
example: voluptates
example: in
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
provider: autem
name: enim
token: culpa
key: sit
secret: voluptates
provider: voluptatem
name: repellat
token: omnis
key: recusandae
secret: in
fileParameters: []
responses:
-
status: 200
content: '{"id":2,"project_id":null,"global":true,"name":"eligendi","provider":"aws","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"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"}'
headers: []
description: ''
custom: []
@ -155,7 +155,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer PD3ZcaVdvgfa5k4be8E6h16'
- 'Bearer 8fbgDV6vdhakE1c64e3P5aZ'
controller: null
method: null
route: null
@ -209,7 +209,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":2,"project_id":null,"global":true,"name":"architecto","provider":"digitalocean","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"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"}'
headers: []
description: ''
custom: []
@ -217,7 +217,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer DP45bg1aEadh8Z6Vke63fcv'
- 'Bearer eVE816Pc4ak3bdfahDZv6g5'
controller: null
method: null
route: null
@ -270,7 +270,7 @@ endpoints:
name: name
description: 'The name of the server provider.'
required: true
example: minus
example: est
type: string
enumValues: []
exampleWasSpecified: false
@ -280,7 +280,7 @@ endpoints:
name: global
description: 'Accessible in all projects'
required: true
example: false
example: true
type: string
enumValues:
- true
@ -289,13 +289,13 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
name: minus
global: false
name: est
global: true
fileParameters: []
responses:
-
status: 200
content: '{"id":2,"project_id":null,"global":true,"name":"reiciendis","provider":"hetzner","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"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"}'
headers: []
description: ''
custom: []
@ -303,7 +303,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer bv1kdegh6fP8V56ZE4acaD3'
- 'Bearer va86keaPDdh3b16Z54EgfcV'
controller: null
method: null
route: null
@ -357,7 +357,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -365,7 +365,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer k6hb43Vf5Z1dv8aaeEDcg6P'
- 'Bearer abv13ag8h5fZ4EPVDe6dc6k'
controller: null
method: null
route: null

View File

@ -35,7 +35,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -43,7 +43,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -52,7 +52,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"user":null,"name":"Dr. Reanna Braun","created_at":null,"updated_at":null},{"id":null,"user":null,"name":"Norene Fritsch","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}}'
content: '{"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}}'
headers: []
description: ''
custom: []
@ -60,7 +60,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer dV1gcvfZ46Eh8ebaP5Da63k'
- 'Bearer 1gEva8Z6e6abPDhk453fdVc'
controller: null
method: null
route: null
@ -97,7 +97,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -105,7 +105,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters:
@ -113,7 +113,7 @@ endpoints:
name: key_id
description: 'The ID of the key.'
required: true
example: vero
example: numquam
type: string
enumValues: []
exampleWasSpecified: false
@ -123,7 +123,7 @@ endpoints:
name: name
description: 'Key name, required if key_id is not provided.'
required: true
example: voluptates
example: alias
type: string
enumValues: []
exampleWasSpecified: false
@ -133,21 +133,21 @@ endpoints:
name: public_key
description: 'Public Key, required if key_id is not provided.'
required: true
example: dolor
example: voluptate
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
key_id: vero
name: voluptates
public_key: dolor
key_id: numquam
name: alias
public_key: voluptate
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"user":null,"name":"Sophia D''Amore","created_at":null,"updated_at":null}'
content: '{"id":null,"user":null,"name":"Mr. Stanton Bergnaum","created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -155,7 +155,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer gkadV36a5f8E6vhb14ZceDP'
- 'Bearer V64Z86fEdbavh1PgackDe53'
controller: null
method: null
route: null
@ -192,7 +192,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -202,7 +202,7 @@ endpoints:
name: sshKey_id
description: 'The ID of the sshKey.'
required: true
example: 4
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
@ -210,8 +210,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
sshKey_id: 4
server_id: 8
sshKey_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -220,7 +220,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -228,7 +228,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer PfchD4Zge386abadE5kV61v'
- 'Bearer 3deg1vc65k8D6abahfZVPE4'
controller: null
method: null
route: null

View File

@ -35,7 +35,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -43,7 +43,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -60,7 +60,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer h6bDec51ak84ZVafgv3PE6d'
- 'Bearer cdhb5VevgkZ6DafP6184a3E'
controller: null
method: null
route: null
@ -97,7 +97,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -107,7 +107,7 @@ endpoints:
name: id
description: 'The ID of the service.'
required: true
example: 27
example: 53
type: integer
enumValues: []
exampleWasSpecified: false
@ -115,8 +115,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
id: 27
server_id: 8
id: 53
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -133,7 +133,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer da4V3kfgZ6a86PchevED5b1'
- 'Bearer 3vDaE6Pc51Zg8kbheadVf64'
controller: null
method: null
route: null
@ -170,7 +170,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -180,7 +180,7 @@ endpoints:
name: service_id
description: 'The ID of the service.'
required: true
example: 27
example: 53
type: integer
enumValues: []
exampleWasSpecified: false
@ -188,8 +188,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
service_id: 27
server_id: 8
service_id: 53
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -198,7 +198,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -206,7 +206,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 86fdV5D6gv1E3ekaPZac4hb'
- 'Bearer a6e6Db5VcP314EgZdka8vhf'
controller: null
method: null
route: null
@ -243,7 +243,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -253,7 +253,7 @@ endpoints:
name: service_id
description: 'The ID of the service.'
required: true
example: 27
example: 53
type: integer
enumValues: []
exampleWasSpecified: false
@ -261,8 +261,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
service_id: 27
server_id: 8
service_id: 53
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -271,7 +271,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -279,7 +279,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer kPZ563E1Vfgh4cbDad8vae6'
- 'Bearer kefg56PEc4a18aDdvVZb3h6'
controller: null
method: null
route: null
@ -316,7 +316,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -326,7 +326,7 @@ endpoints:
name: service_id
description: 'The ID of the service.'
required: true
example: 27
example: 53
type: integer
enumValues: []
exampleWasSpecified: false
@ -334,8 +334,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
service_id: 27
server_id: 8
service_id: 53
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -344,7 +344,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -352,7 +352,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer fd14PaDb58gchv3ZVeaEk66'
- 'Bearer edhaE164avZ6gbVDPf3k8c5'
controller: null
method: null
route: null
@ -389,7 +389,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -399,7 +399,7 @@ endpoints:
name: service_id
description: 'The ID of the service.'
required: true
example: 27
example: 53
type: integer
enumValues: []
exampleWasSpecified: false
@ -407,8 +407,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
service_id: 27
server_id: 8
service_id: 53
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -417,7 +417,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -425,7 +425,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Dv1aVe6hZfkagdE356b4cP8'
- 'Bearer D4c1hbfV6Pad68v3gEkaeZ5'
controller: null
method: null
route: null
@ -462,7 +462,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -472,7 +472,7 @@ endpoints:
name: service_id
description: 'The ID of the service.'
required: true
example: 27
example: 53
type: integer
enumValues: []
exampleWasSpecified: false
@ -480,8 +480,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
service_id: 27
server_id: 8
service_id: 53
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -490,7 +490,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -498,7 +498,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 6bdDc4Eah3ZV18kf6Pveag5'
- 'Bearer be41fvh6a8d5PkDVEgZ36ca'
controller: null
method: null
route: null
@ -535,7 +535,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -545,7 +545,7 @@ endpoints:
name: service_id
description: 'The ID of the service.'
required: true
example: 27
example: 53
type: integer
enumValues: []
exampleWasSpecified: false
@ -553,8 +553,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
service_id: 27
server_id: 8
service_id: 53
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -563,7 +563,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -571,7 +571,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 36kf84v6bVhE5gdPDeZ1caa'
- 'Bearer dcb68hg634P1DaZvef5VakE'
controller: null
method: null
route: null

View File

@ -35,7 +35,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -43,7 +43,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -52,7 +52,7 @@ endpoints:
responses:
-
status: 200
content: '{"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,"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,"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}}'
content: '{"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}}'
headers: []
description: ''
custom: []
@ -60,7 +60,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer gaeE86fd1aZP53Vvc6Dhbk4'
- 'Bearer 3gE54ahkea166PfvbVD8Zdc'
controller: null
method: null
route: null
@ -97,7 +97,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -105,7 +105,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters:
@ -113,7 +113,7 @@ endpoints:
name: type
description: ''
required: true
example: wordpress
example: php
type: string
enumValues:
- php
@ -121,6 +121,7 @@ endpoints:
- phpmyadmin
- laravel
- wordpress
- load-balancer
exampleWasSpecified: false
nullable: false
custom: []
@ -128,7 +129,7 @@ endpoints:
name: domain
description: ''
required: true
example: quo
example: rem
type: string
enumValues: []
exampleWasSpecified: false
@ -139,7 +140,7 @@ endpoints:
description: ''
required: true
example:
- dolorum
- libero
type: 'string[]'
enumValues: []
exampleWasSpecified: false
@ -169,7 +170,7 @@ endpoints:
name: source_control
description: 'Source control ID, Required for Sites which support source control'
required: true
example: explicabo
example: dolor
type: string
enumValues: []
exampleWasSpecified: false
@ -215,23 +216,48 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
user:
name: user
description: 'user, to isolate the website under a new user'
required: true
example: vitae
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
method:
name: method
description: 'Load balancer method, Required if the site type is Load balancer'
required: true
example: ip-hash
type: string
enumValues:
- round-robin
- least-connections
- ip-hash
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
type: wordpress
domain: quo
type: php
domain: rem
aliases:
- dolorum
- libero
php_version: '7.4'
web_directory: public
source_control: explicabo
source_control: dolor
repository: organization/repository
branch: main
composer: true
version: 5.2.1
user: vitae
method: ip-hash
fileParameters: []
responses:
-
status: 200
content: '{"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,"progress":100,"created_at":null,"updated_at":null}'
content: '{"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}'
headers: []
description: ''
custom: []
@ -239,7 +265,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer efDd36cab6vZEaV4hkP851g'
- 'Bearer e1V4ga3Pavk6ch6b5E8fZdD'
controller: null
method: null
route: null
@ -276,7 +302,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -286,7 +312,7 @@ endpoints:
name: id
description: 'The ID of the site.'
required: true
example: 8
example: 26
type: integer
enumValues: []
exampleWasSpecified: false
@ -294,8 +320,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
id: 8
server_id: 8
id: 26
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -304,7 +330,7 @@ endpoints:
responses:
-
status: 200
content: '{"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,"progress":100,"created_at":null,"updated_at":null}'
content: '{"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}'
headers: []
description: ''
custom: []
@ -312,7 +338,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer bVkf841ava5gE6DPch36Zde'
- 'Bearer 8gZkEaehfd4v3bac615DVP6'
controller: null
method: null
route: null
@ -349,7 +375,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -359,7 +385,7 @@ endpoints:
name: site_id
description: 'The ID of the site.'
required: true
example: 8
example: 26
type: integer
enumValues: []
exampleWasSpecified: false
@ -367,8 +393,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
site_id: 8
server_id: 8
site_id: 26
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -377,7 +403,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -385,7 +411,107 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer gfVZbEP5Ddah6k13ae6c8v4'
- 'Bearer aadb1h6f6kD4V8vePZgcE35'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/load-balancer'
metadata:
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: load-balancer
description: 'Update load balancer.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 26
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 8
site_id: 26
queryParameters: []
cleanQueryParameters: []
bodyParameters:
method:
name: method
description: 'Load balancer method, Required if the site type is Load balancer'
required: true
example: least-connections
type: string
enumValues:
- round-robin
- least-connections
- ip-hash
exampleWasSpecified: false
nullable: false
custom: []
servers:
name: servers
description: 'Array of servers including server, port, weight, backup. (server is the local IP of the server)'
required: true
example:
- deleniti
type: 'string[]'
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
method: least-connections
servers:
- deleniti
fileParameters: []
responses:
-
status: 200
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 5E6hZa64bka1cV3Pdvf8Deg'
controller: null
method: null
route: null

View File

@ -41,7 +41,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":5,"project_id":null,"global":true,"name":"Jaiden Kling","provider":"github","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"},{"id":6,"project_id":null,"global":true,"name":"Ms. Brianne Bosco","provider":"github","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.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}}'
content: '{"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}}'
headers: []
description: ''
custom: []
@ -49,7 +49,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer PfaEg1eZh66cd5V4v8bD3ak'
- 'Bearer g4kDa1vV6cdfPe3baZ8h5E6'
controller: null
method: null
route: null
@ -104,7 +104,7 @@ endpoints:
name: name
description: 'The name of the storage provider.'
required: true
example: eos
example: dignissimos
type: string
enumValues: []
exampleWasSpecified: false
@ -114,7 +114,7 @@ endpoints:
name: token
description: 'The token if provider requires api token'
required: true
example: et
example: voluptates
type: string
enumValues: []
exampleWasSpecified: false
@ -124,7 +124,7 @@ endpoints:
name: url
description: 'The URL if the provider is Gitlab and it is self-hosted'
required: true
example: 'https://lueilwitz.com/nostrum-et-porro-atque-sint.html'
example: 'https://www.hamill.net/culpa-non-qui-suscipit-dolores-id-aliquam'
type: string
enumValues: []
exampleWasSpecified: false
@ -134,7 +134,7 @@ endpoints:
name: username
description: 'The username if the provider is Bitbucket'
required: true
example: consectetur
example: nisi
type: string
enumValues: []
exampleWasSpecified: false
@ -144,7 +144,7 @@ endpoints:
name: password
description: 'The password if the provider is Bitbucket'
required: true
example: 'PL.P?{06\ECi0'
example: W~19Z0
type: string
enumValues: []
exampleWasSpecified: false
@ -152,16 +152,16 @@ endpoints:
custom: []
cleanBodyParameters:
provider: bitbucket
name: eos
token: et
url: 'https://lueilwitz.com/nostrum-et-porro-atque-sint.html'
username: consectetur
password: 'PL.P?{06\ECi0'
name: dignissimos
token: voluptates
url: 'https://www.hamill.net/culpa-non-qui-suscipit-dolores-id-aliquam'
username: nisi
password: W~19Z0
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"Toby Parker","provider":"github","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"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"}'
headers: []
description: ''
custom: []
@ -169,7 +169,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer V5Zf3a1ve6d6kP4cbgha8DE'
- 'Bearer fhEkg836V6cbd5ZPva4Dae1'
controller: null
method: null
route: null
@ -206,7 +206,7 @@ endpoints:
name: sourceControl_id
description: 'The ID of the sourceControl.'
required: true
example: 3
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
@ -214,7 +214,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
sourceControl_id: 3
sourceControl_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -223,7 +223,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"Prof. Bartholome Graham IV","provider":"github","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"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"}'
headers: []
description: ''
custom: []
@ -231,7 +231,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer k1b5hac6veZ36P8gDV4fadE'
- 'Bearer 458gPbv6deEfkcZ13ahaD6V'
controller: null
method: null
route: null
@ -268,7 +268,7 @@ endpoints:
name: sourceControl_id
description: 'The ID of the sourceControl.'
required: true
example: 3
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
@ -276,7 +276,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
sourceControl_id: 3
sourceControl_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters:
@ -284,7 +284,7 @@ endpoints:
name: name
description: 'The name of the storage provider.'
required: true
example: quaerat
example: aut
type: string
enumValues: []
exampleWasSpecified: false
@ -294,7 +294,7 @@ endpoints:
name: token
description: 'The token if provider requires api token'
required: true
example: consectetur
example: repudiandae
type: string
enumValues: []
exampleWasSpecified: false
@ -304,7 +304,7 @@ endpoints:
name: url
description: 'The URL if the provider is Gitlab and it is self-hosted'
required: true
example: 'http://www.hudson.biz/rerum-voluptatem-debitis-accusamus'
example: 'http://howe.net/eaque-assumenda-voluptatem-quo-libero-eius.html'
type: string
enumValues: []
exampleWasSpecified: false
@ -314,7 +314,7 @@ endpoints:
name: username
description: 'The username if the provider is Bitbucket'
required: true
example: voluptatem
example: consequatur
type: string
enumValues: []
exampleWasSpecified: false
@ -324,7 +324,7 @@ endpoints:
name: password
description: 'The password if the provider is Bitbucket'
required: true
example: '\p/el>)3#~E?kI'
example: 'oX/H"pAIt7R2"'
type: string
enumValues: []
exampleWasSpecified: false
@ -343,17 +343,17 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
name: quaerat
token: consectetur
url: 'http://www.hudson.biz/rerum-voluptatem-debitis-accusamus'
username: voluptatem
password: '\p/el>)3#~E?kI'
name: aut
token: repudiandae
url: 'http://howe.net/eaque-assumenda-voluptatem-quo-libero-eius.html'
username: consequatur
password: 'oX/H"pAIt7R2"'
global: false
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"Cicero Smitham","provider":"github","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"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"}'
headers: []
description: ''
custom: []
@ -361,7 +361,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 6dkE6h8a5eg3f14acVvbPDZ'
- 'Bearer De1a4dEaV5v3Zgh8fPk66bc'
controller: null
method: null
route: null
@ -398,7 +398,7 @@ endpoints:
name: sourceControl_id
description: 'The ID of the sourceControl.'
required: true
example: 3
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
@ -406,7 +406,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
sourceControl_id: 3
sourceControl_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -415,7 +415,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -423,7 +423,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer fb6Zk4EP318eva5hDdcV6ga'
- 'Bearer EZhd63eafgcV4a651PvkDb8'
controller: null
method: null
route: null

View File

@ -41,7 +41,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":3,"project_id":null,"global":true,"name":"et","provider":"local","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"},{"id":4,"project_id":null,"global":true,"name":"sed","provider":"local","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.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}}'
content: '{"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}}'
headers: []
description: ''
custom: []
@ -49,7 +49,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 1dbV3vkh6EPD5g48cafeZ6a'
- 'Bearer D16Vg58E6Pfkh3Zveab4dca'
controller: null
method: null
route: null
@ -91,7 +91,7 @@ endpoints:
name: provider
description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)'
required: true
example: quod
example: alias
type: string
enumValues: []
exampleWasSpecified: false
@ -101,7 +101,7 @@ endpoints:
name: name
description: 'The name of the storage provider.'
required: true
example: commodi
example: explicabo
type: string
enumValues: []
exampleWasSpecified: false
@ -111,7 +111,7 @@ endpoints:
name: token
description: 'The token if provider requires api token'
required: true
example: ipsum
example: ut
type: string
enumValues: []
exampleWasSpecified: false
@ -121,7 +121,7 @@ endpoints:
name: key
description: 'The key if provider requires key'
required: true
example: ratione
example: libero
type: string
enumValues: []
exampleWasSpecified: false
@ -131,23 +131,23 @@ endpoints:
name: secret
description: 'The secret if provider requires key'
required: true
example: iste
example: consequatur
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
provider: quod
name: commodi
token: ipsum
key: ratione
secret: iste
provider: alias
name: explicabo
token: ut
key: libero
secret: consequatur
fileParameters: []
responses:
-
status: 200
content: '{"id":3,"project_id":null,"global":true,"name":"est","provider":"dropbox","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"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"}'
headers: []
description: ''
custom: []
@ -155,7 +155,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer abehv36kP4D658VafgdZE1c'
- 'Bearer DaZ6d6Eck1bhVe3g4aP85vf'
controller: null
method: null
route: null
@ -192,7 +192,7 @@ endpoints:
name: storageProvider_id
description: 'The ID of the storageProvider.'
required: true
example: 1
example: 3
type: integer
enumValues: []
exampleWasSpecified: false
@ -200,7 +200,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
storageProvider_id: 1
storageProvider_id: 3
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -209,7 +209,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":3,"project_id":null,"global":true,"name":"officia","provider":"ftp","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"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"}'
headers: []
description: ''
custom: []
@ -217,7 +217,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer bda64P5c1gEDe8V3Z6vhkaf'
- 'Bearer 1dekD4gva56bc683VPEhZfa'
controller: null
method: null
route: null
@ -254,7 +254,7 @@ endpoints:
name: storageProvider_id
description: 'The ID of the storageProvider.'
required: true
example: 1
example: 3
type: integer
enumValues: []
exampleWasSpecified: false
@ -262,7 +262,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
storageProvider_id: 1
storageProvider_id: 3
queryParameters: []
cleanQueryParameters: []
bodyParameters:
@ -270,7 +270,7 @@ endpoints:
name: name
description: 'The name of the storage provider.'
required: true
example: iusto
example: sequi
type: string
enumValues: []
exampleWasSpecified: false
@ -280,7 +280,7 @@ endpoints:
name: global
description: 'Accessible in all projects'
required: true
example: true
example: false
type: string
enumValues:
- true
@ -289,13 +289,13 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
name: iusto
global: true
name: sequi
global: false
fileParameters: []
responses:
-
status: 200
content: '{"id":3,"project_id":null,"global":true,"name":"rerum","provider":"ftp","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"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"}'
headers: []
description: ''
custom: []
@ -303,7 +303,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer aEP35hVakDdf814eZvg66cb'
- 'Bearer V65g18Pca4v3hDEkbZfe6da'
controller: null
method: null
route: null
@ -340,7 +340,7 @@ endpoints:
name: storageProvider_id
description: 'The ID of the storageProvider.'
required: true
example: 1
example: 3
type: integer
enumValues: []
exampleWasSpecified: false
@ -348,7 +348,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
storageProvider_id: 1
storageProvider_id: 3
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -357,7 +357,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -365,7 +365,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Dah3PgE5d64fcbe8a16VkvZ'
- 'Bearer 1v6a6efgch3DbZ4aVE5d8kP'
controller: null
method: null
route: null

View File

@ -33,7 +33,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -41,7 +41,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -58,7 +58,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 6ed1gv5ak6hEPcaV8D3Z4bf'
- 'Bearer ge6ZVa4kfD86hdv5a31EcbP'
controller: null
method: null
route: null
@ -95,7 +95,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -103,7 +103,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters:
@ -111,7 +111,7 @@ endpoints:
name: command
description: ''
required: true
example: qui
example: itaque
type: string
enumValues: []
exampleWasSpecified: false
@ -140,7 +140,7 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
command: qui
command: itaque
user: root
frequency: '* * * * *'
fileParameters: []
@ -155,7 +155,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer VEfc5h3gva68PkZ46Deabd1'
- 'Bearer cdh5bD8gVPkf34e1ZEva6a6'
controller: null
method: null
route: null
@ -192,7 +192,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -202,7 +202,7 @@ endpoints:
name: cronJob_id
description: 'The ID of the cronJob.'
required: true
example: 5
example: 18
type: integer
enumValues: []
exampleWasSpecified: false
@ -210,8 +210,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
cronJob_id: 5
server_id: 8
cronJob_id: 18
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -228,7 +228,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 614DaP5vZ6edcaVEgfhk83b'
- 'Bearer fa5VgdkaD8cZ6vh34Pb16eE'
controller: null
method: null
route: null
@ -265,7 +265,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -275,7 +275,7 @@ endpoints:
name: cronJob_id
description: 'The ID of the cronJob.'
required: true
example: 5
example: 10
type: integer
enumValues: []
exampleWasSpecified: false
@ -283,8 +283,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
cronJob_id: 5
server_id: 8
cronJob_id: 10
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -293,7 +293,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -301,7 +301,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer gDV6bZ1dEckvf45P86eaha3'
- 'Bearer P8hkva3ZD4fgb166adEVce5'
controller: null
method: null
route: null

View File

@ -33,7 +33,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -41,7 +41,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -50,7 +50,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"server_id":null,"name":"clockman","status":"ready","created_at":null,"updated_at":null},{"id":null,"server_id":null,"name":"wvonrueden","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}}'
content: '{"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}}'
headers: []
description: ''
custom: []
@ -58,7 +58,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer efEV4g86bd5PZac6vak3Dh1'
- 'Bearer Z641ebPacDV6f38kEgdah5v'
controller: null
method: null
route: null
@ -95,7 +95,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -103,7 +103,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters:
@ -111,19 +111,19 @@ endpoints:
name: name
description: ''
required: true
example: nesciunt
example: et
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
name: nesciunt
name: et
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"server_id":null,"name":"johanna76","status":"ready","created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"name":"harvey.haskell","status":"ready","created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -131,7 +131,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 3E6VD14dvaekbaZfh6Pg8c5'
- 'Bearer d4gbv56caV3aZ8D1h6kfEPe'
controller: null
method: null
route: null
@ -168,7 +168,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -178,7 +178,7 @@ endpoints:
name: id
description: 'The ID of the database.'
required: true
example: 6
example: 19
type: integer
enumValues: []
exampleWasSpecified: false
@ -186,8 +186,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
id: 6
server_id: 8
id: 19
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -196,7 +196,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":null,"server_id":null,"name":"chloe.huel","status":"ready","created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"name":"ruthie.koepp","status":"ready","created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -204,7 +204,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer fb5hVc38e1aDP6ZvkgEda46'
- 'Bearer P68VgDcaEZvk63f4b5aed1h'
controller: null
method: null
route: null
@ -241,7 +241,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -251,7 +251,7 @@ endpoints:
name: database_id
description: 'The ID of the database.'
required: true
example: 6
example: 15
type: integer
enumValues: []
exampleWasSpecified: false
@ -259,8 +259,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
database_id: 6
server_id: 8
database_id: 15
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -269,7 +269,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -277,7 +277,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer cPVbhaZkfg5aEv46D183ed6'
- 'Bearer DkPc6d1heEv5a8fb4V63agZ'
controller: null
method: null
route: null

View File

@ -33,7 +33,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -41,7 +41,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -50,7 +50,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"server_id":null,"username":"nyasia68","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null},{"id":null,"server_id":null,"username":"madyson20","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}}'
content: '{"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}}'
headers: []
description: ''
custom: []
@ -58,7 +58,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer egc5VaDdvabfP6843k61hZE'
- 'Bearer P4gD36fZeckvVh5ab86Ead1'
controller: null
method: null
route: null
@ -95,7 +95,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -103,7 +103,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters:
@ -111,7 +111,7 @@ endpoints:
name: username
description: ''
required: true
example: dignissimos
example: consequuntur
type: string
enumValues: []
exampleWasSpecified: false
@ -121,7 +121,7 @@ endpoints:
name: password
description: ''
required: true
example: OK+XEG2)
example: 'fI/i2.O4u&dla?eXvR2'
type: string
enumValues: []
exampleWasSpecified: false
@ -138,14 +138,14 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
username: dignissimos
password: OK+XEG2)
username: consequuntur
password: 'fI/i2.O4u&dla?eXvR2'
host: '%'
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"server_id":null,"username":"amya.nitzsche","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"username":"kari.farrell","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -153,7 +153,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 31hgfcvEb6Pkaa48D6dZ5Ve'
- 'Bearer 5k8Vced1baaE6f4ZvDPgh36'
controller: null
method: null
route: null
@ -190,7 +190,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -200,7 +200,7 @@ endpoints:
name: databaseUser_id
description: 'The ID of the databaseUser.'
required: true
example: 4
example: 18
type: integer
enumValues: []
exampleWasSpecified: false
@ -208,8 +208,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
databaseUser_id: 4
server_id: 8
databaseUser_id: 18
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -218,7 +218,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":null,"server_id":null,"username":"bergstrom.ericka","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"username":"caterina.mosciski","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -226,7 +226,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer aDv48631h5af6EdkcVbPZeg'
- 'Bearer 3kDveP5V8a6dghfa4E16cbZ'
controller: null
method: null
route: null
@ -263,7 +263,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -281,7 +281,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
databaseUser_id: 4
queryParameters: []
cleanQueryParameters: []
@ -290,19 +290,19 @@ endpoints:
name: databases
description: 'Array of database names to link to the user.'
required: true
example: accusantium
example: non
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
databases: accusantium
databases: non
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"server_id":null,"username":"fmurray","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"username":"kurtis05","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -310,7 +310,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer cf8ZPhV1k3d5DaEva46beg6'
- 'Bearer DgPea43EvV51a866dfbZckh'
controller: null
method: null
route: null
@ -347,7 +347,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -357,7 +357,7 @@ endpoints:
name: databaseUser_id
description: 'The ID of the databaseUser.'
required: true
example: 4
example: 6
type: integer
enumValues: []
exampleWasSpecified: false
@ -365,8 +365,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
databaseUser_id: 4
server_id: 8
databaseUser_id: 6
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -375,7 +375,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -383,7 +383,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer hdEvkbaPVf4cZ65a8631eDg'
- 'Bearer 6ackVP8hEZd3164gD5evafb'
controller: null
method: null
route: null

View File

@ -33,7 +33,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -41,7 +41,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -50,7 +50,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"server_id":null,"type":"allow","protocol":"tcp","port":18074,"source":"189.27.156.82","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null},{"id":null,"server_id":null,"type":"allow","protocol":"tcp","port":41088,"source":"86.177.121.87","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}}'
content: '{"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}}'
headers: []
description: ''
custom: []
@ -58,7 +58,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer vhkc4aPa6ZdeV8D3Ef156gb'
- 'Bearer h3P5gD8E4dkeZ6abac6vfV1'
controller: null
method: null
route: null
@ -95,7 +95,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -103,7 +103,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters:
@ -111,7 +111,7 @@ endpoints:
name: type
description: ''
required: true
example: allow
example: deny
type: string
enumValues:
- allow
@ -135,7 +135,7 @@ endpoints:
name: port
description: ''
required: true
example: voluptates
example: et
type: string
enumValues: []
exampleWasSpecified: false
@ -145,7 +145,7 @@ endpoints:
name: source
description: ''
required: true
example: saepe
example: voluptates
type: string
enumValues: []
exampleWasSpecified: false
@ -162,16 +162,16 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
type: allow
type: deny
protocol: udp
port: voluptates
source: saepe
port: et
source: voluptates
mask: '0'
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"server_id":null,"type":"allow","protocol":"tcp","port":61992,"source":"47.222.76.48","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
content: '{"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}'
headers: []
description: ''
custom: []
@ -179,7 +179,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 1cEb5P66VeDkf8aahg3Zdv4'
- 'Bearer 6a8DVv5k3gZfEe6hb1daPc4'
controller: null
method: null
route: null
@ -216,7 +216,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -226,7 +226,7 @@ endpoints:
name: firewallRule_id
description: 'The ID of the firewallRule.'
required: true
example: 7
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
@ -234,8 +234,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
firewallRule_id: 7
server_id: 8
firewallRule_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -244,7 +244,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":null,"server_id":null,"type":"allow","protocol":"tcp","port":43107,"source":"135.73.216.16","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
content: '{"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}'
headers: []
description: ''
custom: []
@ -252,7 +252,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 6VaPhkD5vd1Z8e6E3cba4gf'
- 'Bearer P4bZdV1geED3kfh568aa6cv'
controller: null
method: null
route: null
@ -289,7 +289,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -299,7 +299,7 @@ endpoints:
name: firewallRule_id
description: 'The ID of the firewallRule.'
required: true
example: 7
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
@ -307,8 +307,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
firewallRule_id: 7
server_id: 8
firewallRule_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -317,7 +317,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -325,7 +325,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer v81d5Efch636aVgZebaPkD4'
- 'Bearer Dh3kcaafdg6E5ZvV46ePb81'
controller: null
method: null
route: null

View File

@ -27,7 +27,7 @@ endpoints:
responses:
-
status: 200
content: '{"success":true,"version":"2.0.0"}'
content: '{"success":true,"version":"2.1.0"}'
headers:
cache-control: 'no-cache, private'
content-type: application/json

View File

@ -28,7 +28,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":29,"name":"Zachary Lueilwitz","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"},{"id":30,"name":"Mrs. Kiarra Heller IV","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.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}}'
content: '{"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}}'
headers: []
description: ''
custom: []
@ -36,7 +36,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer eb14DEPv6cdah65VfZgka38'
- 'Bearer 5DaveP3d6b6khEZVcg4fa18'
controller: null
method: null
route: null
@ -79,7 +79,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":29,"name":"Hershel Spinka","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"id":3,"name":"Isidro Franecki","created_at":"2025-01-30T22:42:49.000000Z","updated_at":"2025-01-30T22:42:49.000000Z"}'
headers: []
description: ''
custom: []
@ -87,7 +87,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer V1E3566Pf4gkvh8dDZabeca'
- 'Bearer a6P53EvkcZV6D4ghad1efb8'
controller: null
method: null
route: null
@ -130,7 +130,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":29,"name":"Emery Kiehn","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"id":3,"name":"Rhoda Parisian","created_at":"2025-01-30T22:42:49.000000Z","updated_at":"2025-01-30T22:42:49.000000Z"}'
headers: []
description: ''
custom: []
@ -138,7 +138,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer haD6e36VZbkf4P8aEcvd15g'
- 'Bearer v48Ve5ZghdcbE1akP66fD3a'
controller: null
method: null
route: null
@ -180,19 +180,19 @@ endpoints:
name: name
description: 'The name of the project.'
required: true
example: ut
example: ullam
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
name: ut
name: ullam
fileParameters: []
responses:
-
status: 200
content: '{"id":29,"name":"Mable Prohaska","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"id":3,"name":"Mr. Dashawn Jacobson Sr.","created_at":"2025-01-30T22:42:49.000000Z","updated_at":"2025-01-30T22:42:49.000000Z"}'
headers: []
description: ''
custom: []
@ -200,7 +200,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer V14kPa5deva8Ebgc36f6hDZ'
- 'Bearer fvEdh3Vgbk56Z4a61eP8caD'
controller: null
method: null
route: null
@ -243,7 +243,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -251,7 +251,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer k1D68d5ePavVZag6h4fb3cE'
- 'Bearer eg4c3vZ1Dhaa68d6PEfk5bV'
controller: null
method: null
route: null

View File

@ -39,7 +39,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Dorthy Toy","ssh_user":"vito","ip":"172.132.95.155","local_ip":"118.57.197.65","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":"Carrie Sporer","ssh_user":"vito","ip":"184.242.162.173","local_ip":"135.244.50.22","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}}'
content: '{"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}}'
headers: []
description: ''
custom: []
@ -47,7 +47,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 8VE41PdZcvb6kgafD635ahe'
- 'Bearer E81avahec6365dbZfgD4kPV'
controller: null
method: null
route: null
@ -89,7 +89,7 @@ endpoints:
name: provider
description: 'The server provider type'
required: true
example: et
example: iste
type: string
enumValues: []
exampleWasSpecified: false
@ -99,7 +99,7 @@ endpoints:
name: server_provider
description: 'If the provider is not custom, the ID of the server provider profile'
required: true
example: digitalocean
example: custom
type: string
enumValues:
- custom
@ -114,7 +114,7 @@ endpoints:
name: region
description: 'Provider region if the provider is not custom'
required: true
example: inventore
example: libero
type: string
enumValues: []
exampleWasSpecified: false
@ -124,7 +124,7 @@ endpoints:
name: plan
description: 'Provider plan if the provider is not custom'
required: true
example: atque
example: ut
type: string
enumValues: []
exampleWasSpecified: false
@ -134,7 +134,7 @@ endpoints:
name: ip
description: 'SSH IP address if the provider is custom'
required: true
example: quam
example: molestias
type: string
enumValues: []
exampleWasSpecified: false
@ -144,7 +144,7 @@ endpoints:
name: port
description: 'SSH Port if the provider is custom'
required: true
example: nemo
example: laudantium
type: string
enumValues: []
exampleWasSpecified: false
@ -154,7 +154,7 @@ endpoints:
name: name
description: 'The name of the server.'
required: true
example: perspiciatis
example: illum
type: string
enumValues: []
exampleWasSpecified: false
@ -164,24 +164,12 @@ endpoints:
name: os
description: 'The os of the server'
required: true
example: similique
example: autem
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
type:
name: type
description: 'Server type'
required: true
example: regular
type: string
enumValues:
- regular
- database
exampleWasSpecified: false
nullable: false
custom: []
webserver:
name: webserver
description: 'Web server'
@ -198,7 +186,7 @@ endpoints:
name: database
description: Database
required: true
example: none
example: postgresql12
type: string
enumValues:
- none
@ -219,7 +207,7 @@ endpoints:
name: php
description: 'PHP version'
required: true
example: '8.1'
example: '7.4'
type: string
enumValues:
- '7.0'
@ -235,23 +223,22 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
provider: et
server_provider: digitalocean
region: inventore
plan: atque
ip: quam
port: nemo
name: perspiciatis
os: similique
type: regular
provider: iste
server_provider: custom
region: libero
plan: ut
ip: molestias
port: laudantium
name: illum
os: autem
webserver: none
database: none
php: '8.1'
database: postgresql12
php: '7.4'
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Flo Beer PhD","ssh_user":"vito","ip":"168.238.14.230","local_ip":"40.232.73.41","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}'
content: '{"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}'
headers: []
description: ''
custom: []
@ -259,7 +246,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Z8g36aaV4E1bdcPfehDv65k'
- 'Bearer aad3Pvc4e65DghZVEk8f1b6'
controller: null
method: null
route: null
@ -296,7 +283,7 @@ endpoints:
name: id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -304,7 +291,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
id: 3
id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -313,7 +300,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Stephany Ankunding","ssh_user":"vito","ip":"145.28.94.46","local_ip":"69.133.44.100","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}'
content: '{"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}'
headers: []
description: ''
custom: []
@ -321,7 +308,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer adD3EfP5hZ4vgbkV861eca6'
- 'Bearer 5EhD3v6Z8Vdakfg46eP1cab'
controller: null
method: null
route: null
@ -358,7 +345,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -366,7 +353,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -375,7 +362,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -383,7 +370,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer P3ec6aagD4hbdV5fEk168vZ'
- 'Bearer Pc5Da6Vhdk1vag6fE84e3Zb'
controller: null
method: null
route: null
@ -420,7 +407,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -428,7 +415,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -437,7 +424,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -445,7 +432,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer P34ZV6D1bEegdvac8f5kh6a'
- 'Bearer a61v48DfkeEbcg3a6hd5PZV'
controller: null
method: null
route: null
@ -482,7 +469,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -490,7 +477,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -499,7 +486,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -507,7 +494,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer ha6v5V41afkdPgcZbDEe386'
- 'Bearer haE8D6Z6gePk1vadVb53c4f'
controller: null
method: null
route: null

View File

@ -39,7 +39,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":2,"project_id":null,"global":true,"name":"dolor","provider":"digitalocean","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"},{"id":3,"project_id":null,"global":true,"name":"enim","provider":"digitalocean","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.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}}'
content: '{"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}}'
headers: []
description: ''
custom: []
@ -47,7 +47,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 1a6kb58vEP3fZdVhcea64gD'
- 'Bearer Df16eda8Pa345EkgbZ6cvhV'
controller: null
method: null
route: null
@ -89,7 +89,7 @@ endpoints:
name: provider
description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)'
required: true
example: autem
example: voluptatem
type: string
enumValues: []
exampleWasSpecified: false
@ -99,7 +99,7 @@ endpoints:
name: name
description: 'The name of the server provider.'
required: true
example: enim
example: repellat
type: string
enumValues: []
exampleWasSpecified: false
@ -109,7 +109,7 @@ endpoints:
name: token
description: 'The token if provider requires api token'
required: true
example: culpa
example: omnis
type: string
enumValues: []
exampleWasSpecified: false
@ -119,7 +119,7 @@ endpoints:
name: key
description: 'The key if provider requires key'
required: true
example: sit
example: recusandae
type: string
enumValues: []
exampleWasSpecified: false
@ -129,23 +129,23 @@ endpoints:
name: secret
description: 'The secret if provider requires key'
required: true
example: voluptates
example: in
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
provider: autem
name: enim
token: culpa
key: sit
secret: voluptates
provider: voluptatem
name: repellat
token: omnis
key: recusandae
secret: in
fileParameters: []
responses:
-
status: 200
content: '{"id":2,"project_id":null,"global":true,"name":"eligendi","provider":"aws","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"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"}'
headers: []
description: ''
custom: []
@ -153,7 +153,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer PD3ZcaVdvgfa5k4be8E6h16'
- 'Bearer 8fbgDV6vdhakE1c64e3P5aZ'
controller: null
method: null
route: null
@ -207,7 +207,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":2,"project_id":null,"global":true,"name":"architecto","provider":"digitalocean","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"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"}'
headers: []
description: ''
custom: []
@ -215,7 +215,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer DP45bg1aEadh8Z6Vke63fcv'
- 'Bearer eVE816Pc4ak3bdfahDZv6g5'
controller: null
method: null
route: null
@ -268,7 +268,7 @@ endpoints:
name: name
description: 'The name of the server provider.'
required: true
example: minus
example: est
type: string
enumValues: []
exampleWasSpecified: false
@ -278,7 +278,7 @@ endpoints:
name: global
description: 'Accessible in all projects'
required: true
example: false
example: true
type: string
enumValues:
- true
@ -287,13 +287,13 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
name: minus
global: false
name: est
global: true
fileParameters: []
responses:
-
status: 200
content: '{"id":2,"project_id":null,"global":true,"name":"reiciendis","provider":"hetzner","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"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"}'
headers: []
description: ''
custom: []
@ -301,7 +301,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer bv1kdegh6fP8V56ZE4acaD3'
- 'Bearer va86keaPDdh3b16Z54EgfcV'
controller: null
method: null
route: null
@ -355,7 +355,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -363,7 +363,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer k6hb43Vf5Z1dv8aaeEDcg6P'
- 'Bearer abv13ag8h5fZ4EPVDe6dc6k'
controller: null
method: null
route: null

View File

@ -33,7 +33,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -41,7 +41,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -50,7 +50,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"user":null,"name":"Dr. Reanna Braun","created_at":null,"updated_at":null},{"id":null,"user":null,"name":"Norene Fritsch","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}}'
content: '{"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}}'
headers: []
description: ''
custom: []
@ -58,7 +58,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer dV1gcvfZ46Eh8ebaP5Da63k'
- 'Bearer 1gEva8Z6e6abPDhk453fdVc'
controller: null
method: null
route: null
@ -95,7 +95,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -103,7 +103,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters:
@ -111,7 +111,7 @@ endpoints:
name: key_id
description: 'The ID of the key.'
required: true
example: vero
example: numquam
type: string
enumValues: []
exampleWasSpecified: false
@ -121,7 +121,7 @@ endpoints:
name: name
description: 'Key name, required if key_id is not provided.'
required: true
example: voluptates
example: alias
type: string
enumValues: []
exampleWasSpecified: false
@ -131,21 +131,21 @@ endpoints:
name: public_key
description: 'Public Key, required if key_id is not provided.'
required: true
example: dolor
example: voluptate
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
key_id: vero
name: voluptates
public_key: dolor
key_id: numquam
name: alias
public_key: voluptate
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"user":null,"name":"Sophia D''Amore","created_at":null,"updated_at":null}'
content: '{"id":null,"user":null,"name":"Mr. Stanton Bergnaum","created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -153,7 +153,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer gkadV36a5f8E6vhb14ZceDP'
- 'Bearer V64Z86fEdbavh1PgackDe53'
controller: null
method: null
route: null
@ -190,7 +190,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -200,7 +200,7 @@ endpoints:
name: sshKey_id
description: 'The ID of the sshKey.'
required: true
example: 4
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
@ -208,8 +208,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
sshKey_id: 4
server_id: 8
sshKey_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -218,7 +218,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -226,7 +226,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer PfchD4Zge386abadE5kV61v'
- 'Bearer 3deg1vc65k8D6abahfZVPE4'
controller: null
method: null
route: null

View File

@ -33,7 +33,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -41,7 +41,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -58,7 +58,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer h6bDec51ak84ZVafgv3PE6d'
- 'Bearer cdhb5VevgkZ6DafP6184a3E'
controller: null
method: null
route: null
@ -95,7 +95,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -105,7 +105,7 @@ endpoints:
name: id
description: 'The ID of the service.'
required: true
example: 27
example: 53
type: integer
enumValues: []
exampleWasSpecified: false
@ -113,8 +113,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
id: 27
server_id: 8
id: 53
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -131,7 +131,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer da4V3kfgZ6a86PchevED5b1'
- 'Bearer 3vDaE6Pc51Zg8kbheadVf64'
controller: null
method: null
route: null
@ -168,7 +168,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -178,7 +178,7 @@ endpoints:
name: service_id
description: 'The ID of the service.'
required: true
example: 27
example: 53
type: integer
enumValues: []
exampleWasSpecified: false
@ -186,8 +186,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
service_id: 27
server_id: 8
service_id: 53
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -196,7 +196,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -204,7 +204,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 86fdV5D6gv1E3ekaPZac4hb'
- 'Bearer a6e6Db5VcP314EgZdka8vhf'
controller: null
method: null
route: null
@ -241,7 +241,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -251,7 +251,7 @@ endpoints:
name: service_id
description: 'The ID of the service.'
required: true
example: 27
example: 53
type: integer
enumValues: []
exampleWasSpecified: false
@ -259,8 +259,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
service_id: 27
server_id: 8
service_id: 53
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -269,7 +269,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -277,7 +277,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer kPZ563E1Vfgh4cbDad8vae6'
- 'Bearer kefg56PEc4a18aDdvVZb3h6'
controller: null
method: null
route: null
@ -314,7 +314,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -324,7 +324,7 @@ endpoints:
name: service_id
description: 'The ID of the service.'
required: true
example: 27
example: 53
type: integer
enumValues: []
exampleWasSpecified: false
@ -332,8 +332,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
service_id: 27
server_id: 8
service_id: 53
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -342,7 +342,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -350,7 +350,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer fd14PaDb58gchv3ZVeaEk66'
- 'Bearer edhaE164avZ6gbVDPf3k8c5'
controller: null
method: null
route: null
@ -387,7 +387,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -397,7 +397,7 @@ endpoints:
name: service_id
description: 'The ID of the service.'
required: true
example: 27
example: 53
type: integer
enumValues: []
exampleWasSpecified: false
@ -405,8 +405,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
service_id: 27
server_id: 8
service_id: 53
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -415,7 +415,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -423,7 +423,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Dv1aVe6hZfkagdE356b4cP8'
- 'Bearer D4c1hbfV6Pad68v3gEkaeZ5'
controller: null
method: null
route: null
@ -460,7 +460,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -470,7 +470,7 @@ endpoints:
name: service_id
description: 'The ID of the service.'
required: true
example: 27
example: 53
type: integer
enumValues: []
exampleWasSpecified: false
@ -478,8 +478,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
service_id: 27
server_id: 8
service_id: 53
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -488,7 +488,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -496,7 +496,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 6bdDc4Eah3ZV18kf6Pveag5'
- 'Bearer be41fvh6a8d5PkDVEgZ36ca'
controller: null
method: null
route: null
@ -533,7 +533,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -543,7 +543,7 @@ endpoints:
name: service_id
description: 'The ID of the service.'
required: true
example: 27
example: 53
type: integer
enumValues: []
exampleWasSpecified: false
@ -551,8 +551,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
service_id: 27
server_id: 8
service_id: 53
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -561,7 +561,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -569,7 +569,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 36kf84v6bVhE5gdPDeZ1caa'
- 'Bearer dcb68hg634P1DaZvef5VakE'
controller: null
method: null
route: null

View File

@ -33,7 +33,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -41,7 +41,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -50,7 +50,7 @@ endpoints:
responses:
-
status: 200
content: '{"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,"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,"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}}'
content: '{"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}}'
headers: []
description: ''
custom: []
@ -58,7 +58,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer gaeE86fd1aZP53Vvc6Dhbk4'
- 'Bearer 3gE54ahkea166PfvbVD8Zdc'
controller: null
method: null
route: null
@ -95,7 +95,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -103,7 +103,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
server_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters:
@ -111,7 +111,7 @@ endpoints:
name: type
description: ''
required: true
example: wordpress
example: php
type: string
enumValues:
- php
@ -119,6 +119,7 @@ endpoints:
- phpmyadmin
- laravel
- wordpress
- load-balancer
exampleWasSpecified: false
nullable: false
custom: []
@ -126,7 +127,7 @@ endpoints:
name: domain
description: ''
required: true
example: quo
example: rem
type: string
enumValues: []
exampleWasSpecified: false
@ -137,7 +138,7 @@ endpoints:
description: ''
required: true
example:
- dolorum
- libero
type: 'string[]'
enumValues: []
exampleWasSpecified: false
@ -167,7 +168,7 @@ endpoints:
name: source_control
description: 'Source control ID, Required for Sites which support source control'
required: true
example: explicabo
example: dolor
type: string
enumValues: []
exampleWasSpecified: false
@ -213,23 +214,48 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
user:
name: user
description: 'user, to isolate the website under a new user'
required: true
example: vitae
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
method:
name: method
description: 'Load balancer method, Required if the site type is Load balancer'
required: true
example: ip-hash
type: string
enumValues:
- round-robin
- least-connections
- ip-hash
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
type: wordpress
domain: quo
type: php
domain: rem
aliases:
- dolorum
- libero
php_version: '7.4'
web_directory: public
source_control: explicabo
source_control: dolor
repository: organization/repository
branch: main
composer: true
version: 5.2.1
user: vitae
method: ip-hash
fileParameters: []
responses:
-
status: 200
content: '{"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,"progress":100,"created_at":null,"updated_at":null}'
content: '{"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}'
headers: []
description: ''
custom: []
@ -237,7 +263,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer efDd36cab6vZEaV4hkP851g'
- 'Bearer e1V4ga3Pavk6ch6b5E8fZdD'
controller: null
method: null
route: null
@ -274,7 +300,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -284,7 +310,7 @@ endpoints:
name: id
description: 'The ID of the site.'
required: true
example: 8
example: 26
type: integer
enumValues: []
exampleWasSpecified: false
@ -292,8 +318,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
id: 8
server_id: 8
id: 26
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -302,7 +328,7 @@ endpoints:
responses:
-
status: 200
content: '{"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,"progress":100,"created_at":null,"updated_at":null}'
content: '{"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}'
headers: []
description: ''
custom: []
@ -310,7 +336,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer bVkf841ava5gE6DPch36Zde'
- 'Bearer 8gZkEaehfd4v3bac615DVP6'
controller: null
method: null
route: null
@ -347,7 +373,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 3
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -357,7 +383,7 @@ endpoints:
name: site_id
description: 'The ID of the site.'
required: true
example: 8
example: 26
type: integer
enumValues: []
exampleWasSpecified: false
@ -365,8 +391,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 3
site_id: 8
server_id: 8
site_id: 26
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -375,7 +401,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -383,7 +409,107 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer gfVZbEP5Ddah6k13ae6c8v4'
- 'Bearer aadb1h6f6kD4V8vePZgcE35'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/load-balancer'
metadata:
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: load-balancer
description: 'Update load balancer.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 26
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 8
site_id: 26
queryParameters: []
cleanQueryParameters: []
bodyParameters:
method:
name: method
description: 'Load balancer method, Required if the site type is Load balancer'
required: true
example: least-connections
type: string
enumValues:
- round-robin
- least-connections
- ip-hash
exampleWasSpecified: false
nullable: false
custom: []
servers:
name: servers
description: 'Array of servers including server, port, weight, backup. (server is the local IP of the server)'
required: true
example:
- deleniti
type: 'string[]'
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
method: least-connections
servers:
- deleniti
fileParameters: []
responses:
-
status: 200
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 5E6hZa64bka1cV3Pdvf8Deg'
controller: null
method: null
route: null

View File

@ -39,7 +39,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":5,"project_id":null,"global":true,"name":"Jaiden Kling","provider":"github","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"},{"id":6,"project_id":null,"global":true,"name":"Ms. Brianne Bosco","provider":"github","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.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}}'
content: '{"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}}'
headers: []
description: ''
custom: []
@ -47,7 +47,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer PfaEg1eZh66cd5V4v8bD3ak'
- 'Bearer g4kDa1vV6cdfPe3baZ8h5E6'
controller: null
method: null
route: null
@ -102,7 +102,7 @@ endpoints:
name: name
description: 'The name of the storage provider.'
required: true
example: eos
example: dignissimos
type: string
enumValues: []
exampleWasSpecified: false
@ -112,7 +112,7 @@ endpoints:
name: token
description: 'The token if provider requires api token'
required: true
example: et
example: voluptates
type: string
enumValues: []
exampleWasSpecified: false
@ -122,7 +122,7 @@ endpoints:
name: url
description: 'The URL if the provider is Gitlab and it is self-hosted'
required: true
example: 'https://lueilwitz.com/nostrum-et-porro-atque-sint.html'
example: 'https://www.hamill.net/culpa-non-qui-suscipit-dolores-id-aliquam'
type: string
enumValues: []
exampleWasSpecified: false
@ -132,7 +132,7 @@ endpoints:
name: username
description: 'The username if the provider is Bitbucket'
required: true
example: consectetur
example: nisi
type: string
enumValues: []
exampleWasSpecified: false
@ -142,7 +142,7 @@ endpoints:
name: password
description: 'The password if the provider is Bitbucket'
required: true
example: 'PL.P?{06\ECi0'
example: W~19Z0
type: string
enumValues: []
exampleWasSpecified: false
@ -150,16 +150,16 @@ endpoints:
custom: []
cleanBodyParameters:
provider: bitbucket
name: eos
token: et
url: 'https://lueilwitz.com/nostrum-et-porro-atque-sint.html'
username: consectetur
password: 'PL.P?{06\ECi0'
name: dignissimos
token: voluptates
url: 'https://www.hamill.net/culpa-non-qui-suscipit-dolores-id-aliquam'
username: nisi
password: W~19Z0
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"Toby Parker","provider":"github","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"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"}'
headers: []
description: ''
custom: []
@ -167,7 +167,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer V5Zf3a1ve6d6kP4cbgha8DE'
- 'Bearer fhEkg836V6cbd5ZPva4Dae1'
controller: null
method: null
route: null
@ -204,7 +204,7 @@ endpoints:
name: sourceControl_id
description: 'The ID of the sourceControl.'
required: true
example: 3
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
@ -212,7 +212,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
sourceControl_id: 3
sourceControl_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -221,7 +221,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"Prof. Bartholome Graham IV","provider":"github","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"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"}'
headers: []
description: ''
custom: []
@ -229,7 +229,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer k1b5hac6veZ36P8gDV4fadE'
- 'Bearer 458gPbv6deEfkcZ13ahaD6V'
controller: null
method: null
route: null
@ -266,7 +266,7 @@ endpoints:
name: sourceControl_id
description: 'The ID of the sourceControl.'
required: true
example: 3
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
@ -274,7 +274,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
sourceControl_id: 3
sourceControl_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters:
@ -282,7 +282,7 @@ endpoints:
name: name
description: 'The name of the storage provider.'
required: true
example: quaerat
example: aut
type: string
enumValues: []
exampleWasSpecified: false
@ -292,7 +292,7 @@ endpoints:
name: token
description: 'The token if provider requires api token'
required: true
example: consectetur
example: repudiandae
type: string
enumValues: []
exampleWasSpecified: false
@ -302,7 +302,7 @@ endpoints:
name: url
description: 'The URL if the provider is Gitlab and it is self-hosted'
required: true
example: 'http://www.hudson.biz/rerum-voluptatem-debitis-accusamus'
example: 'http://howe.net/eaque-assumenda-voluptatem-quo-libero-eius.html'
type: string
enumValues: []
exampleWasSpecified: false
@ -312,7 +312,7 @@ endpoints:
name: username
description: 'The username if the provider is Bitbucket'
required: true
example: voluptatem
example: consequatur
type: string
enumValues: []
exampleWasSpecified: false
@ -322,7 +322,7 @@ endpoints:
name: password
description: 'The password if the provider is Bitbucket'
required: true
example: '\p/el>)3#~E?kI'
example: 'oX/H"pAIt7R2"'
type: string
enumValues: []
exampleWasSpecified: false
@ -341,17 +341,17 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
name: quaerat
token: consectetur
url: 'http://www.hudson.biz/rerum-voluptatem-debitis-accusamus'
username: voluptatem
password: '\p/el>)3#~E?kI'
name: aut
token: repudiandae
url: 'http://howe.net/eaque-assumenda-voluptatem-quo-libero-eius.html'
username: consequatur
password: 'oX/H"pAIt7R2"'
global: false
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"Cicero Smitham","provider":"github","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"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"}'
headers: []
description: ''
custom: []
@ -359,7 +359,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 6dkE6h8a5eg3f14acVvbPDZ'
- 'Bearer De1a4dEaV5v3Zgh8fPk66bc'
controller: null
method: null
route: null
@ -396,7 +396,7 @@ endpoints:
name: sourceControl_id
description: 'The ID of the sourceControl.'
required: true
example: 3
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
@ -404,7 +404,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
sourceControl_id: 3
sourceControl_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -413,7 +413,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -421,7 +421,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer fb6Zk4EP318eva5hDdcV6ga'
- 'Bearer EZhd63eafgcV4a651PvkDb8'
controller: null
method: null
route: null

View File

@ -39,7 +39,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":3,"project_id":null,"global":true,"name":"et","provider":"local","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"},{"id":4,"project_id":null,"global":true,"name":"sed","provider":"local","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.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}}'
content: '{"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}}'
headers: []
description: ''
custom: []
@ -47,7 +47,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 1dbV3vkh6EPD5g48cafeZ6a'
- 'Bearer D16Vg58E6Pfkh3Zveab4dca'
controller: null
method: null
route: null
@ -89,7 +89,7 @@ endpoints:
name: provider
description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)'
required: true
example: quod
example: alias
type: string
enumValues: []
exampleWasSpecified: false
@ -99,7 +99,7 @@ endpoints:
name: name
description: 'The name of the storage provider.'
required: true
example: commodi
example: explicabo
type: string
enumValues: []
exampleWasSpecified: false
@ -109,7 +109,7 @@ endpoints:
name: token
description: 'The token if provider requires api token'
required: true
example: ipsum
example: ut
type: string
enumValues: []
exampleWasSpecified: false
@ -119,7 +119,7 @@ endpoints:
name: key
description: 'The key if provider requires key'
required: true
example: ratione
example: libero
type: string
enumValues: []
exampleWasSpecified: false
@ -129,23 +129,23 @@ endpoints:
name: secret
description: 'The secret if provider requires key'
required: true
example: iste
example: consequatur
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
provider: quod
name: commodi
token: ipsum
key: ratione
secret: iste
provider: alias
name: explicabo
token: ut
key: libero
secret: consequatur
fileParameters: []
responses:
-
status: 200
content: '{"id":3,"project_id":null,"global":true,"name":"est","provider":"dropbox","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"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"}'
headers: []
description: ''
custom: []
@ -153,7 +153,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer abehv36kP4D658VafgdZE1c'
- 'Bearer DaZ6d6Eck1bhVe3g4aP85vf'
controller: null
method: null
route: null
@ -190,7 +190,7 @@ endpoints:
name: storageProvider_id
description: 'The ID of the storageProvider.'
required: true
example: 1
example: 3
type: integer
enumValues: []
exampleWasSpecified: false
@ -198,7 +198,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
storageProvider_id: 1
storageProvider_id: 3
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -207,7 +207,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":3,"project_id":null,"global":true,"name":"officia","provider":"ftp","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"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"}'
headers: []
description: ''
custom: []
@ -215,7 +215,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer bda64P5c1gEDe8V3Z6vhkaf'
- 'Bearer 1dekD4gva56bc683VPEhZfa'
controller: null
method: null
route: null
@ -252,7 +252,7 @@ endpoints:
name: storageProvider_id
description: 'The ID of the storageProvider.'
required: true
example: 1
example: 3
type: integer
enumValues: []
exampleWasSpecified: false
@ -260,7 +260,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
storageProvider_id: 1
storageProvider_id: 3
queryParameters: []
cleanQueryParameters: []
bodyParameters:
@ -268,7 +268,7 @@ endpoints:
name: name
description: 'The name of the storage provider.'
required: true
example: iusto
example: sequi
type: string
enumValues: []
exampleWasSpecified: false
@ -278,7 +278,7 @@ endpoints:
name: global
description: 'Accessible in all projects'
required: true
example: true
example: false
type: string
enumValues:
- true
@ -287,13 +287,13 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
name: iusto
global: true
name: sequi
global: false
fileParameters: []
responses:
-
status: 200
content: '{"id":3,"project_id":null,"global":true,"name":"rerum","provider":"ftp","created_at":"2024-11-01T15:40:48.000000Z","updated_at":"2024-11-01T15:40:48.000000Z"}'
content: '{"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"}'
headers: []
description: ''
custom: []
@ -301,7 +301,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer aEP35hVakDdf814eZvg66cb'
- 'Bearer V65g18Pca4v3hDEkbZfe6da'
controller: null
method: null
route: null
@ -338,7 +338,7 @@ endpoints:
name: storageProvider_id
description: 'The ID of the storageProvider.'
required: true
example: 1
example: 3
type: integer
enumValues: []
exampleWasSpecified: false
@ -346,7 +346,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
storageProvider_id: 1
storageProvider_id: 3
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -355,7 +355,7 @@ endpoints:
responses:
-
status: 204
content: 'null'
content: null
headers: []
description: ''
custom: []
@ -363,7 +363,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Dah3PgE5d64fcbe8a16VkvZ'
- 'Bearer 1v6a6efgch3DbZ4aVE5d8kP'
controller: null
method: null
route: null

View File

@ -46,7 +46,6 @@ public function create(Site $site, array $input): void
$ssl->status = SslStatus::CREATED;
$ssl->save();
$webserver->updateVHost($site);
$site->type()->edit();
})->catch(function () use ($ssl) {
$ssl->status = SslStatus::FAILED;
$ssl->save();

View File

@ -24,6 +24,9 @@ public function edit(Server $server, array $input): Server
}
$server->ip = $input['ip'];
}
if (isset($input['local_ip'])) {
$server->local_ip = $input['local_ip'];
}
if (isset($input['port'])) {
if ($server->port !== $input['port']) {
$checkConnection = true;
@ -52,6 +55,10 @@ public static function rules(Server $server): array
new RestrictedIPAddressesRule,
Rule::unique('servers')->where('project_id', $server->project_id)->ignore($server->id),
],
'local_ip' => [
'string',
Rule::unique('servers')->where('project_id', $server->project_id)->ignore($server->id),
],
'port' => [
'integer',
'min:1',

View File

@ -0,0 +1,63 @@
<?php
namespace App\Actions\Site;
use App\Enums\LoadBalancerMethod;
use App\Models\LoadBalancerServer;
use App\Models\Site;
use Illuminate\Validation\Rule;
class UpdateLoadBalancer
{
public function update(Site $site, array $input): void
{
$site->loadBalancerServers()->delete();
foreach ($input['servers'] as $server) {
$loadBalancerServer = new LoadBalancerServer([
'load_balancer_id' => $site->id,
'ip' => $server['server'],
'port' => $server['port'],
'weight' => $server['weight'],
'backup' => (bool) $server['backup'],
]);
$loadBalancerServer->save();
}
$site->webserver()->updateVHost($site);
}
public static function rules(Site $site): array
{
return [
'servers' => [
'required',
'array',
],
'servers.*.server' => [
'required',
Rule::exists('servers', 'local_ip')
->where('project_id', $site->project->id),
],
'servers.*.port' => [
'required',
'numeric',
'min:1',
'max:65535',
],
'servers.*.weight' => [
'nullable',
'numeric',
'min:0',
],
'servers.*.backup' => [
'required',
'boolean',
],
'method' => [
'required',
Rule::in(LoadBalancerMethod::all()),
],
];
}
}

View File

@ -0,0 +1,16 @@
<?php
namespace App\Enums;
use App\Traits\Enum;
final class LoadBalancerMethod
{
use Enum;
const ROUND_ROBIN = 'round-robin';
const LEAST_CONNECTIONS = 'least-connections';
const IP_HASH = 'ip-hash';
}

View File

@ -14,20 +14,5 @@ final class SiteType
const PHPMYADMIN = 'phpmyadmin';
public static function hasWebDirectory(): array
{
return [
self::PHP,
self::PHP_BLANK,
self::LARAVEL,
];
}
public static function hasSourceControl(): array
{
return [
self::PHP,
self::LARAVEL,
];
}
const LOAD_BALANCER = 'load-balancer';
}

View File

@ -3,9 +3,10 @@
namespace App\Http\Controllers\API;
use App\Actions\Site\CreateSite;
use App\Actions\Site\UpdateLoadBalancer;
use App\Enums\LoadBalancerMethod;
use App\Enums\SiteType;
use App\Http\Controllers\Controller;
use App\Http\Resources\ServerResource;
use App\Http\Resources\SiteResource;
use App\Models\Project;
use App\Models\Server;
@ -42,7 +43,7 @@ public function index(Project $project, Server $server): ResourceCollection
#[Post('/', name: 'api.projects.servers.sites.create', middleware: 'ability:write')]
#[Endpoint(title: 'create', description: 'Create a new site.')]
#[BodyParam(name: 'type', required: true, enum: [SiteType::PHP, SiteType::PHP_BLANK, SiteType::PHPMYADMIN, SiteType::LARAVEL, SiteType::WORDPRESS])]
#[BodyParam(name: 'type', required: true, enum: [SiteType::PHP, SiteType::PHP_BLANK, SiteType::PHPMYADMIN, SiteType::LARAVEL, SiteType::WORDPRESS, SiteType::LOAD_BALANCER])]
#[BodyParam(name: 'domain', required: true)]
#[BodyParam(name: 'aliases', type: 'array')]
#[BodyParam(name: 'php_version', description: 'One of the installed PHP Versions', required: true, example: '7.4')]
@ -53,6 +54,7 @@ public function index(Project $project, Server $server): ResourceCollection
#[BodyParam(name: 'composer', type: 'boolean', description: 'Run composer if site supports composer', example: true)]
#[BodyParam(name: 'version', description: 'Version, if the site type requires a version like PHPMyAdmin', example: '5.2.1')]
#[BodyParam(name: 'user', description: 'user, to isolate the website under a new user')]
#[BodyParam(name: 'method', description: 'Load balancer method, Required if the site type is Load balancer', enum: [LoadBalancerMethod::ROUND_ROBIN, LoadBalancerMethod::LEAST_CONNECTIONS, LoadBalancerMethod::IP_HASH])]
#[ResponseFromApiResource(SiteResource::class, Site::class)]
public function create(Request $request, Project $project, Server $server): SiteResource
{
@ -70,13 +72,13 @@ public function create(Request $request, Project $project, Server $server): Site
#[Get('{site}', name: 'api.projects.servers.sites.show', middleware: 'ability:read')]
#[Endpoint(title: 'show', description: 'Get a site by ID.')]
#[ResponseFromApiResource(SiteResource::class, Site::class)]
public function show(Project $project, Server $server, Site $site): ServerResource
public function show(Project $project, Server $server, Site $site): SiteResource
{
$this->authorize('view', [$site, $server]);
$this->validateRoute($project, $server, $site);
return new ServerResource($server);
return new SiteResource($site);
}
#[Delete('{site}', name: 'api.projects.servers.sites.delete', middleware: 'ability:write')]
@ -93,6 +95,24 @@ public function delete(Project $project, Server $server, Site $site)
return response()->noContent();
}
#[Post('{site}/load-balancer', name: 'api.projects.servers.sites.load-balancer', middleware: 'ability:write')]
#[Endpoint(title: 'load-balancer', description: 'Update load balancer.')]
#[BodyParam(name: 'method', description: 'Load balancer method, Required if the site type is Load balancer', enum: [LoadBalancerMethod::ROUND_ROBIN, LoadBalancerMethod::LEAST_CONNECTIONS, LoadBalancerMethod::IP_HASH])]
#[BodyParam(name: 'servers', type: 'array', description: 'Array of servers including server, port, weight, backup. (server is the local IP of the server)')]
#[Response(status: 200)]
public function updateLoadBalancer(Request $request, Project $project, Server $server, Site $site): SiteResource
{
$this->authorize('update', [$site, $server]);
$this->validateRoute($project, $server, $site);
$this->validate($request, UpdateLoadBalancer::rules($site));
app(UpdateLoadBalancer::class)->update($site, $request->all());
return new SiteResource($site);
}
private function validateRoute(Project $project, Server $server, ?Site $site = null): void
{
if ($project->id !== $server->project_id) {

View File

@ -0,0 +1,44 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/**
* @property int $load_balancer_id
* @property string $ip
* @property int $port
* @property int $weight
* @property bool $backup
* @property Site $loadBalancer
*/
class LoadBalancerServer extends AbstractModel
{
use HasFactory;
protected $fillable = [
'load_balancer_id',
'ip',
'port',
'weight',
'backup',
];
protected $casts = [
'load_balancer_id' => 'integer',
'port' => 'integer',
'weight' => 'integer',
'backup' => 'boolean',
];
public function loadBalancer(): BelongsTo
{
return $this->belongsTo(Site::class, 'load_balancer_id');
}
public function server(): ?Server
{
return $this->loadBalancer->project->servers()->where('local_ip', $this->ip)->first();
}
}

View File

@ -16,6 +16,7 @@
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Database\Eloquent\Relations\MorphToMany;
use Illuminate\Support\Collection;
use Illuminate\Support\Str;
/**
@ -47,6 +48,7 @@
* @property ?Ssl $activeSsl
* @property string $ssh_key_name
* @property ?SourceControl $sourceControl
* @property Collection<LoadBalancerServer> $loadBalancerServers
*
* @TODO: Add nodejs_version column
*/
@ -332,4 +334,9 @@ public function webserver(): Webserver
return $webserver;
}
public function loadBalancerServers(): HasMany
{
return $this->hasMany(LoadBalancerServer::class, 'load_balancer_id');
}
}

View File

@ -34,7 +34,7 @@ public function data(array $input): array
public function editRules(array $input): array
{
return [];
return $this->createRules($input);
}
protected function progress(int $percentage): void

58
app/SiteTypes/LoadBalancer.php Executable file
View File

@ -0,0 +1,58 @@
<?php
namespace App\SiteTypes;
use App\Enums\LoadBalancerMethod;
use App\Enums\SiteFeature;
use App\Exceptions\SSHError;
use App\SSH\Services\Webserver\Webserver;
use Illuminate\Validation\Rule;
class LoadBalancer extends AbstractSiteType
{
public function language(): string
{
return 'yaml';
}
public function supportedFeatures(): array
{
return [
SiteFeature::SSL,
];
}
public function createRules(array $input): array
{
return [
'method' => [
'required',
Rule::in(LoadBalancerMethod::all()),
],
];
}
public function data(array $input): array
{
return [
'method' => $input['method'] ?? LoadBalancerMethod::ROUND_ROBIN,
];
}
/**
* @throws SSHError
*/
public function install(): void
{
$this->isolate();
/** @var Webserver $webserver */
$webserver = $this->site->server->webserver()->handler();
$webserver->createVHost($this->site);
}
public function edit(): void
{
//
}
}

View File

@ -3,6 +3,7 @@
namespace App\Web\Pages\Servers\Sites;
use App\Actions\Site\CreateSite;
use App\Enums\LoadBalancerMethod;
use App\Enums\SiteType;
use App\Models\Site;
use App\Models\SourceControl;
@ -133,6 +134,17 @@ protected function getHeaderActions(): array
->rules(fn (Get $get) => CreateSite::rules($this->server, $get())['version']),
// WordPress
$this->wordpressFields(),
// Load Balancer
Select::make('method')
->label('Balancing Method')
->validationAttribute('Balancing Method')
->options(
collect(LoadBalancerMethod::all())
->mapWithKeys(fn ($method) => [$method => $method])
)
->visible(fn (Get $get) => $get('type') === SiteType::LOAD_BALANCER)
->rules(fn (Get $get) => CreateSite::rules($this->server, $get())['method'] ?? []),
// User
TextInput::make('user')
->label('User')
->placeholder('vito')

View File

@ -7,6 +7,7 @@
use App\Actions\Site\UpdateDeploymentScript;
use App\Actions\Site\UpdateEnv;
use App\Enums\SiteFeature;
use App\Enums\SiteType;
use App\Web\Fields\CodeEditorField;
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
@ -58,6 +59,10 @@ public function getWidgets(): array
if (in_array(SiteFeature::DEPLOYMENT, $this->site->type()->supportedFeatures())) {
$widgets[] = [Widgets\DeploymentsList::class, ['site' => $this->site]];
}
if ($this->site->type === SiteType::LOAD_BALANCER) {
$widgets[] = [Widgets\LoadBalancerServers::class, ['site' => $this->site]];
}
}
return $widgets;

View File

@ -0,0 +1,141 @@
<?php
namespace App\Web\Pages\Servers\Sites\Widgets;
use App\Actions\Site\UpdateLoadBalancer;
use App\Enums\LoadBalancerMethod;
use App\Models\LoadBalancerServer;
use App\Models\Site;
use Filament\Forms\Components\Actions\Action;
use Filament\Forms\Components\Repeater;
use Filament\Forms\Components\Section;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Toggle;
use Filament\Forms\Concerns\InteractsWithForms;
use Filament\Forms\Contracts\HasForms;
use Filament\Forms\Form;
use Filament\Notifications\Notification;
use Filament\Widgets\Widget;
use Livewire\Attributes\On;
class LoadBalancerServers extends Widget implements HasForms
{
use InteractsWithForms;
protected static string $view = 'components.form';
public Site $site;
public string $method;
public array $servers = [];
public function mount(): void
{
$this->setLoadBalancerServers();
if (empty($this->servers)) {
$this->servers = [
[
'server' => null,
'port' => 80,
'weight' => null,
'backup' => false,
],
];
}
$this->method = $this->site->type_data['method'] ?? LoadBalancerMethod::ROUND_ROBIN;
}
#[On('load-balancer-updated')]
public function setLoadBalancerServers(): void
{
$this->servers = $this->site->loadBalancerServers->map(function (LoadBalancerServer $server) {
return [
'server' => $server->ip,
'port' => $server->port,
'weight' => $server->weight,
'backup' => $server->backup,
];
})->toArray();
}
public function form(Form $form): Form
{
return $form
->schema([
Section::make()
->heading('Load Balancer Servers')
->description('You can add or remove servers from the load balancer here')
->columns(3)
->schema([
Select::make('method')
->label('Balancing Method')
->validationAttribute('Balancing Method')
->options(
collect(LoadBalancerMethod::all())
->mapWithKeys(fn ($method) => [$method => $method])
)
->rules(UpdateLoadBalancer::rules($this->site)['method']),
Repeater::make('servers')
->schema([
Select::make('server')
->placeholder('Select a server')
->searchable()
->required()
->rules(UpdateLoadBalancer::rules($this->site)['servers.*.server'])
->options(function () {
return $this->site->project->servers()
->where('id', '!=', $this->site->server_id)
->get()
->mapWithKeys(function ($server) {
return [$server->local_ip => $server->name.' ('.$server->local_ip.')'];
});
}),
TextInput::make('port')
->default(80)
->required()
->rules(UpdateLoadBalancer::rules($this->site)['servers.*.port']),
TextInput::make('weight')
->rules(UpdateLoadBalancer::rules($this->site)['servers.*.weight']),
Toggle::make('backup')
->label('Backup')
->inline(false)
->default(false),
])
->columnSpan(3)
->live()
->reorderable(false)
->columns(4)
->reorderableWithDragAndDrop(false)
->addActionLabel('Add Server'),
])
->footerActions([
Action::make('save')
->label('Save')
->action(fn () => $this->save()),
]),
]);
}
public function save(): void
{
$this->authorize('update', [$this->site, $this->site->server]);
$this->validate();
run_action($this, function () {
app(UpdateLoadBalancer::class)->update($this->site, [
'method' => $this->method,
'servers' => $this->servers,
]);
$this->dispatch('load-balancer-updated');
Notification::make()
->success()
->title('Load balancer updated!')
->send();
});
}
}

View File

@ -27,6 +27,8 @@ class UpdateServerInfo extends Widget implements HasForms
public string $ip;
public ?string $local_ip;
public string $port;
public function mount(Server $server): void
@ -34,6 +36,7 @@ public function mount(Server $server): void
$this->server = $server;
$this->name = $server->name;
$this->ip = $server->ip;
$this->local_ip = $server->local_ip;
$this->port = $server->port;
}
@ -52,6 +55,10 @@ public function form(Form $form): Form
TextInput::make('ip')
->label('IP Address')
->rules(EditServer::rules($this->server)['ip']),
TextInput::make('local_ip')
->label('Local Network IP Address')
->placeholder('10.0.0.1')
->rules(EditServer::rules($this->server)['local_ip']),
TextInput::make('port')
->label('Port')
->rules(EditServer::rules($this->server)['port']),

View File

@ -431,6 +431,7 @@
\App\Enums\SiteType::LARAVEL,
\App\Enums\SiteType::WORDPRESS,
\App\Enums\SiteType::PHPMYADMIN,
\App\Enums\SiteType::LOAD_BALANCER,
],
'site_types_class' => [
\App\Enums\SiteType::PHP => \App\SiteTypes\PHPSite::class,
@ -438,6 +439,7 @@
\App\Enums\SiteType::LARAVEL => \App\SiteTypes\Laravel::class,
\App\Enums\SiteType::WORDPRESS => \App\SiteTypes\Wordpress::class,
\App\Enums\SiteType::PHPMYADMIN => \App\SiteTypes\PHPMyAdmin::class,
\App\Enums\SiteType::LOAD_BALANCER => \App\SiteTypes\LoadBalancer::class,
],
/*

View File

@ -0,0 +1,25 @@
<?php
namespace Database\Factories;
use App\Models\LoadBalancerServer;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Carbon;
class LoadBalancerServerFactory extends Factory
{
protected $model = LoadBalancerServer::class;
public function definition(): array
{
return [
'load_balancer_id' => $this->faker->randomNumber(), //
'ip' => $this->faker->ipv4(),
'port' => $this->faker->randomNumber(),
'weight' => $this->faker->randomNumber(),
'backup' => $this->faker->boolean(),
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
];
}
}

View File

@ -0,0 +1,26 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::create('load_balancer_servers', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('load_balancer_id');
$table->string('ip');
$table->integer('port');
$table->integer('weight')->nullable();
$table->boolean('backup');
$table->timestamps();
});
}
public function down(): void
{
Schema::dropIfExists('load_balancer_servers');
}
};

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg viewBox="0 0 291 291" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
preserveAspectRatio="xMidYMid">
<g>
<path
d="M2.05386819,218.186819 C3.37421203,220.534097 5.28137536,222.294556 7.6286533,223.6149 L120.591404,288.751862 L120.591404,288.751862 C125.28596,291.539255 131.00745,291.539255 135.555301,288.751862 L248.518052,223.6149 C253.212607,220.974212 256,215.986246 256,210.558166 L256,80.2842407 L256,80.2842407 C256,74.8561605 253.212607,69.8681948 248.518052,67.2275072 L135.555301,2.09054441 L135.555301,2.09054441 C130.860745,-0.696848138 125.139255,-0.696848138 120.591404,2.09054441 L120.591404,2.09054441 L7.6286533,67.2275072 C2.78739255,69.8681948 0,74.8561605 0,80.2842407 L0,80.2842407 L0,210.704871 C0,213.345559 0.586819484,215.839542 2.05386819,218.186819"
fill="#009639"></path>
<path
d="M91.8372493,195.154155 C91.8372493,203.222923 85.382235,209.677937 77.313467,209.677937 C69.2446991,209.677937 62.7896848,203.222923 62.7896848,195.154155 L62.7896848,195.154155 L62.7896848,95.5415473 C62.7896848,87.7661891 69.6848138,81.4578797 79.2206304,81.4578797 C86.1157593,81.4578797 94.1845272,84.2452722 99.025788,90.2601719 L103.426934,95.5415473 L164.162751,168.160458 L164.162751,95.834957 L164.162751,95.834957 C164.162751,87.7661891 170.617765,81.3111748 178.686533,81.3111748 C186.755301,81.3111748 193.210315,87.7661891 193.210315,95.834957 L193.210315,95.834957 L193.210315,195.447564 C193.210315,203.222923 186.315186,209.531232 176.77937,209.531232 C169.884241,209.531232 161.815473,206.74384 156.974212,200.72894 L91.8372493,122.975358 L91.8372493,195.154155 L91.8372493,195.154155 Z"
fill="#FFFFFF"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -6,6 +6,27 @@
}
@endif
@if ($site->type === \App\Enums\SiteType::LOAD_BALANCER)
upstream backend {
@switch($site->type_data['method'] ?? \App\Enums\LoadBalancerMethod::ROUND_ROBIN)
@case(\App\Enums\LoadBalancerMethod::LEAST_CONNECTIONS)
least_conn;
@break
@case(\App\Enums\LoadBalancerMethod::IP_HASH)
ip_hash;
@break
@default
@endswitch
@if ($site->loadBalancerServers()->count() > 0)
@foreach($site->loadBalancerServers as $server)
server {{ $server->ip }}:{{ $server->port }} {{ $server->backup ? 'backup' : '' }} {{ $server->weight ? 'weight='.$server->weight : '' }};
@endforeach
@else
server 127.0.0.1;
@endif
}
@endif
server {
@if (!$site->activeSsl || !$site->force_ssl)
listen 80;
@ -26,18 +47,7 @@
charset utf-8;
@if ($site->port)
location / {
try_files $uri $uri/ /index.html;
}
location / {
proxy_pass http://127.0.0.1:{{ $site->port }}/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $remote_addr;
}
@elseif ($site->php_version)
@if ($site->type()->language() === 'php')
@php
$phpSocket = 'unix:/var/run/php/php-fpm.sock';
if ($site->isIsolated()) {
@ -55,6 +65,16 @@
}
@endif
@if ($site->type === \App\Enums\SiteType::LOAD_BALANCER)
location / {
proxy_pass http://backend$request_uri;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
@endif
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }

View File

@ -2,18 +2,29 @@
namespace Tests\Feature\API;
use App\Enums\LoadBalancerMethod;
use App\Enums\SourceControl;
use App\Facades\SSH;
use App\Models\Server;
use App\Models\Site;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Http;
use Laravel\Sanctum\Sanctum;
use Tests\TestCase;
use Tests\Traits\PrepareLoadBalancer;
class SitesTest extends TestCase
{
use PrepareLoadBalancer;
use RefreshDatabase;
protected function setUp(): void
{
parent::setUp();
$this->prepare();
}
/**
* @dataProvider create_data
*/
@ -67,6 +78,26 @@ public function test_see_sites_list(): void
]);
}
public function test_see_site(): void
{
Sanctum::actingAs($this->user, ['read', 'write']);
/** @var Site $site */
$site = Site::factory()->create([
'server_id' => $this->server->id,
]);
$this->json('GET', route('api.projects.servers.sites.show', [
'project' => $this->server->project,
'server' => $this->server,
'site' => $site,
]))
->assertSuccessful()
->assertJsonFragment([
'domain' => $site->domain,
]);
}
public function test_delete_site(): void
{
SSH::fake();
@ -87,6 +118,54 @@ public function test_delete_site(): void
->assertNoContent();
}
public function test_update_load_balancer(): void
{
SSH::fake();
Sanctum::actingAs($this->user, ['read', 'write']);
$servers = Server::query()->where('id', '!=', $this->server->id)->get();
$this->assertEquals(2, $servers->count());
$this->json('POST', route('api.projects.servers.sites.load-balancer', [
'project' => $this->server->project,
'server' => $this->server,
'site' => $this->site,
]), [
'method' => LoadBalancerMethod::ROUND_ROBIN,
'servers' => [
[
'server' => $servers[0]->local_ip,
'port' => 80,
'weight' => 1,
'backup' => false,
],
[
'server' => $servers[1]->local_ip,
'port' => 80,
'weight' => 1,
'backup' => false,
],
],
])
->assertSuccessful();
$this->assertDatabaseHas('load_balancer_servers', [
'load_balancer_id' => $this->site->id,
'ip' => $servers[0]->local_ip,
'port' => 80,
'weight' => 1,
'backup' => false,
]);
$this->assertDatabaseHas('load_balancer_servers', [
'load_balancer_id' => $this->site->id,
'ip' => $servers[1]->local_ip,
'port' => 80,
'weight' => 1,
'backup' => false,
]);
}
public static function create_data(): array
{
return \Tests\Feature\SitesTest::create_data();

View File

@ -0,0 +1,90 @@
<?php
namespace Tests\Feature;
use App\Enums\LoadBalancerMethod;
use App\Facades\SSH;
use App\Models\Server;
use App\Web\Pages\Servers\Sites\View;
use App\Web\Pages\Servers\Sites\Widgets\LoadBalancerServers;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Livewire\Livewire;
use Tests\TestCase;
use Tests\Traits\PrepareLoadBalancer;
class LoadBalancerTest extends TestCase
{
use PrepareLoadBalancer;
use RefreshDatabase;
protected function setUp(): void
{
parent::setUp();
$this->prepare();
}
public function test_visit_load_balancer_servers(): void
{
$this->actingAs($this->user);
$this->get(
View::getUrl([
'server' => $this->server,
'site' => $this->site,
])
)
->assertSuccessful()
->assertSee($this->site->domain)
->assertSee('Load Balancer Servers');
}
public function test_update_load_balancer_servers()
{
SSH::fake();
$this->actingAs($this->user);
$servers = Server::query()->where('id', '!=', $this->server->id)->get();
$this->assertEquals(2, $servers->count());
Livewire::test(LoadBalancerServers::class, [
'site' => $this->site,
])
->assertFormExists()
->fillForm([
'method' => LoadBalancerMethod::ROUND_ROBIN,
'servers' => [
[
'server' => $servers[0]->local_ip,
'port' => 80,
'weight' => 1,
'backup' => false,
],
[
'server' => $servers[1]->local_ip,
'port' => 80,
'weight' => 1,
'backup' => false,
],
],
])
->call('save')
->assertSuccessful();
$this->assertDatabaseHas('load_balancer_servers', [
'load_balancer_id' => $this->site->id,
'ip' => $servers[0]->local_ip,
'port' => 80,
'weight' => 1,
'backup' => false,
]);
$this->assertDatabaseHas('load_balancer_servers', [
'load_balancer_id' => $this->site->id,
'ip' => $servers[1]->local_ip,
'port' => 80,
'weight' => 1,
'backup' => false,
]);
}
}

View File

@ -2,6 +2,7 @@
namespace Tests\Feature;
use App\Enums\LoadBalancerMethod;
use App\Enums\SiteStatus;
use App\Enums\SiteType;
use App\Enums\SourceControl;
@ -418,6 +419,15 @@ public static function create_data(): array
'user' => 'example',
],
],
[
[
'type' => SiteType::LOAD_BALANCER,
'domain' => 'example.com',
'aliases' => ['www.example.com'],
'user' => 'example',
'method' => LoadBalancerMethod::ROUND_ROBIN,
],
],
];
}

View File

@ -0,0 +1,47 @@
<?php
namespace Tests\Traits;
use App\Enums\Database;
use App\Enums\LoadBalancerMethod;
use App\Enums\PHP;
use App\Enums\ServiceStatus;
use App\Enums\SiteType;
use App\Enums\Webserver;
use App\Models\Server;
use App\Models\Site;
trait PrepareLoadBalancer
{
private function prepare(): void
{
$this->site->type = SiteType::LOAD_BALANCER;
$this->site->type_data = [
'method' => LoadBalancerMethod::ROUND_ROBIN,
];
$this->site->save();
$servers = Server::factory(2)->create([
'user_id' => $this->user->id,
'project_id' => $this->user->current_project_id,
]);
foreach ($servers as $server) {
$server->type()->createServices([
'webserver' => Webserver::NGINX,
'database' => Database::NONE,
'php' => PHP::NONE,
]);
$server->services()->update([
'status' => ServiceStatus::READY,
]);
Site::factory()->create([
'domain' => 'vito.test',
'aliases' => ['www.vito.test'],
'server_id' => $server->id,
'type' => SiteType::PHP_BLANK,
'path' => '/home/vito/vito.test',
'web_directory' => '',
]);
}
}
}