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>
This commit is contained in:
Dimitar Yanakiev
2025-03-29 22:49:28 +02:00
committed by GitHub
parent 03be2d3ee2
commit 7882d2022c
33 changed files with 4072 additions and 1701 deletions

View File

@ -35,7 +35,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 8
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
@ -43,7 +43,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 8
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -52,7 +52,7 @@ endpoints:
responses:
-
status: 200
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":"&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}}'
content: '{"data":[{"id":null,"name":"ea","server_id":null,"type":"allow","protocol":"tcp","port":41910,"source":"202.183.211.242","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null},{"id":null,"name":"iusto","server_id":null,"type":"allow","protocol":"tcp","port":60689,"source":"227.149.61.57","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}],"links":{"first":"\/?page=1","last":"\/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -60,7 +60,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer h3P5gD8E4dkeZ6abac6vfV1'
- 'Bearer 8g15h66aPf3ZdvkEab4ceVD'
controller: null
method: null
route: null
@ -97,7 +97,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 8
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
@ -105,15 +105,25 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 8
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters:
name:
name: name
description: ''
required: true
example: autem
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
type:
name: type
description: ''
required: true
example: deny
example: allow
type: string
enumValues:
- allow
@ -125,7 +135,7 @@ endpoints:
name: protocol
description: ''
required: true
example: udp
example: tcp
type: string
enumValues:
- tcp
@ -137,7 +147,7 @@ endpoints:
name: port
description: ''
required: true
example: et
example: quas
type: string
enumValues: []
exampleWasSpecified: false
@ -146,8 +156,8 @@ endpoints:
source:
name: source
description: ''
required: true
example: voluptates
required: false
example: blanditiis
type: string
enumValues: []
exampleWasSpecified: false
@ -164,16 +174,17 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
type: deny
protocol: udp
port: et
source: voluptates
name: autem
type: allow
protocol: tcp
port: quas
source: blanditiis
mask: '0'
fileParameters: []
responses:
-
status: 200
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}'
content: '{"id":null,"name":"in","server_id":null,"type":"allow","protocol":"tcp","port":13253,"source":"245.228.81.208","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -181,7 +192,150 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 6a8DVv5k3gZfEe6hb1daPc4'
- 'Bearer 8dhcE436Zbk6fgVDP1aa5ev'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- PUT
uri: 'api/projects/{project_id}/servers/{server_id}/firewall-rules/{firewallRule_id}'
metadata:
groupName: firewall-rules
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: edit
description: 'Update an existing firewall rule.'
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: []
firewallRule_id:
name: firewallRule_id
description: 'The ID of the firewallRule.'
required: true
example: 85
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
firewallRule_id: 85
queryParameters: []
cleanQueryParameters: []
bodyParameters:
name:
name: name
description: ''
required: true
example: earum
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
type:
name: type
description: ''
required: true
example: allow
type: string
enumValues:
- allow
- deny
exampleWasSpecified: false
nullable: false
custom: []
protocol:
name: protocol
description: ''
required: true
example: tcp
type: string
enumValues:
- tcp
- udp
exampleWasSpecified: false
nullable: false
custom: []
port:
name: port
description: ''
required: true
example: ab
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
source:
name: source
description: ''
required: false
example: possimus
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
mask:
name: mask
description: 'Mask for source IP.'
required: true
example: '0'
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
name: earum
type: allow
protocol: tcp
port: ab
source: possimus
mask: '0'
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"name":"repudiandae","server_id":null,"type":"allow","protocol":"tcp","port":44250,"source":"243.200.88.169","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer ag6ebf3456hVkd8ca1PvEDZ'
controller: null
method: null
route: null
@ -218,7 +372,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 8
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
@ -228,7 +382,7 @@ endpoints:
name: firewallRule_id
description: 'The ID of the firewallRule.'
required: true
example: 29
example: 85
type: integer
enumValues: []
exampleWasSpecified: false
@ -236,8 +390,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 8
firewallRule_id: 29
server_id: 29
firewallRule_id: 85
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -246,7 +400,7 @@ endpoints:
responses:
-
status: 200
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}'
content: '{"id":null,"name":"quam","server_id":null,"type":"allow","protocol":"tcp","port":62505,"source":"73.254.77.244","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -254,7 +408,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer P4bZdV1geED3kfh568aa6cv'
- 'Bearer Paagd6D6fV5v4kZ31ebc8hE'
controller: null
method: null
route: null
@ -291,7 +445,7 @@ endpoints:
name: server_id
description: 'The ID of the server.'
required: true
example: 8
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
@ -301,7 +455,7 @@ endpoints:
name: firewallRule_id
description: 'The ID of the firewallRule.'
required: true
example: 29
example: 85
type: integer
enumValues: []
exampleWasSpecified: false
@ -309,8 +463,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 8
firewallRule_id: 29
server_id: 29
firewallRule_id: 85
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -327,7 +481,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Dh3kcaafdg6E5ZvV46ePb81'
- 'Bearer avf16Vhb43dacPZge6D5k8E'
controller: null
method: null
route: null