Dimitar Yanakiev 7882d2022c
Add endpoint for reading & updating site deployment script (#562)
* feat(api): Add endpoint for updating site deployment script

- Add PUT /api/projects/{project}/servers/{server}/sites/{site}/deployment-script endpoint
- Add feature tests for successful and failed updates

* added reading deployment script as well

* generate docs

---------

Co-authored-by: Saeed Vaziry <mr.saeedvaziry@gmail.com>
2025-03-29 21:49:28 +01:00

502 lines
14 KiB
YAML

name: servers
description: ''
endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/servers'
metadata:
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: list
description: 'Get all servers in a project.'
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: []
cleanUrlParameters:
project_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 200
content: '{"data":[{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Prof. Wyatt Powlowski IV","ssh_user":"vito","ip":"33.53.217.82","local_ip":"227.155.11.76","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":"Guiseppe D''Amore","ssh_user":"vito","ip":"41.138.98.159","local_ip":"78.178.81.109","port":22,"os":"ubuntu_22","type":"regular","type_data":null,"provider":"custom","provider_data":null,"public_key":"test","status":"ready","auto_update":null,"available_updates":0,"security_updates":null,"progress":100,"progress_step":null,"updates":null,"last_update_check":null,"created_at":null,"updated_at":null}],"links":{"first":"\/?page=1","last":"\/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer aaEkbd3D8gZ6f5v1ePhcV46'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers'
metadata:
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: create
description: 'Create a new server.'
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: []
cleanUrlParameters:
project_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters:
provider:
name: provider
description: 'The server provider type'
required: true
example: vel
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_provider:
name: server_provider
description: 'If the provider is not custom, the ID of the server provider profile'
required: true
example: hetzner
type: string
enumValues:
- custom
- hetzner
- digitalocean
- linode
- vultr
exampleWasSpecified: false
nullable: false
custom: []
region:
name: region
description: 'Provider region if the provider is not custom'
required: true
example: voluptatibus
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
plan:
name: plan
description: 'Provider plan if the provider is not custom'
required: true
example: ducimus
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
ip:
name: ip
description: 'SSH IP address if the provider is custom'
required: true
example: dolores
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
port:
name: port
description: 'SSH Port if the provider is custom'
required: true
example: ratione
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
name:
name: name
description: 'The name of the server.'
required: true
example: in
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
os:
name: os
description: 'The os of the server'
required: true
example: cumque
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
webserver:
name: webserver
description: 'Web server'
required: true
example: nginx
type: string
enumValues:
- none
- nginx
exampleWasSpecified: false
nullable: false
custom: []
database:
name: database
description: Database
required: true
example: mysql80
type: string
enumValues:
- none
- mysql57
- mysql80
- mariadb103
- mariadb104
- mariadb103
- postgresql12
- postgresql13
- postgresql14
- postgresql15
- postgresql16
exampleWasSpecified: false
nullable: false
custom: []
php:
name: php
description: 'PHP version'
required: true
example: '7.4'
type: string
enumValues:
- '7.0'
- '7.1'
- '7.2'
- '7.3'
- '7.4'
- '8.0'
- '8.1'
- '8.2'
- '8.3'
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
provider: vel
server_provider: hetzner
region: voluptatibus
plan: ducimus
ip: dolores
port: ratione
name: in
os: cumque
webserver: nginx
database: mysql80
php: '7.4'
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Anissa McDermott","ssh_user":"vito","ip":"212.15.34.173","local_ip":"142.201.95.242","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: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 6cgZPdbVD4fvae15khaE638'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/servers/{id}'
metadata:
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: show
description: 'Get a server by ID.'
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: []
id:
name: id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Prof. Newton Wintheiser Jr.","ssh_user":"vito","ip":"243.154.251.36","local_ip":"198.224.194.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}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer d5Ebc1ZeDv8aPk466aV3gfh'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/reboot'
metadata:
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: reboot
description: 'Reboot a server.'
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: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer Vav31kZcfg86bdE6ha5DeP4'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/upgrade'
metadata:
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: upgrade
description: 'Upgrade server.'
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: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 14bV3dgZhD6cvEefkPa586a'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/servers/{server_id}'
metadata:
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: 'Delete server.'
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: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer Vv6EbPh186eg3D5fadackZ4'
controller: null
method: null
route: null
custom: []