diff --git a/.scribe/.filehashes b/.scribe/.filehashes index 6541152..b58b4e9 100644 --- a/.scribe/.filehashes +++ b/.scribe/.filehashes @@ -1,4 +1,4 @@ # GENERATED. YOU SHOULDN'T MODIFY OR DELETE THIS FILE. # Scribe uses this file to know when you change something manually in your docs. -.scribe/intro.md=98adb6862b118c06e02e4e22390feb6f -.scribe/auth.md=7fcc12b2e5a86fa9c49f509d348f3cc2 \ No newline at end of file +.scribe/intro.md=ce7ca21baf0406f807aed85ee1d8fa6e +.scribe/auth.md=9bee2b1ef8a238b2e58613fa636d5f39 \ No newline at end of file diff --git a/.scribe/auth.md b/.scribe/auth.md index 64d11a3..8290362 100644 --- a/.scribe/auth.md +++ b/.scribe/auth.md @@ -1,7 +1,3 @@ # Authenticating requests -To authenticate requests, include an **`Authorization`** header with the value **`"Bearer YOUR-API-KEY"`**. - -All authenticated endpoints are marked with a `requires authentication` badge in the documentation below. - -You can retrieve your token by visiting here +This API is not authenticated. diff --git a/.scribe/endpoints.cache/00.yaml b/.scribe/endpoints.cache/00.yaml index c50f114..bd25282 100644 --- a/.scribe/endpoints.cache/00.yaml +++ b/.scribe/endpoints.cache/00.yaml @@ -14,10 +14,9 @@ endpoints: subgroupDescription: '' title: list description: 'Get all cron jobs.' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -35,7 +34,7 @@ endpoints: name: server_id description: 'The ID of the server.' required: true - example: 29 + example: 32 type: integer enumValues: [] exampleWasSpecified: false @@ -43,7 +42,7 @@ endpoints: custom: [] cleanUrlParameters: project_id: 1 - server_id: 29 + server_id: 32 queryParameters: [] cleanQueryParameters: [] bodyParameters: [] @@ -52,15 +51,12 @@ endpoints: responses: - status: 200 - content: '{"data":[{"id":null,"server_id":null,"command":"ls -la","user":"root","frequency":"* * * * *","status":"ready","created_at":null,"updated_at":null},{"id":null,"server_id":null,"command":"ls -la","user":"root","frequency":"* * * * *","status":"ready","created_at":null,"updated_at":null}],"links":{"first":"\/?page=1","last":"\/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"« Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next »","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}' + content: '{"data":[{"id":5,"server_id":1,"command":"ls -la","user":"root","frequency":"* * * * *","status":"ready","created_at":"2025-04-21T18:40:19.000000Z","updated_at":"2025-04-21T18:40:19.000000Z"},{"id":6,"server_id":1,"command":"ls -la","user":"root","frequency":"* * * * *","status":"ready","created_at":"2025-04-21T18:40:19.000000Z","updated_at":"2025-04-21T18:40:19.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: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer eDa6Vdh1Z4vc35bP8E6gafk' + auth: [] controller: null method: null route: null @@ -76,10 +72,9 @@ endpoints: subgroupDescription: '' title: create description: 'Create a new cron job.' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -97,7 +92,7 @@ endpoints: name: server_id description: 'The ID of the server.' required: true - example: 29 + example: 32 type: integer enumValues: [] exampleWasSpecified: false @@ -105,7 +100,7 @@ endpoints: custom: [] cleanUrlParameters: project_id: 1 - server_id: 29 + server_id: 32 queryParameters: [] cleanQueryParameters: [] bodyParameters: @@ -113,7 +108,7 @@ endpoints: name: command description: '' required: true - example: quia + example: consequatur type: string enumValues: [] exampleWasSpecified: false @@ -123,7 +118,7 @@ endpoints: name: user description: '' required: true - example: root + example: vito type: string enumValues: - root @@ -142,22 +137,19 @@ endpoints: nullable: false custom: [] cleanBodyParameters: - command: quia - user: root + command: consequatur + user: vito frequency: '* * * * *' fileParameters: [] responses: - status: 200 - content: '{"id":null,"server_id":null,"command":"ls -la","user":"root","frequency":"* * * * *","status":"ready","created_at":null,"updated_at":null}' + content: '{"id":5,"server_id":1,"command":"ls -la","user":"root","frequency":"* * * * *","status":"ready","created_at":"2025-04-21T18:40:19.000000Z","updated_at":"2025-04-21T18:40:19.000000Z"}' headers: [] description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer 66EeZvdh3kVaDP8f4ga5c1b' + auth: [] controller: null method: null route: null @@ -173,10 +165,9 @@ endpoints: subgroupDescription: '' title: show description: 'Get a cron job by ID.' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -194,7 +185,7 @@ endpoints: name: server_id description: 'The ID of the server.' required: true - example: 29 + example: 32 type: integer enumValues: [] exampleWasSpecified: false @@ -204,7 +195,7 @@ endpoints: name: cronJob_id description: 'The ID of the cronJob.' required: true - example: 6 + example: 17 type: integer enumValues: [] exampleWasSpecified: false @@ -212,8 +203,8 @@ endpoints: custom: [] cleanUrlParameters: project_id: 1 - server_id: 29 - cronJob_id: 6 + server_id: 32 + cronJob_id: 17 queryParameters: [] cleanQueryParameters: [] bodyParameters: [] @@ -222,15 +213,12 @@ endpoints: responses: - status: 200 - content: '{"id":null,"server_id":null,"command":"ls -la","user":"root","frequency":"* * * * *","status":"ready","created_at":null,"updated_at":null}' + content: '{"id":5,"server_id":1,"command":"ls -la","user":"root","frequency":"* * * * *","status":"ready","created_at":"2025-04-21T18:40:19.000000Z","updated_at":"2025-04-21T18:40:19.000000Z"}' headers: [] description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer D4c3Z65ebv8E16fahaVgPdk' + auth: [] controller: null method: null route: null @@ -246,10 +234,9 @@ endpoints: subgroupDescription: '' title: delete description: 'Delete cron job.' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -267,7 +254,7 @@ endpoints: name: server_id description: 'The ID of the server.' required: true - example: 29 + example: 32 type: integer enumValues: [] exampleWasSpecified: false @@ -277,7 +264,7 @@ endpoints: name: cronJob_id description: 'The ID of the cronJob.' required: true - example: 13 + example: 17 type: integer enumValues: [] exampleWasSpecified: false @@ -285,8 +272,8 @@ endpoints: custom: [] cleanUrlParameters: project_id: 1 - server_id: 29 - cronJob_id: 13 + server_id: 32 + cronJob_id: 17 queryParameters: [] cleanQueryParameters: [] bodyParameters: [] @@ -300,10 +287,7 @@ endpoints: description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer h3cP4aZa1v8feDdEg5b6k6V' + auth: [] controller: null method: null route: null diff --git a/.scribe/endpoints.cache/01.yaml b/.scribe/endpoints.cache/01.yaml index 807dd80..6db8a57 100644 --- a/.scribe/endpoints.cache/01.yaml +++ b/.scribe/endpoints.cache/01.yaml @@ -14,10 +14,9 @@ endpoints: subgroupDescription: '' title: list description: 'Get all databases.' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -35,7 +34,7 @@ endpoints: name: server_id description: 'The ID of the server.' required: true - example: 29 + example: 32 type: integer enumValues: [] exampleWasSpecified: false @@ -43,7 +42,7 @@ endpoints: custom: [] cleanUrlParameters: project_id: 1 - server_id: 29 + server_id: 32 queryParameters: [] cleanQueryParameters: [] bodyParameters: [] @@ -52,15 +51,12 @@ endpoints: responses: - status: 200 - content: '{"data":[{"id":null,"server_id":null,"name":"leffler.esther","status":"ready","created_at":null,"updated_at":null},{"id":null,"server_id":null,"name":"rhoda.rutherford","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":21,"server_id":1,"name":"carolyne.luettgen","status":"ready","created_at":"2025-04-21T18:40:19.000000Z","updated_at":"2025-04-21T18:40:19.000000Z"},{"id":22,"server_id":1,"name":"orville77","status":"ready","created_at":"2025-04-21T18:40:19.000000Z","updated_at":"2025-04-21T18:40:19.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: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer E1VdfegZah4k86b53Dc6Pva' + auth: [] controller: null method: null route: null @@ -76,10 +72,9 @@ endpoints: subgroupDescription: '' title: create description: 'Create a new database.' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -97,7 +92,7 @@ endpoints: name: server_id description: 'The ID of the server.' required: true - example: 29 + example: 32 type: integer enumValues: [] exampleWasSpecified: false @@ -105,7 +100,7 @@ endpoints: custom: [] cleanUrlParameters: project_id: 1 - server_id: 29 + server_id: 32 queryParameters: [] cleanQueryParameters: [] bodyParameters: @@ -113,7 +108,7 @@ endpoints: name: name description: '' required: true - example: quisquam + example: consequatur type: string enumValues: [] exampleWasSpecified: false @@ -123,7 +118,7 @@ endpoints: name: charset description: '' required: true - example: omnis + example: consequatur type: string enumValues: [] exampleWasSpecified: false @@ -133,29 +128,26 @@ endpoints: name: collation description: '' required: true - example: at + example: consequatur type: string enumValues: [] exampleWasSpecified: false nullable: false custom: [] cleanBodyParameters: - name: quisquam - charset: omnis - collation: at + name: consequatur + charset: consequatur + collation: consequatur fileParameters: [] responses: - status: 200 - content: '{"id":null,"server_id":null,"name":"csawayn","status":"ready","created_at":null,"updated_at":null}' + content: '{"id":21,"server_id":1,"name":"carolyne.luettgen","status":"ready","created_at":"2025-04-21T18:40:19.000000Z","updated_at":"2025-04-21T18:40:19.000000Z"}' headers: [] description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer PVgkZ35ca4afd1EbD8ehv66' + auth: [] controller: null method: null route: null @@ -171,10 +163,9 @@ endpoints: subgroupDescription: '' title: show description: 'Get a database by ID.' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -192,7 +183,7 @@ endpoints: name: server_id description: 'The ID of the server.' required: true - example: 29 + example: 32 type: integer enumValues: [] exampleWasSpecified: false @@ -202,7 +193,7 @@ endpoints: name: id description: 'The ID of the database.' required: true - example: 8 + example: 17 type: integer enumValues: [] exampleWasSpecified: false @@ -210,8 +201,8 @@ endpoints: custom: [] cleanUrlParameters: project_id: 1 - server_id: 29 - id: 8 + server_id: 32 + id: 17 queryParameters: [] cleanQueryParameters: [] bodyParameters: [] @@ -220,15 +211,12 @@ endpoints: responses: - status: 200 - content: '{"id":null,"server_id":null,"name":"sandrine43","status":"ready","created_at":null,"updated_at":null}' + content: '{"id":21,"server_id":1,"name":"carolyne.luettgen","status":"ready","created_at":"2025-04-21T18:40:19.000000Z","updated_at":"2025-04-21T18:40:19.000000Z"}' headers: [] description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer EP64D8g51adf6hbceavVZ3k' + auth: [] controller: null method: null route: null @@ -244,10 +232,9 @@ endpoints: subgroupDescription: '' title: delete description: 'Delete database.' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -265,7 +252,7 @@ endpoints: name: server_id description: 'The ID of the server.' required: true - example: 29 + example: 32 type: integer enumValues: [] exampleWasSpecified: false @@ -275,7 +262,7 @@ endpoints: name: database_id description: 'The ID of the database.' required: true - example: 8 + example: 17 type: integer enumValues: [] exampleWasSpecified: false @@ -283,8 +270,8 @@ endpoints: custom: [] cleanUrlParameters: project_id: 1 - server_id: 29 - database_id: 8 + server_id: 32 + database_id: 17 queryParameters: [] cleanQueryParameters: [] bodyParameters: [] @@ -298,10 +285,7 @@ endpoints: description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer 8dgEk3Zv1eaVP66bDhf4ac5' + auth: [] controller: null method: null route: null diff --git a/.scribe/endpoints.cache/02.yaml b/.scribe/endpoints.cache/02.yaml index 70c45c6..1987e6b 100644 --- a/.scribe/endpoints.cache/02.yaml +++ b/.scribe/endpoints.cache/02.yaml @@ -14,10 +14,9 @@ endpoints: subgroupDescription: '' title: list description: 'Get all database users.' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -35,7 +34,7 @@ endpoints: name: server_id description: 'The ID of the server.' required: true - example: 29 + example: 32 type: integer enumValues: [] exampleWasSpecified: false @@ -43,7 +42,7 @@ endpoints: custom: [] cleanUrlParameters: project_id: 1 - server_id: 29 + server_id: 32 queryParameters: [] cleanQueryParameters: [] bodyParameters: [] @@ -52,15 +51,12 @@ endpoints: responses: - status: 200 - content: '{"data":[{"id":null,"server_id":null,"username":"letha64","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null},{"id":null,"server_id":null,"username":"hagenes.lurline","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":19,"server_id":1,"username":"graciela37","databases":[],"host":"%","status":"creating","created_at":"2025-04-21T18:40:19.000000Z","updated_at":"2025-04-21T18:40:19.000000Z"},{"id":20,"server_id":1,"username":"vconn","databases":[],"host":"%","status":"creating","created_at":"2025-04-21T18:40:19.000000Z","updated_at":"2025-04-21T18:40:19.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: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer d4g15bV3Pa6hDvck6eaEf8Z' + auth: [] controller: null method: null route: null @@ -76,10 +72,9 @@ endpoints: subgroupDescription: '' title: create description: 'Create a new database user.' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -97,7 +92,7 @@ endpoints: name: server_id description: 'The ID of the server.' required: true - example: 29 + example: 32 type: integer enumValues: [] exampleWasSpecified: false @@ -105,7 +100,7 @@ endpoints: custom: [] cleanUrlParameters: project_id: 1 - server_id: 29 + server_id: 32 queryParameters: [] cleanQueryParameters: [] bodyParameters: @@ -113,7 +108,7 @@ endpoints: name: username description: '' required: true - example: qui + example: consequatur type: string enumValues: [] exampleWasSpecified: false @@ -123,7 +118,7 @@ endpoints: name: password description: '' required: true - example: 'xYv*3,#HQ=5*m{p]DI' + example: 'O[2UZ5ij-e/dl4m{o,' type: string enumValues: [] exampleWasSpecified: false @@ -334,7 +321,7 @@ endpoints: name: global description: 'Accessible in all projects' required: true - example: true + example: false type: string enumValues: - true @@ -343,25 +330,22 @@ endpoints: nullable: false custom: [] cleanBodyParameters: - name: non - token: sunt - url: 'https://www.frami.org/ex-at-minus-rerum-quo-minus-ea' - username: natus - password: 'A^">*m{p]DI' - global: true + name: consequatur + token: consequatur + url: 'http://kunze.biz/iste-laborum-eius-est-dolor.html' + username: consequatur + password: 'O[2UZ5ij-e/dl4m{o,' + global: false fileParameters: [] responses: - status: 200 - content: '{"id":5,"project_id":null,"global":true,"name":"Neha Little","provider":"github","created_at":"2025-04-05T17:48:03.000000Z","updated_at":"2025-04-05T17:48:03.000000Z"}' + content: '{"id":5,"project_id":null,"global":true,"name":"Lonny Ankunding","provider":"github","created_at":"2025-04-21T18:40:20.000000Z","updated_at":"2025-04-21T18:40:20.000000Z"}' headers: [] description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer v3f6aaPk61Ze8hVdDbE5g4c' + auth: [] controller: null method: null route: null @@ -377,10 +361,9 @@ endpoints: subgroupDescription: '' title: delete description: '' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -420,10 +403,7 @@ endpoints: description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer fgk61vD68E4cZhP3bV5adea' + auth: [] controller: null method: null route: null diff --git a/.scribe/endpoints.cache/13.yaml b/.scribe/endpoints.cache/13.yaml index 87fa937..850650d 100644 --- a/.scribe/endpoints.cache/13.yaml +++ b/.scribe/endpoints.cache/13.yaml @@ -14,10 +14,9 @@ endpoints: subgroupDescription: '' title: list description: '' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -41,15 +40,12 @@ endpoints: responses: - status: 200 - content: '{"data":[{"id":5,"project_id":null,"global":true,"name":"veritatis","provider":"ftp","created_at":"2025-04-05T17:48:03.000000Z","updated_at":"2025-04-05T17:48:03.000000Z"},{"id":6,"project_id":null,"global":true,"name":"voluptas","provider":"dropbox","created_at":"2025-04-05T17:48:03.000000Z","updated_at":"2025-04-05T17:48:03.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":"dolores","provider":"local","created_at":"2025-04-21T18:40:20.000000Z","updated_at":"2025-04-21T18:40:20.000000Z"},{"id":6,"project_id":null,"global":true,"name":"dignissimos","provider":"dropbox","created_at":"2025-04-21T18:40:20.000000Z","updated_at":"2025-04-21T18:40:20.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: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer fgh4eV31dP58kvaDEaZbc66' + auth: [] controller: null method: null route: null @@ -65,10 +61,9 @@ endpoints: subgroupDescription: '' title: create description: '' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -91,7 +86,7 @@ endpoints: name: provider description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)' required: true - example: ab + example: consequatur type: string enumValues: [] exampleWasSpecified: false @@ -101,7 +96,7 @@ endpoints: name: name description: 'The name of the storage provider.' required: true - example: quo + example: consequatur type: string enumValues: [] exampleWasSpecified: false @@ -111,7 +106,7 @@ endpoints: name: token description: 'The token if provider requires api token' required: true - example: in + example: consequatur type: string enumValues: [] exampleWasSpecified: false @@ -121,7 +116,7 @@ endpoints: name: key description: 'The key if provider requires key' required: true - example: sunt + example: consequatur type: string enumValues: [] exampleWasSpecified: false @@ -131,31 +126,28 @@ endpoints: name: secret description: 'The secret if provider requires key' required: true - example: molestias + example: consequatur type: string enumValues: [] exampleWasSpecified: false nullable: false custom: [] cleanBodyParameters: - provider: ab - name: quo - token: in - key: sunt - secret: molestias + provider: consequatur + name: consequatur + token: consequatur + key: consequatur + secret: consequatur fileParameters: [] responses: - status: 200 - content: '{"id":5,"project_id":null,"global":true,"name":"asperiores","provider":"dropbox","created_at":"2025-04-05T17:48:03.000000Z","updated_at":"2025-04-05T17:48:03.000000Z"}' + content: '{"id":5,"project_id":null,"global":true,"name":"dolores","provider":"local","created_at":"2025-04-21T18:40:20.000000Z","updated_at":"2025-04-21T18:40:20.000000Z"}' headers: [] description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer e584613dkZaPDEVvgcahbf6' + auth: [] controller: null method: null route: null @@ -171,10 +163,9 @@ endpoints: subgroupDescription: '' title: show description: '' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -209,15 +200,12 @@ endpoints: responses: - status: 200 - content: '{"id":5,"project_id":null,"global":true,"name":"ipsum","provider":"local","created_at":"2025-04-05T17:48:03.000000Z","updated_at":"2025-04-05T17:48:03.000000Z"}' + content: '{"id":5,"project_id":null,"global":true,"name":"facilis","provider":"dropbox","created_at":"2025-04-21T18:40:20.000000Z","updated_at":"2025-04-21T18:40:20.000000Z"}' headers: [] description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer h6Zk6834dDce5fbPa1VvagE' + auth: [] controller: null method: null route: null @@ -233,10 +221,9 @@ endpoints: subgroupDescription: '' title: update description: '' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -270,7 +257,7 @@ endpoints: name: name description: 'The name of the storage provider.' required: true - example: voluptas + example: consequatur type: string enumValues: [] exampleWasSpecified: false @@ -289,21 +276,18 @@ endpoints: nullable: false custom: [] cleanBodyParameters: - name: voluptas + name: consequatur global: true fileParameters: [] responses: - status: 200 - content: '{"id":5,"project_id":null,"global":true,"name":"minima","provider":"ftp","created_at":"2025-04-05T17:48:03.000000Z","updated_at":"2025-04-05T17:48:03.000000Z"}' + content: '{"id":5,"project_id":null,"global":true,"name":"dolores","provider":"local","created_at":"2025-04-21T18:40:20.000000Z","updated_at":"2025-04-21T18:40:20.000000Z"}' headers: [] description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer ak6fgd1Eba48chvPV3e5Z6D' + auth: [] controller: null method: null route: null @@ -319,10 +303,9 @@ endpoints: subgroupDescription: '' title: delete description: '' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -362,10 +345,7 @@ endpoints: description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer PcaDbh6ZE4aV1e8fdv56k3g' + auth: [] controller: null method: null route: null diff --git a/.scribe/endpoints/00.yaml b/.scribe/endpoints/00.yaml index 181eaec..59bf07e 100644 --- a/.scribe/endpoints/00.yaml +++ b/.scribe/endpoints/00.yaml @@ -12,10 +12,9 @@ endpoints: subgroupDescription: '' title: list description: 'Get all cron jobs.' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -33,7 +32,7 @@ endpoints: name: server_id description: 'The ID of the server.' required: true - example: 29 + example: 32 type: integer enumValues: [] exampleWasSpecified: false @@ -41,7 +40,7 @@ endpoints: custom: [] cleanUrlParameters: project_id: 1 - server_id: 29 + server_id: 32 queryParameters: [] cleanQueryParameters: [] bodyParameters: [] @@ -50,15 +49,12 @@ endpoints: responses: - status: 200 - content: '{"data":[{"id":null,"server_id":null,"command":"ls -la","user":"root","frequency":"* * * * *","status":"ready","created_at":null,"updated_at":null},{"id":null,"server_id":null,"command":"ls -la","user":"root","frequency":"* * * * *","status":"ready","created_at":null,"updated_at":null}],"links":{"first":"\/?page=1","last":"\/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"« Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next »","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}' + content: '{"data":[{"id":5,"server_id":1,"command":"ls -la","user":"root","frequency":"* * * * *","status":"ready","created_at":"2025-04-21T18:40:19.000000Z","updated_at":"2025-04-21T18:40:19.000000Z"},{"id":6,"server_id":1,"command":"ls -la","user":"root","frequency":"* * * * *","status":"ready","created_at":"2025-04-21T18:40:19.000000Z","updated_at":"2025-04-21T18:40:19.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: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer eDa6Vdh1Z4vc35bP8E6gafk' + auth: [] controller: null method: null route: null @@ -74,10 +70,9 @@ endpoints: subgroupDescription: '' title: create description: 'Create a new cron job.' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -95,7 +90,7 @@ endpoints: name: server_id description: 'The ID of the server.' required: true - example: 29 + example: 32 type: integer enumValues: [] exampleWasSpecified: false @@ -103,7 +98,7 @@ endpoints: custom: [] cleanUrlParameters: project_id: 1 - server_id: 29 + server_id: 32 queryParameters: [] cleanQueryParameters: [] bodyParameters: @@ -111,7 +106,7 @@ endpoints: name: command description: '' required: true - example: quia + example: consequatur type: string enumValues: [] exampleWasSpecified: false @@ -121,7 +116,7 @@ endpoints: name: user description: '' required: true - example: root + example: vito type: string enumValues: - root @@ -140,22 +135,19 @@ endpoints: nullable: false custom: [] cleanBodyParameters: - command: quia - user: root + command: consequatur + user: vito frequency: '* * * * *' fileParameters: [] responses: - status: 200 - content: '{"id":null,"server_id":null,"command":"ls -la","user":"root","frequency":"* * * * *","status":"ready","created_at":null,"updated_at":null}' + content: '{"id":5,"server_id":1,"command":"ls -la","user":"root","frequency":"* * * * *","status":"ready","created_at":"2025-04-21T18:40:19.000000Z","updated_at":"2025-04-21T18:40:19.000000Z"}' headers: [] description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer 66EeZvdh3kVaDP8f4ga5c1b' + auth: [] controller: null method: null route: null @@ -171,10 +163,9 @@ endpoints: subgroupDescription: '' title: show description: 'Get a cron job by ID.' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -192,7 +183,7 @@ endpoints: name: server_id description: 'The ID of the server.' required: true - example: 29 + example: 32 type: integer enumValues: [] exampleWasSpecified: false @@ -202,7 +193,7 @@ endpoints: name: cronJob_id description: 'The ID of the cronJob.' required: true - example: 6 + example: 17 type: integer enumValues: [] exampleWasSpecified: false @@ -210,8 +201,8 @@ endpoints: custom: [] cleanUrlParameters: project_id: 1 - server_id: 29 - cronJob_id: 6 + server_id: 32 + cronJob_id: 17 queryParameters: [] cleanQueryParameters: [] bodyParameters: [] @@ -220,15 +211,12 @@ endpoints: responses: - status: 200 - content: '{"id":null,"server_id":null,"command":"ls -la","user":"root","frequency":"* * * * *","status":"ready","created_at":null,"updated_at":null}' + content: '{"id":5,"server_id":1,"command":"ls -la","user":"root","frequency":"* * * * *","status":"ready","created_at":"2025-04-21T18:40:19.000000Z","updated_at":"2025-04-21T18:40:19.000000Z"}' headers: [] description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer D4c3Z65ebv8E16fahaVgPdk' + auth: [] controller: null method: null route: null @@ -244,10 +232,9 @@ endpoints: subgroupDescription: '' title: delete description: 'Delete cron job.' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -265,7 +252,7 @@ endpoints: name: server_id description: 'The ID of the server.' required: true - example: 29 + example: 32 type: integer enumValues: [] exampleWasSpecified: false @@ -275,7 +262,7 @@ endpoints: name: cronJob_id description: 'The ID of the cronJob.' required: true - example: 13 + example: 17 type: integer enumValues: [] exampleWasSpecified: false @@ -283,8 +270,8 @@ endpoints: custom: [] cleanUrlParameters: project_id: 1 - server_id: 29 - cronJob_id: 13 + server_id: 32 + cronJob_id: 17 queryParameters: [] cleanQueryParameters: [] bodyParameters: [] @@ -298,10 +285,7 @@ endpoints: description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer h3cP4aZa1v8feDdEg5b6k6V' + auth: [] controller: null method: null route: null diff --git a/.scribe/endpoints/01.yaml b/.scribe/endpoints/01.yaml index f9069a1..7df3ec2 100644 --- a/.scribe/endpoints/01.yaml +++ b/.scribe/endpoints/01.yaml @@ -12,10 +12,9 @@ endpoints: subgroupDescription: '' title: list description: 'Get all databases.' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -33,7 +32,7 @@ endpoints: name: server_id description: 'The ID of the server.' required: true - example: 29 + example: 32 type: integer enumValues: [] exampleWasSpecified: false @@ -41,7 +40,7 @@ endpoints: custom: [] cleanUrlParameters: project_id: 1 - server_id: 29 + server_id: 32 queryParameters: [] cleanQueryParameters: [] bodyParameters: [] @@ -50,15 +49,12 @@ endpoints: responses: - status: 200 - content: '{"data":[{"id":null,"server_id":null,"name":"leffler.esther","status":"ready","created_at":null,"updated_at":null},{"id":null,"server_id":null,"name":"rhoda.rutherford","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":21,"server_id":1,"name":"carolyne.luettgen","status":"ready","created_at":"2025-04-21T18:40:19.000000Z","updated_at":"2025-04-21T18:40:19.000000Z"},{"id":22,"server_id":1,"name":"orville77","status":"ready","created_at":"2025-04-21T18:40:19.000000Z","updated_at":"2025-04-21T18:40:19.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: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer E1VdfegZah4k86b53Dc6Pva' + auth: [] controller: null method: null route: null @@ -74,10 +70,9 @@ endpoints: subgroupDescription: '' title: create description: 'Create a new database.' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -95,7 +90,7 @@ endpoints: name: server_id description: 'The ID of the server.' required: true - example: 29 + example: 32 type: integer enumValues: [] exampleWasSpecified: false @@ -103,7 +98,7 @@ endpoints: custom: [] cleanUrlParameters: project_id: 1 - server_id: 29 + server_id: 32 queryParameters: [] cleanQueryParameters: [] bodyParameters: @@ -111,7 +106,7 @@ endpoints: name: name description: '' required: true - example: quisquam + example: consequatur type: string enumValues: [] exampleWasSpecified: false @@ -121,7 +116,7 @@ endpoints: name: charset description: '' required: true - example: omnis + example: consequatur type: string enumValues: [] exampleWasSpecified: false @@ -131,29 +126,26 @@ endpoints: name: collation description: '' required: true - example: at + example: consequatur type: string enumValues: [] exampleWasSpecified: false nullable: false custom: [] cleanBodyParameters: - name: quisquam - charset: omnis - collation: at + name: consequatur + charset: consequatur + collation: consequatur fileParameters: [] responses: - status: 200 - content: '{"id":null,"server_id":null,"name":"csawayn","status":"ready","created_at":null,"updated_at":null}' + content: '{"id":21,"server_id":1,"name":"carolyne.luettgen","status":"ready","created_at":"2025-04-21T18:40:19.000000Z","updated_at":"2025-04-21T18:40:19.000000Z"}' headers: [] description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer PVgkZ35ca4afd1EbD8ehv66' + auth: [] controller: null method: null route: null @@ -169,10 +161,9 @@ endpoints: subgroupDescription: '' title: show description: 'Get a database by ID.' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -190,7 +181,7 @@ endpoints: name: server_id description: 'The ID of the server.' required: true - example: 29 + example: 32 type: integer enumValues: [] exampleWasSpecified: false @@ -200,7 +191,7 @@ endpoints: name: id description: 'The ID of the database.' required: true - example: 8 + example: 17 type: integer enumValues: [] exampleWasSpecified: false @@ -208,8 +199,8 @@ endpoints: custom: [] cleanUrlParameters: project_id: 1 - server_id: 29 - id: 8 + server_id: 32 + id: 17 queryParameters: [] cleanQueryParameters: [] bodyParameters: [] @@ -218,15 +209,12 @@ endpoints: responses: - status: 200 - content: '{"id":null,"server_id":null,"name":"sandrine43","status":"ready","created_at":null,"updated_at":null}' + content: '{"id":21,"server_id":1,"name":"carolyne.luettgen","status":"ready","created_at":"2025-04-21T18:40:19.000000Z","updated_at":"2025-04-21T18:40:19.000000Z"}' headers: [] description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer EP64D8g51adf6hbceavVZ3k' + auth: [] controller: null method: null route: null @@ -242,10 +230,9 @@ endpoints: subgroupDescription: '' title: delete description: 'Delete database.' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -263,7 +250,7 @@ endpoints: name: server_id description: 'The ID of the server.' required: true - example: 29 + example: 32 type: integer enumValues: [] exampleWasSpecified: false @@ -273,7 +260,7 @@ endpoints: name: database_id description: 'The ID of the database.' required: true - example: 8 + example: 17 type: integer enumValues: [] exampleWasSpecified: false @@ -281,8 +268,8 @@ endpoints: custom: [] cleanUrlParameters: project_id: 1 - server_id: 29 - database_id: 8 + server_id: 32 + database_id: 17 queryParameters: [] cleanQueryParameters: [] bodyParameters: [] @@ -296,10 +283,7 @@ endpoints: description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer 8dgEk3Zv1eaVP66bDhf4ac5' + auth: [] controller: null method: null route: null diff --git a/.scribe/endpoints/02.yaml b/.scribe/endpoints/02.yaml index a1d8a7a..cfafdca 100644 --- a/.scribe/endpoints/02.yaml +++ b/.scribe/endpoints/02.yaml @@ -12,10 +12,9 @@ endpoints: subgroupDescription: '' title: list description: 'Get all database users.' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -33,7 +32,7 @@ endpoints: name: server_id description: 'The ID of the server.' required: true - example: 29 + example: 32 type: integer enumValues: [] exampleWasSpecified: false @@ -41,7 +40,7 @@ endpoints: custom: [] cleanUrlParameters: project_id: 1 - server_id: 29 + server_id: 32 queryParameters: [] cleanQueryParameters: [] bodyParameters: [] @@ -50,15 +49,12 @@ endpoints: responses: - status: 200 - content: '{"data":[{"id":null,"server_id":null,"username":"letha64","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null},{"id":null,"server_id":null,"username":"hagenes.lurline","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":19,"server_id":1,"username":"graciela37","databases":[],"host":"%","status":"creating","created_at":"2025-04-21T18:40:19.000000Z","updated_at":"2025-04-21T18:40:19.000000Z"},{"id":20,"server_id":1,"username":"vconn","databases":[],"host":"%","status":"creating","created_at":"2025-04-21T18:40:19.000000Z","updated_at":"2025-04-21T18:40:19.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: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer d4g15bV3Pa6hDvck6eaEf8Z' + auth: [] controller: null method: null route: null @@ -74,10 +70,9 @@ endpoints: subgroupDescription: '' title: create description: 'Create a new database user.' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -95,7 +90,7 @@ endpoints: name: server_id description: 'The ID of the server.' required: true - example: 29 + example: 32 type: integer enumValues: [] exampleWasSpecified: false @@ -103,7 +98,7 @@ endpoints: custom: [] cleanUrlParameters: project_id: 1 - server_id: 29 + server_id: 32 queryParameters: [] cleanQueryParameters: [] bodyParameters: @@ -111,7 +106,7 @@ endpoints: name: username description: '' required: true - example: qui + example: consequatur type: string enumValues: [] exampleWasSpecified: false @@ -121,7 +116,7 @@ endpoints: name: password description: '' required: true - example: 'xYv*3,#HQ=5*m{p]DI' + example: 'O[2UZ5ij-e/dl4m{o,' type: string enumValues: [] exampleWasSpecified: false @@ -332,7 +319,7 @@ endpoints: name: global description: 'Accessible in all projects' required: true - example: true + example: false type: string enumValues: - true @@ -341,25 +328,22 @@ endpoints: nullable: false custom: [] cleanBodyParameters: - name: non - token: sunt - url: 'https://www.frami.org/ex-at-minus-rerum-quo-minus-ea' - username: natus - password: 'A^">*m{p]DI' - global: true + name: consequatur + token: consequatur + url: 'http://kunze.biz/iste-laborum-eius-est-dolor.html' + username: consequatur + password: 'O[2UZ5ij-e/dl4m{o,' + global: false fileParameters: [] responses: - status: 200 - content: '{"id":5,"project_id":null,"global":true,"name":"Neha Little","provider":"github","created_at":"2025-04-05T17:48:03.000000Z","updated_at":"2025-04-05T17:48:03.000000Z"}' + content: '{"id":5,"project_id":null,"global":true,"name":"Lonny Ankunding","provider":"github","created_at":"2025-04-21T18:40:20.000000Z","updated_at":"2025-04-21T18:40:20.000000Z"}' headers: [] description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer v3f6aaPk61Ze8hVdDbE5g4c' + auth: [] controller: null method: null route: null @@ -375,10 +359,9 @@ endpoints: subgroupDescription: '' title: delete description: '' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -418,10 +401,7 @@ endpoints: description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer fgk61vD68E4cZhP3bV5adea' + auth: [] controller: null method: null route: null diff --git a/.scribe/endpoints/13.yaml b/.scribe/endpoints/13.yaml index bc38a9b..9856b91 100644 --- a/.scribe/endpoints/13.yaml +++ b/.scribe/endpoints/13.yaml @@ -12,10 +12,9 @@ endpoints: subgroupDescription: '' title: list description: '' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -39,15 +38,12 @@ endpoints: responses: - status: 200 - content: '{"data":[{"id":5,"project_id":null,"global":true,"name":"veritatis","provider":"ftp","created_at":"2025-04-05T17:48:03.000000Z","updated_at":"2025-04-05T17:48:03.000000Z"},{"id":6,"project_id":null,"global":true,"name":"voluptas","provider":"dropbox","created_at":"2025-04-05T17:48:03.000000Z","updated_at":"2025-04-05T17:48:03.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":"dolores","provider":"local","created_at":"2025-04-21T18:40:20.000000Z","updated_at":"2025-04-21T18:40:20.000000Z"},{"id":6,"project_id":null,"global":true,"name":"dignissimos","provider":"dropbox","created_at":"2025-04-21T18:40:20.000000Z","updated_at":"2025-04-21T18:40:20.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: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer fgh4eV31dP58kvaDEaZbc66' + auth: [] controller: null method: null route: null @@ -63,10 +59,9 @@ endpoints: subgroupDescription: '' title: create description: '' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -89,7 +84,7 @@ endpoints: name: provider description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)' required: true - example: ab + example: consequatur type: string enumValues: [] exampleWasSpecified: false @@ -99,7 +94,7 @@ endpoints: name: name description: 'The name of the storage provider.' required: true - example: quo + example: consequatur type: string enumValues: [] exampleWasSpecified: false @@ -109,7 +104,7 @@ endpoints: name: token description: 'The token if provider requires api token' required: true - example: in + example: consequatur type: string enumValues: [] exampleWasSpecified: false @@ -119,7 +114,7 @@ endpoints: name: key description: 'The key if provider requires key' required: true - example: sunt + example: consequatur type: string enumValues: [] exampleWasSpecified: false @@ -129,31 +124,28 @@ endpoints: name: secret description: 'The secret if provider requires key' required: true - example: molestias + example: consequatur type: string enumValues: [] exampleWasSpecified: false nullable: false custom: [] cleanBodyParameters: - provider: ab - name: quo - token: in - key: sunt - secret: molestias + provider: consequatur + name: consequatur + token: consequatur + key: consequatur + secret: consequatur fileParameters: [] responses: - status: 200 - content: '{"id":5,"project_id":null,"global":true,"name":"asperiores","provider":"dropbox","created_at":"2025-04-05T17:48:03.000000Z","updated_at":"2025-04-05T17:48:03.000000Z"}' + content: '{"id":5,"project_id":null,"global":true,"name":"dolores","provider":"local","created_at":"2025-04-21T18:40:20.000000Z","updated_at":"2025-04-21T18:40:20.000000Z"}' headers: [] description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer e584613dkZaPDEVvgcahbf6' + auth: [] controller: null method: null route: null @@ -169,10 +161,9 @@ endpoints: subgroupDescription: '' title: show description: '' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -207,15 +198,12 @@ endpoints: responses: - status: 200 - content: '{"id":5,"project_id":null,"global":true,"name":"ipsum","provider":"local","created_at":"2025-04-05T17:48:03.000000Z","updated_at":"2025-04-05T17:48:03.000000Z"}' + content: '{"id":5,"project_id":null,"global":true,"name":"facilis","provider":"dropbox","created_at":"2025-04-21T18:40:20.000000Z","updated_at":"2025-04-21T18:40:20.000000Z"}' headers: [] description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer h6Zk6834dDce5fbPa1VvagE' + auth: [] controller: null method: null route: null @@ -231,10 +219,9 @@ endpoints: subgroupDescription: '' title: update description: '' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -268,7 +255,7 @@ endpoints: name: name description: 'The name of the storage provider.' required: true - example: voluptas + example: consequatur type: string enumValues: [] exampleWasSpecified: false @@ -287,21 +274,18 @@ endpoints: nullable: false custom: [] cleanBodyParameters: - name: voluptas + name: consequatur global: true fileParameters: [] responses: - status: 200 - content: '{"id":5,"project_id":null,"global":true,"name":"minima","provider":"ftp","created_at":"2025-04-05T17:48:03.000000Z","updated_at":"2025-04-05T17:48:03.000000Z"}' + content: '{"id":5,"project_id":null,"global":true,"name":"dolores","provider":"local","created_at":"2025-04-21T18:40:20.000000Z","updated_at":"2025-04-21T18:40:20.000000Z"}' headers: [] description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer ak6fgd1Eba48chvPV3e5Z6D' + auth: [] controller: null method: null route: null @@ -317,10 +301,9 @@ endpoints: subgroupDescription: '' title: delete description: '' - authenticated: true + authenticated: false custom: [] headers: - Authorization: 'Bearer YOUR-API-KEY' Content-Type: application/json Accept: application/json urlParameters: @@ -360,10 +343,7 @@ endpoints: description: '' custom: [] responseFields: [] - auth: - - headers - - Authorization - - 'Bearer PcaDbh6ZE4aV1e8fdv56k3g' + auth: [] controller: null method: null route: null diff --git a/.scribe/intro.md b/.scribe/intro.md index abb194c..4e0860c 100644 --- a/.scribe/intro.md +++ b/.scribe/intro.md @@ -3,11 +3,11 @@ # Introduction VitoDeploy's API documentation. -This documentation aims to provide all the information you need to work with our API. + This documentation aims to provide all the information you need to work with our API. - + diff --git a/composer.json b/composer.json index 182bd3f..7bc1b5f 100644 --- a/composer.json +++ b/composer.json @@ -14,7 +14,7 @@ "aws/aws-sdk-php": "^3.158", "filament/filament": "^3.2", "laravel/fortify": "^1.17", - "laravel/framework": "^11.0", + "laravel/framework": "^12.0", "laravel/sanctum": "^4.0", "laravel/tinker": "^2.8", "mobiledetect/mobiledetectlib": "^4.8", @@ -23,14 +23,14 @@ }, "require-dev": { "fakerphp/faker": "^1.9.1", - "knuckleswtf/scribe": "^4.37", + "knuckleswtf/scribe": "^5.0", "laradumps/laradumps": "^3.0", "larastan/larastan": "^3.1", "laravel/pint": "^1.10", "laravel/sail": "^1.18", "mockery/mockery": "^1.4.4", "nunomaduro/collision": "^8.1", - "phpunit/phpunit": "^10.0", + "phpunit/phpunit": "^11.0", "rector/rector": "^2.0", "spatie/laravel-ignition": "^2.0" }, diff --git a/composer.lock b/composer.lock index 53e384c..d0dbae2 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "dfb1562ec04ec83438e623593b15106d", + "content-hash": "b9d5fb194d08dc9fc1f9d5f5ed990e59", "packages": [ { "name": "anourvalar/eloquent-serialize", - "version": "1.2.29", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/AnourValar/eloquent-serialize.git", - "reference": "0919c91e548d01261308fd54d27fc05a83c79d03" + "reference": "060632195821e066de1fc0f869881dd585e2f299" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/AnourValar/eloquent-serialize/zipball/0919c91e548d01261308fd54d27fc05a83c79d03", - "reference": "0919c91e548d01261308fd54d27fc05a83c79d03", + "url": "https://api.github.com/repos/AnourValar/eloquent-serialize/zipball/060632195821e066de1fc0f869881dd585e2f299", + "reference": "060632195821e066de1fc0f869881dd585e2f299", "shasum": "" }, "require": { @@ -68,9 +68,9 @@ ], "support": { "issues": "https://github.com/AnourValar/eloquent-serialize/issues", - "source": "https://github.com/AnourValar/eloquent-serialize/tree/1.2.29" + "source": "https://github.com/AnourValar/eloquent-serialize/tree/1.3.1" }, - "time": "2025-02-25T05:18:46+00:00" + "time": "2025-04-06T06:54:34+00:00" }, { "name": "aws/aws-crt-php", @@ -128,16 +128,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.342.2", + "version": "3.342.30", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "ef66e0fdba9e7f786a7b1e522f847d76d0320e89" + "reference": "eaa4f64784fdf8e66b511df18de43c43fbeb4f63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/ef66e0fdba9e7f786a7b1e522f847d76d0320e89", - "reference": "ef66e0fdba9e7f786a7b1e522f847d76d0320e89", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/eaa4f64784fdf8e66b511df18de43c43fbeb4f63", + "reference": "eaa4f64784fdf8e66b511df18de43c43fbeb4f63", "shasum": "" }, "require": { @@ -219,9 +219,9 @@ "support": { "forum": "https://github.com/aws/aws-sdk-php/discussions", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.342.2" + "source": "https://github.com/aws/aws-sdk-php/tree/3.342.30" }, - "time": "2025-03-07T19:12:43+00:00" + "time": "2025-04-18T18:05:51+00:00" }, { "name": "bacon/bacon-qr-code", @@ -282,12 +282,12 @@ "version": "2.6.0", "source": { "type": "git", - "url": "https://github.com/blade-ui-kit/blade-heroicons.git", + "url": "https://github.com/driesvints/blade-heroicons.git", "reference": "4553b2a1f6c76f0ac7f3bc0de4c0cfa06a097d19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/blade-ui-kit/blade-heroicons/zipball/4553b2a1f6c76f0ac7f3bc0de4c0cfa06a097d19", + "url": "https://api.github.com/repos/driesvints/blade-heroicons/zipball/4553b2a1f6c76f0ac7f3bc0de4c0cfa06a097d19", "reference": "4553b2a1f6c76f0ac7f3bc0de4c0cfa06a097d19", "shasum": "" }, @@ -331,8 +331,8 @@ "laravel" ], "support": { - "issues": "https://github.com/blade-ui-kit/blade-heroicons/issues", - "source": "https://github.com/blade-ui-kit/blade-heroicons/tree/2.6.0" + "issues": "https://github.com/driesvints/blade-heroicons/issues", + "source": "https://github.com/driesvints/blade-heroicons/tree/2.6.0" }, "funding": [ { @@ -351,12 +351,12 @@ "version": "1.8.0", "source": { "type": "git", - "url": "https://github.com/blade-ui-kit/blade-icons.git", + "url": "https://github.com/driesvints/blade-icons.git", "reference": "7b743f27476acb2ed04cb518213d78abe096e814" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/blade-ui-kit/blade-icons/zipball/7b743f27476acb2ed04cb518213d78abe096e814", + "url": "https://api.github.com/repos/driesvints/blade-icons/zipball/7b743f27476acb2ed04cb518213d78abe096e814", "reference": "7b743f27476acb2ed04cb518213d78abe096e814", "shasum": "" }, @@ -894,26 +894,29 @@ }, { "name": "doctrine/deprecations", - "version": "1.1.4", + "version": "1.1.5", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9" + "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9", - "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", + "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, + "conflict": { + "phpunit/phpunit": "<=7.5 || >=13" + }, "require-dev": { - "doctrine/coding-standard": "^9 || ^12", - "phpstan/phpstan": "1.4.10 || 2.0.3", + "doctrine/coding-standard": "^9 || ^12 || ^13", + "phpstan/phpstan": "1.4.10 || 2.1.11", "phpstan/phpstan-phpunit": "^1.0 || ^2", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12", "psr/log": "^1 || ^2 || ^3" }, "suggest": { @@ -933,9 +936,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.4" + "source": "https://github.com/doctrine/deprecations/tree/1.1.5" }, - "time": "2024-12-07T21:18:45+00:00" + "time": "2025-04-07T20:06:18+00:00" }, { "name": "doctrine/inflector", @@ -1172,16 +1175,16 @@ }, { "name": "egulias/email-validator", - "version": "4.0.3", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "b115554301161fa21467629f1e1391c1936de517" + "reference": "d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/b115554301161fa21467629f1e1391c1936de517", - "reference": "b115554301161fa21467629f1e1391c1936de517", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa", + "reference": "d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa", "shasum": "" }, "require": { @@ -1227,7 +1230,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/4.0.3" + "source": "https://github.com/egulias/EmailValidator/tree/4.0.4" }, "funding": [ { @@ -1235,20 +1238,20 @@ "type": "github" } ], - "time": "2024-12-27T00:36:43+00:00" + "time": "2025-03-06T22:45:56+00:00" }, { "name": "filament/actions", - "version": "v3.3.3", + "version": "v3.3.12", "source": { "type": "git", "url": "https://github.com/filamentphp/actions.git", - "reference": "acaaa861bc01f72a73cb5faedcc3fecbbbf599c6" + "reference": "b99b705713719c3138d7666df56ca405c9ca8a8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/actions/zipball/acaaa861bc01f72a73cb5faedcc3fecbbbf599c6", - "reference": "acaaa861bc01f72a73cb5faedcc3fecbbbf599c6", + "url": "https://api.github.com/repos/filamentphp/actions/zipball/b99b705713719c3138d7666df56ca405c9ca8a8e", + "reference": "b99b705713719c3138d7666df56ca405c9ca8a8e", "shasum": "" }, "require": { @@ -1288,20 +1291,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2025-02-25T08:19:06+00:00" + "time": "2025-04-18T12:09:52+00:00" }, { "name": "filament/filament", - "version": "v3.3.3", + "version": "v3.3.12", "source": { "type": "git", "url": "https://github.com/filamentphp/panels.git", - "reference": "6ca7e497517a78413777ab74a0688a70337f6b4f" + "reference": "fc22157f9f2d154ae653434495f252e04b2cb390" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/panels/zipball/6ca7e497517a78413777ab74a0688a70337f6b4f", - "reference": "6ca7e497517a78413777ab74a0688a70337f6b4f", + "url": "https://api.github.com/repos/filamentphp/panels/zipball/fc22157f9f2d154ae653434495f252e04b2cb390", + "reference": "fc22157f9f2d154ae653434495f252e04b2cb390", "shasum": "" }, "require": { @@ -1353,20 +1356,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2025-03-05T09:26:29+00:00" + "time": "2025-04-18T12:09:56+00:00" }, { "name": "filament/forms", - "version": "v3.3.3", + "version": "v3.3.12", "source": { "type": "git", "url": "https://github.com/filamentphp/forms.git", - "reference": "420f6b2b30288c853024d189213e38f644dd6f6e" + "reference": "78f56bfa8685cd2d2ba554ed2d6e761a0b589118" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/forms/zipball/420f6b2b30288c853024d189213e38f644dd6f6e", - "reference": "420f6b2b30288c853024d189213e38f644dd6f6e", + "url": "https://api.github.com/repos/filamentphp/forms/zipball/78f56bfa8685cd2d2ba554ed2d6e761a0b589118", + "reference": "78f56bfa8685cd2d2ba554ed2d6e761a0b589118", "shasum": "" }, "require": { @@ -1409,20 +1412,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2025-03-05T09:26:39+00:00" + "time": "2025-04-19T15:33:35+00:00" }, { "name": "filament/infolists", - "version": "v3.3.3", + "version": "v3.3.12", "source": { "type": "git", "url": "https://github.com/filamentphp/infolists.git", - "reference": "3498bfd23670f94d9c2160d2a7382775dfc97430" + "reference": "d6cd5934aff207dcfcdec540fca92db849eeded3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/infolists/zipball/3498bfd23670f94d9c2160d2a7382775dfc97430", - "reference": "3498bfd23670f94d9c2160d2a7382775dfc97430", + "url": "https://api.github.com/repos/filamentphp/infolists/zipball/d6cd5934aff207dcfcdec540fca92db849eeded3", + "reference": "d6cd5934aff207dcfcdec540fca92db849eeded3", "shasum": "" }, "require": { @@ -1460,20 +1463,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2025-03-03T08:11:43+00:00" + "time": "2025-04-18T12:10:08+00:00" }, { "name": "filament/notifications", - "version": "v3.3.3", + "version": "v3.3.12", "source": { "type": "git", "url": "https://github.com/filamentphp/notifications.git", - "reference": "8cfe18e5d04ba72d777753ed632bbcf3408236a2" + "reference": "d4bb90c77a3e88ab833cab71d36b185b3670a314" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/notifications/zipball/8cfe18e5d04ba72d777753ed632bbcf3408236a2", - "reference": "8cfe18e5d04ba72d777753ed632bbcf3408236a2", + "url": "https://api.github.com/repos/filamentphp/notifications/zipball/d4bb90c77a3e88ab833cab71d36b185b3670a314", + "reference": "d4bb90c77a3e88ab833cab71d36b185b3670a314", "shasum": "" }, "require": { @@ -1512,20 +1515,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2025-02-25T08:18:58+00:00" + "time": "2025-04-02T09:55:26+00:00" }, { "name": "filament/support", - "version": "v3.3.3", + "version": "v3.3.12", "source": { "type": "git", "url": "https://github.com/filamentphp/support.git", - "reference": "fb5ff99b8f7559815434c109d505c12c141510da" + "reference": "ca955875a0e1c67aba92a1b5bb86841dd9f9ec43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/support/zipball/fb5ff99b8f7559815434c109d505c12c141510da", - "reference": "fb5ff99b8f7559815434c109d505c12c141510da", + "url": "https://api.github.com/repos/filamentphp/support/zipball/ca955875a0e1c67aba92a1b5bb86841dd9f9ec43", + "reference": "ca955875a0e1c67aba92a1b5bb86841dd9f9ec43", "shasum": "" }, "require": { @@ -1571,20 +1574,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2025-03-05T09:26:25+00:00" + "time": "2025-04-18T12:09:53+00:00" }, { "name": "filament/tables", - "version": "v3.3.3", + "version": "v3.3.12", "source": { "type": "git", "url": "https://github.com/filamentphp/tables.git", - "reference": "5f2fbd8f0c6ffd19b2462269778ed96ce3c6fd35" + "reference": "e361761990eda562f874c68cc2aaec04c97d43ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/tables/zipball/5f2fbd8f0c6ffd19b2462269778ed96ce3c6fd35", - "reference": "5f2fbd8f0c6ffd19b2462269778ed96ce3c6fd35", + "url": "https://api.github.com/repos/filamentphp/tables/zipball/e361761990eda562f874c68cc2aaec04c97d43ba", + "reference": "e361761990eda562f874c68cc2aaec04c97d43ba", "shasum": "" }, "require": { @@ -1623,20 +1626,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2025-03-03T09:07:30+00:00" + "time": "2025-04-19T15:33:35+00:00" }, { "name": "filament/widgets", - "version": "v3.3.3", + "version": "v3.3.12", "source": { "type": "git", "url": "https://github.com/filamentphp/widgets.git", - "reference": "3bbd19044e19f93711f3690c441a3a0d35696aa1" + "reference": "2d91f0d509b4ef497678b919e471e9099451bd21" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/widgets/zipball/3bbd19044e19f93711f3690c441a3a0d35696aa1", - "reference": "3bbd19044e19f93711f3690c441a3a0d35696aa1", + "url": "https://api.github.com/repos/filamentphp/widgets/zipball/2d91f0d509b4ef497678b919e471e9099451bd21", + "reference": "2d91f0d509b4ef497678b919e471e9099451bd21", "shasum": "" }, "require": { @@ -1667,7 +1670,7 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2025-02-19T08:42:37+00:00" + "time": "2025-03-11T16:33:32+00:00" }, { "name": "fruitcake/php-cors", @@ -1804,16 +1807,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.9.2", + "version": "7.9.3", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "d281ed313b989f213357e3be1a179f02196ac99b" + "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b", - "reference": "d281ed313b989f213357e3be1a179f02196ac99b", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", + "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", "shasum": "" }, "require": { @@ -1910,7 +1913,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.9.2" + "source": "https://github.com/guzzle/guzzle/tree/7.9.3" }, "funding": [ { @@ -1926,20 +1929,20 @@ "type": "tidelift" } ], - "time": "2024-07-24T11:22:20+00:00" + "time": "2025-03-27T13:37:11+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.4", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455" + "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455", - "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455", + "url": "https://api.github.com/repos/guzzle/promises/zipball/7c69f28996b0a6920945dd20b3857e499d9ca96c", + "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c", "shasum": "" }, "require": { @@ -1993,7 +1996,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.4" + "source": "https://github.com/guzzle/promises/tree/2.2.0" }, "funding": [ { @@ -2009,20 +2012,20 @@ "type": "tidelift" } ], - "time": "2024-10-17T10:06:22+00:00" + "time": "2025-03-27T13:27:01+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.7.0", + "version": "2.7.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201" + "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201", - "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16", + "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16", "shasum": "" }, "require": { @@ -2109,7 +2112,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.7.0" + "source": "https://github.com/guzzle/psr7/tree/2.7.1" }, "funding": [ { @@ -2125,7 +2128,7 @@ "type": "tidelift" } ], - "time": "2024-07-18T11:15:46+00:00" + "time": "2025-03-27T12:30:47+00:00" }, { "name": "guzzlehttp/uri-template", @@ -2215,16 +2218,16 @@ }, { "name": "kirschbaum-development/eloquent-power-joins", - "version": "4.2.1", + "version": "4.2.3", "source": { "type": "git", "url": "https://github.com/kirschbaum-development/eloquent-power-joins.git", - "reference": "84a24784d9abde8bafb1998a0841a6bc10fa6f8e" + "reference": "d04e06b12e5e7864c303b8a8c6045bfcd4e2c641" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/kirschbaum-development/eloquent-power-joins/zipball/84a24784d9abde8bafb1998a0841a6bc10fa6f8e", - "reference": "84a24784d9abde8bafb1998a0841a6bc10fa6f8e", + "url": "https://api.github.com/repos/kirschbaum-development/eloquent-power-joins/zipball/d04e06b12e5e7864c303b8a8c6045bfcd4e2c641", + "reference": "d04e06b12e5e7864c303b8a8c6045bfcd4e2c641", "shasum": "" }, "require": { @@ -2272,9 +2275,9 @@ ], "support": { "issues": "https://github.com/kirschbaum-development/eloquent-power-joins/issues", - "source": "https://github.com/kirschbaum-development/eloquent-power-joins/tree/4.2.1" + "source": "https://github.com/kirschbaum-development/eloquent-power-joins/tree/4.2.3" }, - "time": "2025-03-05T10:11:33+00:00" + "time": "2025-04-01T14:41:56+00:00" }, { "name": "laravel/fortify", @@ -2343,20 +2346,20 @@ }, { "name": "laravel/framework", - "version": "v11.44.1", + "version": "v12.9.2", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "0883d4175f4e2b5c299e7087ad3c74f2ce195c6d" + "reference": "3db59aa0f382c349c78a92f3e5b5522e00e3301b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/0883d4175f4e2b5c299e7087ad3c74f2ce195c6d", - "reference": "0883d4175f4e2b5c299e7087ad3c74f2ce195c6d", + "url": "https://api.github.com/repos/laravel/framework/zipball/3db59aa0f382c349c78a92f3e5b5522e00e3301b", + "reference": "3db59aa0f382c349c78a92f3e5b5522e00e3301b", "shasum": "" }, "require": { - "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12", + "brick/math": "^0.11|^0.12", "composer-runtime-api": "^2.2", "doctrine/inflector": "^2.0.5", "dragonmantank/cron-expression": "^3.4", @@ -2371,32 +2374,32 @@ "fruitcake/php-cors": "^1.3", "guzzlehttp/guzzle": "^7.8.2", "guzzlehttp/uri-template": "^1.0", - "laravel/prompts": "^0.1.18|^0.2.0|^0.3.0", + "laravel/prompts": "^0.3.0", "laravel/serializable-closure": "^1.3|^2.0", "league/commonmark": "^2.6", "league/flysystem": "^3.25.1", "league/flysystem-local": "^3.25.1", "league/uri": "^7.5.1", "monolog/monolog": "^3.0", - "nesbot/carbon": "^2.72.6|^3.8.4", + "nesbot/carbon": "^3.8.4", "nunomaduro/termwind": "^2.0", "php": "^8.2", "psr/container": "^1.1.1|^2.0.1", "psr/log": "^1.0|^2.0|^3.0", "psr/simple-cache": "^1.0|^2.0|^3.0", "ramsey/uuid": "^4.7", - "symfony/console": "^7.0.3", - "symfony/error-handler": "^7.0.3", - "symfony/finder": "^7.0.3", + "symfony/console": "^7.2.0", + "symfony/error-handler": "^7.2.0", + "symfony/finder": "^7.2.0", "symfony/http-foundation": "^7.2.0", - "symfony/http-kernel": "^7.0.3", - "symfony/mailer": "^7.0.3", - "symfony/mime": "^7.0.3", + "symfony/http-kernel": "^7.2.0", + "symfony/mailer": "^7.2.0", + "symfony/mime": "^7.2.0", "symfony/polyfill-php83": "^1.31", - "symfony/process": "^7.0.3", - "symfony/routing": "^7.0.3", - "symfony/uid": "^7.0.3", - "symfony/var-dumper": "^7.0.3", + "symfony/process": "^7.2.0", + "symfony/routing": "^7.2.0", + "symfony/uid": "^7.2.0", + "symfony/var-dumper": "^7.2.0", "tijsverkoyen/css-to-inline-styles": "^2.2.5", "vlucas/phpdotenv": "^5.6.1", "voku/portable-ascii": "^2.0.2" @@ -2460,17 +2463,17 @@ "league/flysystem-read-only": "^3.25.1", "league/flysystem-sftp-v3": "^3.25.1", "mockery/mockery": "^1.6.10", - "orchestra/testbench-core": "^9.11.2", - "pda/pheanstalk": "^5.0.6", + "orchestra/testbench-core": "^10.0.0", + "pda/pheanstalk": "^5.0.6|^7.0.0", "php-http/discovery": "^1.15", "phpstan/phpstan": "^2.0", - "phpunit/phpunit": "^10.5.35|^11.3.6|^12.0.1", + "phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1", "predis/predis": "^2.3", "resend/resend-php": "^0.10.0", - "symfony/cache": "^7.0.3", - "symfony/http-client": "^7.0.3", - "symfony/psr-http-message-bridge": "^7.0.3", - "symfony/translation": "^7.0.3" + "symfony/cache": "^7.2.0", + "symfony/http-client": "^7.2.0", + "symfony/psr-http-message-bridge": "^7.2.0", + "symfony/translation": "^7.2.0" }, "suggest": { "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", @@ -2496,22 +2499,22 @@ "mockery/mockery": "Required to use mocking (^1.6).", "pda/pheanstalk": "Required to use the beanstalk queue driver (^5.0).", "php-http/discovery": "Required to use PSR-7 bridging features (^1.15).", - "phpunit/phpunit": "Required to use assertions and run tests (^10.5.35|^11.3.6|^12.0.1).", + "phpunit/phpunit": "Required to use assertions and run tests (^10.5.35|^11.5.3|^12.0.1).", "predis/predis": "Required to use the predis connector (^2.3).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0).", - "symfony/cache": "Required to PSR-6 cache bridge (^7.0).", - "symfony/filesystem": "Required to enable support for relative symbolic links (^7.0).", - "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.0).", - "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.0).", - "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.0).", - "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.0)." + "symfony/cache": "Required to PSR-6 cache bridge (^7.2).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^7.2).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.2).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.2).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.2).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.2)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "11.x-dev" + "dev-master": "12.x-dev" } }, "autoload": { @@ -2554,7 +2557,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2025-03-05T15:34:10+00:00" + "time": "2025-04-16T15:44:19+00:00" }, { "name": "laravel/prompts", @@ -2681,16 +2684,16 @@ }, { "name": "laravel/serializable-closure", - "version": "v2.0.3", + "version": "v2.0.4", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "f379c13663245f7aa4512a7869f62eb14095f23f" + "reference": "b352cf0534aa1ae6b4d825d1e762e35d43f8a841" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/f379c13663245f7aa4512a7869f62eb14095f23f", - "reference": "f379c13663245f7aa4512a7869f62eb14095f23f", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/b352cf0534aa1ae6b4d825d1e762e35d43f8a841", + "reference": "b352cf0534aa1ae6b4d825d1e762e35d43f8a841", "shasum": "" }, "require": { @@ -2738,7 +2741,7 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2025-02-11T15:03:05+00:00" + "time": "2025-03-19T13:51:03+00:00" }, { "name": "laravel/tinker", @@ -2808,16 +2811,16 @@ }, { "name": "league/commonmark", - "version": "2.6.1", + "version": "2.6.2", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "d990688c91cedfb69753ffc2512727ec646df2ad" + "reference": "06c3b0bf2540338094575612f4a1778d0d2d5e94" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d990688c91cedfb69753ffc2512727ec646df2ad", - "reference": "d990688c91cedfb69753ffc2512727ec646df2ad", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/06c3b0bf2540338094575612f4a1778d0d2d5e94", + "reference": "06c3b0bf2540338094575612f4a1778d0d2d5e94", "shasum": "" }, "require": { @@ -2911,7 +2914,7 @@ "type": "tidelift" } ], - "time": "2024-12-29T14:10:59+00:00" + "time": "2025-04-18T21:09:27+00:00" }, { "name": "league/config", @@ -2997,16 +3000,16 @@ }, { "name": "league/csv", - "version": "9.22.0", + "version": "9.23.0", "source": { "type": "git", "url": "https://github.com/thephpleague/csv.git", - "reference": "afc109aa11f3086b8be8dfffa04ac31480b36b76" + "reference": "774008ad8a634448e4f8e288905e070e8b317ff3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/csv/zipball/afc109aa11f3086b8be8dfffa04ac31480b36b76", - "reference": "afc109aa11f3086b8be8dfffa04ac31480b36b76", + "url": "https://api.github.com/repos/thephpleague/csv/zipball/774008ad8a634448e4f8e288905e070e8b317ff3", + "reference": "774008ad8a634448e4f8e288905e070e8b317ff3", "shasum": "" }, "require": { @@ -3084,7 +3087,7 @@ "type": "github" } ], - "time": "2025-02-28T10:00:39+00:00" + "time": "2025-03-28T06:52:04+00:00" }, { "name": "league/flysystem", @@ -3450,16 +3453,16 @@ }, { "name": "livewire/livewire", - "version": "v3.6.1", + "version": "v3.6.3", "source": { "type": "git", "url": "https://github.com/livewire/livewire.git", - "reference": "0df0a762698176d714e42e2dfed92b6b9e24b8e4" + "reference": "56aa1bb63a46e06181c56fa64717a7287e19115e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/livewire/livewire/zipball/0df0a762698176d714e42e2dfed92b6b9e24b8e4", - "reference": "0df0a762698176d714e42e2dfed92b6b9e24b8e4", + "url": "https://api.github.com/repos/livewire/livewire/zipball/56aa1bb63a46e06181c56fa64717a7287e19115e", + "reference": "56aa1bb63a46e06181c56fa64717a7287e19115e", "shasum": "" }, "require": { @@ -3514,7 +3517,7 @@ "description": "A front-end framework for Laravel.", "support": { "issues": "https://github.com/livewire/livewire/issues", - "source": "https://github.com/livewire/livewire/tree/v3.6.1" + "source": "https://github.com/livewire/livewire/tree/v3.6.3" }, "funding": [ { @@ -3522,7 +3525,7 @@ "type": "github" } ], - "time": "2025-03-04T21:48:52+00:00" + "time": "2025-04-12T22:26:52+00:00" }, { "name": "masterminds/html5", @@ -3658,16 +3661,16 @@ }, { "name": "monolog/monolog", - "version": "3.8.1", + "version": "3.9.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "aef6ee73a77a66e404dd6540934a9ef1b3c855b4" + "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/aef6ee73a77a66e404dd6540934a9ef1b3c855b4", - "reference": "aef6ee73a77a66e404dd6540934a9ef1b3c855b4", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/10d85740180ecba7896c87e06a166e0c95a0e3b6", + "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6", "shasum": "" }, "require": { @@ -3745,7 +3748,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.8.1" + "source": "https://github.com/Seldaek/monolog/tree/3.9.0" }, "funding": [ { @@ -3757,7 +3760,7 @@ "type": "tidelift" } ], - "time": "2024-12-05T17:15:07+00:00" + "time": "2025-03-24T10:02:05+00:00" }, { "name": "mtdowling/jmespath.php", @@ -3827,16 +3830,16 @@ }, { "name": "nesbot/carbon", - "version": "3.8.6", + "version": "3.9.0", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon.git", - "reference": "ff2f20cf83bd4d503720632ce8a426dc747bf7fd" + "reference": "6d16a8a015166fe54e22c042e0805c5363aef50d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/ff2f20cf83bd4d503720632ce8a426dc747bf7fd", - "reference": "ff2f20cf83bd4d503720632ce8a426dc747bf7fd", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/6d16a8a015166fe54e22c042e0805c5363aef50d", + "reference": "6d16a8a015166fe54e22c042e0805c5363aef50d", "shasum": "" }, "require": { @@ -3929,7 +3932,7 @@ "type": "tidelift" } ], - "time": "2025-02-20T17:33:38+00:00" + "time": "2025-03-27T12:57:33+00:00" }, { "name": "nette/schema", @@ -3995,16 +3998,16 @@ }, { "name": "nette/utils", - "version": "v4.0.5", + "version": "v4.0.6", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96" + "reference": "ce708655043c7050eb050df361c5e313cf708309" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/736c567e257dbe0fcf6ce81b4d6dbe05c6899f96", - "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96", + "url": "https://api.github.com/repos/nette/utils/zipball/ce708655043c7050eb050df361c5e313cf708309", + "reference": "ce708655043c7050eb050df361c5e313cf708309", "shasum": "" }, "require": { @@ -4075,9 +4078,9 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.5" + "source": "https://github.com/nette/utils/tree/v4.0.6" }, - "time": "2024-08-07T15:39:19+00:00" + "time": "2025-03-30T21:06:30+00:00" }, { "name": "nikic/php-parser", @@ -5134,16 +5137,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.7", + "version": "v0.12.8", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "d73fa3c74918ef4522bb8a3bf9cab39161c4b57c" + "reference": "85057ceedee50c49d4f6ecaff73ee96adb3b3625" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/d73fa3c74918ef4522bb8a3bf9cab39161c4b57c", - "reference": "d73fa3c74918ef4522bb8a3bf9cab39161c4b57c", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/85057ceedee50c49d4f6ecaff73ee96adb3b3625", + "reference": "85057ceedee50c49d4f6ecaff73ee96adb3b3625", "shasum": "" }, "require": { @@ -5207,9 +5210,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.7" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.8" }, - "time": "2024-12-10T01:58:33+00:00" + "time": "2025-03-16T03:05:19+00:00" }, { "name": "ralouphie/getallheaders", @@ -5257,16 +5260,16 @@ }, { "name": "ramsey/collection", - "version": "2.1.0", + "version": "2.1.1", "source": { "type": "git", "url": "https://github.com/ramsey/collection.git", - "reference": "3c5990b8a5e0b79cd1cf11c2dc1229e58e93f109" + "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/collection/zipball/3c5990b8a5e0b79cd1cf11c2dc1229e58e93f109", - "reference": "3c5990b8a5e0b79cd1cf11c2dc1229e58e93f109", + "url": "https://api.github.com/repos/ramsey/collection/zipball/344572933ad0181accbf4ba763e85a0306a8c5e2", + "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2", "shasum": "" }, "require": { @@ -5327,9 +5330,9 @@ ], "support": { "issues": "https://github.com/ramsey/collection/issues", - "source": "https://github.com/ramsey/collection/tree/2.1.0" + "source": "https://github.com/ramsey/collection/tree/2.1.1" }, - "time": "2025-03-02T04:48:29+00:00" + "time": "2025-03-22T05:38:12+00:00" }, { "name": "ramsey/uuid", @@ -5621,16 +5624,16 @@ }, { "name": "spatie/laravel-package-tools", - "version": "1.19.0", + "version": "1.92.4", "source": { "type": "git", "url": "https://github.com/spatie/laravel-package-tools.git", - "reference": "1c9c30ac6a6576b8d15c6c37b6cf23d748df2faa" + "reference": "d20b1969f836d210459b78683d85c9cd5c5f508c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/1c9c30ac6a6576b8d15c6c37b6cf23d748df2faa", - "reference": "1c9c30ac6a6576b8d15c6c37b6cf23d748df2faa", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/d20b1969f836d210459b78683d85c9cd5c5f508c", + "reference": "d20b1969f836d210459b78683d85c9cd5c5f508c", "shasum": "" }, "require": { @@ -5641,6 +5644,7 @@ "mockery/mockery": "^1.5", "orchestra/testbench": "^7.7|^8.0|^9.0|^10.0", "pestphp/pest": "^1.23|^2.1|^3.1", + "phpunit/php-code-coverage": "^9.0|^10.0|^11.0", "phpunit/phpunit": "^9.5.24|^10.5|^11.5", "spatie/pest-plugin-test-time": "^1.1|^2.2" }, @@ -5669,7 +5673,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-package-tools/issues", - "source": "https://github.com/spatie/laravel-package-tools/tree/1.19.0" + "source": "https://github.com/spatie/laravel-package-tools/tree/1.92.4" }, "funding": [ { @@ -5677,20 +5681,20 @@ "type": "github" } ], - "time": "2025-02-06T14:58:20+00:00" + "time": "2025-04-11T15:27:14+00:00" }, { "name": "spatie/laravel-route-attributes", - "version": "1.25.1", + "version": "1.25.2", "source": { "type": "git", "url": "https://github.com/spatie/laravel-route-attributes.git", - "reference": "739d353605c5bca476fa5cc4f21967aec12a9688" + "reference": "af72df17261e08336cf4c04d9bf2bec9bb0431b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-route-attributes/zipball/739d353605c5bca476fa5cc4f21967aec12a9688", - "reference": "739d353605c5bca476fa5cc4f21967aec12a9688", + "url": "https://api.github.com/repos/spatie/laravel-route-attributes/zipball/af72df17261e08336cf4c04d9bf2bec9bb0431b6", + "reference": "af72df17261e08336cf4c04d9bf2bec9bb0431b6", "shasum": "" }, "require": { @@ -5736,7 +5740,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-route-attributes/issues", - "source": "https://github.com/spatie/laravel-route-attributes/tree/1.25.1" + "source": "https://github.com/spatie/laravel-route-attributes/tree/1.25.2" }, "funding": [ { @@ -5748,7 +5752,7 @@ "type": "other" } ], - "time": "2025-02-21T13:09:36+00:00" + "time": "2025-04-08T09:40:31+00:00" }, { "name": "symfony/clock", @@ -5826,16 +5830,16 @@ }, { "name": "symfony/console", - "version": "v7.2.1", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3" + "reference": "e51498ea18570c062e7df29d05a7003585b19b88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/fefcc18c0f5d0efe3ab3152f15857298868dc2c3", - "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3", + "url": "https://api.github.com/repos/symfony/console/zipball/e51498ea18570c062e7df29d05a7003585b19b88", + "reference": "e51498ea18570c062e7df29d05a7003585b19b88", "shasum": "" }, "require": { @@ -5899,7 +5903,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.2.1" + "source": "https://github.com/symfony/console/tree/v7.2.5" }, "funding": [ { @@ -5915,7 +5919,7 @@ "type": "tidelift" } ], - "time": "2024-12-11T03:49:26+00:00" + "time": "2025-03-12T08:11:12+00:00" }, { "name": "symfony/css-selector", @@ -6051,16 +6055,16 @@ }, { "name": "symfony/error-handler", - "version": "v7.2.4", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "aabf79938aa795350c07ce6464dd1985607d95d5" + "reference": "102be5e6a8e4f4f3eb3149bcbfa33a80d1ee374b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/aabf79938aa795350c07ce6464dd1985607d95d5", - "reference": "aabf79938aa795350c07ce6464dd1985607d95d5", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/102be5e6a8e4f4f3eb3149bcbfa33a80d1ee374b", + "reference": "102be5e6a8e4f4f3eb3149bcbfa33a80d1ee374b", "shasum": "" }, "require": { @@ -6106,7 +6110,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.2.4" + "source": "https://github.com/symfony/error-handler/tree/v7.2.5" }, "funding": [ { @@ -6122,7 +6126,7 @@ "type": "tidelift" } ], - "time": "2025-02-02T20:27:07+00:00" + "time": "2025-03-03T07:12:39+00:00" }, { "name": "symfony/event-dispatcher", @@ -6415,16 +6419,16 @@ }, { "name": "symfony/http-foundation", - "version": "v7.2.3", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "ee1b504b8926198be89d05e5b6fc4c3810c090f0" + "reference": "371272aeb6286f8135e028ca535f8e4d6f114126" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ee1b504b8926198be89d05e5b6fc4c3810c090f0", - "reference": "ee1b504b8926198be89d05e5b6fc4c3810c090f0", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/371272aeb6286f8135e028ca535f8e4d6f114126", + "reference": "371272aeb6286f8135e028ca535f8e4d6f114126", "shasum": "" }, "require": { @@ -6473,7 +6477,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.2.3" + "source": "https://github.com/symfony/http-foundation/tree/v7.2.5" }, "funding": [ { @@ -6489,20 +6493,20 @@ "type": "tidelift" } ], - "time": "2025-01-17T10:56:55+00:00" + "time": "2025-03-25T15:54:33+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.2.4", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "9f1103734c5789798fefb90e91de4586039003ed" + "reference": "b1fe91bc1fa454a806d3f98db4ba826eb9941a54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/9f1103734c5789798fefb90e91de4586039003ed", - "reference": "9f1103734c5789798fefb90e91de4586039003ed", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b1fe91bc1fa454a806d3f98db4ba826eb9941a54", + "reference": "b1fe91bc1fa454a806d3f98db4ba826eb9941a54", "shasum": "" }, "require": { @@ -6587,7 +6591,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.2.4" + "source": "https://github.com/symfony/http-kernel/tree/v7.2.5" }, "funding": [ { @@ -6603,7 +6607,7 @@ "type": "tidelift" } ], - "time": "2025-02-26T11:01:22+00:00" + "time": "2025-03-28T13:32:50+00:00" }, { "name": "symfony/mailer", @@ -7407,16 +7411,16 @@ }, { "name": "symfony/process", - "version": "v7.2.4", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "d8f411ff3c7ddc4ae9166fb388d1190a2df5b5cf" + "reference": "87b7c93e57df9d8e39a093d32587702380ff045d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/d8f411ff3c7ddc4ae9166fb388d1190a2df5b5cf", - "reference": "d8f411ff3c7ddc4ae9166fb388d1190a2df5b5cf", + "url": "https://api.github.com/repos/symfony/process/zipball/87b7c93e57df9d8e39a093d32587702380ff045d", + "reference": "87b7c93e57df9d8e39a093d32587702380ff045d", "shasum": "" }, "require": { @@ -7448,7 +7452,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.2.4" + "source": "https://github.com/symfony/process/tree/v7.2.5" }, "funding": [ { @@ -7464,7 +7468,7 @@ "type": "tidelift" } ], - "time": "2025-02-05T08:33:46+00:00" + "time": "2025-03-13T12:21:46+00:00" }, { "name": "symfony/routing", @@ -8435,16 +8439,16 @@ }, { "name": "filp/whoops", - "version": "2.17.0", + "version": "2.18.0", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "075bc0c26631110584175de6523ab3f1652eb28e" + "reference": "a7de6c3c6c3c022f5cfc337f8ede6a14460cf77e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/075bc0c26631110584175de6523ab3f1652eb28e", - "reference": "075bc0c26631110584175de6523ab3f1652eb28e", + "url": "https://api.github.com/repos/filp/whoops/zipball/a7de6c3c6c3c022f5cfc337f8ede6a14460cf77e", + "reference": "a7de6c3c6c3c022f5cfc337f8ede6a14460cf77e", "shasum": "" }, "require": { @@ -8494,7 +8498,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.17.0" + "source": "https://github.com/filp/whoops/tree/2.18.0" }, "funding": [ { @@ -8502,7 +8506,7 @@ "type": "github" } ], - "time": "2025-01-25T12:00:00+00:00" + "time": "2025-03-15T12:00:00+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -8556,17 +8560,58 @@ "time": "2020-07-09T08:09:16+00:00" }, { - "name": "knuckleswtf/scribe", - "version": "4.40.0", + "name": "iamcal/sql-parser", + "version": "v0.6", "source": { "type": "git", - "url": "https://github.com/knuckleswtf/scribe.git", - "reference": "1ad707f229185bb2413ea9ed2fb01747abe78ff6" + "url": "https://github.com/iamcal/SQLParser.git", + "reference": "947083e2dca211a6f12fb1beb67a01e387de9b62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/knuckleswtf/scribe/zipball/1ad707f229185bb2413ea9ed2fb01747abe78ff6", - "reference": "1ad707f229185bb2413ea9ed2fb01747abe78ff6", + "url": "https://api.github.com/repos/iamcal/SQLParser/zipball/947083e2dca211a6f12fb1beb67a01e387de9b62", + "reference": "947083e2dca211a6f12fb1beb67a01e387de9b62", + "shasum": "" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^1.0", + "phpunit/phpunit": "^5|^6|^7|^8|^9" + }, + "type": "library", + "autoload": { + "psr-4": { + "iamcal\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Cal Henderson", + "email": "cal@iamcal.com" + } + ], + "description": "MySQL schema parser", + "support": { + "issues": "https://github.com/iamcal/SQLParser/issues", + "source": "https://github.com/iamcal/SQLParser/tree/v0.6" + }, + "time": "2025-03-17T16:59:46+00:00" + }, + { + "name": "knuckleswtf/scribe", + "version": "5.2.0", + "source": { + "type": "git", + "url": "https://github.com/knuckleswtf/scribe.git", + "reference": "618908cac156fc90b0387cb9e14dfbd5a93c76cc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/knuckleswtf/scribe/zipball/618908cac156fc90b0387cb9e14dfbd5a93c76cc", + "reference": "618908cac156fc90b0387cb9e14dfbd5a93c76cc", "shasum": "" }, "require": { @@ -8574,38 +8619,35 @@ "ext-fileinfo": "*", "ext-json": "*", "ext-pdo": "*", - "fakerphp/faker": "^1.9.1", - "illuminate/console": "^8.0|^9.0|^10.0|^11.0", - "illuminate/routing": "^8.0|^9.0|^10.0|^11.0", - "illuminate/support": "^8.0|^9.0|^10.0|^11.0", - "league/flysystem": "^1.1.4|^2.1.1|^3.0", + "fakerphp/faker": "^1.23.1", + "laravel/framework": "^9.0|^10.0|^11.0|^12.0", + "league/flysystem": "^3.0", "mpociot/reflection-docblock": "^1.0.1", "nikic/php-parser": "^5.0", - "nunomaduro/collision": "^5.10|^6.0|^7.0|^8.0", - "php": ">=8.0", + "nunomaduro/collision": "^6.0|^7.0|^8.0", + "php": ">=8.1", "ramsey/uuid": "^4.2.2", "shalvah/clara": "^3.1.0", "shalvah/upgrader": ">=0.6.0", "spatie/data-transfer-object": "^2.6|^3.0", - "symfony/var-exporter": "^5.4|^6.0|^7.0", - "symfony/yaml": "^5.4|^6.0|^7.0" + "symfony/var-exporter": "^6.0|^7.0", + "symfony/yaml": "^6.0|^7.0" }, "replace": { "mpociot/laravel-apidoc-generator": "*" }, "require-dev": { - "brianium/paratest": "^6.0", - "dms/phpunit-arraysubset-asserts": "^0.4", + "dms/phpunit-arraysubset-asserts": "^v0.5.0", "laravel/legacy-factories": "^1.3.0", - "laravel/lumen-framework": "^8.0|^9.0|^10.0", "league/fractal": "^0.20", "nikic/fast-route": "^1.3", - "orchestra/testbench": "^6.0|^7.0|^8.0", - "pestphp/pest": "^1.21", - "phpstan/phpstan": "^1.0", - "phpunit/phpunit": "^9.0|^10.0", - "symfony/css-selector": "^5.4|^6.0", - "symfony/dom-crawler": "^5.4|^6.0" + "orchestra/testbench": "^7.0|^8.0|^v9.10.0|^10.0", + "pestphp/pest": "^1.21|^2.0|^3.0", + "phpstan/phpstan": "^2.1.5", + "phpunit/phpunit": "^9.0|^10.0|^11.0", + "spatie/ray": "^1.41", + "symfony/css-selector": "^6.0|^7.0", + "symfony/dom-crawler": "^6.0|^7.0" }, "type": "library", "extra": { @@ -8616,6 +8658,9 @@ } }, "autoload": { + "files": [ + "src/Config/helpers.php" + ], "psr-4": { "Knuckles\\Camel\\": "camel/", "Knuckles\\Scribe\\": "src/" @@ -8634,13 +8679,12 @@ "homepage": "http://github.com/knuckleswtf/scribe", "keywords": [ "api", - "dingo", "documentation", "laravel" ], "support": { "issues": "https://github.com/knuckleswtf/scribe/issues", - "source": "https://github.com/knuckleswtf/scribe/tree/4.40.0" + "source": "https://github.com/knuckleswtf/scribe/tree/5.2.0" }, "funding": [ { @@ -8648,26 +8692,26 @@ "type": "patreon" } ], - "time": "2025-02-03T20:29:15+00:00" + "time": "2025-04-17T21:36:45+00:00" }, { "name": "laradumps/laradumps", - "version": "v3.5.2", + "version": "v3.5.3", "source": { "type": "git", "url": "https://github.com/laradumps/laradumps.git", - "reference": "2aa47ef6be7becf8583234b82161e2dced689e2d" + "reference": "bbea350754afdf29dc375e1ffa798120238b1cda" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laradumps/laradumps/zipball/2aa47ef6be7becf8583234b82161e2dced689e2d", - "reference": "2aa47ef6be7becf8583234b82161e2dced689e2d", + "url": "https://api.github.com/repos/laradumps/laradumps/zipball/bbea350754afdf29dc375e1ffa798120238b1cda", + "reference": "bbea350754afdf29dc375e1ffa798120238b1cda", "shasum": "" }, "require": { "illuminate/mail": "^10.0|^11.0|^12.0", "illuminate/support": "^10.0|^11.0|^12.0", - "laradumps/laradumps-core": ">2.4 | <3.0", + "laradumps/laradumps-core": ">2.4 <3.0", "nunomaduro/termwind": "^1.15.1|^2.0.1", "php": "^8.1" }, @@ -8711,7 +8755,7 @@ "homepage": "https://github.com/laradumps/laradumps", "support": { "issues": "https://github.com/laradumps/laradumps/issues", - "source": "https://github.com/laradumps/laradumps/tree/v3.5.2" + "source": "https://github.com/laradumps/laradumps/tree/v3.5.3" }, "funding": [ { @@ -8719,7 +8763,7 @@ "type": "github" } ], - "time": "2025-02-26T12:00:14+00:00" + "time": "2025-03-27T16:43:05+00:00" }, { "name": "laradumps/laradumps-core", @@ -8792,40 +8836,40 @@ }, { "name": "larastan/larastan", - "version": "v3.1.0", + "version": "v3.3.1", "source": { "type": "git", "url": "https://github.com/larastan/larastan.git", - "reference": "dbb2dc20e5c8e1ed3ff289054e1955f269187312" + "reference": "58bee8be51daf12d78ed0a909be3b205607d2f27" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/larastan/larastan/zipball/dbb2dc20e5c8e1ed3ff289054e1955f269187312", - "reference": "dbb2dc20e5c8e1ed3ff289054e1955f269187312", + "url": "https://api.github.com/repos/larastan/larastan/zipball/58bee8be51daf12d78ed0a909be3b205607d2f27", + "reference": "58bee8be51daf12d78ed0a909be3b205607d2f27", "shasum": "" }, "require": { "ext-json": "*", - "illuminate/console": "^11.15.0 || ^12.0", - "illuminate/container": "^11.15.0 || ^12.0", - "illuminate/contracts": "^11.15.0 || ^12.0", - "illuminate/database": "^11.15.0 || ^12.0", - "illuminate/http": "^11.15.0 || ^12.0", - "illuminate/pipeline": "^11.15.0 || ^12.0", - "illuminate/support": "^11.15.0 || ^12.0", + "iamcal/sql-parser": "^0.6.0", + "illuminate/console": "^11.44.2 || ^12.4.1", + "illuminate/container": "^11.44.2 || ^12.4.1", + "illuminate/contracts": "^11.44.2 || ^12.4.1", + "illuminate/database": "^11.44.2 || ^12.4.1", + "illuminate/http": "^11.44.2 || ^12.4.1", + "illuminate/pipeline": "^11.44.2 || ^12.4.1", + "illuminate/support": "^11.44.2 || ^12.4.1", "php": "^8.2", - "phpmyadmin/sql-parser": "^5.9.0", - "phpstan/phpstan": "^2.1.3" + "phpstan/phpstan": "^2.1.11" }, "require-dev": { "doctrine/coding-standard": "^12.0", - "laravel/framework": "^11.15.0 || ^12.0", - "mockery/mockery": "^1.6", - "nikic/php-parser": "^5.3", - "orchestra/canvas": "^v9.1.3 || ^10.0", - "orchestra/testbench-core": "^9.5.2 || ^10.0", - "phpstan/phpstan-deprecation-rules": "^2.0.0", - "phpunit/phpunit": "^10.5.35 || ^11.3.6" + "laravel/framework": "^11.44.2 || ^12.7.2", + "mockery/mockery": "^1.6.12", + "nikic/php-parser": "^5.4", + "orchestra/canvas": "^v9.2.2 || ^10.0.1", + "orchestra/testbench-core": "^9.12.0 || ^10.1", + "phpstan/phpstan-deprecation-rules": "^2.0.1", + "phpunit/phpunit": "^10.5.35 || ^11.5.15" }, "suggest": { "orchestra/testbench": "Using Larastan for analysing a package needs Testbench" @@ -8873,28 +8917,32 @@ ], "support": { "issues": "https://github.com/larastan/larastan/issues", - "source": "https://github.com/larastan/larastan/tree/v3.1.0" + "source": "https://github.com/larastan/larastan/tree/v3.3.1" }, "funding": [ { "url": "https://github.com/canvural", "type": "github" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" } ], - "time": "2025-02-20T15:25:15+00:00" + "time": "2025-04-03T20:08:04+00:00" }, { "name": "laravel/pint", - "version": "v1.21.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "531fa0871fbde719c51b12afa3a443b8f4e4b425" + "reference": "7ddfaa6523a675fae5c4123ee38fc6bfb8ee4f36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/531fa0871fbde719c51b12afa3a443b8f4e4b425", - "reference": "531fa0871fbde719c51b12afa3a443b8f4e4b425", + "url": "https://api.github.com/repos/laravel/pint/zipball/7ddfaa6523a675fae5c4123ee38fc6bfb8ee4f36", + "reference": "7ddfaa6523a675fae5c4123ee38fc6bfb8ee4f36", "shasum": "" }, "require": { @@ -8905,9 +8953,9 @@ "php": "^8.2.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.68.5", - "illuminate/view": "^11.42.0", - "larastan/larastan": "^3.0.4", + "friendsofphp/php-cs-fixer": "^3.75.0", + "illuminate/view": "^11.44.2", + "larastan/larastan": "^3.3.1", "laravel-zero/framework": "^11.36.1", "mockery/mockery": "^1.6.12", "nunomaduro/termwind": "^2.3", @@ -8947,7 +8995,7 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2025-02-18T03:18:57+00:00" + "time": "2025-04-08T22:11:45+00:00" }, { "name": "laravel/sail", @@ -9210,38 +9258,39 @@ }, { "name": "nunomaduro/collision", - "version": "v8.5.0", + "version": "v8.8.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "f5c101b929c958e849a633283adff296ed5f38f5" + "reference": "4cf9f3b47afff38b139fb79ce54fc71799022ce8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/f5c101b929c958e849a633283adff296ed5f38f5", - "reference": "f5c101b929c958e849a633283adff296ed5f38f5", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/4cf9f3b47afff38b139fb79ce54fc71799022ce8", + "reference": "4cf9f3b47afff38b139fb79ce54fc71799022ce8", "shasum": "" }, "require": { - "filp/whoops": "^2.16.0", - "nunomaduro/termwind": "^2.1.0", + "filp/whoops": "^2.18.0", + "nunomaduro/termwind": "^2.3.0", "php": "^8.2.0", - "symfony/console": "^7.1.5" + "symfony/console": "^7.2.5" }, "conflict": { - "laravel/framework": "<11.0.0 || >=12.0.0", - "phpunit/phpunit": "<10.5.1 || >=12.0.0" + "laravel/framework": "<11.44.2 || >=13.0.0", + "phpunit/phpunit": "<11.5.15 || >=13.0.0" }, "require-dev": { - "larastan/larastan": "^2.9.8", - "laravel/framework": "^11.28.0", - "laravel/pint": "^1.18.1", - "laravel/sail": "^1.36.0", - "laravel/sanctum": "^4.0.3", - "laravel/tinker": "^2.10.0", - "orchestra/testbench-core": "^9.5.3", - "pestphp/pest": "^2.36.0 || ^3.4.0", - "sebastian/environment": "^6.1.0 || ^7.2.0" + "brianium/paratest": "^7.8.3", + "larastan/larastan": "^3.2", + "laravel/framework": "^11.44.2 || ^12.6", + "laravel/pint": "^1.21.2", + "laravel/sail": "^1.41.0", + "laravel/sanctum": "^4.0.8", + "laravel/tinker": "^2.10.1", + "orchestra/testbench-core": "^9.12.0 || ^10.1", + "pestphp/pest": "^3.8.0", + "sebastian/environment": "^7.2.0 || ^8.0" }, "type": "library", "extra": { @@ -9278,6 +9327,7 @@ "cli", "command-line", "console", + "dev", "error", "handling", "laravel", @@ -9303,7 +9353,7 @@ "type": "patreon" } ], - "time": "2024-10-15T16:06:32+00:00" + "time": "2025-04-03T14:33:09+00:00" }, { "name": "phar-io/manifest", @@ -9423,107 +9473,18 @@ }, "time": "2022-02-21T01:04:05+00:00" }, - { - "name": "phpmyadmin/sql-parser", - "version": "5.11.0", - "source": { - "type": "git", - "url": "https://github.com/phpmyadmin/sql-parser.git", - "reference": "07044bc8c13abd542756c3fd34dc66a5d6dee8e4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/07044bc8c13abd542756c3fd34dc66a5d6dee8e4", - "reference": "07044bc8c13abd542756c3fd34dc66a5d6dee8e4", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0", - "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "phpmyadmin/motranslator": "<3.0" - }, - "require-dev": { - "phpbench/phpbench": "^1.1", - "phpmyadmin/coding-standard": "^3.0", - "phpmyadmin/motranslator": "^4.0 || ^5.0", - "phpstan/extension-installer": "^1.4", - "phpstan/phpstan": "^1.12", - "phpstan/phpstan-deprecation-rules": "^1.2", - "phpstan/phpstan-phpunit": "^1.4", - "phpstan/phpstan-strict-rules": "^1.6", - "phpunit/phpunit": "^8.5 || ^9.6", - "psalm/plugin-phpunit": "^0.16.1", - "vimeo/psalm": "^4.11", - "zumba/json-serializer": "~3.0.2" - }, - "suggest": { - "ext-mbstring": "For best performance", - "phpmyadmin/motranslator": "Translate messages to your favorite locale" - }, - "bin": [ - "bin/highlight-query", - "bin/lint-query", - "bin/sql-parser", - "bin/tokenize-query" - ], - "type": "library", - "autoload": { - "psr-4": { - "PhpMyAdmin\\SqlParser\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "The phpMyAdmin Team", - "email": "developers@phpmyadmin.net", - "homepage": "https://www.phpmyadmin.net/team/" - } - ], - "description": "A validating SQL lexer and parser with a focus on MySQL dialect.", - "homepage": "https://github.com/phpmyadmin/sql-parser", - "keywords": [ - "analysis", - "lexer", - "parser", - "query linter", - "sql", - "sql lexer", - "sql linter", - "sql parser", - "sql syntax highlighter", - "sql tokenizer" - ], - "support": { - "issues": "https://github.com/phpmyadmin/sql-parser/issues", - "source": "https://github.com/phpmyadmin/sql-parser" - }, - "funding": [ - { - "url": "https://www.phpmyadmin.net/donate/", - "type": "other" - } - ], - "time": "2025-02-22T20:00:59+00:00" - }, { "name": "phpstan/phpstan", - "version": "2.1.8", + "version": "2.1.12", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "f9adff3b87c03b12cc7e46a30a524648e497758f" + "reference": "96dde49e967c0c22812bcfa7bda4ff82c09f3b0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/f9adff3b87c03b12cc7e46a30a524648e497758f", - "reference": "f9adff3b87c03b12cc7e46a30a524648e497758f", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/96dde49e967c0c22812bcfa7bda4ff82c09f3b0c", + "reference": "96dde49e967c0c22812bcfa7bda4ff82c09f3b0c", "shasum": "" }, "require": { @@ -9568,39 +9529,39 @@ "type": "github" } ], - "time": "2025-03-09T09:30:48+00:00" + "time": "2025-04-16T13:19:18+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "10.1.16", + "version": "11.0.9", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "7e308268858ed6baedc8704a304727d20bc07c77" + "reference": "14d63fbcca18457e49c6f8bebaa91a87e8e188d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7e308268858ed6baedc8704a304727d20bc07c77", - "reference": "7e308268858ed6baedc8704a304727d20bc07c77", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/14d63fbcca18457e49c6f8bebaa91a87e8e188d7", + "reference": "14d63fbcca18457e49c6f8bebaa91a87e8e188d7", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.19.1 || ^5.1.0", - "php": ">=8.1", - "phpunit/php-file-iterator": "^4.1.0", - "phpunit/php-text-template": "^3.0.1", - "sebastian/code-unit-reverse-lookup": "^3.0.0", - "sebastian/complexity": "^3.2.0", - "sebastian/environment": "^6.1.0", - "sebastian/lines-of-code": "^2.0.2", - "sebastian/version": "^4.0.1", + "nikic/php-parser": "^5.4.0", + "php": ">=8.2", + "phpunit/php-file-iterator": "^5.1.0", + "phpunit/php-text-template": "^4.0.1", + "sebastian/code-unit-reverse-lookup": "^4.0.1", + "sebastian/complexity": "^4.0.1", + "sebastian/environment": "^7.2.0", + "sebastian/lines-of-code": "^3.0.1", + "sebastian/version": "^5.0.2", "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^10.1" + "phpunit/phpunit": "^11.5.2" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -9609,7 +9570,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "10.1.x-dev" + "dev-main": "11.0.x-dev" } }, "autoload": { @@ -9638,7 +9599,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.16" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.9" }, "funding": [ { @@ -9646,32 +9607,32 @@ "type": "github" } ], - "time": "2024-08-22T04:31:57+00:00" + "time": "2025-02-25T13:26:39+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "4.1.0", + "version": "5.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c" + "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c", - "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/118cfaaa8bc5aef3287bf315b6060b1174754af6", + "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -9699,7 +9660,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.0" }, "funding": [ { @@ -9707,28 +9668,28 @@ "type": "github" } ], - "time": "2023-08-31T06:24:48+00:00" + "time": "2024-08-27T05:02:59+00:00" }, { "name": "phpunit/php-invoker", - "version": "4.0.0", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7" + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", - "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { "ext-pcntl": "*", - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "suggest": { "ext-pcntl": "*" @@ -9736,7 +9697,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -9762,7 +9723,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0" + "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" }, "funding": [ { @@ -9770,32 +9732,32 @@ "type": "github" } ], - "time": "2023-02-03T06:56:09+00:00" + "time": "2024-07-03T05:07:44+00:00" }, { "name": "phpunit/php-text-template", - "version": "3.0.1", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748" + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748", - "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -9822,7 +9784,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-text-template/issues", "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1" + "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" }, "funding": [ { @@ -9830,32 +9792,32 @@ "type": "github" } ], - "time": "2023-08-31T14:07:24+00:00" + "time": "2024-07-03T05:08:43+00:00" }, { "name": "phpunit/php-timer", - "version": "6.0.0", + "version": "7.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d" + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d", - "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -9881,7 +9843,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0" + "security": "https://github.com/sebastianbergmann/php-timer/security/policy", + "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" }, "funding": [ { @@ -9889,20 +9852,20 @@ "type": "github" } ], - "time": "2023-02-03T06:57:52+00:00" + "time": "2024-07-03T05:09:35+00:00" }, { "name": "phpunit/phpunit", - "version": "10.5.45", + "version": "11.5.17", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "bd68a781d8e30348bc297449f5234b3458267ae8" + "reference": "fd2e863a2995cdfd864fb514b5e0b28b09895b5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/bd68a781d8e30348bc297449f5234b3458267ae8", - "reference": "bd68a781d8e30348bc297449f5234b3458267ae8", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/fd2e863a2995cdfd864fb514b5e0b28b09895b5c", + "reference": "fd2e863a2995cdfd864fb514b5e0b28b09895b5c", "shasum": "" }, "require": { @@ -9912,26 +9875,26 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.12.1", + "myclabs/deep-copy": "^1.13.0", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", - "php": ">=8.1", - "phpunit/php-code-coverage": "^10.1.16", - "phpunit/php-file-iterator": "^4.1.0", - "phpunit/php-invoker": "^4.0.0", - "phpunit/php-text-template": "^3.0.1", - "phpunit/php-timer": "^6.0.0", - "sebastian/cli-parser": "^2.0.1", - "sebastian/code-unit": "^2.0.0", - "sebastian/comparator": "^5.0.3", - "sebastian/diff": "^5.1.1", - "sebastian/environment": "^6.1.0", - "sebastian/exporter": "^5.1.2", - "sebastian/global-state": "^6.0.2", - "sebastian/object-enumerator": "^5.0.0", - "sebastian/recursion-context": "^5.0.0", - "sebastian/type": "^4.0.0", - "sebastian/version": "^4.0.1" + "php": ">=8.2", + "phpunit/php-code-coverage": "^11.0.9", + "phpunit/php-file-iterator": "^5.1.0", + "phpunit/php-invoker": "^5.0.1", + "phpunit/php-text-template": "^4.0.1", + "phpunit/php-timer": "^7.0.1", + "sebastian/cli-parser": "^3.0.2", + "sebastian/code-unit": "^3.0.3", + "sebastian/comparator": "^6.3.1", + "sebastian/diff": "^6.0.2", + "sebastian/environment": "^7.2.0", + "sebastian/exporter": "^6.3.0", + "sebastian/global-state": "^7.0.2", + "sebastian/object-enumerator": "^6.0.1", + "sebastian/type": "^5.1.2", + "sebastian/version": "^5.0.2", + "staabm/side-effects-detector": "^1.0.5" }, "suggest": { "ext-soap": "To be able to generate mocks based on WSDL files" @@ -9942,7 +9905,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "10.5-dev" + "dev-main": "11.5-dev" } }, "autoload": { @@ -9974,7 +9937,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.45" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.17" }, "funding": [ { @@ -9990,25 +9953,25 @@ "type": "tidelift" } ], - "time": "2025-02-06T16:08:12+00:00" + "time": "2025-04-08T07:59:11+00:00" }, { "name": "rector/rector", - "version": "2.0.10", + "version": "2.0.11", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "5844a718acb40f40afcd110394270afa55509fd0" + "reference": "059b827cc648929711606e9824337e41e2f9ed92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/5844a718acb40f40afcd110394270afa55509fd0", - "reference": "5844a718acb40f40afcd110394270afa55509fd0", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/059b827cc648929711606e9824337e41e2f9ed92", + "reference": "059b827cc648929711606e9824337e41e2f9ed92", "shasum": "" }, "require": { "php": "^7.4|^8.0", - "phpstan/phpstan": "^2.1.6" + "phpstan/phpstan": "^2.1.9" }, "conflict": { "rector/rector-doctrine": "*", @@ -10041,7 +10004,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/2.0.10" + "source": "https://github.com/rectorphp/rector/tree/2.0.11" }, "funding": [ { @@ -10049,32 +10012,32 @@ "type": "github" } ], - "time": "2025-03-03T17:35:18+00:00" + "time": "2025-03-28T10:25:17+00:00" }, { "name": "sebastian/cli-parser", - "version": "2.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084" + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084", - "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -10098,7 +10061,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1" + "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" }, "funding": [ { @@ -10106,32 +10069,32 @@ "type": "github" } ], - "time": "2024-03-02T07:12:49+00:00" + "time": "2024-07-03T04:41:36+00:00" }, { "name": "sebastian/code-unit", - "version": "2.0.0", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "a81fee9eef0b7a76af11d121767abc44c104e503" + "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503", - "reference": "a81fee9eef0b7a76af11d121767abc44c104e503", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64", + "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.5" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -10154,7 +10117,8 @@ "homepage": "https://github.com/sebastianbergmann/code-unit", "support": { "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0" + "security": "https://github.com/sebastianbergmann/code-unit/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3" }, "funding": [ { @@ -10162,32 +10126,32 @@ "type": "github" } ], - "time": "2023-02-03T06:58:43+00:00" + "time": "2025-03-19T07:56:08+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "3.0.0", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d" + "reference": "183a9b2632194febd219bb9246eee421dad8d45e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", - "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", + "reference": "183a9b2632194febd219bb9246eee421dad8d45e", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -10209,7 +10173,8 @@ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", "support": { "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0" + "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" }, "funding": [ { @@ -10217,36 +10182,39 @@ "type": "github" } ], - "time": "2023-02-03T06:59:15+00:00" + "time": "2024-07-03T04:45:54+00:00" }, { "name": "sebastian/comparator", - "version": "5.0.3", + "version": "6.3.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e" + "reference": "24b8fbc2c8e201bb1308e7b05148d6ab393b6959" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e", - "reference": "a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/24b8fbc2c8e201bb1308e7b05148d6ab393b6959", + "reference": "24b8fbc2c8e201bb1308e7b05148d6ab393b6959", "shasum": "" }, "require": { "ext-dom": "*", "ext-mbstring": "*", - "php": ">=8.1", - "sebastian/diff": "^5.0", - "sebastian/exporter": "^5.0" + "php": ">=8.2", + "sebastian/diff": "^6.0", + "sebastian/exporter": "^6.0" }, "require-dev": { - "phpunit/phpunit": "^10.5" + "phpunit/phpunit": "^11.4" + }, + "suggest": { + "ext-bcmath": "For comparing BcMath\\Number objects" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.3-dev" } }, "autoload": { @@ -10286,7 +10254,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.3" + "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.1" }, "funding": [ { @@ -10294,33 +10262,33 @@ "type": "github" } ], - "time": "2024-10-18T14:56:07+00:00" + "time": "2025-03-07T06:57:01+00:00" }, { "name": "sebastian/complexity", - "version": "3.2.0", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "68ff824baeae169ec9f2137158ee529584553799" + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799", - "reference": "68ff824baeae169ec9f2137158ee529584553799", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", "shasum": "" }, "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=8.1" + "nikic/php-parser": "^5.0", + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.2-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -10344,7 +10312,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0" + "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" }, "funding": [ { @@ -10352,33 +10320,33 @@ "type": "github" } ], - "time": "2023-12-21T08:37:17+00:00" + "time": "2024-07-03T04:49:50+00:00" }, { "name": "sebastian/diff", - "version": "5.1.1", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e" + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e", - "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0", - "symfony/process": "^6.4" + "phpunit/phpunit": "^11.0", + "symfony/process": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.1-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -10411,7 +10379,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1" + "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" }, "funding": [ { @@ -10419,27 +10387,27 @@ "type": "github" } ], - "time": "2024-03-02T07:15:17+00:00" + "time": "2024-07-03T04:53:05+00:00" }, { "name": "sebastian/environment", - "version": "6.1.0", + "version": "7.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "8074dbcd93529b357029f5cc5058fd3e43666984" + "reference": "855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984", - "reference": "8074dbcd93529b357029f5cc5058fd3e43666984", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5", + "reference": "855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "suggest": { "ext-posix": "*" @@ -10447,7 +10415,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "6.1-dev" + "dev-main": "7.2-dev" } }, "autoload": { @@ -10475,7 +10443,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0" + "source": "https://github.com/sebastianbergmann/environment/tree/7.2.0" }, "funding": [ { @@ -10483,34 +10451,34 @@ "type": "github" } ], - "time": "2024-03-23T08:47:14+00:00" + "time": "2024-07-03T04:54:44+00:00" }, { "name": "sebastian/exporter", - "version": "5.1.2", + "version": "6.3.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "955288482d97c19a372d3f31006ab3f37da47adf" + "reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf", - "reference": "955288482d97c19a372d3f31006ab3f37da47adf", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/3473f61172093b2da7de1fb5782e1f24cc036dc3", + "reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": ">=8.1", - "sebastian/recursion-context": "^5.0" + "php": ">=8.2", + "sebastian/recursion-context": "^6.0" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.1-dev" + "dev-main": "6.1-dev" } }, "autoload": { @@ -10553,7 +10521,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2" + "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.0" }, "funding": [ { @@ -10561,35 +10529,35 @@ "type": "github" } ], - "time": "2024-03-02T07:17:12+00:00" + "time": "2024-12-05T09:17:50+00:00" }, { "name": "sebastian/global-state", - "version": "6.0.2", + "version": "7.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9" + "reference": "3be331570a721f9a4b5917f4209773de17f747d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", - "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", + "reference": "3be331570a721f9a4b5917f4209773de17f747d7", "shasum": "" }, "require": { - "php": ">=8.1", - "sebastian/object-reflector": "^3.0", - "sebastian/recursion-context": "^5.0" + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -10615,7 +10583,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2" + "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" }, "funding": [ { @@ -10623,33 +10591,33 @@ "type": "github" } ], - "time": "2024-03-02T07:19:19+00:00" + "time": "2024-07-03T04:57:36+00:00" }, { "name": "sebastian/lines-of-code", - "version": "2.0.2", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0" + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0", - "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", "shasum": "" }, "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=8.1" + "nikic/php-parser": "^5.0", + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -10673,7 +10641,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1" }, "funding": [ { @@ -10681,34 +10649,34 @@ "type": "github" } ], - "time": "2023-12-21T08:38:20+00:00" + "time": "2024-07-03T04:58:38+00:00" }, { "name": "sebastian/object-enumerator", - "version": "5.0.0", + "version": "6.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906" + "reference": "f5b498e631a74204185071eb41f33f38d64608aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906", - "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", + "reference": "f5b498e631a74204185071eb41f33f38d64608aa", "shasum": "" }, "require": { - "php": ">=8.1", - "sebastian/object-reflector": "^3.0", - "sebastian/recursion-context": "^5.0" + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -10730,7 +10698,8 @@ "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0" + "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" }, "funding": [ { @@ -10738,32 +10707,32 @@ "type": "github" } ], - "time": "2023-02-03T07:08:32+00:00" + "time": "2024-07-03T05:00:13+00:00" }, { "name": "sebastian/object-reflector", - "version": "3.0.0", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "24ed13d98130f0e7122df55d06c5c4942a577957" + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957", - "reference": "24ed13d98130f0e7122df55d06c5c4942a577957", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -10785,7 +10754,8 @@ "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0" + "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" }, "funding": [ { @@ -10793,32 +10763,32 @@ "type": "github" } ], - "time": "2023-02-03T07:06:18+00:00" + "time": "2024-07-03T05:01:32+00:00" }, { "name": "sebastian/recursion-context", - "version": "5.0.0", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "05909fb5bc7df4c52992396d0116aed689f93712" + "reference": "694d156164372abbd149a4b85ccda2e4670c0e16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712", - "reference": "05909fb5bc7df4c52992396d0116aed689f93712", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/694d156164372abbd149a4b85ccda2e4670c0e16", + "reference": "694d156164372abbd149a4b85ccda2e4670c0e16", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -10848,7 +10818,8 @@ "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0" + "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.2" }, "funding": [ { @@ -10856,32 +10827,32 @@ "type": "github" } ], - "time": "2023-02-03T07:05:40+00:00" + "time": "2024-07-03T05:10:34+00:00" }, { "name": "sebastian/type", - "version": "4.0.0", + "version": "5.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "462699a16464c3944eefc02ebdd77882bd3925bf" + "reference": "a8a7e30534b0eb0c77cd9d07e82de1a114389f5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf", - "reference": "462699a16464c3944eefc02ebdd77882bd3925bf", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/a8a7e30534b0eb0c77cd9d07e82de1a114389f5e", + "reference": "a8a7e30534b0eb0c77cd9d07e82de1a114389f5e", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -10904,7 +10875,8 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/4.0.0" + "security": "https://github.com/sebastianbergmann/type/security/policy", + "source": "https://github.com/sebastianbergmann/type/tree/5.1.2" }, "funding": [ { @@ -10912,29 +10884,29 @@ "type": "github" } ], - "time": "2023-02-03T07:10:45+00:00" + "time": "2025-03-18T13:35:50+00:00" }, { "name": "sebastian/version", - "version": "4.0.1", + "version": "5.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17" + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17", - "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -10957,7 +10929,8 @@ "homepage": "https://github.com/sebastianbergmann/version", "support": { "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/4.0.1" + "security": "https://github.com/sebastianbergmann/version/security/policy", + "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" }, "funding": [ { @@ -10965,7 +10938,7 @@ "type": "github" } ], - "time": "2023-02-07T11:34:05+00:00" + "time": "2024-10-09T05:16:32+00:00" }, { "name": "shalvah/clara", @@ -11517,17 +11490,69 @@ "time": "2025-02-20T13:13:55+00:00" }, { - "name": "symfony/var-exporter", - "version": "v7.2.4", + "name": "staabm/side-effects-detector", + "version": "1.0.5", "source": { "type": "git", - "url": "https://github.com/symfony/var-exporter.git", - "reference": "4ede73aa7a73d81506002d2caadbbdad1ef5b69a" + "url": "https://github.com/staabm/side-effects-detector.git", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/4ede73aa7a73d81506002d2caadbbdad1ef5b69a", - "reference": "4ede73aa7a73d81506002d2caadbbdad1ef5b69a", + "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^1.12.6", + "phpunit/phpunit": "^9.6.21", + "symfony/var-dumper": "^5.4.43", + "tomasvotruba/type-coverage": "1.0.0", + "tomasvotruba/unused-public": "1.0.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "lib/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A static analysis tool to detect side effects in PHP code", + "keywords": [ + "static analysis" + ], + "support": { + "issues": "https://github.com/staabm/side-effects-detector/issues", + "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5" + }, + "funding": [ + { + "url": "https://github.com/staabm", + "type": "github" + } + ], + "time": "2024-10-20T05:08:20+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v7.2.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "c37b301818bd7288715d40de634f05781b686ace" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/c37b301818bd7288715d40de634f05781b686ace", + "reference": "c37b301818bd7288715d40de634f05781b686ace", "shasum": "" }, "require": { @@ -11574,7 +11599,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v7.2.4" + "source": "https://github.com/symfony/var-exporter/tree/v7.2.5" }, "funding": [ { @@ -11590,20 +11615,20 @@ "type": "tidelift" } ], - "time": "2025-02-13T10:27:23+00:00" + "time": "2025-03-13T12:21:46+00:00" }, { "name": "symfony/yaml", - "version": "v7.2.3", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "ac238f173df0c9c1120f862d0f599e17535a87ec" + "reference": "4c4b6f4cfcd7e52053f0c8bfad0f7f30fb924912" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/ac238f173df0c9c1120f862d0f599e17535a87ec", - "reference": "ac238f173df0c9c1120f862d0f599e17535a87ec", + "url": "https://api.github.com/repos/symfony/yaml/zipball/4c4b6f4cfcd7e52053f0c8bfad0f7f30fb924912", + "reference": "4c4b6f4cfcd7e52053f0c8bfad0f7f30fb924912", "shasum": "" }, "require": { @@ -11646,7 +11671,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.2.3" + "source": "https://github.com/symfony/yaml/tree/v7.2.5" }, "funding": [ { @@ -11662,7 +11687,7 @@ "type": "tidelift" } ], - "time": "2025-01-07T12:55:42+00:00" + "time": "2025-03-03T07:12:39+00:00" }, { "name": "theseer/tokenizer", diff --git a/config/scribe.php b/config/scribe.php index 4d44ddb..e2c3df7 100644 --- a/config/scribe.php +++ b/config/scribe.php @@ -1,30 +1,34 @@ for the generated documentation. If this is empty, Scribe will infer it from config('app.name'). + // The HTML for the generated documentation. 'title' => 'API Documentation', // A short description of your API. Will be included in the docs webpage, Postman collection and OpenAPI spec. 'description' => 'VitoDeploy\'s API documentation.', - // The base URL displayed in the docs. If this is empty, Scribe will use the value of config('app.url') at generation time. + // The base URL displayed in the docs. // If you're using `laravel` type, you can set this to a dynamic string, like '{{ config("app.tenant_url") }}' to get a dynamic base URL. - 'base_url' => 'https://your-vito-url', + 'base_url' => config('app.url'), + // Routes to include in the docs 'routes' => [ [ - // Routes that match these conditions will be included in the docs 'match' => [ // Match only routes whose paths match this pattern (use * as a wildcard to match any characters). Example: 'users/*'. 'prefixes' => ['api/*'], // Match only routes whose domains match this pattern (use * as a wildcard to match any characters). Example: 'api.*'. 'domains' => ['*'], - - // [Dingo router only] Match only routes registered under this version. Wildcards are NOT supported. - 'versions' => ['v1'], ], // Include these routes even if they did not match the rules above. @@ -43,9 +47,8 @@ // The type of documentation output to generate. // - "static" will generate a static HTMl page in the /public/docs folder, // - "laravel" will generate the documentation as a Blade view, so you can add routing and authentication. - // - "external_static" and "external_laravel" do the same as above, but generate a basic template, - // passing the OpenAPI spec as a URL, allowing you to easily use the docs with an external generator - 'type' => 'static', + // - "external_static" and "external_laravel" do the same as above, but pass the OpenAPI spec as a URL to an external UI template + 'type' => 'laravel', // See https://scribe.knuckles.wtf/laravel/reference/config#theme for supported options 'theme' => 'default', @@ -54,14 +57,12 @@ // HTML documentation, assets and Postman collection will be generated to this folder. // Source Markdown will still be in resources/docs. 'output_path' => 'public/api-docs', - 'url' => '/api-docs/index.html', ], 'laravel' => [ - // Whether to automatically create a docs endpoint for you to view your generated docs. - // If this is false, you can still set up routing manually. - 'add_routes' => false, + // Whether to automatically create a docs route for you to view your generated docs. You can still set up routing manually. + 'add_routes' => true, // URL path to use for the docs endpoint (if `add_routes` is true). // By default, `/docs` opens the HTML page, `/docs.postman` opens the Postman collection, and `/docs.openapi` the OpenAPI spec. @@ -85,8 +86,7 @@ // Don't forget to enable CORS headers for your endpoints. 'enabled' => true, - // The base URL for the API tester to use (for example, you can set this to your staging URL). - // Leave as null to use the current app URL when generating (config("app.url")). + // The base URL to use in the API tester. Leave as null to be the same as the displayed URL (`scribe.base_url`). 'base_url' => null, // [Laravel Sanctum] Fetch a CSRF token before each request, and add it as an X-XSRF-TOKEN header. @@ -99,46 +99,44 @@ // How is your API authenticated? This information will be used in the displayed docs, generated examples and response calls. 'auth' => [ // Set this to true if ANY endpoints in your API use authentication. - 'enabled' => true, + 'enabled' => false, // Set this to true if your API should be authenticated by default. If so, you must also set `enabled` (above) to true. // You can then use @unauthenticated or @authenticated on individual endpoints to change their status from the default. - 'default' => true, + 'default' => false, // Where is the auth value meant to be sent in a request? - // Options: query, body, basic, bearer, header (for custom header) - 'in' => 'bearer', + 'in' => AuthIn::BEARER->value, - // The name of the auth parameter (eg token, key, apiKey) or header (eg Authorization, Api-Key). + // The name of the auth parameter (e.g. token, key, apiKey) or header (e.g. Authorization, Api-Key). 'name' => 'key', // The value of the parameter to be used by Scribe to authenticate response calls. // This will NOT be included in the generated documentation. If empty, Scribe will use a random value. - 'use_value' => '', + 'use_value' => env('SCRIBE_AUTH_KEY'), // Placeholder your users will see for the auth parameter in the example requests. // Set this to null if you want Scribe to use a random value as placeholder instead. - 'placeholder' => env('SCRIBE_AUTH_KEY', 'YOUR_API_KEY'), + 'placeholder' => '{YOUR_AUTH_KEY}', // Any extra authentication-related info for your users. Markdown and HTML are supported. - 'extra_info' => 'You can retrieve your token by visiting <a href="/settings/api-keys" target="_blank">here</a>', + 'extra_info' => 'You can retrieve your token by visiting your dashboard and clicking <b>Generate API token</b>.', ], // Text to place in the "Introduction" section, right after the `description`. Markdown and HTML are supported. 'intro_text' => <<<'INTRO' -This documentation aims to provide all the information you need to work with our API. + This documentation aims to provide all the information you need to work with our API. -<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile). -You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside> -INTRO - , + <aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile). + You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside> + INTRO, // Example requests for each endpoint will be shown in each of these languages. // Supported options are: bash, javascript, php, python // To add a language of your own, see https://scribe.knuckles.wtf/laravel/advanced/example-requests + // Note: does not work for `external` docs types 'example_languages' => [ 'bash', - 'php', 'javascript', ], @@ -164,6 +162,10 @@ 'overrides' => [ // 'info.version' => '2.0.0', ], + + // Additional generators to use when generating the OpenAPI spec. + // Should extend `Knuckles\Scribe\Writing\OpenApiSpecGenerators\OpenApiGenerator`. + 'generators' => [], ], 'groups' => [ @@ -173,6 +175,7 @@ // By default, Scribe will sort groups alphabetically, and endpoints in the order their routes are defined. // You can override this by listing the groups, subgroups and endpoints here in the order you want them. // See https://scribe.knuckles.wtf/blog/laravel-v4#easier-sorting and https://scribe.knuckles.wtf/laravel/reference/config#order for details + // Note: does not work for `external` docs types 'order' => [], ], @@ -190,11 +193,12 @@ // Available tokens are `{date:<format>}` and `{git:<format>}`. // The format you pass to `date` will be passed to PHP's `date()` function. // The format you pass to `git` can be either "short" or "long". + // Note: does not work for `external` docs types 'last_updated' => 'Last updated: {date:F j, Y}', 'examples' => [ - // Set this to any number (eg. 1234) to generate the same example values for parameters on each run, - 'faker_seed' => null, + // Set this to any number to generate the same example values for parameters on each run, + 'faker_seed' => 1234, // With API resources and transformers, Scribe tries to generate example models to use in your API responses. // By default, Scribe will try the model's factory, and if that fails, try fetching the first from the database. @@ -203,60 +207,40 @@ ], // The strategies Scribe will use to extract information about your routes at each stage. - // If you create or install a custom strategy, add it here. + // Use configureStrategy() to specify settings for a strategy in the list. + // Use removeStrategies() to remove an included strategy. 'strategies' => [ 'metadata' => [ - Strategies\Metadata\GetFromDocBlocks::class, - Strategies\Metadata\GetFromMetadataAttributes::class, - ], - 'urlParameters' => [ - Strategies\UrlParameters\GetFromLaravelAPI::class, - Strategies\UrlParameters\GetFromUrlParamAttribute::class, - Strategies\UrlParameters\GetFromUrlParamTag::class, - ], - 'queryParameters' => [ - Strategies\QueryParameters\GetFromFormRequest::class, - Strategies\QueryParameters\GetFromInlineValidator::class, - Strategies\QueryParameters\GetFromQueryParamAttribute::class, - Strategies\QueryParameters\GetFromQueryParamTag::class, + ...Defaults::METADATA_STRATEGIES, ], 'headers' => [ - Strategies\Headers\GetFromHeaderAttribute::class, - Strategies\Headers\GetFromHeaderTag::class, - [ - 'override', - [ - 'Content-Type' => 'application/json', - 'Accept' => 'application/json', - ], - ], + ...Defaults::HEADERS_STRATEGIES, + Strategies\StaticData::withSettings(data: [ + 'Content-Type' => 'application/json', + 'Accept' => 'application/json', + ]), + ], + 'urlParameters' => [ + ...Defaults::URL_PARAMETERS_STRATEGIES, + ], + 'queryParameters' => [ + ...Defaults::QUERY_PARAMETERS_STRATEGIES, ], 'bodyParameters' => [ - Strategies\BodyParameters\GetFromFormRequest::class, - Strategies\BodyParameters\GetFromInlineValidator::class, - Strategies\BodyParameters\GetFromBodyParamAttribute::class, - Strategies\BodyParameters\GetFromBodyParamTag::class, - ], - 'responses' => [ - Strategies\Responses\UseResponseAttributes::class, - Strategies\Responses\UseTransformerTags::class, - Strategies\Responses\UseApiResourceTags::class, - Strategies\Responses\UseResponseTag::class, - Strategies\Responses\UseResponseFileTag::class, - [ - Strategies\Responses\ResponseCalls::class, - [ - 'only' => ['GET *'], - // Disable debug mode when generating response calls to avoid error stack traces in responses - 'config' => [ - 'app.debug' => false, - ], - ], - ], + ...Defaults::BODY_PARAMETERS_STRATEGIES, ], + 'responses' => configureStrategy( + Defaults::RESPONSES_STRATEGIES, + Strategies\Responses\ResponseCalls::withSettings( + only: ['GET *'], + // Recommended: disable debug mode in response calls to avoid error stack traces in responses + config: [ + 'app.debug' => false, + ] + ) + ), 'responseFields' => [ - Strategies\ResponseFields\GetFromResponseFieldAttribute::class, - Strategies\ResponseFields\GetFromResponseFieldTag::class, + ...Defaults::RESPONSE_FIELDS_STRATEGIES, ], ], @@ -269,6 +253,4 @@ // If you are using a custom serializer with league/fractal, you can specify it here. 'serializer' => null, ], - - 'routeMatcher' => \Knuckles\Scribe\Matching\RouteMatcher::class, ]; diff --git a/database/factories/CronJobFactory.php b/database/factories/CronJobFactory.php index ce5975a..c4693c2 100644 --- a/database/factories/CronJobFactory.php +++ b/database/factories/CronJobFactory.php @@ -16,6 +16,7 @@ class CronJobFactory extends Factory public function definition(): array { return [ + 'server_id' => 1, 'command' => 'ls -la', 'user' => 'root', 'frequency' => '* * * * *', diff --git a/database/factories/DatabaseFactory.php b/database/factories/DatabaseFactory.php index 48cec7c..491e0e1 100755 --- a/database/factories/DatabaseFactory.php +++ b/database/factories/DatabaseFactory.php @@ -16,6 +16,7 @@ class DatabaseFactory extends Factory public function definition(): array { return [ + 'server_id' => 1, 'name' => $this->faker->userName, 'status' => DatabaseStatus::READY, ]; diff --git a/database/factories/DatabaseUserFactory.php b/database/factories/DatabaseUserFactory.php index fc142c5..d2f5438 100755 --- a/database/factories/DatabaseUserFactory.php +++ b/database/factories/DatabaseUserFactory.php @@ -15,6 +15,7 @@ class DatabaseUserFactory extends Factory public function definition(): array { return [ + 'server_id' => 1, 'username' => $this->faker->userName, 'password' => 'password', 'databases' => [], diff --git a/database/factories/FirewallRuleFactory.php b/database/factories/FirewallRuleFactory.php index 5cd904f..917a7a6 100644 --- a/database/factories/FirewallRuleFactory.php +++ b/database/factories/FirewallRuleFactory.php @@ -15,6 +15,7 @@ class FirewallRuleFactory extends Factory public function definition(): array { return [ + 'server_id' => 1, 'name' => $this->faker->word, 'type' => 'allow', 'protocol' => 'tcp', diff --git a/database/factories/RedirectFactory.php b/database/factories/RedirectFactory.php index 9381b8c..490aa70 100644 --- a/database/factories/RedirectFactory.php +++ b/database/factories/RedirectFactory.php @@ -19,6 +19,7 @@ class RedirectFactory extends Factory public function definition(): array { return [ + 'site_id' => 1, 'from' => $this->faker->word, 'to' => $this->faker->url, 'mode' => $this->faker->randomElement([301, 302, 307, 308]), diff --git a/database/factories/ServerFactory.php b/database/factories/ServerFactory.php index acdb233..06d2a48 100755 --- a/database/factories/ServerFactory.php +++ b/database/factories/ServerFactory.php @@ -19,6 +19,8 @@ class ServerFactory extends Factory public function definition(): array { return [ + 'project_id' => 1, + 'user_id' => 1, 'name' => $this->faker->name(), 'ssh_user' => 'vito', 'ip' => $this->faker->ipv4(), diff --git a/database/factories/ServiceFactory.php b/database/factories/ServiceFactory.php index 8a0ea2c..9a922e7 100644 --- a/database/factories/ServiceFactory.php +++ b/database/factories/ServiceFactory.php @@ -2,6 +2,7 @@ namespace Database\Factories; +use App\Enums\ServiceStatus; use App\Models\Service; use Illuminate\Database\Eloquent\Factories\Factory; @@ -15,6 +16,10 @@ class ServiceFactory extends Factory public function definition(): array { return [ + 'server_id' => 1, + 'type' => 'webserver', + 'name' => 'nginx', + 'status' => ServiceStatus::READY, ]; } } diff --git a/database/factories/SiteFactory.php b/database/factories/SiteFactory.php index c226649..dd9e9c5 100644 --- a/database/factories/SiteFactory.php +++ b/database/factories/SiteFactory.php @@ -16,6 +16,7 @@ class SiteFactory extends Factory public function definition(): array { return [ + 'server_id' => 1, 'type' => SiteType::LARAVEL, 'domain' => 'test.com', 'web_directory' => '/', diff --git a/database/factories/SshKeyFactory.php b/database/factories/SshKeyFactory.php index 5d2c4c8..c3af514 100644 --- a/database/factories/SshKeyFactory.php +++ b/database/factories/SshKeyFactory.php @@ -15,6 +15,7 @@ class SshKeyFactory extends Factory public function definition(): array { return [ + 'user_id' => 1, 'name' => $this->faker->name(), 'public_key' => 'public-key-content', ]; diff --git a/public/api-docs/collection.json b/public/api-docs/collection.json deleted file mode 100644 index c04bf79..0000000 --- a/public/api-docs/collection.json +++ /dev/null @@ -1,3500 +0,0 @@ -{ - "variable": [ - { - "id": "baseUrl", - "key": "baseUrl", - "type": "string", - "name": "string", - "value": "https:\/\/your-vito-url" - } - ], - "info": { - "name": "API Documentation", - "_postman_id": "bda1e04e-cc4f-4eae-9beb-dba7c9287038", - "description": "VitoDeploy's API documentation.", - "schema": "https:\/\/schema.getpostman.com\/json\/collection\/v2.1.0\/collection.json" - }, - "item": [ - { - "name": "cron-jobs", - "description": "", - "item": [ - { - "name": "list", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/cron-jobs", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/cron-jobs", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Get all cron jobs." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"data\":[{\"id\":null,\"server_id\":null,\"command\":\"ls -la\",\"user\":\"root\",\"frequency\":\"* * * * *\",\"status\":\"ready\",\"created_at\":null,\"updated_at\":null},{\"id\":null,\"server_id\":null,\"command\":\"ls -la\",\"user\":\"root\",\"frequency\":\"* * * * *\",\"status\":\"ready\",\"created_at\":null,\"updated_at\":null}],\"links\":{\"first\":\"\\\/?page=1\",\"last\":\"\\\/?page=1\",\"prev\":null,\"next\":null},\"meta\":{\"current_page\":1,\"from\":1,\"last_page\":1,\"links\":[{\"url\":null,\"label\":\"« Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next »\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}", - "name": "" - } - ] - }, - { - "name": "create", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/cron-jobs", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/cron-jobs", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"command\":\"quia\",\"user\":\"root\",\"frequency\":\"* * * * *\"}" - }, - "description": "Create a new cron job." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":null,\"server_id\":null,\"command\":\"ls -la\",\"user\":\"root\",\"frequency\":\"* * * * *\",\"status\":\"ready\",\"created_at\":null,\"updated_at\":null}", - "name": "" - } - ] - }, - { - "name": "show", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/cron-jobs\/:cronJob_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/cron-jobs\/:cronJob_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "cronJob_id", - "key": "cronJob_id", - "value": "6", - "description": "The ID of the cronJob." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Get a cron job by ID." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":null,\"server_id\":null,\"command\":\"ls -la\",\"user\":\"root\",\"frequency\":\"* * * * *\",\"status\":\"ready\",\"created_at\":null,\"updated_at\":null}", - "name": "" - } - ] - }, - { - "name": "delete", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/cron-jobs\/:cronJob_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/cron-jobs\/:cronJob_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "cronJob_id", - "key": "cronJob_id", - "value": "13", - "description": "The ID of the cronJob." - } - ] - }, - "method": "DELETE", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Delete cron job." - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - } - ] - }, - { - "name": "database-users", - "description": "", - "item": [ - { - "name": "list", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/database-users", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/database-users", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Get all database users." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"data\":[{\"id\":null,\"server_id\":null,\"username\":\"letha64\",\"databases\":[],\"host\":\"%\",\"status\":null,\"created_at\":null,\"updated_at\":null},{\"id\":null,\"server_id\":null,\"username\":\"hagenes.lurline\",\"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}}", - "name": "" - } - ] - }, - { - "name": "create", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/database-users", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/database-users", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"username\":\"qui\",\"password\":\"xYv*3,#HQ=5<w!\",\"host\":\"%\"}" - }, - "description": "Create a new database user." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":null,\"server_id\":null,\"username\":\"marcelle95\",\"databases\":[],\"host\":\"%\",\"status\":null,\"created_at\":null,\"updated_at\":null}", - "name": "" - } - ] - }, - { - "name": "show", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/database-users\/:databaseUser_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/database-users\/:databaseUser_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "databaseUser_id", - "key": "databaseUser_id", - "value": "1", - "description": "The ID of the databaseUser." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Get a database user by ID." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":null,\"server_id\":null,\"username\":\"brandi53\",\"databases\":[],\"host\":\"%\",\"status\":null,\"created_at\":null,\"updated_at\":null}", - "name": "" - } - ] - }, - { - "name": "link", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/database-users\/:databaseUser_id\/link", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/database-users\/:databaseUser_id\/link", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "databaseUser_id", - "key": "databaseUser_id", - "value": "4", - "description": "The ID of the databaseUser." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"databases\":\"maiores\"}" - }, - "description": "Link to databases" - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":null,\"server_id\":null,\"username\":\"kschmidt\",\"databases\":[],\"host\":\"%\",\"status\":null,\"created_at\":null,\"updated_at\":null}", - "name": "" - } - ] - }, - { - "name": "delete", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/database-users\/:databaseUser_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/database-users\/:databaseUser_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "databaseUser_id", - "key": "databaseUser_id", - "value": "20", - "description": "The ID of the databaseUser." - } - ] - }, - "method": "DELETE", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Delete database user." - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - } - ] - }, - { - "name": "databases", - "description": "", - "item": [ - { - "name": "list", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/databases", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/databases", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Get all databases." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"data\":[{\"id\":null,\"server_id\":null,\"name\":\"leffler.esther\",\"status\":\"ready\",\"created_at\":null,\"updated_at\":null},{\"id\":null,\"server_id\":null,\"name\":\"rhoda.rutherford\",\"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}}", - "name": "" - } - ] - }, - { - "name": "create", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/databases", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/databases", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"name\":\"quisquam\",\"charset\":\"omnis\",\"collation\":\"at\"}" - }, - "description": "Create a new database." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":null,\"server_id\":null,\"name\":\"csawayn\",\"status\":\"ready\",\"created_at\":null,\"updated_at\":null}", - "name": "" - } - ] - }, - { - "name": "show", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/databases\/:id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/databases\/:id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "id", - "key": "id", - "value": "8", - "description": "The ID of the database." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Get a database by ID." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":null,\"server_id\":null,\"name\":\"sandrine43\",\"status\":\"ready\",\"created_at\":null,\"updated_at\":null}", - "name": "" - } - ] - }, - { - "name": "delete", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/databases\/:database_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/databases\/:database_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "database_id", - "key": "database_id", - "value": "8", - "description": "The ID of the database." - } - ] - }, - "method": "DELETE", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Delete database." - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - } - ] - }, - { - "name": "firewall-rules", - "description": "", - "item": [ - { - "name": "list", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/firewall-rules", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/firewall-rules", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Get all firewall rules." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"data\":[{\"id\":null,\"name\":\"ut\",\"server_id\":null,\"type\":\"allow\",\"protocol\":\"tcp\",\"port\":35499,\"source\":\"177.130.54.250\",\"mask\":24,\"note\":\"test\",\"status\":null,\"created_at\":null,\"updated_at\":null},{\"id\":null,\"name\":\"totam\",\"server_id\":null,\"type\":\"allow\",\"protocol\":\"tcp\",\"port\":29448,\"source\":\"181.194.26.13\",\"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}}", - "name": "" - } - ] - }, - { - "name": "create", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/firewall-rules", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/firewall-rules", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"name\":\"sapiente\",\"type\":\"allow\",\"protocol\":\"tcp\",\"port\":\"et\",\"source\":\"doloribus\",\"mask\":\"0\"}" - }, - "description": "Create a new firewall rule." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":null,\"name\":\"omnis\",\"server_id\":null,\"type\":\"allow\",\"protocol\":\"tcp\",\"port\":54634,\"source\":\"246.242.9.65\",\"mask\":24,\"note\":\"test\",\"status\":null,\"created_at\":null,\"updated_at\":null}", - "name": "" - } - ] - }, - { - "name": "edit", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/firewall-rules\/:firewallRule_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/firewall-rules\/:firewallRule_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "firewallRule_id", - "key": "firewallRule_id", - "value": "85", - "description": "The ID of the firewallRule." - } - ] - }, - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"name\":\"et\",\"type\":\"allow\",\"protocol\":\"tcp\",\"port\":\"aut\",\"source\":\"et\",\"mask\":\"0\"}" - }, - "description": "Update an existing firewall rule." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":null,\"name\":\"consequatur\",\"server_id\":null,\"type\":\"allow\",\"protocol\":\"tcp\",\"port\":879,\"source\":\"206.106.27.116\",\"mask\":24,\"note\":\"test\",\"status\":null,\"created_at\":null,\"updated_at\":null}", - "name": "" - } - ] - }, - { - "name": "show", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/firewall-rules\/:firewallRule_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/firewall-rules\/:firewallRule_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "firewallRule_id", - "key": "firewallRule_id", - "value": "85", - "description": "The ID of the firewallRule." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Get a firewall rule by ID." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":null,\"name\":\"dolores\",\"server_id\":null,\"type\":\"allow\",\"protocol\":\"tcp\",\"port\":4691,\"source\":\"147.108.28.144\",\"mask\":24,\"note\":\"test\",\"status\":null,\"created_at\":null,\"updated_at\":null}", - "name": "" - } - ] - }, - { - "name": "delete", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/firewall-rules\/:firewallRule_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/firewall-rules\/:firewallRule_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "firewallRule_id", - "key": "firewallRule_id", - "value": "85", - "description": "The ID of the firewallRule." - } - ] - }, - "method": "DELETE", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Delete firewall rule." - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - } - ] - }, - { - "name": "general", - "description": "", - "item": [ - { - "name": "health-check", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/health", - "query": [], - "raw": "{{baseUrl}}\/api\/health" - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "", - "auth": { - "type": "noauth" - } - }, - "response": [ - { - "header": [ - { - "key": "cache-control", - "value": "no-cache, private" - }, - { - "key": "content-type", - "value": "application\/json" - }, - { - "key": "x-ratelimit-limit", - "value": "60" - }, - { - "key": "x-ratelimit-remaining", - "value": "59" - }, - { - "key": "access-control-allow-origin", - "value": "*" - } - ], - "code": 200, - "body": "{\"success\":true,\"version\":\"2.4.0\"}", - "name": "" - } - ] - } - ] - }, - { - "name": "projects", - "description": "", - "item": [ - { - "name": "list", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects", - "query": [], - "raw": "{{baseUrl}}\/api\/projects" - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Get all projects." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"data\":[{\"id\":3,\"name\":\"Mr. Drake Nader\",\"created_at\":\"2025-04-05T17:48:03.000000Z\",\"updated_at\":\"2025-04-05T17:48:03.000000Z\"},{\"id\":4,\"name\":\"Wilhelmine Jacobson\",\"created_at\":\"2025-04-05T17:48:03.000000Z\",\"updated_at\":\"2025-04-05T17:48:03.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}}", - "name": "" - } - ] - }, - { - "name": "create", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects", - "query": [], - "raw": "{{baseUrl}}\/api\/projects" - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"name\":\"dignissimos\"}" - }, - "description": "Create a new project." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":3,\"name\":\"Pattie Cole\",\"created_at\":\"2025-04-05T17:48:03.000000Z\",\"updated_at\":\"2025-04-05T17:48:03.000000Z\"}", - "name": "" - } - ] - }, - { - "name": "show", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:id", - "variable": [ - { - "id": "id", - "key": "id", - "value": "1", - "description": "The ID of the project." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Get a project by ID." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":3,\"name\":\"Mr. Elias Bauch\",\"created_at\":\"2025-04-05T17:48:03.000000Z\",\"updated_at\":\"2025-04-05T17:48:03.000000Z\"}", - "name": "" - } - ] - }, - { - "name": "update", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:id", - "variable": [ - { - "id": "id", - "key": "id", - "value": "1", - "description": "The ID of the project." - } - ] - }, - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"name\":\"sunt\"}" - }, - "description": "Update project." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":3,\"name\":\"Elfrieda Jakubowski\",\"created_at\":\"2025-04-05T17:48:03.000000Z\",\"updated_at\":\"2025-04-05T17:48:03.000000Z\"}", - "name": "" - } - ] - }, - { - "name": "delete", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - } - ] - }, - "method": "DELETE", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Delete project." - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - } - ] - }, - { - "name": "redirects", - "description": "", - "item": [ - { - "name": "index", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/redirects", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/redirects", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "site_id", - "key": "site_id", - "value": "44", - "description": "The ID of the site." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Get all redirects." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"data\":[{\"id\":null,\"site_id\":null,\"mode\":307,\"from\":\"ipsum\",\"to\":\"http:\\\/\\\/fritsch.biz\\\/\",\"status\":\"ready\",\"created_at\":null,\"updated_at\":null},{\"id\":null,\"site_id\":null,\"mode\":302,\"from\":\"culpa\",\"to\":\"http:\\\/\\\/www.huels.net\\\/aut-ut-ut-porro-non-rerum-voluptatum.html\",\"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}}", - "name": "" - } - ] - }, - { - "name": "create", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/redirects", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/redirects", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "site_id", - "key": "site_id", - "value": "44", - "description": "The ID of the site." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"from\":\"odit\",\"to\":\"incidunt\",\"mode\":301}" - }, - "description": "Create a new redirect." - }, - "response": [ - { - "header": [], - "code": 200, - "body": null, - "name": "" - } - ] - }, - { - "name": "delete", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/redirects\/:redirect_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/redirects\/:redirect_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "site_id", - "key": "site_id", - "value": "44", - "description": "The ID of the site." - }, - { - "id": "redirect_id", - "key": "redirect_id", - "value": "9", - "description": "The ID of the redirect." - } - ] - }, - "method": "DELETE", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Delete a redirect." - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - } - ] - }, - { - "name": "server-providers", - "description": "", - "item": [ - { - "name": "list", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/server-providers", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/server-providers", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "" - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"data\":[{\"id\":3,\"project_id\":null,\"global\":true,\"name\":\"aut\",\"provider\":\"hetzner\",\"created_at\":\"2025-04-05T17:48:03.000000Z\",\"updated_at\":\"2025-04-05T17:48:03.000000Z\"},{\"id\":4,\"project_id\":null,\"global\":true,\"name\":\"qui\",\"provider\":\"aws\",\"created_at\":\"2025-04-05T17:48:03.000000Z\",\"updated_at\":\"2025-04-05T17:48:03.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}}", - "name": "" - } - ] - }, - { - "name": "create", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/server-providers", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/server-providers", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"provider\":\"corrupti\",\"name\":\"est\",\"token\":\"rerum\",\"key\":\"ut\",\"secret\":\"sed\"}" - }, - "description": "" - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":3,\"project_id\":null,\"global\":true,\"name\":\"voluptas\",\"provider\":\"vultr\",\"created_at\":\"2025-04-05T17:48:03.000000Z\",\"updated_at\":\"2025-04-05T17:48:03.000000Z\"}", - "name": "" - } - ] - }, - { - "name": "show", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/server-providers\/:serverProvider_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/server-providers\/:serverProvider_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "serverProvider_id", - "key": "serverProvider_id", - "value": "1", - "description": "The ID of the serverProvider." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "" - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":3,\"project_id\":null,\"global\":true,\"name\":\"et\",\"provider\":\"digitalocean\",\"created_at\":\"2025-04-05T17:48:03.000000Z\",\"updated_at\":\"2025-04-05T17:48:03.000000Z\"}", - "name": "" - } - ] - }, - { - "name": "update", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/server-providers\/:serverProvider_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/server-providers\/:serverProvider_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "serverProvider_id", - "key": "serverProvider_id", - "value": "1", - "description": "The ID of the serverProvider." - } - ] - }, - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"name\":\"earum\",\"global\":false}" - }, - "description": "" - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":3,\"project_id\":null,\"global\":true,\"name\":\"architecto\",\"provider\":\"digitalocean\",\"created_at\":\"2025-04-05T17:48:03.000000Z\",\"updated_at\":\"2025-04-05T17:48:03.000000Z\"}", - "name": "" - } - ] - }, - { - "name": "delete", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/server-providers\/:serverProvider_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/server-providers\/:serverProvider_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "serverProvider_id", - "key": "serverProvider_id", - "value": "1", - "description": "The ID of the serverProvider." - } - ] - }, - "method": "DELETE", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "" - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - } - ] - }, - { - "name": "servers", - "description": "", - "item": [ - { - "name": "list", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Get all servers in a project." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"data\":[{\"id\":null,\"project_id\":null,\"user_id\":null,\"provider_id\":null,\"name\":\"Miss Bonita Vandervort IV\",\"ssh_user\":\"vito\",\"ip\":\"120.222.195.212\",\"local_ip\":\"138.119.37.248\",\"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\":\"Dr. Shanie Batz IV\",\"ssh_user\":\"vito\",\"ip\":\"241.88.138.163\",\"local_ip\":\"138.226.232.93\",\"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}}", - "name": "" - } - ] - }, - { - "name": "create", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"provider\":\"fugiat\",\"server_provider\":\"digitalocean\",\"region\":\"itaque\",\"plan\":\"voluptatum\",\"ip\":\"ut\",\"port\":\"reiciendis\",\"name\":\"et\",\"os\":\"vel\",\"webserver\":\"nginx\",\"database\":\"mysql80\",\"php\":\"7.2\"}" - }, - "description": "Create a new server." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":null,\"project_id\":null,\"user_id\":null,\"provider_id\":null,\"name\":\"Jeromy Mann\",\"ssh_user\":\"vito\",\"ip\":\"128.70.209.89\",\"local_ip\":\"150.217.250.187\",\"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}", - "name": "" - } - ] - }, - { - "name": "show", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "id", - "key": "id", - "value": "29", - "description": "The ID of the server." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Get a server by ID." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":null,\"project_id\":null,\"user_id\":null,\"provider_id\":null,\"name\":\"Miss Maya Schaden I\",\"ssh_user\":\"vito\",\"ip\":\"44.57.83.39\",\"local_ip\":\"46.22.92.58\",\"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}", - "name": "" - } - ] - }, - { - "name": "reboot", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/reboot", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/reboot", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Reboot a server." - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - }, - { - "name": "upgrade", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/upgrade", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/upgrade", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Upgrade server." - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - }, - { - "name": "delete", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - } - ] - }, - "method": "DELETE", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Delete server." - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - } - ] - }, - { - "name": "services", - "description": "", - "item": [ - { - "name": "list", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/services", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/services", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Get all services." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"data\":[{\"id\":null,\"server_id\":null,\"type\":null,\"type_data\":null,\"name\":null,\"version\":null,\"unit\":null,\"status\":null,\"is_default\":null,\"created_at\":null,\"updated_at\":null},{\"id\":null,\"server_id\":null,\"type\":null,\"type_data\":null,\"name\":null,\"version\":null,\"unit\":null,\"status\":null,\"is_default\":null,\"created_at\":null,\"updated_at\":null}],\"links\":{\"first\":\"\\\/?page=1\",\"last\":\"\\\/?page=1\",\"prev\":null,\"next\":null},\"meta\":{\"current_page\":1,\"from\":1,\"last_page\":1,\"links\":[{\"url\":null,\"label\":\"« Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next »\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}", - "name": "" - } - ] - }, - { - "name": "show", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/services\/:id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/services\/:id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "id", - "key": "id", - "value": "169", - "description": "The ID of the service." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Get a service by ID." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":null,\"server_id\":null,\"type\":null,\"type_data\":null,\"name\":null,\"version\":null,\"unit\":null,\"status\":null,\"is_default\":null,\"created_at\":null,\"updated_at\":null}", - "name": "" - } - ] - }, - { - "name": "start", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/services\/:service_id\/start", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/services\/:service_id\/start", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "service_id", - "key": "service_id", - "value": "169", - "description": "The ID of the service." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Start service." - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - }, - { - "name": "stop", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/services\/:service_id\/stop", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/services\/:service_id\/stop", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "service_id", - "key": "service_id", - "value": "169", - "description": "The ID of the service." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Stop service." - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - }, - { - "name": "restart", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/services\/:service_id\/restart", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/services\/:service_id\/restart", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "service_id", - "key": "service_id", - "value": "169", - "description": "The ID of the service." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Restart service." - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - }, - { - "name": "enable", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/services\/:service_id\/enable", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/services\/:service_id\/enable", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "service_id", - "key": "service_id", - "value": "169", - "description": "The ID of the service." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Enable service." - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - }, - { - "name": "disable", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/services\/:service_id\/disable", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/services\/:service_id\/disable", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "service_id", - "key": "service_id", - "value": "169", - "description": "The ID of the service." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Disable service." - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - }, - { - "name": "delete", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/services\/:service_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/services\/:service_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "service_id", - "key": "service_id", - "value": "169", - "description": "The ID of the service." - } - ] - }, - "method": "DELETE", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Delete service." - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - } - ] - }, - { - "name": "sites", - "description": "", - "item": [ - { - "name": "list", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/sites", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/sites", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Get all sites." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"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}}", - "name": "" - } - ] - }, - { - "name": "create", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/sites", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/sites", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"type\":\"php-blank\",\"domain\":\"impedit\",\"aliases\":[\"cum\"],\"php_version\":\"7.4\",\"web_directory\":\"public\",\"source_control\":\"non\",\"repository\":\"organization\\\/repository\",\"branch\":\"main\",\"composer\":true,\"version\":\"5.2.1\",\"user\":\"voluptate\",\"method\":\"ip-hash\"}" - }, - "description": "Create a new site." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"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}", - "name": "" - } - ] - }, - { - "name": "show", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/sites\/:id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/sites\/:id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "id", - "key": "id", - "value": "44", - "description": "The ID of the site." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Get a site by ID." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"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}", - "name": "" - } - ] - }, - { - "name": "delete", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "site_id", - "key": "site_id", - "value": "44", - "description": "The ID of the site." - } - ] - }, - "method": "DELETE", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Delete site." - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - }, - { - "name": "load-balancer", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/load-balancer", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/load-balancer", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "site_id", - "key": "site_id", - "value": "44", - "description": "The ID of the site." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"method\":\"round-robin\",\"servers\":[\"omnis\"]}" - }, - "description": "Update load balancer." - }, - "response": [ - { - "header": [], - "code": 200, - "body": null, - "name": "" - } - ] - }, - { - "name": "aliases", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/aliases", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/aliases", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "site_id", - "key": "site_id", - "value": "44", - "description": "The ID of the site." - } - ] - }, - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"aliases\":[\"doloremque\"]}" - }, - "description": "Update aliases." - }, - "response": [ - { - "header": [], - "code": 200, - "body": null, - "name": "" - } - ] - }, - { - "name": "deploy", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/deploy", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/deploy", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "site_id", - "key": "site_id", - "value": "44", - "description": "The ID of the site." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Run site deployment script" - }, - "response": [ - { - "header": [], - "code": 200, - "body": null, - "name": "" - } - ] - }, - { - "name": "deployment-script", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/deployment-script", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/deployment-script", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "site_id", - "key": "site_id", - "value": "44", - "description": "The ID of the site." - } - ] - }, - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"script\":\"voluptatem\"}" - }, - "description": "Update site deployment script" - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - }, - { - "name": "deployment-script", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/deployment-script", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/deployment-script", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "site_id", - "key": "site_id", - "value": "44", - "description": "The ID of the site." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Get site deployment script content" - }, - "response": [ - { - "header": [], - "code": 200, - "body": null, - "name": "" - } - ] - }, - { - "name": "env", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/env", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/env", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "site_id", - "key": "site_id", - "value": "44", - "description": "The ID of the site." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Get site .env file content" - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"data\":{\"env\":\"APP_NAME=Laravel\\\\nAPP_ENV=production\"}}", - "name": "" - } - ] - }, - { - "name": "env", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/env", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/env", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "site_id", - "key": "site_id", - "value": "44", - "description": "The ID of the site." - } - ] - }, - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"env\":\"quam\"}" - }, - "description": "Update site .env file" - }, - "response": [ - { - "header": [], - "code": 200, - "body": null, - "name": "" - } - ] - } - ] - }, - { - "name": "source-controls", - "description": "", - "item": [ - { - "name": "list", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/source-controls", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/source-controls", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "" - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"data\":[{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"Zella Robel\",\"provider\":\"github\",\"created_at\":\"2025-04-05T17:48:03.000000Z\",\"updated_at\":\"2025-04-05T17:48:03.000000Z\"},{\"id\":6,\"project_id\":null,\"global\":true,\"name\":\"Jairo Williamson\",\"provider\":\"github\",\"created_at\":\"2025-04-05T17:48:03.000000Z\",\"updated_at\":\"2025-04-05T17:48:03.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}}", - "name": "" - } - ] - }, - { - "name": "create", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/source-controls", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/source-controls", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"provider\":\"gitlab\",\"name\":\"molestias\",\"token\":\"in\",\"url\":\"https:\\\/\\\/www.white.com\\\/aperiam-dolor-nemo-qui-rerum-quod-quas\",\"username\":\"consectetur\",\"password\":\"y*P4_]ZdjE_:\"}" - }, - "description": "" - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"Miss Claudine Goyette\",\"provider\":\"github\",\"created_at\":\"2025-04-05T17:48:03.000000Z\",\"updated_at\":\"2025-04-05T17:48:03.000000Z\"}", - "name": "" - } - ] - }, - { - "name": "show", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/source-controls\/:sourceControl_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/source-controls\/:sourceControl_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "sourceControl_id", - "key": "sourceControl_id", - "value": "1", - "description": "The ID of the sourceControl." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "" - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"Mona Stark\",\"provider\":\"github\",\"created_at\":\"2025-04-05T17:48:03.000000Z\",\"updated_at\":\"2025-04-05T17:48:03.000000Z\"}", - "name": "" - } - ] - }, - { - "name": "update", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/source-controls\/:sourceControl_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/source-controls\/:sourceControl_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "sourceControl_id", - "key": "sourceControl_id", - "value": "1", - "description": "The ID of the sourceControl." - } - ] - }, - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"name\":\"non\",\"token\":\"sunt\",\"url\":\"https:\\\/\\\/www.frami.org\\\/ex-at-minus-rerum-quo-minus-ea\",\"username\":\"natus\",\"password\":\"A^\\\">*m{p]DI\",\"global\":true}" - }, - "description": "" - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"Neha Little\",\"provider\":\"github\",\"created_at\":\"2025-04-05T17:48:03.000000Z\",\"updated_at\":\"2025-04-05T17:48:03.000000Z\"}", - "name": "" - } - ] - }, - { - "name": "delete", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/source-controls\/:sourceControl_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/source-controls\/:sourceControl_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "sourceControl_id", - "key": "sourceControl_id", - "value": "1", - "description": "The ID of the sourceControl." - } - ] - }, - "method": "DELETE", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "" - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - } - ] - }, - { - "name": "ssh-keys", - "description": "", - "item": [ - { - "name": "list", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/ssh-keys", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/ssh-keys", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Get all ssh keys." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"data\":[{\"id\":null,\"user\":null,\"name\":\"Santa Goyette\",\"created_at\":null,\"updated_at\":null},{\"id\":null,\"user\":null,\"name\":\"Cecil Cummings\",\"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}}", - "name": "" - } - ] - }, - { - "name": "create", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/ssh-keys", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/ssh-keys", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"key_id\":\"explicabo\",\"name\":\"deleniti\",\"public_key\":\"sapiente\"}" - }, - "description": "Deploy ssh key to server." - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":null,\"user\":null,\"name\":\"Mr. Reagan Jacobson V\",\"created_at\":null,\"updated_at\":null}", - "name": "" - } - ] - }, - { - "name": "delete", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/servers\/:server_id\/ssh-keys\/:sshKey_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/ssh-keys\/:sshKey_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "server_id", - "key": "server_id", - "value": "29", - "description": "The ID of the server." - }, - { - "id": "sshKey_id", - "key": "sshKey_id", - "value": "1", - "description": "The ID of the sshKey." - } - ] - }, - "method": "DELETE", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "Delete ssh key from server." - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - } - ] - }, - { - "name": "storage-providers", - "description": "", - "item": [ - { - "name": "list", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/storage-providers", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/storage-providers", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "" - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"data\":[{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"veritatis\",\"provider\":\"ftp\",\"created_at\":\"2025-04-05T17:48:03.000000Z\",\"updated_at\":\"2025-04-05T17:48:03.000000Z\"},{\"id\":6,\"project_id\":null,\"global\":true,\"name\":\"voluptas\",\"provider\":\"dropbox\",\"created_at\":\"2025-04-05T17:48:03.000000Z\",\"updated_at\":\"2025-04-05T17:48:03.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}}", - "name": "" - } - ] - }, - { - "name": "create", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/storage-providers", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/storage-providers", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"provider\":\"ab\",\"name\":\"quo\",\"token\":\"in\",\"key\":\"sunt\",\"secret\":\"molestias\"}" - }, - "description": "" - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"asperiores\",\"provider\":\"dropbox\",\"created_at\":\"2025-04-05T17:48:03.000000Z\",\"updated_at\":\"2025-04-05T17:48:03.000000Z\"}", - "name": "" - } - ] - }, - { - "name": "show", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/storage-providers\/:storageProvider_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/storage-providers\/:storageProvider_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "storageProvider_id", - "key": "storageProvider_id", - "value": "3", - "description": "The ID of the storageProvider." - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "" - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"ipsum\",\"provider\":\"local\",\"created_at\":\"2025-04-05T17:48:03.000000Z\",\"updated_at\":\"2025-04-05T17:48:03.000000Z\"}", - "name": "" - } - ] - }, - { - "name": "update", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/storage-providers\/:storageProvider_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/storage-providers\/:storageProvider_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "storageProvider_id", - "key": "storageProvider_id", - "value": "3", - "description": "The ID of the storageProvider." - } - ] - }, - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"name\":\"voluptas\",\"global\":true}" - }, - "description": "" - }, - "response": [ - { - "header": [], - "code": 200, - "body": "{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"minima\",\"provider\":\"ftp\",\"created_at\":\"2025-04-05T17:48:03.000000Z\",\"updated_at\":\"2025-04-05T17:48:03.000000Z\"}", - "name": "" - } - ] - }, - { - "name": "delete", - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "api\/projects\/:project_id\/storage-providers\/:storageProvider_id", - "query": [], - "raw": "{{baseUrl}}\/api\/projects\/:project_id\/storage-providers\/:storageProvider_id", - "variable": [ - { - "id": "project_id", - "key": "project_id", - "value": "1", - "description": "The ID of the project." - }, - { - "id": "storageProvider_id", - "key": "storageProvider_id", - "value": "3", - "description": "The ID of the storageProvider." - } - ] - }, - "method": "DELETE", - "header": [ - { - "key": "Content-Type", - "value": "application\/json" - }, - { - "key": "Accept", - "value": "application\/json" - } - ], - "body": null, - "description": "" - }, - "response": [ - { - "header": [], - "code": 204, - "body": null, - "name": "" - } - ] - } - ] - } - ], - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "key", - "type": "string" - } - ] - } -} \ No newline at end of file diff --git a/public/api-docs/index.html b/public/api-docs/index.html deleted file mode 100644 index bdc2bfe..0000000 --- a/public/api-docs/index.html +++ /dev/null @@ -1,14955 +0,0 @@ -<!doctype html> -<html lang="en"> -<head> - <meta charset="utf-8"> - <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"> - <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> - <title>API Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - MENU - navbar-image - - -
- -
- - - -
- - - -
- - - - - - - - - - - - - - - - -
- - - - -
- -
-
-
-

Introduction

-

VitoDeploy's API documentation.

- -

This documentation aims to provide all the information you need to work with our API.

- - -

Authenticating requests

-

To authenticate requests, include an Authorization header with the value "Bearer YOUR-API-KEY".

-

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

-

You can retrieve your token by visiting here

- -

cron-jobs

- - - -

list

- -

-requires authentication -

- -

Get all cron jobs.

- - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/servers/29/cron-jobs" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/cron-jobs';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/cron-jobs"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "data": [
-        {
-            "id": null,
-            "server_id": null,
-            "command": "ls -la",
-            "user": "root",
-            "frequency": "* * * * *",
-            "status": "ready",
-            "created_at": null,
-            "updated_at": null
-        },
-        {
-            "id": null,
-            "server_id": null,
-            "command": "ls -la",
-            "user": "root",
-            "frequency": "* * * * *",
-            "status": "ready",
-            "created_at": null,
-            "updated_at": null
-        }
-    ],
-    "links": {
-        "first": "/?page=1",
-        "last": "/?page=1",
-        "prev": null,
-        "next": null
-    },
-    "meta": {
-        "current_page": 1,
-        "from": 1,
-        "last_page": 1,
-        "links": [
-            {
-                "url": null,
-                "label": "&laquo; Previous",
-                "active": false
-            },
-            {
-                "url": "/?page=1",
-                "label": "1",
-                "active": true
-            },
-            {
-                "url": null,
-                "label": "Next &raquo;",
-                "active": false
-            }
-        ],
-        "path": "/",
-        "per_page": 25,
-        "to": 2,
-        "total": 2
-    }
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/servers/{server_id}/cron-jobs -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- -

create

- -

-requires authentication -

- -

Create a new cron job.

- - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/servers/29/cron-jobs" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"command\": \"quia\",
-    \"user\": \"root\",
-    \"frequency\": \"* * * * *\"
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/cron-jobs';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'command' => 'quia',
-            'user' => 'root',
-            'frequency' => '* * * * *',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/cron-jobs"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "command": "quia",
-    "user": "root",
-    "frequency": "* * * * *"
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": null,
-    "server_id": null,
-    "command": "ls -la",
-    "user": "root",
-    "frequency": "* * * * *",
-    "status": "ready",
-    "created_at": null,
-    "updated_at": null
-}
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects/{project_id}/servers/{server_id}/cron-jobs -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-

Body Parameters

-
- command   -string  -   - -
-

Example: quia

-
-
- user   -string  -   - -
-

Example: root

-Must be one of: -
  • root
  • vito
-
-
- frequency   -string  -   - -
-

Frequency of the cron job. Example: * * * * *

-
-
- -

show

- -

-requires authentication -

- -

Get a cron job by ID.

- - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/servers/29/cron-jobs/6" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/cron-jobs/6';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/cron-jobs/6"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": null,
-    "server_id": null,
-    "command": "ls -la",
-    "user": "root",
-    "frequency": "* * * * *",
-    "status": "ready",
-    "created_at": null,
-    "updated_at": null
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/servers/{server_id}/cron-jobs/{cronJob_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- cronJob_id   -integer  -   - -
-

The ID of the cronJob. Example: 6

-
-
- -

delete

- -

-requires authentication -

- -

Delete cron job.

- - -
Example request:
- - -
-
curl --request DELETE \
-    "https://your-vito-url/api/projects/1/servers/29/cron-jobs/13" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/cron-jobs/13';
-$response = $client->delete(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/cron-jobs/13"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "DELETE",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- DELETE - api/projects/{project_id}/servers/{server_id}/cron-jobs/{cronJob_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- cronJob_id   -integer  -   - -
-

The ID of the cronJob. Example: 13

-
-
- -

database-users

- - - -

list

- -

-requires authentication -

- -

Get all database users.

- - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/servers/29/database-users" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/database-users';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/database-users"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "data": [
-        {
-            "id": null,
-            "server_id": null,
-            "username": "letha64",
-            "databases": [],
-            "host": "%",
-            "status": null,
-            "created_at": null,
-            "updated_at": null
-        },
-        {
-            "id": null,
-            "server_id": null,
-            "username": "hagenes.lurline",
-            "databases": [],
-            "host": "%",
-            "status": null,
-            "created_at": null,
-            "updated_at": null
-        }
-    ],
-    "links": {
-        "first": "/?page=1",
-        "last": "/?page=1",
-        "prev": null,
-        "next": null
-    },
-    "meta": {
-        "current_page": 1,
-        "from": 1,
-        "last_page": 1,
-        "links": [
-            {
-                "url": null,
-                "label": "&laquo; Previous",
-                "active": false
-            },
-            {
-                "url": "/?page=1",
-                "label": "1",
-                "active": true
-            },
-            {
-                "url": null,
-                "label": "Next &raquo;",
-                "active": false
-            }
-        ],
-        "path": "/",
-        "per_page": 25,
-        "to": 2,
-        "total": 2
-    }
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/servers/{server_id}/database-users -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- -

create

- -

-requires authentication -

- -

Create a new database user.

- - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/servers/29/database-users" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"username\": \"qui\",
-    \"password\": \"xYv*3,#HQ=5<w!\",
-    \"host\": \"%\"
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/database-users';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'username' => 'qui',
-            'password' => 'xYv*3,#HQ=5<w!',
-            'host' => '%',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/database-users"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "username": "qui",
-    "password": "xYv*3,#HQ=5<w!",
-    "host": "%"
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": null,
-    "server_id": null,
-    "username": "marcelle95",
-    "databases": [],
-    "host": "%",
-    "status": null,
-    "created_at": null,
-    "updated_at": null
-}
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects/{project_id}/servers/{server_id}/database-users -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-

Body Parameters

-
- username   -string  -   - -
-

Example: qui

-
-
- password   -string  -   - -
-

Example: xYv*3,#HQ=5<w!

-
-
- host   -string  -   - -
-

Host, if it is a remote user. Example: %

-
-
- -

show

- -

-requires authentication -

- -

Get a database user by ID.

- - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/servers/29/database-users/1" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/database-users/1';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/database-users/1"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": null,
-    "server_id": null,
-    "username": "brandi53",
-    "databases": [],
-    "host": "%",
-    "status": null,
-    "created_at": null,
-    "updated_at": null
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/servers/{server_id}/database-users/{databaseUser_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- databaseUser_id   -integer  -   - -
-

The ID of the databaseUser. Example: 1

-
-
- - - -

-requires authentication -

- -

Link to databases

- - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/servers/29/database-users/4/link" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"databases\": \"maiores\"
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/database-users/4/link';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'databases' => 'maiores',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/database-users/4/link"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "databases": "maiores"
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": null,
-    "server_id": null,
-    "username": "kschmidt",
-    "databases": [],
-    "host": "%",
-    "status": null,
-    "created_at": null,
-    "updated_at": null
-}
- 
-
- - - - -

delete

- -

-requires authentication -

- -

Delete database user.

- - -
Example request:
- - -
-
curl --request DELETE \
-    "https://your-vito-url/api/projects/1/servers/29/database-users/20" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/database-users/20';
-$response = $client->delete(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/database-users/20"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "DELETE",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- DELETE - api/projects/{project_id}/servers/{server_id}/database-users/{databaseUser_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- databaseUser_id   -integer  -   - -
-

The ID of the databaseUser. Example: 20

-
-
- -

databases

- - - -

list

- -

-requires authentication -

- -

Get all databases.

- - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/servers/29/databases" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/databases';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/databases"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "data": [
-        {
-            "id": null,
-            "server_id": null,
-            "name": "leffler.esther",
-            "status": "ready",
-            "created_at": null,
-            "updated_at": null
-        },
-        {
-            "id": null,
-            "server_id": null,
-            "name": "rhoda.rutherford",
-            "status": "ready",
-            "created_at": null,
-            "updated_at": null
-        }
-    ],
-    "links": {
-        "first": "/?page=1",
-        "last": "/?page=1",
-        "prev": null,
-        "next": null
-    },
-    "meta": {
-        "current_page": 1,
-        "from": 1,
-        "last_page": 1,
-        "links": [
-            {
-                "url": null,
-                "label": "&laquo; Previous",
-                "active": false
-            },
-            {
-                "url": "/?page=1",
-                "label": "1",
-                "active": true
-            },
-            {
-                "url": null,
-                "label": "Next &raquo;",
-                "active": false
-            }
-        ],
-        "path": "/",
-        "per_page": 25,
-        "to": 2,
-        "total": 2
-    }
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/servers/{server_id}/databases -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- -

create

- -

-requires authentication -

- -

Create a new database.

- - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/servers/29/databases" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"name\": \"quisquam\",
-    \"charset\": \"omnis\",
-    \"collation\": \"at\"
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/databases';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'name' => 'quisquam',
-            'charset' => 'omnis',
-            'collation' => 'at',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/databases"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "name": "quisquam",
-    "charset": "omnis",
-    "collation": "at"
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": null,
-    "server_id": null,
-    "name": "csawayn",
-    "status": "ready",
-    "created_at": null,
-    "updated_at": null
-}
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects/{project_id}/servers/{server_id}/databases -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-

Body Parameters

-
- name   -string  -   - -
-

Example: quisquam

-
-
- charset   -string  -   - -
-

Example: omnis

-
-
- collation   -string  -   - -
-

Example: at

-
-
- -

show

- -

-requires authentication -

- -

Get a database by ID.

- - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/servers/29/databases/8" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/databases/8';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/databases/8"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": null,
-    "server_id": null,
-    "name": "sandrine43",
-    "status": "ready",
-    "created_at": null,
-    "updated_at": null
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/servers/{server_id}/databases/{id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- id   -integer  -   - -
-

The ID of the database. Example: 8

-
-
- -

delete

- -

-requires authentication -

- -

Delete database.

- - -
Example request:
- - -
-
curl --request DELETE \
-    "https://your-vito-url/api/projects/1/servers/29/databases/8" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/databases/8';
-$response = $client->delete(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/databases/8"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "DELETE",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- DELETE - api/projects/{project_id}/servers/{server_id}/databases/{database_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- database_id   -integer  -   - -
-

The ID of the database. Example: 8

-
-
- -

firewall-rules

- - - -

list

- -

-requires authentication -

- -

Get all firewall rules.

- - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/servers/29/firewall-rules" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/firewall-rules';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/firewall-rules"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "data": [
-        {
-            "id": null,
-            "name": "ut",
-            "server_id": null,
-            "type": "allow",
-            "protocol": "tcp",
-            "port": 35499,
-            "source": "177.130.54.250",
-            "mask": 24,
-            "note": "test",
-            "status": null,
-            "created_at": null,
-            "updated_at": null
-        },
-        {
-            "id": null,
-            "name": "totam",
-            "server_id": null,
-            "type": "allow",
-            "protocol": "tcp",
-            "port": 29448,
-            "source": "181.194.26.13",
-            "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
-    }
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/servers/{server_id}/firewall-rules -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- -

create

- -

-requires authentication -

- -

Create a new firewall rule.

- - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/servers/29/firewall-rules" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"name\": \"sapiente\",
-    \"type\": \"allow\",
-    \"protocol\": \"tcp\",
-    \"port\": \"et\",
-    \"source\": \"doloribus\",
-    \"mask\": \"0\"
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/firewall-rules';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'name' => 'sapiente',
-            'type' => 'allow',
-            'protocol' => 'tcp',
-            'port' => 'et',
-            'source' => 'doloribus',
-            'mask' => '0',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/firewall-rules"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "name": "sapiente",
-    "type": "allow",
-    "protocol": "tcp",
-    "port": "et",
-    "source": "doloribus",
-    "mask": "0"
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": null,
-    "name": "omnis",
-    "server_id": null,
-    "type": "allow",
-    "protocol": "tcp",
-    "port": 54634,
-    "source": "246.242.9.65",
-    "mask": 24,
-    "note": "test",
-    "status": null,
-    "created_at": null,
-    "updated_at": null
-}
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects/{project_id}/servers/{server_id}/firewall-rules -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-

Body Parameters

-
- name   -string  -   - -
-

Example: sapiente

-
-
- type   -string  -   - -
-

Example: allow

-Must be one of: -
  • allow
  • deny
-
-
- protocol   -string  -   - -
-

Example: tcp

-Must be one of: -
  • tcp
  • udp
-
-
- port   -string  -   - -
-

Example: et

-
-
- source   -string  -optional   - -
-

Example: doloribus

-
-
- mask   -string  -   - -
-

Mask for source IP. Example: 0

-
-
- -

edit

- -

-requires authentication -

- -

Update an existing firewall rule.

- - -
Example request:
- - -
-
curl --request PUT \
-    "https://your-vito-url/api/projects/1/servers/29/firewall-rules/85" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"name\": \"et\",
-    \"type\": \"allow\",
-    \"protocol\": \"tcp\",
-    \"port\": \"aut\",
-    \"source\": \"et\",
-    \"mask\": \"0\"
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/firewall-rules/85';
-$response = $client->put(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'name' => 'et',
-            'type' => 'allow',
-            'protocol' => 'tcp',
-            'port' => 'aut',
-            'source' => 'et',
-            'mask' => '0',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/firewall-rules/85"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "name": "et",
-    "type": "allow",
-    "protocol": "tcp",
-    "port": "aut",
-    "source": "et",
-    "mask": "0"
-};
-
-fetch(url, {
-    method: "PUT",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": null,
-    "name": "consequatur",
-    "server_id": null,
-    "type": "allow",
-    "protocol": "tcp",
-    "port": 879,
-    "source": "206.106.27.116",
-    "mask": 24,
-    "note": "test",
-    "status": null,
-    "created_at": null,
-    "updated_at": null
-}
- 
-
- - -
-

- Request    - -    - -

-

- PUT - api/projects/{project_id}/servers/{server_id}/firewall-rules/{firewallRule_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- firewallRule_id   -integer  -   - -
-

The ID of the firewallRule. Example: 85

-
-

Body Parameters

-
- name   -string  -   - -
-

Example: et

-
-
- type   -string  -   - -
-

Example: allow

-Must be one of: -
  • allow
  • deny
-
-
- protocol   -string  -   - -
-

Example: tcp

-Must be one of: -
  • tcp
  • udp
-
-
- port   -string  -   - -
-

Example: aut

-
-
- source   -string  -optional   - -
-

Example: et

-
-
- mask   -string  -   - -
-

Mask for source IP. Example: 0

-
-
- -

show

- -

-requires authentication -

- -

Get a firewall rule by ID.

- - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/servers/29/firewall-rules/85" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/firewall-rules/85';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/firewall-rules/85"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": null,
-    "name": "dolores",
-    "server_id": null,
-    "type": "allow",
-    "protocol": "tcp",
-    "port": 4691,
-    "source": "147.108.28.144",
-    "mask": 24,
-    "note": "test",
-    "status": null,
-    "created_at": null,
-    "updated_at": null
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/servers/{server_id}/firewall-rules/{firewallRule_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- firewallRule_id   -integer  -   - -
-

The ID of the firewallRule. Example: 85

-
-
- -

delete

- -

-requires authentication -

- -

Delete firewall rule.

- - -
Example request:
- - -
-
curl --request DELETE \
-    "https://your-vito-url/api/projects/1/servers/29/firewall-rules/85" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/firewall-rules/85';
-$response = $client->delete(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/firewall-rules/85"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "DELETE",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- DELETE - api/projects/{project_id}/servers/{server_id}/firewall-rules/{firewallRule_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- firewallRule_id   -integer  -   - -
-

The ID of the firewallRule. Example: 85

-
-
- -

general

- - - -

health-check

- -

-

- - - - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/health" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/health';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/health"
-);
-
-const headers = {
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
- - Show headers - -
cache-control: no-cache, private
-content-type: application/json
-x-ratelimit-limit: 60
-x-ratelimit-remaining: 59
-access-control-allow-origin: *
- 
-
-{
-    "success": true,
-    "version": "2.4.0"
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/health -

-

Headers

-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-
- -

projects

- - - -

list

- -

-requires authentication -

- -

Get all projects.

- - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "data": [
-        {
-            "id": 3,
-            "name": "Mr. Drake Nader",
-            "created_at": "2025-04-05T17:48:03.000000Z",
-            "updated_at": "2025-04-05T17:48:03.000000Z"
-        },
-        {
-            "id": 4,
-            "name": "Wilhelmine Jacobson",
-            "created_at": "2025-04-05T17:48:03.000000Z",
-            "updated_at": "2025-04-05T17:48:03.000000Z"
-        }
-    ],
-    "links": {
-        "first": "/?page=1",
-        "last": "/?page=1",
-        "prev": null,
-        "next": null
-    },
-    "meta": {
-        "current_page": 1,
-        "from": 1,
-        "last_page": 1,
-        "links": [
-            {
-                "url": null,
-                "label": "&laquo; Previous",
-                "active": false
-            },
-            {
-                "url": "/?page=1",
-                "label": "1",
-                "active": true
-            },
-            {
-                "url": null,
-                "label": "Next &raquo;",
-                "active": false
-            }
-        ],
-        "path": "/",
-        "per_page": 25,
-        "to": 2,
-        "total": 2
-    }
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-
- -

create

- -

-requires authentication -

- -

Create a new project.

- - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"name\": \"dignissimos\"
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'name' => 'dignissimos',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "name": "dignissimos"
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": 3,
-    "name": "Pattie Cole",
-    "created_at": "2025-04-05T17:48:03.000000Z",
-    "updated_at": "2025-04-05T17:48:03.000000Z"
-}
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

Body Parameters

-
- name   -string  -   - -
-

The name of the project. Example: dignissimos

-
-
- -

show

- -

-requires authentication -

- -

Get a project by ID.

- - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": 3,
-    "name": "Mr. Elias Bauch",
-    "created_at": "2025-04-05T17:48:03.000000Z",
-    "updated_at": "2025-04-05T17:48:03.000000Z"
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- -

update

- -

-requires authentication -

- -

Update project.

- - -
Example request:
- - -
-
curl --request PUT \
-    "https://your-vito-url/api/projects/1" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"name\": \"sunt\"
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1';
-$response = $client->put(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'name' => 'sunt',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "name": "sunt"
-};
-
-fetch(url, {
-    method: "PUT",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": 3,
-    "name": "Elfrieda Jakubowski",
-    "created_at": "2025-04-05T17:48:03.000000Z",
-    "updated_at": "2025-04-05T17:48:03.000000Z"
-}
- 
-
- - -
-

- Request    - -    - -

-

- PUT - api/projects/{id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- id   -integer  -   - -
-

The ID of the project. Example: 1

-
-

Body Parameters

-
- name   -string  -   - -
-

The name of the project. Example: sunt

-
-
- -

delete

- -

-requires authentication -

- -

Delete project.

- - -
Example request:
- - -
-
curl --request DELETE \
-    "https://your-vito-url/api/projects/1" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1';
-$response = $client->delete(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "DELETE",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- DELETE - api/projects/{project_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- -

redirects

- - - -

index

- -

-requires authentication -

- -

Get all redirects.

- - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/servers/29/sites/44/redirects" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/sites/44/redirects';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/sites/44/redirects"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "data": [
-        {
-            "id": null,
-            "site_id": null,
-            "mode": 307,
-            "from": "ipsum",
-            "to": "http://fritsch.biz/",
-            "status": "ready",
-            "created_at": null,
-            "updated_at": null
-        },
-        {
-            "id": null,
-            "site_id": null,
-            "mode": 302,
-            "from": "culpa",
-            "to": "http://www.huels.net/aut-ut-ut-porro-non-rerum-voluptatum.html",
-            "status": "ready",
-            "created_at": null,
-            "updated_at": null
-        }
-    ],
-    "links": {
-        "first": "/?page=1",
-        "last": "/?page=1",
-        "prev": null,
-        "next": null
-    },
-    "meta": {
-        "current_page": 1,
-        "from": 1,
-        "last_page": 1,
-        "links": [
-            {
-                "url": null,
-                "label": "&laquo; Previous",
-                "active": false
-            },
-            {
-                "url": "/?page=1",
-                "label": "1",
-                "active": true
-            },
-            {
-                "url": null,
-                "label": "Next &raquo;",
-                "active": false
-            }
-        ],
-        "path": "/",
-        "per_page": 25,
-        "to": 2,
-        "total": 2
-    }
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- site_id   -integer  -   - -
-

The ID of the site. Example: 44

-
-
- -

create

- -

-requires authentication -

- -

Create a new redirect.

- - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/servers/29/sites/44/redirects" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"from\": \"odit\",
-    \"to\": \"incidunt\",
-    \"mode\": 301
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/sites/44/redirects';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'from' => 'odit',
-            'to' => 'incidunt',
-            'mode' => 301,
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/sites/44/redirects"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "from": "odit",
-    "to": "incidunt",
-    "mode": 301
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- site_id   -integer  -   - -
-

The ID of the site. Example: 44

-
-

Body Parameters

-
- from   -string  -   - -
-

Example: odit

-
-
- to   -string  -   - -
-

Example: incidunt

-
-
- mode   -string  -   - -
-

Example: 301

-Must be one of: -
  • 301
  • 302
  • 307
  • 308
-
-
- -

delete

- -

-requires authentication -

- -

Delete a redirect.

- - -
Example request:
- - -
-
curl --request DELETE \
-    "https://your-vito-url/api/projects/1/servers/29/sites/44/redirects/9" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/sites/44/redirects/9';
-$response = $client->delete(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/sites/44/redirects/9"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "DELETE",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- DELETE - api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects/{redirect_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- site_id   -integer  -   - -
-

The ID of the site. Example: 44

-
-
- redirect_id   -integer  -   - -
-

The ID of the redirect. Example: 9

-
-
- -

server-providers

- - - -

list

- -

-requires authentication -

- - - - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/server-providers" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/server-providers';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/server-providers"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "data": [
-        {
-            "id": 3,
-            "project_id": null,
-            "global": true,
-            "name": "aut",
-            "provider": "hetzner",
-            "created_at": "2025-04-05T17:48:03.000000Z",
-            "updated_at": "2025-04-05T17:48:03.000000Z"
-        },
-        {
-            "id": 4,
-            "project_id": null,
-            "global": true,
-            "name": "qui",
-            "provider": "aws",
-            "created_at": "2025-04-05T17:48:03.000000Z",
-            "updated_at": "2025-04-05T17:48:03.000000Z"
-        }
-    ],
-    "links": {
-        "first": "/?page=1",
-        "last": "/?page=1",
-        "prev": null,
-        "next": null
-    },
-    "meta": {
-        "current_page": 1,
-        "from": 1,
-        "last_page": 1,
-        "links": [
-            {
-                "url": null,
-                "label": "&laquo; Previous",
-                "active": false
-            },
-            {
-                "url": "/?page=1",
-                "label": "1",
-                "active": true
-            },
-            {
-                "url": null,
-                "label": "Next &raquo;",
-                "active": false
-            }
-        ],
-        "path": "/",
-        "per_page": 25,
-        "to": 2,
-        "total": 2
-    }
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/server-providers -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- -

create

- -

-requires authentication -

- - - - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/server-providers" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"provider\": \"corrupti\",
-    \"name\": \"est\",
-    \"token\": \"rerum\",
-    \"key\": \"ut\",
-    \"secret\": \"sed\"
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/server-providers';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'provider' => 'corrupti',
-            'name' => 'est',
-            'token' => 'rerum',
-            'key' => 'ut',
-            'secret' => 'sed',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/server-providers"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "provider": "corrupti",
-    "name": "est",
-    "token": "rerum",
-    "key": "ut",
-    "secret": "sed"
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": 3,
-    "project_id": null,
-    "global": true,
-    "name": "voluptas",
-    "provider": "vultr",
-    "created_at": "2025-04-05T17:48:03.000000Z",
-    "updated_at": "2025-04-05T17:48:03.000000Z"
-}
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects/{project_id}/server-providers -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-

Body Parameters

-
- provider   -string  -   - -
-

The provider (aws, linode, hetzner, digitalocean, vultr, ...) Example: corrupti

-
-
- name   -string  -   - -
-

The name of the server provider. Example: est

-
-
- token   -string  -   - -
-

The token if provider requires api token Example: rerum

-
-
- key   -string  -   - -
-

The key if provider requires key Example: ut

-
-
- secret   -string  -   - -
-

The secret if provider requires key Example: sed

-
-
- -

show

- -

-requires authentication -

- - - - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/server-providers/1" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/server-providers/1';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/server-providers/1"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": 3,
-    "project_id": null,
-    "global": true,
-    "name": "et",
-    "provider": "digitalocean",
-    "created_at": "2025-04-05T17:48:03.000000Z",
-    "updated_at": "2025-04-05T17:48:03.000000Z"
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/server-providers/{serverProvider_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- serverProvider_id   -integer  -   - -
-

The ID of the serverProvider. Example: 1

-
-
- -

update

- -

-requires authentication -

- - - - -
Example request:
- - -
-
curl --request PUT \
-    "https://your-vito-url/api/projects/1/server-providers/1" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"name\": \"earum\",
-    \"global\": false
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/server-providers/1';
-$response = $client->put(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'name' => 'earum',
-            'global' => false,
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/server-providers/1"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "name": "earum",
-    "global": false
-};
-
-fetch(url, {
-    method: "PUT",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": 3,
-    "project_id": null,
-    "global": true,
-    "name": "architecto",
-    "provider": "digitalocean",
-    "created_at": "2025-04-05T17:48:03.000000Z",
-    "updated_at": "2025-04-05T17:48:03.000000Z"
-}
- 
-
- - -
-

- Request    - -    - -

-

- PUT - api/projects/{project_id}/server-providers/{serverProvider_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- serverProvider_id   -integer  -   - -
-

The ID of the serverProvider. Example: 1

-
-

Body Parameters

-
- name   -string  -   - -
-

The name of the server provider. Example: earum

-
-
- global   -string  -   - -
-

Accessible in all projects Example: false

-Must be one of: -
  • 1
-
-
- -

delete

- -

-requires authentication -

- - - - -
Example request:
- - -
-
curl --request DELETE \
-    "https://your-vito-url/api/projects/1/server-providers/1" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/server-providers/1';
-$response = $client->delete(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/server-providers/1"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "DELETE",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- DELETE - api/projects/{project_id}/server-providers/{serverProvider_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- serverProvider_id   -integer  -   - -
-

The ID of the serverProvider. Example: 1

-
-
- -

servers

- - - -

list

- -

-requires authentication -

- -

Get all servers in a project.

- - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/servers" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "data": [
-        {
-            "id": null,
-            "project_id": null,
-            "user_id": null,
-            "provider_id": null,
-            "name": "Miss Bonita Vandervort IV",
-            "ssh_user": "vito",
-            "ip": "120.222.195.212",
-            "local_ip": "138.119.37.248",
-            "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": "Dr. Shanie Batz IV",
-            "ssh_user": "vito",
-            "ip": "241.88.138.163",
-            "local_ip": "138.226.232.93",
-            "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
-    }
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/servers -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- -

create

- -

-requires authentication -

- -

Create a new server.

- - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/servers" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"provider\": \"fugiat\",
-    \"server_provider\": \"digitalocean\",
-    \"region\": \"itaque\",
-    \"plan\": \"voluptatum\",
-    \"ip\": \"ut\",
-    \"port\": \"reiciendis\",
-    \"name\": \"et\",
-    \"os\": \"vel\",
-    \"webserver\": \"nginx\",
-    \"database\": \"mysql80\",
-    \"php\": \"7.2\"
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'provider' => 'fugiat',
-            'server_provider' => 'digitalocean',
-            'region' => 'itaque',
-            'plan' => 'voluptatum',
-            'ip' => 'ut',
-            'port' => 'reiciendis',
-            'name' => 'et',
-            'os' => 'vel',
-            'webserver' => 'nginx',
-            'database' => 'mysql80',
-            'php' => '7.2',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "provider": "fugiat",
-    "server_provider": "digitalocean",
-    "region": "itaque",
-    "plan": "voluptatum",
-    "ip": "ut",
-    "port": "reiciendis",
-    "name": "et",
-    "os": "vel",
-    "webserver": "nginx",
-    "database": "mysql80",
-    "php": "7.2"
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": null,
-    "project_id": null,
-    "user_id": null,
-    "provider_id": null,
-    "name": "Jeromy Mann",
-    "ssh_user": "vito",
-    "ip": "128.70.209.89",
-    "local_ip": "150.217.250.187",
-    "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
-}
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects/{project_id}/servers -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-

Body Parameters

-
- provider   -string  -   - -
-

The server provider type Example: fugiat

-
-
- server_provider   -string  -   - -
-

If the provider is not custom, the ID of the server provider profile Example: digitalocean

-Must be one of: -
  • custom
  • hetzner
  • digitalocean
  • linode
  • vultr
-
-
- region   -string  -   - -
-

Provider region if the provider is not custom Example: itaque

-
-
- plan   -string  -   - -
-

Provider plan if the provider is not custom Example: voluptatum

-
-
- ip   -string  -   - -
-

SSH IP address if the provider is custom Example: ut

-
-
- port   -string  -   - -
-

SSH Port if the provider is custom Example: reiciendis

-
-
- name   -string  -   - -
-

The name of the server. Example: et

-
-
- os   -string  -   - -
-

The os of the server Example: vel

-
-
- webserver   -string  -   - -
-

Web server Example: nginx

-Must be one of: -
  • none
  • nginx
-
-
- database   -string  -   - -
-

Database Example: mysql80

-Must be one of: -
  • none
  • mysql57
  • mysql80
  • mariadb103
  • mariadb104
  • mariadb103
  • postgresql12
  • postgresql13
  • postgresql14
  • postgresql15
  • postgresql16
-
-
- php   -string  -   - -
-

PHP version Example: 7.2

-Must be one of: -
  • 7.0
  • 7.1
  • 7.2
  • 7.3
  • 7.4
  • 8.0
  • 8.1
  • 8.2
  • 8.3
-
-
- -

show

- -

-requires authentication -

- -

Get a server by ID.

- - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/servers/29" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": null,
-    "project_id": null,
-    "user_id": null,
-    "provider_id": null,
-    "name": "Miss Maya Schaden I",
-    "ssh_user": "vito",
-    "ip": "44.57.83.39",
-    "local_ip": "46.22.92.58",
-    "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
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/servers/{id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- -

reboot

- -

-requires authentication -

- -

Reboot a server.

- - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/servers/29/reboot" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/reboot';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/reboot"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects/{project_id}/servers/{server_id}/reboot -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- -

upgrade

- -

-requires authentication -

- -

Upgrade server.

- - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/servers/29/upgrade" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/upgrade';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/upgrade"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects/{project_id}/servers/{server_id}/upgrade -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- -

delete

- -

-requires authentication -

- -

Delete server.

- - -
Example request:
- - -
-
curl --request DELETE \
-    "https://your-vito-url/api/projects/1/servers/29" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29';
-$response = $client->delete(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "DELETE",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- DELETE - api/projects/{project_id}/servers/{server_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- -

services

- - - -

list

- -

-requires authentication -

- -

Get all services.

- - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/servers/29/services" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/services';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/services"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "data": [
-        {
-            "id": null,
-            "server_id": null,
-            "type": null,
-            "type_data": null,
-            "name": null,
-            "version": null,
-            "unit": null,
-            "status": null,
-            "is_default": null,
-            "created_at": null,
-            "updated_at": null
-        },
-        {
-            "id": null,
-            "server_id": null,
-            "type": null,
-            "type_data": null,
-            "name": null,
-            "version": null,
-            "unit": null,
-            "status": null,
-            "is_default": null,
-            "created_at": null,
-            "updated_at": null
-        }
-    ],
-    "links": {
-        "first": "/?page=1",
-        "last": "/?page=1",
-        "prev": null,
-        "next": null
-    },
-    "meta": {
-        "current_page": 1,
-        "from": 1,
-        "last_page": 1,
-        "links": [
-            {
-                "url": null,
-                "label": "&laquo; Previous",
-                "active": false
-            },
-            {
-                "url": "/?page=1",
-                "label": "1",
-                "active": true
-            },
-            {
-                "url": null,
-                "label": "Next &raquo;",
-                "active": false
-            }
-        ],
-        "path": "/",
-        "per_page": 25,
-        "to": 2,
-        "total": 2
-    }
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/servers/{server_id}/services -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- -

show

- -

-requires authentication -

- -

Get a service by ID.

- - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/servers/29/services/169" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/services/169';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/services/169"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": null,
-    "server_id": null,
-    "type": null,
-    "type_data": null,
-    "name": null,
-    "version": null,
-    "unit": null,
-    "status": null,
-    "is_default": null,
-    "created_at": null,
-    "updated_at": null
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/servers/{server_id}/services/{id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- id   -integer  -   - -
-

The ID of the service. Example: 169

-
-
- -

start

- -

-requires authentication -

- -

Start service.

- - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/servers/29/services/169/start" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/services/169/start';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/services/169/start"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects/{project_id}/servers/{server_id}/services/{service_id}/start -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- service_id   -integer  -   - -
-

The ID of the service. Example: 169

-
-
- -

stop

- -

-requires authentication -

- -

Stop service.

- - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/servers/29/services/169/stop" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/services/169/stop';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/services/169/stop"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects/{project_id}/servers/{server_id}/services/{service_id}/stop -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- service_id   -integer  -   - -
-

The ID of the service. Example: 169

-
-
- -

restart

- -

-requires authentication -

- -

Restart service.

- - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/servers/29/services/169/restart" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/services/169/restart';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/services/169/restart"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects/{project_id}/servers/{server_id}/services/{service_id}/restart -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- service_id   -integer  -   - -
-

The ID of the service. Example: 169

-
-
- -

enable

- -

-requires authentication -

- -

Enable service.

- - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/servers/29/services/169/enable" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/services/169/enable';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/services/169/enable"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects/{project_id}/servers/{server_id}/services/{service_id}/enable -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- service_id   -integer  -   - -
-

The ID of the service. Example: 169

-
-
- -

disable

- -

-requires authentication -

- -

Disable service.

- - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/servers/29/services/169/disable" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/services/169/disable';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/services/169/disable"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects/{project_id}/servers/{server_id}/services/{service_id}/disable -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- service_id   -integer  -   - -
-

The ID of the service. Example: 169

-
-
- -

delete

- -

-requires authentication -

- -

Delete service.

- - -
Example request:
- - -
-
curl --request DELETE \
-    "https://your-vito-url/api/projects/1/servers/29/services/169" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/services/169';
-$response = $client->delete(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/services/169"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "DELETE",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- DELETE - api/projects/{project_id}/servers/{server_id}/services/{service_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- service_id   -integer  -   - -
-

The ID of the service. Example: 169

-
-
- -

sites

- - - -

list

- -

-requires authentication -

- -

Get all sites.

- - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/servers/29/sites" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/sites';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/sites"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "data": [
-        {
-            "id": null,
-            "server_id": null,
-            "source_control_id": null,
-            "type": "laravel",
-            "type_data": null,
-            "domain": "test.com",
-            "aliases": null,
-            "web_directory": "/",
-            "path": "/home",
-            "php_version": "8.2",
-            "repository": null,
-            "branch": "main",
-            "status": "ready",
-            "port": null,
-            "user": "vito",
-            "progress": 100,
-            "created_at": null,
-            "updated_at": null
-        },
-        {
-            "id": null,
-            "server_id": null,
-            "source_control_id": null,
-            "type": "laravel",
-            "type_data": null,
-            "domain": "test.com",
-            "aliases": null,
-            "web_directory": "/",
-            "path": "/home",
-            "php_version": "8.2",
-            "repository": null,
-            "branch": "main",
-            "status": "ready",
-            "port": null,
-            "user": "vito",
-            "progress": 100,
-            "created_at": null,
-            "updated_at": null
-        }
-    ],
-    "links": {
-        "first": "/?page=1",
-        "last": "/?page=1",
-        "prev": null,
-        "next": null
-    },
-    "meta": {
-        "current_page": 1,
-        "from": 1,
-        "last_page": 1,
-        "links": [
-            {
-                "url": null,
-                "label": "&laquo; Previous",
-                "active": false
-            },
-            {
-                "url": "/?page=1",
-                "label": "1",
-                "active": true
-            },
-            {
-                "url": null,
-                "label": "Next &raquo;",
-                "active": false
-            }
-        ],
-        "path": "/",
-        "per_page": 25,
-        "to": 2,
-        "total": 2
-    }
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/servers/{server_id}/sites -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- -

create

- -

-requires authentication -

- -

Create a new site.

- - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/servers/29/sites" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"type\": \"php-blank\",
-    \"domain\": \"impedit\",
-    \"aliases\": [
-        \"cum\"
-    ],
-    \"php_version\": \"7.4\",
-    \"web_directory\": \"public\",
-    \"source_control\": \"non\",
-    \"repository\": \"organization\\/repository\",
-    \"branch\": \"main\",
-    \"composer\": true,
-    \"version\": \"5.2.1\",
-    \"user\": \"voluptate\",
-    \"method\": \"ip-hash\"
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/sites';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'type' => 'php-blank',
-            'domain' => 'impedit',
-            'aliases' => [
-                'cum',
-            ],
-            'php_version' => '7.4',
-            'web_directory' => 'public',
-            'source_control' => 'non',
-            'repository' => 'organization/repository',
-            'branch' => 'main',
-            'composer' => true,
-            'version' => '5.2.1',
-            'user' => 'voluptate',
-            'method' => 'ip-hash',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/sites"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "type": "php-blank",
-    "domain": "impedit",
-    "aliases": [
-        "cum"
-    ],
-    "php_version": "7.4",
-    "web_directory": "public",
-    "source_control": "non",
-    "repository": "organization\/repository",
-    "branch": "main",
-    "composer": true,
-    "version": "5.2.1",
-    "user": "voluptate",
-    "method": "ip-hash"
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "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
-}
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects/{project_id}/servers/{server_id}/sites -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-

Body Parameters

-
- type   -string  -   - -
-

Example: php-blank

-Must be one of: -
  • php
  • php-blank
  • phpmyadmin
  • laravel
  • wordpress
  • load-balancer
-
-
- domain   -string  -   - -
-

Example: impedit

-
-
- aliases   -string[]  -   - - -
- -
-
- php_version   -string  -   - -
-

One of the installed PHP Versions Example: 7.4

-
-
- web_directory   -string  -   - -
-

Required for PHP and Laravel sites Example: public

-
-
- source_control   -string  -   - -
-

Source control ID, Required for Sites which support source control Example: non

-
-
- repository   -string  -   - -
-

Repository, Required for Sites which support source control Example: organization/repository

-
-
- branch   -string  -   - -
-

Branch, Required for Sites which support source control Example: main

-
-
- composer   -boolean  -   - - -
-

Run composer if site supports composer Example: true

-
-
- version   -string  -   - -
-

Version, if the site type requires a version like PHPMyAdmin Example: 5.2.1

-
-
- user   -string  -   - -
-

user, to isolate the website under a new user Example: voluptate

-
-
- method   -string  -   - -
-

Load balancer method, Required if the site type is Load balancer Example: ip-hash

-Must be one of: -
  • round-robin
  • least-connections
  • ip-hash
-
-
- -

show

- -

-requires authentication -

- -

Get a site by ID.

- - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/servers/29/sites/44" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/sites/44';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/sites/44"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "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
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/servers/{server_id}/sites/{id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- id   -integer  -   - -
-

The ID of the site. Example: 44

-
-
- -

delete

- -

-requires authentication -

- -

Delete site.

- - -
Example request:
- - -
-
curl --request DELETE \
-    "https://your-vito-url/api/projects/1/servers/29/sites/44" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/sites/44';
-$response = $client->delete(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/sites/44"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "DELETE",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- DELETE - api/projects/{project_id}/servers/{server_id}/sites/{site_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- site_id   -integer  -   - -
-

The ID of the site. Example: 44

-
-
- -

load-balancer

- -

-requires authentication -

- -

Update load balancer.

- - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/servers/29/sites/44/load-balancer" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"method\": \"round-robin\",
-    \"servers\": [
-        \"omnis\"
-    ]
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/sites/44/load-balancer';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'method' => 'round-robin',
-            'servers' => [
-                'omnis',
-            ],
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/sites/44/load-balancer"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "method": "round-robin",
-    "servers": [
-        "omnis"
-    ]
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects/{project_id}/servers/{server_id}/sites/{site_id}/load-balancer -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- site_id   -integer  -   - -
-

The ID of the site. Example: 44

-
-

Body Parameters

-
- method   -string  -   - -
-

Load balancer method, Required if the site type is Load balancer Example: round-robin

-Must be one of: -
  • round-robin
  • least-connections
  • ip-hash
-
-
- servers   -string[]  -   - - -
-

Array of servers including server, port, weight, backup. (server is the local IP of the server)

-
-
- -

aliases

- -

-requires authentication -

- -

Update aliases.

- - -
Example request:
- - -
-
curl --request PUT \
-    "https://your-vito-url/api/projects/1/servers/29/sites/44/aliases" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"aliases\": [
-        \"doloremque\"
-    ]
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/sites/44/aliases';
-$response = $client->put(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'aliases' => [
-                'doloremque',
-            ],
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/sites/44/aliases"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "aliases": [
-        "doloremque"
-    ]
-};
-
-fetch(url, {
-    method: "PUT",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-
- 
-
- - -
-

- Request    - -    - -

-

- PUT - api/projects/{project_id}/servers/{server_id}/sites/{site_id}/aliases -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- site_id   -integer  -   - -
-

The ID of the site. Example: 44

-
-

Body Parameters

-
- aliases   -string[]  -   - - -
-

Array of aliases

-
-
- -

deploy

- -

-requires authentication -

- -

Run site deployment script

- - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/servers/29/sites/44/deploy" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/sites/44/deploy';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/sites/44/deploy"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deploy -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- site_id   -integer  -   - -
-

The ID of the site. Example: 44

-
-
- -

deployment-script

- -

-requires authentication -

- -

Update site deployment script

- - -
Example request:
- - -
-
curl --request PUT \
-    "https://your-vito-url/api/projects/1/servers/29/sites/44/deployment-script" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"script\": \"voluptatem\"
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/sites/44/deployment-script';
-$response = $client->put(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'script' => 'voluptatem',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/sites/44/deployment-script"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "script": "voluptatem"
-};
-
-fetch(url, {
-    method: "PUT",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- PUT - api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deployment-script -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- site_id   -integer  -   - -
-

The ID of the site. Example: 44

-
-

Body Parameters

-
- script   -string  -   - -
-

Content of the deployment script Example: voluptatem

-
-
- -

deployment-script

- -

-requires authentication -

- -

Get site deployment script content

- - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/servers/29/sites/44/deployment-script" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/sites/44/deployment-script';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/sites/44/deployment-script"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deployment-script -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- site_id   -integer  -   - -
-

The ID of the site. Example: 44

-
-
- -

env

- -

-requires authentication -

- -

Get site .env file content

- - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/servers/29/sites/44/env" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/sites/44/env';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/sites/44/env"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "data": {
-        "env": "APP_NAME=Laravel\\nAPP_ENV=production"
-    }
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/servers/{server_id}/sites/{site_id}/env -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- site_id   -integer  -   - -
-

The ID of the site. Example: 44

-
-
- -

env

- -

-requires authentication -

- -

Update site .env file

- - -
Example request:
- - -
-
curl --request PUT \
-    "https://your-vito-url/api/projects/1/servers/29/sites/44/env" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"env\": \"quam\"
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/sites/44/env';
-$response = $client->put(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'env' => 'quam',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/sites/44/env"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "env": "quam"
-};
-
-fetch(url, {
-    method: "PUT",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-
- 
-
- - -
-

- Request    - -    - -

-

- PUT - api/projects/{project_id}/servers/{server_id}/sites/{site_id}/env -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- site_id   -integer  -   - -
-

The ID of the site. Example: 44

-
-

Body Parameters

-
- env   -string  -   - -
-

Content of the .env file Example: quam

-
-
- -

source-controls

- - - -

list

- -

-requires authentication -

- - - - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/source-controls" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/source-controls';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/source-controls"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "data": [
-        {
-            "id": 5,
-            "project_id": null,
-            "global": true,
-            "name": "Zella Robel",
-            "provider": "github",
-            "created_at": "2025-04-05T17:48:03.000000Z",
-            "updated_at": "2025-04-05T17:48:03.000000Z"
-        },
-        {
-            "id": 6,
-            "project_id": null,
-            "global": true,
-            "name": "Jairo Williamson",
-            "provider": "github",
-            "created_at": "2025-04-05T17:48:03.000000Z",
-            "updated_at": "2025-04-05T17:48:03.000000Z"
-        }
-    ],
-    "links": {
-        "first": "/?page=1",
-        "last": "/?page=1",
-        "prev": null,
-        "next": null
-    },
-    "meta": {
-        "current_page": 1,
-        "from": 1,
-        "last_page": 1,
-        "links": [
-            {
-                "url": null,
-                "label": "&laquo; Previous",
-                "active": false
-            },
-            {
-                "url": "/?page=1",
-                "label": "1",
-                "active": true
-            },
-            {
-                "url": null,
-                "label": "Next &raquo;",
-                "active": false
-            }
-        ],
-        "path": "/",
-        "per_page": 25,
-        "to": 2,
-        "total": 2
-    }
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/source-controls -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- -

create

- -

-requires authentication -

- - - - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/source-controls" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"provider\": \"gitlab\",
-    \"name\": \"molestias\",
-    \"token\": \"in\",
-    \"url\": \"https:\\/\\/www.white.com\\/aperiam-dolor-nemo-qui-rerum-quod-quas\",
-    \"username\": \"consectetur\",
-    \"password\": \"y*P4_]ZdjE_:\"
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/source-controls';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'provider' => 'gitlab',
-            'name' => 'molestias',
-            'token' => 'in',
-            'url' => 'https://www.white.com/aperiam-dolor-nemo-qui-rerum-quod-quas',
-            'username' => 'consectetur',
-            'password' => 'y*P4_]ZdjE_:',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/source-controls"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "provider": "gitlab",
-    "name": "molestias",
-    "token": "in",
-    "url": "https:\/\/www.white.com\/aperiam-dolor-nemo-qui-rerum-quod-quas",
-    "username": "consectetur",
-    "password": "y*P4_]ZdjE_:"
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": 5,
-    "project_id": null,
-    "global": true,
-    "name": "Miss Claudine Goyette",
-    "provider": "github",
-    "created_at": "2025-04-05T17:48:03.000000Z",
-    "updated_at": "2025-04-05T17:48:03.000000Z"
-}
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects/{project_id}/source-controls -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-

Body Parameters

-
- provider   -string  -   - -
-

The provider Example: gitlab

-Must be one of: -
  • gitlab
  • github
  • bitbucket
-
-
- name   -string  -   - -
-

The name of the storage provider. Example: molestias

-
-
- token   -string  -   - -
-

The token if provider requires api token Example: in

-
-
- url   -string  -   - -
-

The URL if the provider is Gitlab and it is self-hosted Example: https://www.white.com/aperiam-dolor-nemo-qui-rerum-quod-quas

-
-
- username   -string  -   - -
-

The username if the provider is Bitbucket Example: consectetur

-
-
- password   -string  -   - -
-

The password if the provider is Bitbucket Example: y*P4_]ZdjE_:

-
-
- -

show

- -

-requires authentication -

- - - - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/source-controls/1" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/source-controls/1';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/source-controls/1"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": 5,
-    "project_id": null,
-    "global": true,
-    "name": "Mona Stark",
-    "provider": "github",
-    "created_at": "2025-04-05T17:48:03.000000Z",
-    "updated_at": "2025-04-05T17:48:03.000000Z"
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/source-controls/{sourceControl_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- sourceControl_id   -integer  -   - -
-

The ID of the sourceControl. Example: 1

-
-
- -

update

- -

-requires authentication -

- - - - -
Example request:
- - -
-
curl --request PUT \
-    "https://your-vito-url/api/projects/1/source-controls/1" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"name\": \"non\",
-    \"token\": \"sunt\",
-    \"url\": \"https:\\/\\/www.frami.org\\/ex-at-minus-rerum-quo-minus-ea\",
-    \"username\": \"natus\",
-    \"password\": \"A^\\\">*m{p]DI\",
-    \"global\": true
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/source-controls/1';
-$response = $client->put(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'name' => 'non',
-            'token' => 'sunt',
-            'url' => 'https://www.frami.org/ex-at-minus-rerum-quo-minus-ea',
-            'username' => 'natus',
-            'password' => 'A^">*m{p]DI',
-            'global' => true,
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/source-controls/1"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "name": "non",
-    "token": "sunt",
-    "url": "https:\/\/www.frami.org\/ex-at-minus-rerum-quo-minus-ea",
-    "username": "natus",
-    "password": "A^\">*m{p]DI",
-    "global": true
-};
-
-fetch(url, {
-    method: "PUT",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": 5,
-    "project_id": null,
-    "global": true,
-    "name": "Neha Little",
-    "provider": "github",
-    "created_at": "2025-04-05T17:48:03.000000Z",
-    "updated_at": "2025-04-05T17:48:03.000000Z"
-}
- 
-
- - -
-

- Request    - -    - -

-

- PUT - api/projects/{project_id}/source-controls/{sourceControl_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- sourceControl_id   -integer  -   - -
-

The ID of the sourceControl. Example: 1

-
-

Body Parameters

-
- name   -string  -   - -
-

The name of the storage provider. Example: non

-
-
- token   -string  -   - -
-

The token if provider requires api token Example: sunt

-
-
- url   -string  -   - -
-

The URL if the provider is Gitlab and it is self-hosted Example: https://www.frami.org/ex-at-minus-rerum-quo-minus-ea

-
-
- username   -string  -   - -
-

The username if the provider is Bitbucket Example: natus

-
-
- password   -string  -   - *m{p]DI" - data-component="body"> -
-

The password if the provider is Bitbucket Example: A^">*m{p]DI

-
-
- global   -string  -   - -
-

Accessible in all projects Example: true

-Must be one of: -
  • 1
-
-
- -

delete

- -

-requires authentication -

- - - - -
Example request:
- - -
-
curl --request DELETE \
-    "https://your-vito-url/api/projects/1/source-controls/1" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/source-controls/1';
-$response = $client->delete(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/source-controls/1"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "DELETE",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- DELETE - api/projects/{project_id}/source-controls/{sourceControl_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- sourceControl_id   -integer  -   - -
-

The ID of the sourceControl. Example: 1

-
-
- -

ssh-keys

- - - -

list

- -

-requires authentication -

- -

Get all ssh keys.

- - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/servers/29/ssh-keys" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/ssh-keys';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/ssh-keys"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "data": [
-        {
-            "id": null,
-            "user": null,
-            "name": "Santa Goyette",
-            "created_at": null,
-            "updated_at": null
-        },
-        {
-            "id": null,
-            "user": null,
-            "name": "Cecil Cummings",
-            "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
-    }
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/servers/{server_id}/ssh-keys -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- -

create

- -

-requires authentication -

- -

Deploy ssh key to server.

- - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/servers/29/ssh-keys" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"key_id\": \"explicabo\",
-    \"name\": \"deleniti\",
-    \"public_key\": \"sapiente\"
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/ssh-keys';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'key_id' => 'explicabo',
-            'name' => 'deleniti',
-            'public_key' => 'sapiente',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/ssh-keys"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "key_id": "explicabo",
-    "name": "deleniti",
-    "public_key": "sapiente"
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": null,
-    "user": null,
-    "name": "Mr. Reagan Jacobson V",
-    "created_at": null,
-    "updated_at": null
-}
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects/{project_id}/servers/{server_id}/ssh-keys -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-

Body Parameters

-
- key_id   -string  -   - -
-

The ID of the key. Example: explicabo

-
-
- name   -string  -   - -
-

Key name, required if key_id is not provided. Example: deleniti

-
-
- public_key   -string  -   - -
-

Public Key, required if key_id is not provided. Example: sapiente

-
-
- -

delete

- -

-requires authentication -

- -

Delete ssh key from server.

- - -
Example request:
- - -
-
curl --request DELETE \
-    "https://your-vito-url/api/projects/1/servers/29/ssh-keys/1" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/servers/29/ssh-keys/1';
-$response = $client->delete(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/servers/29/ssh-keys/1"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "DELETE",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- DELETE - api/projects/{project_id}/servers/{server_id}/ssh-keys/{sshKey_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- server_id   -integer  -   - -
-

The ID of the server. Example: 29

-
-
- sshKey_id   -integer  -   - -
-

The ID of the sshKey. Example: 1

-
-
- -

storage-providers

- - - -

list

- -

-requires authentication -

- - - - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/storage-providers" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/storage-providers';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/storage-providers"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "data": [
-        {
-            "id": 5,
-            "project_id": null,
-            "global": true,
-            "name": "veritatis",
-            "provider": "ftp",
-            "created_at": "2025-04-05T17:48:03.000000Z",
-            "updated_at": "2025-04-05T17:48:03.000000Z"
-        },
-        {
-            "id": 6,
-            "project_id": null,
-            "global": true,
-            "name": "voluptas",
-            "provider": "dropbox",
-            "created_at": "2025-04-05T17:48:03.000000Z",
-            "updated_at": "2025-04-05T17:48:03.000000Z"
-        }
-    ],
-    "links": {
-        "first": "/?page=1",
-        "last": "/?page=1",
-        "prev": null,
-        "next": null
-    },
-    "meta": {
-        "current_page": 1,
-        "from": 1,
-        "last_page": 1,
-        "links": [
-            {
-                "url": null,
-                "label": "&laquo; Previous",
-                "active": false
-            },
-            {
-                "url": "/?page=1",
-                "label": "1",
-                "active": true
-            },
-            {
-                "url": null,
-                "label": "Next &raquo;",
-                "active": false
-            }
-        ],
-        "path": "/",
-        "per_page": 25,
-        "to": 2,
-        "total": 2
-    }
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/storage-providers -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- -

create

- -

-requires authentication -

- - - - -
Example request:
- - -
-
curl --request POST \
-    "https://your-vito-url/api/projects/1/storage-providers" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"provider\": \"ab\",
-    \"name\": \"quo\",
-    \"token\": \"in\",
-    \"key\": \"sunt\",
-    \"secret\": \"molestias\"
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/storage-providers';
-$response = $client->post(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'provider' => 'ab',
-            'name' => 'quo',
-            'token' => 'in',
-            'key' => 'sunt',
-            'secret' => 'molestias',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/storage-providers"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "provider": "ab",
-    "name": "quo",
-    "token": "in",
-    "key": "sunt",
-    "secret": "molestias"
-};
-
-fetch(url, {
-    method: "POST",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": 5,
-    "project_id": null,
-    "global": true,
-    "name": "asperiores",
-    "provider": "dropbox",
-    "created_at": "2025-04-05T17:48:03.000000Z",
-    "updated_at": "2025-04-05T17:48:03.000000Z"
-}
- 
-
- - -
-

- Request    - -    - -

-

- POST - api/projects/{project_id}/storage-providers -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-

Body Parameters

-
- provider   -string  -   - -
-

The provider (aws, linode, hetzner, digitalocean, vultr, ...) Example: ab

-
-
- name   -string  -   - -
-

The name of the storage provider. Example: quo

-
-
- token   -string  -   - -
-

The token if provider requires api token Example: in

-
-
- key   -string  -   - -
-

The key if provider requires key Example: sunt

-
-
- secret   -string  -   - -
-

The secret if provider requires key Example: molestias

-
-
- -

show

- -

-requires authentication -

- - - - -
Example request:
- - -
-
curl --request GET \
-    --get "https://your-vito-url/api/projects/1/storage-providers/3" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/storage-providers/3';
-$response = $client->get(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/storage-providers/3"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "GET",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": 5,
-    "project_id": null,
-    "global": true,
-    "name": "ipsum",
-    "provider": "local",
-    "created_at": "2025-04-05T17:48:03.000000Z",
-    "updated_at": "2025-04-05T17:48:03.000000Z"
-}
- 
-
- - -
-

- Request    - -    - -

-

- GET - api/projects/{project_id}/storage-providers/{storageProvider_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- storageProvider_id   -integer  -   - -
-

The ID of the storageProvider. Example: 3

-
-
- -

update

- -

-requires authentication -

- - - - -
Example request:
- - -
-
curl --request PUT \
-    "https://your-vito-url/api/projects/1/storage-providers/3" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json" \
-    --data "{
-    \"name\": \"voluptas\",
-    \"global\": true
-}"
-
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/storage-providers/3';
-$response = $client->put(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-        'json' => [
-            'name' => 'voluptas',
-            'global' => true,
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/storage-providers/3"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-let body = {
-    "name": "voluptas",
-    "global": true
-};
-
-fetch(url, {
-    method: "PUT",
-    headers,
-    body: JSON.stringify(body),
-}).then(response => response.json());
- -
- - -
-

Example response (200):

-
-
-
-{
-    "id": 5,
-    "project_id": null,
-    "global": true,
-    "name": "minima",
-    "provider": "ftp",
-    "created_at": "2025-04-05T17:48:03.000000Z",
-    "updated_at": "2025-04-05T17:48:03.000000Z"
-}
- 
-
- - -
-

- Request    - -    - -

-

- PUT - api/projects/{project_id}/storage-providers/{storageProvider_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- storageProvider_id   -integer  -   - -
-

The ID of the storageProvider. Example: 3

-
-

Body Parameters

-
- name   -string  -   - -
-

The name of the storage provider. Example: voluptas

-
-
- global   -string  -   - -
-

Accessible in all projects Example: true

-Must be one of: -
  • 1
-
-
- -

delete

- -

-requires authentication -

- - - - -
Example request:
- - -
-
curl --request DELETE \
-    "https://your-vito-url/api/projects/1/storage-providers/3" \
-    --header "Authorization: Bearer YOUR-API-KEY" \
-    --header "Content-Type: application/json" \
-    --header "Accept: application/json"
- - -
-
$client = new \GuzzleHttp\Client();
-$url = 'https://your-vito-url/api/projects/1/storage-providers/3';
-$response = $client->delete(
-    $url,
-    [
-        'headers' => [
-            'Authorization' => 'Bearer YOUR-API-KEY',
-            'Content-Type' => 'application/json',
-            'Accept' => 'application/json',
-        ],
-    ]
-);
-$body = $response->getBody();
-print_r(json_decode((string) $body));
- - -
-
const url = new URL(
-    "https://your-vito-url/api/projects/1/storage-providers/3"
-);
-
-const headers = {
-    "Authorization": "Bearer YOUR-API-KEY",
-    "Content-Type": "application/json",
-    "Accept": "application/json",
-};
-
-fetch(url, {
-    method: "DELETE",
-    headers,
-}).then(response => response.json());
- -
- - -
-

Example response (204):

-
-
-Empty response
- 
-
- - -
-

- Request    - -    - -

-

- DELETE - api/projects/{project_id}/storage-providers/{storageProvider_id} -

-

Headers

-
- Authorization   -  -   - -
-

Example: Bearer YOUR-API-KEY

-
-
- Content-Type   -  -   - -
-

Example: application/json

-
-
- Accept   -  -   - -
-

Example: application/json

-
-

URL Parameters

-
- project_id   -integer  -   - -
-

The ID of the project. Example: 1

-
-
- storageProvider_id   -integer  -   - -
-

The ID of the storageProvider. Example: 3

-
-
- - - - -
-
-
- - - -
-
-
- - diff --git a/public/api-docs/openapi.yaml b/public/api-docs/openapi.yaml deleted file mode 100644 index e20bb05..0000000 --- a/public/api-docs/openapi.yaml +++ /dev/null @@ -1,6030 +0,0 @@ -openapi: 3.0.3 -info: - title: 'API Documentation' - description: "VitoDeploy's API documentation." - version: 1.0.0 -servers: - - - url: 'https://your-vito-url' -paths: - '/api/projects/{project_id}/servers/{server_id}/cron-jobs': - get: - summary: list - operationId: list - description: 'Get all cron jobs.' - parameters: [] - responses: - 200: - description: '' - content: - application/json: - schema: - type: object - example: - data: - - - id: null - server_id: null - command: 'ls -la' - user: root - frequency: '* * * * *' - status: ready - created_at: null - updated_at: null - - - id: null - server_id: null - command: 'ls -la' - user: root - frequency: '* * * * *' - status: ready - created_at: null - updated_at: null - links: - first: '/?page=1' - last: '/?page=1' - prev: null - next: null - meta: - current_page: 1 - from: 1 - last_page: 1 - links: - - - url: null - label: '« Previous' - active: false - - - url: '/?page=1' - label: '1' - active: true - - - url: null - label: 'Next »' - active: false - path: / - per_page: 25 - to: 2 - total: 2 - properties: - data: - type: array - example: - - - id: null - server_id: null - command: 'ls -la' - user: root - frequency: '* * * * *' - status: ready - created_at: null - updated_at: null - - - id: null - server_id: null - command: 'ls -la' - user: root - frequency: '* * * * *' - status: ready - created_at: null - updated_at: null - items: - type: object - properties: - id: - type: string - example: null - server_id: - type: string - example: null - command: - type: string - example: 'ls -la' - user: - type: string - example: root - frequency: - type: string - example: '* * * * *' - status: - type: string - example: ready - created_at: - type: string - example: null - updated_at: - type: string - example: null - links: - type: object - properties: - first: - type: string - example: '/?page=1' - last: - type: string - example: '/?page=1' - prev: - type: string - example: null - next: - type: string - example: null - meta: - type: object - properties: - current_page: - type: integer - example: 1 - from: - type: integer - example: 1 - last_page: - type: integer - example: 1 - links: - type: array - example: - - - url: null - label: '« Previous' - active: false - - - url: '/?page=1' - label: '1' - active: true - - - url: null - label: 'Next »' - active: false - items: - type: object - properties: - url: - type: string - example: null - label: - type: string - example: '« Previous' - active: - type: boolean - example: false - path: - type: string - example: / - per_page: - type: integer - example: 25 - to: - type: integer - example: 2 - total: - type: integer - example: 2 - tags: - - cron-jobs - post: - summary: create - operationId: create - description: 'Create a new cron job.' - parameters: [] - responses: - 200: - description: '' - content: - application/json: - schema: - type: object - example: - id: null - server_id: null - command: 'ls -la' - user: root - frequency: '* * * * *' - status: ready - created_at: null - updated_at: null - properties: - id: - type: string - example: null - server_id: - type: string - example: null - command: - type: string - example: 'ls -la' - user: - type: string - example: root - frequency: - type: string - example: '* * * * *' - status: - type: string - example: ready - created_at: - type: string - example: null - updated_at: - type: string - example: null - tags: - - cron-jobs - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - command: - type: string - description: '' - example: quia - nullable: false - user: - type: string - description: '' - example: root - nullable: false - enum: - - root - - vito - frequency: - type: string - description: 'Frequency of the cron job.' - example: '* * * * *' - nullable: false - required: - - command - - user - - frequency - parameters: - - - in: path - name: project_id - description: 'The ID of the project.' - example: 1 - required: true - schema: - type: integer - - - in: path - name: server_id - description: 'The ID of the server.' - example: 29 - required: true - schema: - type: integer - '/api/projects/{project_id}/servers/{server_id}/cron-jobs/{cronJob_id}': - get: - summary: show - operationId: show - description: 'Get a cron job by ID.' - parameters: [] - responses: - 200: - description: '' - content: - application/json: - schema: - type: object - example: - id: null - server_id: null - command: 'ls -la' - user: root - frequency: '* * * * *' - status: ready - created_at: null - updated_at: null - properties: - id: - type: string - example: null - server_id: - type: string - example: null - command: - type: string - example: 'ls -la' - user: - type: string - example: root - frequency: - type: string - example: '* * * * *' - status: - type: string - example: ready - created_at: - type: string - example: null - updated_at: - type: string - example: null - tags: - - cron-jobs - delete: - summary: delete - operationId: delete - description: 'Delete cron job.' - parameters: [] - responses: - 204: - description: '' - tags: - - cron-jobs - parameters: - - - in: path - name: project_id - description: 'The ID of the project.' - example: 1 - required: true - schema: - type: integer - - - in: path - name: server_id - description: 'The ID of the server.' - example: 29 - required: true - schema: - type: integer - - - in: path - name: cronJob_id - description: 'The ID of the cronJob.' - example: 6 - required: true - schema: - type: integer - '/api/projects/{project_id}/servers/{server_id}/database-users': - get: - summary: list - operationId: list - description: 'Get all database users.' - parameters: [] - responses: - 200: - description: '' - content: - application/json: - schema: - type: object - example: - data: - - - id: null - server_id: null - username: letha64 - databases: [] - host: '%' - status: null - created_at: null - updated_at: null - - - id: null - server_id: null - username: hagenes.lurline - databases: [] - host: '%' - status: null - created_at: null - updated_at: null - links: - first: '/?page=1' - last: '/?page=1' - prev: null - next: null - meta: - current_page: 1 - from: 1 - last_page: 1 - links: - - - url: null - label: '« Previous' - active: false - - - url: '/?page=1' - label: '1' - active: true - - - url: null - label: 'Next »' - active: false - path: / - per_page: 25 - to: 2 - total: 2 - properties: - data: - type: array - example: - - - id: null - server_id: null - username: letha64 - databases: [] - host: '%' - status: null - created_at: null - updated_at: null - - - id: null - server_id: null - username: hagenes.lurline - databases: [] - host: '%' - status: null - created_at: null - updated_at: null - items: - type: object - properties: - id: - type: string - example: null - server_id: - type: string - example: null - username: - type: string - example: letha64 - databases: - type: array - example: [] - host: - type: string - example: '%' - status: - type: string - example: null - created_at: - type: string - example: null - updated_at: - type: string - example: null - links: - type: object - properties: - first: - type: string - example: '/?page=1' - last: - type: string - example: '/?page=1' - prev: - type: string - example: null - next: - type: string - example: null - meta: - type: object - properties: - current_page: - type: integer - example: 1 - from: - type: integer - example: 1 - last_page: - type: integer - example: 1 - links: - type: array - example: - - - url: null - label: '« Previous' - active: false - - - url: '/?page=1' - label: '1' - active: true - - - url: null - label: 'Next »' - active: false - items: - type: object - properties: - url: - type: string - example: null - label: - type: string - example: '« Previous' - active: - type: boolean - example: false - path: - type: string - example: / - per_page: - type: integer - example: 25 - to: - type: integer - example: 2 - total: - type: integer - example: 2 - tags: - - database-users - post: - summary: create - operationId: create - description: 'Create a new database user.' - parameters: [] - responses: - 200: - description: '' - content: - application/json: - schema: - type: object - example: - id: null - server_id: null - username: marcelle95 - databases: [] - host: '%' - status: null - created_at: null - updated_at: null - properties: - id: - type: string - example: null - server_id: - type: string - example: null - username: - type: string - example: marcelle95 - databases: - type: array - example: [] - host: - type: string - example: '%' - status: - type: string - example: null - created_at: - type: string - example: null - updated_at: - type: string - example: null - tags: - - database-users - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - username: - type: string - description: '' - example: qui - nullable: false - password: - type: string - description: '' - example: 'xYv*3,#HQ=5*m{p]DI' - nullable: false - global: - type: string - description: 'Accessible in all projects' - example: true - nullable: false - enum: - - true - - false - required: - - name - - token - - url - - username - - password - - global - delete: - summary: delete - operationId: delete - description: '' - parameters: [] - responses: - 204: - description: '' - tags: - - source-controls - parameters: - - - in: path - name: project_id - description: 'The ID of the project.' - example: 1 - required: true - schema: - type: integer - - - in: path - name: sourceControl_id - description: 'The ID of the sourceControl.' - example: 1 - required: true - schema: - type: integer - '/api/projects/{project_id}/servers/{server_id}/ssh-keys': - get: - summary: list - operationId: list - description: 'Get all ssh keys.' - parameters: [] - responses: - 200: - description: '' - content: - application/json: - schema: - type: object - example: - data: - - - id: null - user: null - name: 'Santa Goyette' - created_at: null - updated_at: null - - - id: null - user: null - name: 'Cecil Cummings' - created_at: null - updated_at: null - links: - first: '/?page=1' - last: '/?page=1' - prev: null - next: null - meta: - current_page: 1 - from: 1 - last_page: 1 - links: - - - url: null - label: '« Previous' - active: false - - - url: '/?page=1' - label: '1' - active: true - - - url: null - label: 'Next »' - active: false - path: / - per_page: 25 - to: 2 - total: 2 - properties: - data: - type: array - example: - - - id: null - user: null - name: 'Santa Goyette' - created_at: null - updated_at: null - - - id: null - user: null - name: 'Cecil Cummings' - created_at: null - updated_at: null - items: - type: object - properties: - id: - type: string - example: null - user: - type: string - example: null - name: - type: string - example: 'Santa Goyette' - created_at: - type: string - example: null - updated_at: - type: string - example: null - links: - type: object - properties: - first: - type: string - example: '/?page=1' - last: - type: string - example: '/?page=1' - prev: - type: string - example: null - next: - type: string - example: null - meta: - type: object - properties: - current_page: - type: integer - example: 1 - from: - type: integer - example: 1 - last_page: - type: integer - example: 1 - links: - type: array - example: - - - url: null - label: '« Previous' - active: false - - - url: '/?page=1' - label: '1' - active: true - - - url: null - label: 'Next »' - active: false - items: - type: object - properties: - url: - type: string - example: null - label: - type: string - example: '« Previous' - active: - type: boolean - example: false - path: - type: string - example: / - per_page: - type: integer - example: 25 - to: - type: integer - example: 2 - total: - type: integer - example: 2 - tags: - - ssh-keys - post: - summary: create - operationId: create - description: 'Deploy ssh key to server.' - parameters: [] - responses: - 200: - description: '' - content: - application/json: - schema: - type: object - example: - id: null - user: null - name: 'Mr. Reagan Jacobson V' - created_at: null - updated_at: null - properties: - id: - type: string - example: null - user: - type: string - example: null - name: - type: string - example: 'Mr. Reagan Jacobson V' - created_at: - type: string - example: null - updated_at: - type: string - example: null - tags: - - ssh-keys - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - key_id: - type: string - description: 'The ID of the key.' - example: explicabo - nullable: false - name: - type: string - description: 'Key name, required if key_id is not provided.' - example: deleniti - nullable: false - public_key: - type: string - description: 'Public Key, required if key_id is not provided.' - example: sapiente - nullable: false - required: - - key_id - - name - - public_key - parameters: - - - in: path - name: project_id - description: 'The ID of the project.' - example: 1 - required: true - schema: - type: integer - - - in: path - name: server_id - description: 'The ID of the server.' - example: 29 - required: true - schema: - type: integer - '/api/projects/{project_id}/servers/{server_id}/ssh-keys/{sshKey_id}': - delete: - summary: delete - operationId: delete - description: 'Delete ssh key from server.' - parameters: [] - responses: - 204: - description: '' - tags: - - ssh-keys - parameters: - - - in: path - name: project_id - description: 'The ID of the project.' - example: 1 - required: true - schema: - type: integer - - - in: path - name: server_id - description: 'The ID of the server.' - example: 29 - required: true - schema: - type: integer - - - in: path - name: sshKey_id - description: 'The ID of the sshKey.' - example: 1 - required: true - schema: - type: integer - '/api/projects/{project_id}/storage-providers': - get: - summary: list - operationId: list - description: '' - parameters: [] - responses: - 200: - description: '' - content: - application/json: - schema: - type: object - example: - data: - - - id: 5 - project_id: null - global: true - name: veritatis - provider: ftp - created_at: '2025-04-05T17:48:03.000000Z' - updated_at: '2025-04-05T17:48:03.000000Z' - - - id: 6 - project_id: null - global: true - name: voluptas - provider: dropbox - created_at: '2025-04-05T17:48:03.000000Z' - updated_at: '2025-04-05T17:48:03.000000Z' - links: - first: '/?page=1' - last: '/?page=1' - prev: null - next: null - meta: - current_page: 1 - from: 1 - last_page: 1 - links: - - - url: null - label: '« Previous' - active: false - - - url: '/?page=1' - label: '1' - active: true - - - url: null - label: 'Next »' - active: false - path: / - per_page: 25 - to: 2 - total: 2 - properties: - data: - type: array - example: - - - id: 5 - project_id: null - global: true - name: veritatis - provider: ftp - created_at: '2025-04-05T17:48:03.000000Z' - updated_at: '2025-04-05T17:48:03.000000Z' - - - id: 6 - project_id: null - global: true - name: voluptas - provider: dropbox - created_at: '2025-04-05T17:48:03.000000Z' - updated_at: '2025-04-05T17:48:03.000000Z' - items: - type: object - properties: - id: - type: integer - example: 5 - project_id: - type: string - example: null - global: - type: boolean - example: true - name: - type: string - example: veritatis - provider: - type: string - example: ftp - created_at: - type: string - example: '2025-04-05T17:48:03.000000Z' - updated_at: - type: string - example: '2025-04-05T17:48:03.000000Z' - links: - type: object - properties: - first: - type: string - example: '/?page=1' - last: - type: string - example: '/?page=1' - prev: - type: string - example: null - next: - type: string - example: null - meta: - type: object - properties: - current_page: - type: integer - example: 1 - from: - type: integer - example: 1 - last_page: - type: integer - example: 1 - links: - type: array - example: - - - url: null - label: '« Previous' - active: false - - - url: '/?page=1' - label: '1' - active: true - - - url: null - label: 'Next »' - active: false - items: - type: object - properties: - url: - type: string - example: null - label: - type: string - example: '« Previous' - active: - type: boolean - example: false - path: - type: string - example: / - per_page: - type: integer - example: 25 - to: - type: integer - example: 2 - total: - type: integer - example: 2 - tags: - - storage-providers - post: - summary: create - operationId: create - description: '' - parameters: [] - responses: - 200: - description: '' - content: - application/json: - schema: - type: object - example: - id: 5 - project_id: null - global: true - name: asperiores - provider: dropbox - created_at: '2025-04-05T17:48:03.000000Z' - updated_at: '2025-04-05T17:48:03.000000Z' - properties: - id: - type: integer - example: 5 - project_id: - type: string - example: null - global: - type: boolean - example: true - name: - type: string - example: asperiores - provider: - type: string - example: dropbox - created_at: - type: string - example: '2025-04-05T17:48:03.000000Z' - updated_at: - type: string - example: '2025-04-05T17:48:03.000000Z' - tags: - - storage-providers - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - provider: - type: string - description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)' - example: ab - nullable: false - name: - type: string - description: 'The name of the storage provider.' - example: quo - nullable: false - token: - type: string - description: 'The token if provider requires api token' - example: in - nullable: false - key: - type: string - description: 'The key if provider requires key' - example: sunt - nullable: false - secret: - type: string - description: 'The secret if provider requires key' - example: molestias - nullable: false - required: - - provider - - name - - token - - key - - secret - parameters: - - - in: path - name: project_id - description: 'The ID of the project.' - example: 1 - required: true - schema: - type: integer - '/api/projects/{project_id}/storage-providers/{storageProvider_id}': - get: - summary: show - operationId: show - description: '' - parameters: [] - responses: - 200: - description: '' - content: - application/json: - schema: - type: object - example: - id: 5 - project_id: null - global: true - name: ipsum - provider: local - created_at: '2025-04-05T17:48:03.000000Z' - updated_at: '2025-04-05T17:48:03.000000Z' - properties: - id: - type: integer - example: 5 - project_id: - type: string - example: null - global: - type: boolean - example: true - name: - type: string - example: ipsum - provider: - type: string - example: local - created_at: - type: string - example: '2025-04-05T17:48:03.000000Z' - updated_at: - type: string - example: '2025-04-05T17:48:03.000000Z' - tags: - - storage-providers - put: - summary: update - operationId: update - description: '' - parameters: [] - responses: - 200: - description: '' - content: - application/json: - schema: - type: object - example: - id: 5 - project_id: null - global: true - name: minima - provider: ftp - created_at: '2025-04-05T17:48:03.000000Z' - updated_at: '2025-04-05T17:48:03.000000Z' - properties: - id: - type: integer - example: 5 - project_id: - type: string - example: null - global: - type: boolean - example: true - name: - type: string - example: minima - provider: - type: string - example: ftp - created_at: - type: string - example: '2025-04-05T17:48:03.000000Z' - updated_at: - type: string - example: '2025-04-05T17:48:03.000000Z' - tags: - - storage-providers - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - name: - type: string - description: 'The name of the storage provider.' - example: voluptas - nullable: false - global: - type: string - description: 'Accessible in all projects' - example: true - nullable: false - enum: - - true - - false - required: - - name - - global - delete: - summary: delete - operationId: delete - description: '' - parameters: [] - responses: - 204: - description: '' - tags: - - storage-providers - parameters: - - - in: path - name: project_id - description: 'The ID of the project.' - example: 1 - required: true - schema: - type: integer - - - in: path - name: storageProvider_id - description: 'The ID of the storageProvider.' - example: 3 - required: true - schema: - type: integer -tags: - - - name: cron-jobs - description: '' - - - name: database-users - description: '' - - - name: databases - description: '' - - - name: firewall-rules - description: '' - - - name: general - description: '' - - - name: projects - description: '' - - - name: redirects - description: '' - - - name: server-providers - description: '' - - - name: servers - description: '' - - - name: services - description: '' - - - name: sites - description: '' - - - name: source-controls - description: '' - - - name: ssh-keys - description: '' - - - name: storage-providers - description: '' -components: - securitySchemes: - default: - type: http - scheme: bearer - description: 'You can retrieve your token by visiting here' -security: - - - default: [] diff --git a/public/api-docs/css/theme-default.print.css b/public/vendor/scribe/css/theme-default.print.css similarity index 100% rename from public/api-docs/css/theme-default.print.css rename to public/vendor/scribe/css/theme-default.print.css diff --git a/public/api-docs/css/theme-default.style.css b/public/vendor/scribe/css/theme-default.style.css similarity index 100% rename from public/api-docs/css/theme-default.style.css rename to public/vendor/scribe/css/theme-default.style.css diff --git a/public/api-docs/images/navbar.png b/public/vendor/scribe/images/navbar.png similarity index 100% rename from public/api-docs/images/navbar.png rename to public/vendor/scribe/images/navbar.png diff --git a/public/api-docs/js/theme-default-4.40.0.js b/public/vendor/scribe/js/theme-default-5.2.0.js similarity index 100% rename from public/api-docs/js/theme-default-4.40.0.js rename to public/vendor/scribe/js/theme-default-5.2.0.js diff --git a/public/api-docs/js/tryitout-4.40.0.js b/public/vendor/scribe/js/tryitout-5.2.0.js similarity index 100% rename from public/api-docs/js/tryitout-4.40.0.js rename to public/vendor/scribe/js/tryitout-5.2.0.js diff --git a/resources/views/scribe/index.blade.php b/resources/views/scribe/index.blade.php new file mode 100644 index 0000000..658418b --- /dev/null +++ b/resources/views/scribe/index.blade.php @@ -0,0 +1,17450 @@ + + + + + + + API Documentation + + + + + + + + + + + + + + + + + + + + + + + + + MENU + navbar-image + + +
+
+ + +
+ + + +
+ + + + + + + + + + + + + + + + +
+ + + + +
+ +
+
+
+

Introduction

+

VitoDeploy's API documentation.

+ +
This documentation aims to provide all the information you need to work with our API.
+
+<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
+You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>
+ +

Authenticating requests

+

This API is not authenticated.

+ +

cron-jobs

+ +

list

+ +

+ +

Get all cron jobs.

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/servers/32/cron-jobs" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/cron-jobs"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "data": [
+        {
+            "id": 5,
+            "server_id": 1,
+            "command": "ls -la",
+            "user": "root",
+            "frequency": "* * * * *",
+            "status": "ready",
+            "created_at": "2025-04-21T18:40:19.000000Z",
+            "updated_at": "2025-04-21T18:40:19.000000Z"
+        },
+        {
+            "id": 6,
+            "server_id": 1,
+            "command": "ls -la",
+            "user": "root",
+            "frequency": "* * * * *",
+            "status": "ready",
+            "created_at": "2025-04-21T18:40:19.000000Z",
+            "updated_at": "2025-04-21T18:40:19.000000Z"
+        }
+    ],
+    "links": {
+        "first": "/?page=1",
+        "last": "/?page=1",
+        "prev": null,
+        "next": null
+    },
+    "meta": {
+        "current_page": 1,
+        "from": 1,
+        "last_page": 1,
+        "links": [
+            {
+                "url": null,
+                "label": "&laquo; Previous",
+                "active": false
+            },
+            {
+                "url": "/?page=1",
+                "label": "1",
+                "active": true
+            },
+            {
+                "url": null,
+                "label": "Next &raquo;",
+                "active": false
+            }
+        ],
+        "path": "/",
+        "per_page": 25,
+        "to": 2,
+        "total": 2
+    }
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/servers/{server_id}/cron-jobs +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ +

create

+ +

+ +

Create a new cron job.

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/servers/32/cron-jobs" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"command\": \"consequatur\",
+    \"user\": \"vito\",
+    \"frequency\": \"* * * * *\"
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/cron-jobs"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "command": "consequatur",
+    "user": "vito",
+    "frequency": "* * * * *"
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 5,
+    "server_id": 1,
+    "command": "ls -la",
+    "user": "root",
+    "frequency": "* * * * *",
+    "status": "ready",
+    "created_at": "2025-04-21T18:40:19.000000Z",
+    "updated_at": "2025-04-21T18:40:19.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects/{project_id}/servers/{server_id}/cron-jobs +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+

Body Parameters

+
+ command +    + string +     + +
+

+ Example: + consequatur +

+
+
+ user +    + string +     + +
+

+ Example: + vito +

+ Must be one of: +
    +
  • root
  • +
  • vito
  • +
+
+
+ frequency +    + string +     + +
+

+ Frequency of the cron job. Example: + * * * * * +

+
+
+ +

show

+ +

+ +

Get a cron job by ID.

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/servers/32/cron-jobs/17" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/cron-jobs/17"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 5,
+    "server_id": 1,
+    "command": "ls -la",
+    "user": "root",
+    "frequency": "* * * * *",
+    "status": "ready",
+    "created_at": "2025-04-21T18:40:19.000000Z",
+    "updated_at": "2025-04-21T18:40:19.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/servers/{server_id}/cron-jobs/{cronJob_id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ cronJob_id +    + integer +     + +
+

+ The ID of the cronJob. Example: + 17 +

+
+
+ +

+ delete +

+ +

+ +

Delete cron job.

+ + +
Example request:
+ +
+
curl --request DELETE \
+    "https://vito.test/api/projects/1/servers/32/cron-jobs/17" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/cron-jobs/17"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "DELETE",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ DELETE + api/projects/{project_id}/servers/{server_id}/cron-jobs/{cronJob_id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ cronJob_id +    + integer +     + +
+

+ The ID of the cronJob. Example: + 17 +

+
+
+ +

database-users

+ +

list

+ +

+ +

Get all database users.

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/servers/32/database-users" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/database-users"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "data": [
+        {
+            "id": 19,
+            "server_id": 1,
+            "username": "graciela37",
+            "databases": [],
+            "host": "%",
+            "status": "creating",
+            "created_at": "2025-04-21T18:40:19.000000Z",
+            "updated_at": "2025-04-21T18:40:19.000000Z"
+        },
+        {
+            "id": 20,
+            "server_id": 1,
+            "username": "vconn",
+            "databases": [],
+            "host": "%",
+            "status": "creating",
+            "created_at": "2025-04-21T18:40:19.000000Z",
+            "updated_at": "2025-04-21T18:40:19.000000Z"
+        }
+    ],
+    "links": {
+        "first": "/?page=1",
+        "last": "/?page=1",
+        "prev": null,
+        "next": null
+    },
+    "meta": {
+        "current_page": 1,
+        "from": 1,
+        "last_page": 1,
+        "links": [
+            {
+                "url": null,
+                "label": "&laquo; Previous",
+                "active": false
+            },
+            {
+                "url": "/?page=1",
+                "label": "1",
+                "active": true
+            },
+            {
+                "url": null,
+                "label": "Next &raquo;",
+                "active": false
+            }
+        ],
+        "path": "/",
+        "per_page": 25,
+        "to": 2,
+        "total": 2
+    }
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/servers/{server_id}/database-users +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ +

create

+ +

+ +

Create a new database user.

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/servers/32/database-users" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"username\": \"consequatur\",
+    \"password\": \"O[2UZ5ij-e\\/dl4m{o,\",
+    \"host\": \"%\"
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/database-users"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "username": "consequatur",
+    "password": "O[2UZ5ij-e\/dl4m{o,",
+    "host": "%"
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 19,
+    "server_id": 1,
+    "username": "nolan.jaylan",
+    "databases": [],
+    "host": "%",
+    "status": "creating",
+    "created_at": "2025-04-21T18:40:19.000000Z",
+    "updated_at": "2025-04-21T18:40:19.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects/{project_id}/servers/{server_id}/database-users +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+

Body Parameters

+
+ username +    + string +     + +
+

+ Example: + consequatur +

+
+
+ password +    + string +     + +
+

+ Example: + O[2UZ5ij-e/dl4m{o, +

+
+
+ host +    + string +     + +
+

+ Host, if it is a remote user. Example: + % +

+
+
+ +

+ show +

+ +

+ +

Get a database user by ID.

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/servers/32/database-users/17" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/database-users/17"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 19,
+    "server_id": 1,
+    "username": "carolyne.luettgen",
+    "databases": [],
+    "host": "%",
+    "status": "creating",
+    "created_at": "2025-04-21T18:40:19.000000Z",
+    "updated_at": "2025-04-21T18:40:19.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + + api/projects/{project_id}/servers/{server_id}/database-users/{databaseUser_id} + +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ databaseUser_id +    + integer +     + +
+

+ The ID of the databaseUser. Example: + 17 +

+
+
+ + + +

+ +

Link to databases

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/servers/32/database-users/17/link" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"databases\": \"consequatur\"
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/database-users/17/link"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "databases": "consequatur"
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 19,
+    "server_id": 1,
+    "username": "carolyne.luettgen",
+    "databases": [],
+    "host": "%",
+    "status": "creating",
+    "created_at": "2025-04-21T18:40:19.000000Z",
+    "updated_at": "2025-04-21T18:40:19.000000Z"
+}
+ 
+
+ + + + +

+ delete +

+ +

+ +

Delete database user.

+ + +
Example request:
+ +
+
curl --request DELETE \
+    "https://vito.test/api/projects/1/servers/32/database-users/17" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/database-users/17"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "DELETE",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ DELETE + + api/projects/{project_id}/servers/{server_id}/database-users/{databaseUser_id} + +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ databaseUser_id +    + integer +     + +
+

+ The ID of the databaseUser. Example: + 17 +

+
+
+ +

databases

+ +

list

+ +

+ +

Get all databases.

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/servers/32/databases" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/databases"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "data": [
+        {
+            "id": 21,
+            "server_id": 1,
+            "name": "carolyne.luettgen",
+            "status": "ready",
+            "created_at": "2025-04-21T18:40:19.000000Z",
+            "updated_at": "2025-04-21T18:40:19.000000Z"
+        },
+        {
+            "id": 22,
+            "server_id": 1,
+            "name": "orville77",
+            "status": "ready",
+            "created_at": "2025-04-21T18:40:19.000000Z",
+            "updated_at": "2025-04-21T18:40:19.000000Z"
+        }
+    ],
+    "links": {
+        "first": "/?page=1",
+        "last": "/?page=1",
+        "prev": null,
+        "next": null
+    },
+    "meta": {
+        "current_page": 1,
+        "from": 1,
+        "last_page": 1,
+        "links": [
+            {
+                "url": null,
+                "label": "&laquo; Previous",
+                "active": false
+            },
+            {
+                "url": "/?page=1",
+                "label": "1",
+                "active": true
+            },
+            {
+                "url": null,
+                "label": "Next &raquo;",
+                "active": false
+            }
+        ],
+        "path": "/",
+        "per_page": 25,
+        "to": 2,
+        "total": 2
+    }
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/servers/{server_id}/databases +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ +

create

+ +

+ +

Create a new database.

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/servers/32/databases" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"name\": \"consequatur\",
+    \"charset\": \"consequatur\",
+    \"collation\": \"consequatur\"
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/databases"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "name": "consequatur",
+    "charset": "consequatur",
+    "collation": "consequatur"
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 21,
+    "server_id": 1,
+    "name": "carolyne.luettgen",
+    "status": "ready",
+    "created_at": "2025-04-21T18:40:19.000000Z",
+    "updated_at": "2025-04-21T18:40:19.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects/{project_id}/servers/{server_id}/databases +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+

Body Parameters

+
+ name +    + string +     + +
+

+ Example: + consequatur +

+
+
+ charset +    + string +     + +
+

+ Example: + consequatur +

+
+
+ collation +    + string +     + +
+

+ Example: + consequatur +

+
+
+ +

show

+ +

+ +

Get a database by ID.

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/servers/32/databases/17" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/databases/17"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 21,
+    "server_id": 1,
+    "name": "carolyne.luettgen",
+    "status": "ready",
+    "created_at": "2025-04-21T18:40:19.000000Z",
+    "updated_at": "2025-04-21T18:40:19.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/servers/{server_id}/databases/{id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ id +    + integer +     + +
+

+ The ID of the database. Example: + 17 +

+
+
+ +

+ delete +

+ +

+ +

Delete database.

+ + +
Example request:
+ +
+
curl --request DELETE \
+    "https://vito.test/api/projects/1/servers/32/databases/17" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/databases/17"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "DELETE",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ DELETE + api/projects/{project_id}/servers/{server_id}/databases/{database_id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ database_id +    + integer +     + +
+

+ The ID of the database. Example: + 17 +

+
+
+ +

firewall-rules

+ +

list

+ +

+ +

Get all firewall rules.

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/servers/32/firewall-rules" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/firewall-rules"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "data": [
+        {
+            "id": 97,
+            "name": "dolores",
+            "server_id": 1,
+            "type": "allow",
+            "protocol": "tcp",
+            "port": 40770,
+            "source": "199.76.131.15",
+            "mask": "24",
+            "note": "test",
+            "status": "creating",
+            "created_at": "2025-04-21T18:40:19.000000Z",
+            "updated_at": "2025-04-21T18:40:19.000000Z"
+        },
+        {
+            "id": 98,
+            "name": "laborum",
+            "server_id": 1,
+            "type": "allow",
+            "protocol": "tcp",
+            "port": 14235,
+            "source": "100.14.146.200",
+            "mask": "24",
+            "note": "test",
+            "status": "creating",
+            "created_at": "2025-04-21T18:40:19.000000Z",
+            "updated_at": "2025-04-21T18:40:19.000000Z"
+        }
+    ],
+    "links": {
+        "first": "/?page=1",
+        "last": "/?page=1",
+        "prev": null,
+        "next": null
+    },
+    "meta": {
+        "current_page": 1,
+        "from": 1,
+        "last_page": 1,
+        "links": [
+            {
+                "url": null,
+                "label": "&laquo; Previous",
+                "active": false
+            },
+            {
+                "url": "/?page=1",
+                "label": "1",
+                "active": true
+            },
+            {
+                "url": null,
+                "label": "Next &raquo;",
+                "active": false
+            }
+        ],
+        "path": "/",
+        "per_page": 25,
+        "to": 2,
+        "total": 2
+    }
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/servers/{server_id}/firewall-rules +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ +

create

+ +

+ +

Create a new firewall rule.

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/servers/32/firewall-rules" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"name\": \"consequatur\",
+    \"type\": \"allow\",
+    \"protocol\": \"tcp\",
+    \"port\": \"consequatur\",
+    \"source\": \"consequatur\",
+    \"mask\": \"0\"
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/firewall-rules"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "name": "consequatur",
+    "type": "allow",
+    "protocol": "tcp",
+    "port": "consequatur",
+    "source": "consequatur",
+    "mask": "0"
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 97,
+    "name": "dolores",
+    "server_id": 1,
+    "type": "allow",
+    "protocol": "tcp",
+    "port": 40770,
+    "source": "199.76.131.15",
+    "mask": "24",
+    "note": "test",
+    "status": "creating",
+    "created_at": "2025-04-21T18:40:19.000000Z",
+    "updated_at": "2025-04-21T18:40:19.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects/{project_id}/servers/{server_id}/firewall-rules +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+

Body Parameters

+
+ name +    + string +     + +
+

+ Example: + consequatur +

+
+
+ type +    + string +     + +
+

+ Example: + allow +

+ Must be one of: +
    +
  • allow
  • +
  • deny
  • +
+
+
+ protocol +    + string +     + +
+

+ Example: + tcp +

+ Must be one of: +
    +
  • tcp
  • +
  • udp
  • +
+
+
+ port +    + string +     + +
+

+ Example: + consequatur +

+
+
+ source +    + string +   + optional +   + +
+

+ Example: + consequatur +

+
+
+ mask +    + string +     + +
+

+ Mask for source IP. Example: + 0 +

+
+
+ +

+ edit +

+ +

+ +

Update an existing firewall rule.

+ + +
Example request:
+ +
+
curl --request PUT \
+    "https://vito.test/api/projects/1/servers/32/firewall-rules/94" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"name\": \"consequatur\",
+    \"type\": \"allow\",
+    \"protocol\": \"tcp\",
+    \"port\": \"consequatur\",
+    \"source\": \"consequatur\",
+    \"mask\": \"0\"
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/firewall-rules/94"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "name": "consequatur",
+    "type": "allow",
+    "protocol": "tcp",
+    "port": "consequatur",
+    "source": "consequatur",
+    "mask": "0"
+};
+
+fetch(url, {
+    method: "PUT",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 97,
+    "name": "dolores",
+    "server_id": 1,
+    "type": "allow",
+    "protocol": "tcp",
+    "port": 40770,
+    "source": "199.76.131.15",
+    "mask": "24",
+    "note": "test",
+    "status": "creating",
+    "created_at": "2025-04-21T18:40:19.000000Z",
+    "updated_at": "2025-04-21T18:40:19.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ PUT + + api/projects/{project_id}/servers/{server_id}/firewall-rules/{firewallRule_id} + +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ firewallRule_id +    + integer +     + +
+

+ The ID of the firewallRule. Example: + 94 +

+
+

Body Parameters

+
+ name +    + string +     + +
+

+ Example: + consequatur +

+
+
+ type +    + string +     + +
+

+ Example: + allow +

+ Must be one of: +
    +
  • allow
  • +
  • deny
  • +
+
+
+ protocol +    + string +     + +
+

+ Example: + tcp +

+ Must be one of: +
    +
  • tcp
  • +
  • udp
  • +
+
+
+ port +    + string +     + +
+

+ Example: + consequatur +

+
+
+ source +    + string +   + optional +   + +
+

+ Example: + consequatur +

+
+
+ mask +    + string +     + +
+

+ Mask for source IP. Example: + 0 +

+
+
+ +

+ show +

+ +

+ +

Get a firewall rule by ID.

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/servers/32/firewall-rules/94" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/firewall-rules/94"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 97,
+    "name": "laborum",
+    "server_id": 1,
+    "type": "allow",
+    "protocol": "tcp",
+    "port": 14235,
+    "source": "100.14.146.200",
+    "mask": "24",
+    "note": "test",
+    "status": "creating",
+    "created_at": "2025-04-21T18:40:19.000000Z",
+    "updated_at": "2025-04-21T18:40:19.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + + api/projects/{project_id}/servers/{server_id}/firewall-rules/{firewallRule_id} + +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ firewallRule_id +    + integer +     + +
+

+ The ID of the firewallRule. Example: + 94 +

+
+
+ +

+ delete +

+ +

+ +

Delete firewall rule.

+ + +
Example request:
+ +
+
curl --request DELETE \
+    "https://vito.test/api/projects/1/servers/32/firewall-rules/94" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/firewall-rules/94"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "DELETE",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ DELETE + + api/projects/{project_id}/servers/{server_id}/firewall-rules/{firewallRule_id} + +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ firewallRule_id +    + integer +     + +
+

+ The ID of the firewallRule. Example: + 94 +

+
+
+ +

general

+ +

health-check

+ +

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/health" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/health"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+ + + Show headers + + +
cache-control: no-cache, private
+content-type: application/json
+x-ratelimit-limit: 60
+x-ratelimit-remaining: 57
+access-control-allow-origin: *
+ 
+
+
+
+{
+    "success": true,
+    "version": "2.5.0"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/health +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+
+ +

projects

+ +

list

+ +

+ +

Get all projects.

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "data": [
+        {
+            "id": 3,
+            "name": "Nash Corwin",
+            "created_at": "2025-04-21T18:40:19.000000Z",
+            "updated_at": "2025-04-21T18:40:19.000000Z"
+        },
+        {
+            "id": 4,
+            "name": "Patience Douglas",
+            "created_at": "2025-04-21T18:40:19.000000Z",
+            "updated_at": "2025-04-21T18:40:19.000000Z"
+        }
+    ],
+    "links": {
+        "first": "/?page=1",
+        "last": "/?page=1",
+        "prev": null,
+        "next": null
+    },
+    "meta": {
+        "current_page": 1,
+        "from": 1,
+        "last_page": 1,
+        "links": [
+            {
+                "url": null,
+                "label": "&laquo; Previous",
+                "active": false
+            },
+            {
+                "url": "/?page=1",
+                "label": "1",
+                "active": true
+            },
+            {
+                "url": null,
+                "label": "Next &raquo;",
+                "active": false
+            }
+        ],
+        "path": "/",
+        "per_page": 25,
+        "to": 2,
+        "total": 2
+    }
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+
+ +

create

+ +

+ +

Create a new project.

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"name\": \"consequatur\"
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "name": "consequatur"
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 3,
+    "name": "Dr. Cornelius Luettgen V",
+    "created_at": "2025-04-21T18:40:19.000000Z",
+    "updated_at": "2025-04-21T18:40:19.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

Body Parameters

+
+ name +    + string +     + +
+

+ The name of the project. Example: + consequatur +

+
+
+ +

show

+ +

+ +

Get a project by ID.

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 3,
+    "name": "Orville Satterfield",
+    "created_at": "2025-04-21T18:40:19.000000Z",
+    "updated_at": "2025-04-21T18:40:19.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ +

update

+ +

+ +

Update project.

+ + +
Example request:
+ +
+
curl --request PUT \
+    "https://vito.test/api/projects/1" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"name\": \"consequatur\"
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "name": "consequatur"
+};
+
+fetch(url, {
+    method: "PUT",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 3,
+    "name": "Dr. Cornelius Luettgen V",
+    "created_at": "2025-04-21T18:40:19.000000Z",
+    "updated_at": "2025-04-21T18:40:19.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ PUT + api/projects/{id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+

Body Parameters

+
+ name +    + string +     + +
+

+ The name of the project. Example: + consequatur +

+
+
+ +

delete

+ +

+ +

Delete project.

+ + +
Example request:
+ +
+
curl --request DELETE \
+    "https://vito.test/api/projects/1" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "DELETE",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ DELETE + api/projects/{project_id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ +

redirects

+ +

index

+ +

+ +

Get all redirects.

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/servers/32/sites/17/redirects" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/sites/17/redirects"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "data": [
+        {
+            "id": 11,
+            "site_id": 1,
+            "mode": 308,
+            "from": "dolores",
+            "to": "http://dibbert.com/eius-est-dolor-dolores-minus-voluptatem-quisquam",
+            "status": "ready",
+            "created_at": "2025-04-21T18:40:19.000000Z",
+            "updated_at": "2025-04-21T18:40:19.000000Z"
+        },
+        {
+            "id": 12,
+            "site_id": 1,
+            "mode": 302,
+            "from": "sed",
+            "to": "http://williamson.net/fugit-facilis-perferendis-dolores-molestias.html",
+            "status": "ready",
+            "created_at": "2025-04-21T18:40:19.000000Z",
+            "updated_at": "2025-04-21T18:40:19.000000Z"
+        }
+    ],
+    "links": {
+        "first": "/?page=1",
+        "last": "/?page=1",
+        "prev": null,
+        "next": null
+    },
+    "meta": {
+        "current_page": 1,
+        "from": 1,
+        "last_page": 1,
+        "links": [
+            {
+                "url": null,
+                "label": "&laquo; Previous",
+                "active": false
+            },
+            {
+                "url": "/?page=1",
+                "label": "1",
+                "active": true
+            },
+            {
+                "url": null,
+                "label": "Next &raquo;",
+                "active": false
+            }
+        ],
+        "path": "/",
+        "per_page": 25,
+        "to": 2,
+        "total": 2
+    }
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ site_id +    + integer +     + +
+

+ The ID of the site. Example: + 17 +

+
+
+ +

+ create +

+ +

+ +

Create a new redirect.

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/servers/32/sites/17/redirects" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"from\": \"consequatur\",
+    \"to\": \"consequatur\",
+    \"mode\": 302
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/sites/17/redirects"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "from": "consequatur",
+    "to": "consequatur",
+    "mode": 302
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ site_id +    + integer +     + +
+

+ The ID of the site. Example: + 17 +

+
+

Body Parameters

+
+ from +    + string +     + +
+

+ Example: + consequatur +

+
+
+ to +    + string +     + +
+

+ Example: + consequatur +

+
+
+ mode +    + string +     + +
+

+ Example: + 302 +

+ Must be one of: +
    +
  • 301
  • +
  • 302
  • +
  • 307
  • +
  • 308
  • +
+
+
+ +

+ delete +

+ +

+ +

Delete a redirect.

+ + +
Example request:
+ +
+
curl --request DELETE \
+    "https://vito.test/api/projects/1/servers/32/sites/17/redirects/9" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/sites/17/redirects/9"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "DELETE",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ DELETE + + + api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects/{redirect_id} + + +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ site_id +    + integer +     + +
+

+ The ID of the site. Example: + 17 +

+
+
+ redirect_id +    + integer +     + +
+

+ The ID of the redirect. Example: + 9 +

+
+
+ +

server-providers

+ +

list

+ +

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/server-providers" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/server-providers"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "data": [
+        {
+            "id": 4,
+            "project_id": null,
+            "global": true,
+            "name": "quo",
+            "provider": "custom",
+            "created_at": "2025-04-21T18:40:19.000000Z",
+            "updated_at": "2025-04-21T18:40:19.000000Z"
+        },
+        {
+            "id": 5,
+            "project_id": null,
+            "global": true,
+            "name": "sed",
+            "provider": "digitalocean",
+            "created_at": "2025-04-21T18:40:19.000000Z",
+            "updated_at": "2025-04-21T18:40:19.000000Z"
+        }
+    ],
+    "links": {
+        "first": "/?page=1",
+        "last": "/?page=1",
+        "prev": null,
+        "next": null
+    },
+    "meta": {
+        "current_page": 1,
+        "from": 1,
+        "last_page": 1,
+        "links": [
+            {
+                "url": null,
+                "label": "&laquo; Previous",
+                "active": false
+            },
+            {
+                "url": "/?page=1",
+                "label": "1",
+                "active": true
+            },
+            {
+                "url": null,
+                "label": "Next &raquo;",
+                "active": false
+            }
+        ],
+        "path": "/",
+        "per_page": 25,
+        "to": 2,
+        "total": 2
+    }
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/server-providers +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ +

create

+ +

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/server-providers" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"provider\": \"consequatur\",
+    \"name\": \"consequatur\",
+    \"token\": \"consequatur\",
+    \"key\": \"consequatur\",
+    \"secret\": \"consequatur\"
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/server-providers"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "provider": "consequatur",
+    "name": "consequatur",
+    "token": "consequatur",
+    "key": "consequatur",
+    "secret": "consequatur"
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 4,
+    "project_id": null,
+    "global": true,
+    "name": "dolores",
+    "provider": "digitalocean",
+    "created_at": "2025-04-21T18:40:19.000000Z",
+    "updated_at": "2025-04-21T18:40:19.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects/{project_id}/server-providers +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+

Body Parameters

+
+ provider +    + string +     + +
+

+ The provider (aws, linode, hetzner, digitalocean, vultr, ...) Example: + consequatur +

+
+
+ name +    + string +     + +
+

+ The name of the server provider. Example: + consequatur +

+
+
+ token +    + string +     + +
+

+ The token if provider requires api token Example: + consequatur +

+
+
+ key +    + string +     + +
+

+ The key if provider requires key Example: + consequatur +

+
+
+ secret +    + string +     + +
+

+ The secret if provider requires key Example: + consequatur +

+
+
+ +

show

+ +

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/server-providers/1" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/server-providers/1"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 4,
+    "project_id": null,
+    "global": true,
+    "name": "voluptatem",
+    "provider": "vultr",
+    "created_at": "2025-04-21T18:40:19.000000Z",
+    "updated_at": "2025-04-21T18:40:19.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/server-providers/{serverProvider_id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ serverProvider_id +    + integer +     + +
+

+ The ID of the serverProvider. Example: + 1 +

+
+
+ +

update

+ +

+ + +
Example request:
+ +
+
curl --request PUT \
+    "https://vito.test/api/projects/1/server-providers/1" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"name\": \"consequatur\",
+    \"global\": false
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/server-providers/1"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "name": "consequatur",
+    "global": false
+};
+
+fetch(url, {
+    method: "PUT",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 4,
+    "project_id": null,
+    "global": true,
+    "name": "dolores",
+    "provider": "digitalocean",
+    "created_at": "2025-04-21T18:40:19.000000Z",
+    "updated_at": "2025-04-21T18:40:19.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ PUT + api/projects/{project_id}/server-providers/{serverProvider_id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ serverProvider_id +    + integer +     + +
+

+ The ID of the serverProvider. Example: + 1 +

+
+

Body Parameters

+
+ name +    + string +     + +
+

+ The name of the server provider. Example: + consequatur +

+
+
+ global +    + string +     + +
+

+ Accessible in all projects Example: + false +

+ Must be one of: +
    +
  • 1
  • +
  • +
+
+
+ +

+ delete +

+ +

+ + +
Example request:
+ +
+
curl --request DELETE \
+    "https://vito.test/api/projects/1/server-providers/1" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/server-providers/1"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "DELETE",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ DELETE + api/projects/{project_id}/server-providers/{serverProvider_id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ serverProvider_id +    + integer +     + +
+

+ The ID of the serverProvider. Example: + 1 +

+
+
+ +

servers

+ +

list

+ +

+ +

Get all servers in a project.

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/servers" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "data": [
+        {
+            "id": 33,
+            "project_id": 1,
+            "user_id": 1,
+            "provider_id": null,
+            "name": "Maiya Connelly",
+            "ssh_user": "vito",
+            "ip": "7.83.102.177",
+            "local_ip": "130.245.181.91",
+            "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": 0,
+            "last_update_check": null,
+            "created_at": "2025-04-21T18:40:19.000000Z",
+            "updated_at": "2025-04-21T18:40:19.000000Z"
+        },
+        {
+            "id": 34,
+            "project_id": 1,
+            "user_id": 1,
+            "provider_id": null,
+            "name": "Dr. Kyler Runolfsdottir DVM",
+            "ssh_user": "vito",
+            "ip": "106.112.51.73",
+            "local_ip": "248.246.77.93",
+            "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": 0,
+            "last_update_check": null,
+            "created_at": "2025-04-21T18:40:19.000000Z",
+            "updated_at": "2025-04-21T18:40:19.000000Z"
+        }
+    ],
+    "links": {
+        "first": "/?page=1",
+        "last": "/?page=1",
+        "prev": null,
+        "next": null
+    },
+    "meta": {
+        "current_page": 1,
+        "from": 1,
+        "last_page": 1,
+        "links": [
+            {
+                "url": null,
+                "label": "&laquo; Previous",
+                "active": false
+            },
+            {
+                "url": "/?page=1",
+                "label": "1",
+                "active": true
+            },
+            {
+                "url": null,
+                "label": "Next &raquo;",
+                "active": false
+            }
+        ],
+        "path": "/",
+        "per_page": 25,
+        "to": 2,
+        "total": 2
+    }
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/servers +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ +

create

+ +

+ +

Create a new server.

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/servers" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"provider\": \"consequatur\",
+    \"server_provider\": \"hetzner\",
+    \"region\": \"consequatur\",
+    \"plan\": \"consequatur\",
+    \"ip\": \"consequatur\",
+    \"port\": \"consequatur\",
+    \"name\": \"consequatur\",
+    \"os\": \"consequatur\",
+    \"webserver\": \"none\",
+    \"database\": \"mariadb104\",
+    \"php\": \"8.0\"
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "provider": "consequatur",
+    "server_provider": "hetzner",
+    "region": "consequatur",
+    "plan": "consequatur",
+    "ip": "consequatur",
+    "port": "consequatur",
+    "name": "consequatur",
+    "os": "consequatur",
+    "webserver": "none",
+    "database": "mariadb104",
+    "php": "8.0"
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 33,
+    "project_id": 1,
+    "user_id": 1,
+    "provider_id": null,
+    "name": "Dr. Cornelius Luettgen V",
+    "ssh_user": "vito",
+    "ip": "226.187.235.251",
+    "local_ip": "18.62.212.253",
+    "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": 0,
+    "last_update_check": null,
+    "created_at": "2025-04-21T18:40:19.000000Z",
+    "updated_at": "2025-04-21T18:40:19.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects/{project_id}/servers +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+

Body Parameters

+
+ provider +    + string +     + +
+

+ The server provider type Example: + consequatur +

+
+
+ server_provider +    + string +     + +
+

+ If the provider is not custom, the ID of the server provider profile Example: + hetzner +

+ Must be one of: +
    +
  • custom
  • +
  • hetzner
  • +
  • digitalocean
  • +
  • linode
  • +
  • vultr
  • +
+
+
+ region +    + string +     + +
+

+ Provider region if the provider is not custom Example: + consequatur +

+
+
+ plan +    + string +     + +
+

+ Provider plan if the provider is not custom Example: + consequatur +

+
+
+ ip +    + string +     + +
+

+ SSH IP address if the provider is custom Example: + consequatur +

+
+
+ port +    + string +     + +
+

+ SSH Port if the provider is custom Example: + consequatur +

+
+
+ name +    + string +     + +
+

+ The name of the server. Example: + consequatur +

+
+
+ os +    + string +     + +
+

+ The os of the server Example: + consequatur +

+
+
+ webserver +    + string +     + +
+

+ Web server Example: + none +

+ Must be one of: +
    +
  • none
  • +
  • nginx
  • +
+
+
+ database +    + string +     + +
+

+ Database Example: + mariadb104 +

+ Must be one of: +
    +
  • none
  • +
  • mysql57
  • +
  • mysql80
  • +
  • mariadb103
  • +
  • mariadb104
  • +
  • mariadb103
  • +
  • postgresql12
  • +
  • postgresql13
  • +
  • postgresql14
  • +
  • postgresql15
  • +
  • postgresql16
  • +
+
+
+ php +    + string +     + +
+

+ PHP version Example: + 8.0 +

+ Must be one of: +
    +
  • 7.0
  • +
  • 7.1
  • +
  • 7.2
  • +
  • 7.3
  • +
  • 7.4
  • +
  • 8.0
  • +
  • 8.1
  • +
  • 8.2
  • +
  • 8.3
  • +
+
+
+ +

show

+ +

+ +

Get a server by ID.

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/servers/32" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 33,
+    "project_id": 1,
+    "user_id": 1,
+    "provider_id": null,
+    "name": "Brandy Reichel",
+    "ssh_user": "vito",
+    "ip": "26.180.121.142",
+    "local_ip": "122.175.6.215",
+    "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": 0,
+    "last_update_check": null,
+    "created_at": "2025-04-21T18:40:19.000000Z",
+    "updated_at": "2025-04-21T18:40:19.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/servers/{id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ +

reboot

+ +

+ +

Reboot a server.

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/servers/32/reboot" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/reboot"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects/{project_id}/servers/{server_id}/reboot +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ +

upgrade

+ +

+ +

Upgrade server.

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/servers/32/upgrade" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/upgrade"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects/{project_id}/servers/{server_id}/upgrade +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ +

delete

+ +

+ +

Delete server.

+ + +
Example request:
+ +
+
curl --request DELETE \
+    "https://vito.test/api/projects/1/servers/32" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "DELETE",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ DELETE + api/projects/{project_id}/servers/{server_id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ +

services

+ +

list

+ +

+ +

Get all services.

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/servers/32/services" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/services"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "data": [
+        {
+            "id": null,
+            "server_id": 1,
+            "type": "webserver",
+            "type_data": null,
+            "name": "nginx",
+            "version": null,
+            "unit": null,
+            "status": "ready",
+            "is_default": null,
+            "created_at": null,
+            "updated_at": null
+        },
+        {
+            "id": null,
+            "server_id": 1,
+            "type": "webserver",
+            "type_data": null,
+            "name": "nginx",
+            "version": null,
+            "unit": null,
+            "status": "ready",
+            "is_default": null,
+            "created_at": null,
+            "updated_at": null
+        }
+    ],
+    "links": {
+        "first": "/?page=1",
+        "last": "/?page=1",
+        "prev": null,
+        "next": null
+    },
+    "meta": {
+        "current_page": 1,
+        "from": 1,
+        "last_page": 1,
+        "links": [
+            {
+                "url": null,
+                "label": "&laquo; Previous",
+                "active": false
+            },
+            {
+                "url": "/?page=1",
+                "label": "1",
+                "active": true
+            },
+            {
+                "url": null,
+                "label": "Next &raquo;",
+                "active": false
+            }
+        ],
+        "path": "/",
+        "per_page": 25,
+        "to": 2,
+        "total": 2
+    }
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/servers/{server_id}/services +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ +

show

+ +

+ +

Get a service by ID.

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/servers/32/services/184" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/services/184"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": null,
+    "server_id": 1,
+    "type": "webserver",
+    "type_data": null,
+    "name": "nginx",
+    "version": null,
+    "unit": null,
+    "status": "ready",
+    "is_default": null,
+    "created_at": null,
+    "updated_at": null
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/servers/{server_id}/services/{id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ id +    + integer +     + +
+

+ The ID of the service. Example: + 184 +

+
+
+ +

+ start +

+ +

+ +

Start service.

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/servers/32/services/184/start" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/services/184/start"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects/{project_id}/servers/{server_id}/services/{service_id}/start +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ service_id +    + integer +     + +
+

+ The ID of the service. Example: + 184 +

+
+
+ +

stop

+ +

+ +

Stop service.

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/servers/32/services/184/stop" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/services/184/stop"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects/{project_id}/servers/{server_id}/services/{service_id}/stop +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ service_id +    + integer +     + +
+

+ The ID of the service. Example: + 184 +

+
+
+ +

+ restart +

+ +

+ +

Restart service.

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/servers/32/services/184/restart" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/services/184/restart"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects/{project_id}/servers/{server_id}/services/{service_id}/restart +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ service_id +    + integer +     + +
+

+ The ID of the service. Example: + 184 +

+
+
+ +

+ enable +

+ +

+ +

Enable service.

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/servers/32/services/184/enable" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/services/184/enable"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects/{project_id}/servers/{server_id}/services/{service_id}/enable +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ service_id +    + integer +     + +
+

+ The ID of the service. Example: + 184 +

+
+
+ +

+ disable +

+ +

+ +

Disable service.

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/servers/32/services/184/disable" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/services/184/disable"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects/{project_id}/servers/{server_id}/services/{service_id}/disable +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ service_id +    + integer +     + +
+

+ The ID of the service. Example: + 184 +

+
+
+ +

delete

+ +

+ +

Delete service.

+ + +
Example request:
+ +
+
curl --request DELETE \
+    "https://vito.test/api/projects/1/servers/32/services/184" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/services/184"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "DELETE",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ DELETE + api/projects/{project_id}/servers/{server_id}/services/{service_id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ service_id +    + integer +     + +
+

+ The ID of the service. Example: + 184 +

+
+
+ +

sites

+ +

list

+ +

+ +

Get all sites.

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/servers/32/sites" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/sites"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "data": [
+        {
+            "id": 50,
+            "server_id": 1,
+            "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": "2025-04-21T18:40:20.000000Z",
+            "updated_at": "2025-04-21T18:40:20.000000Z"
+        },
+        {
+            "id": 51,
+            "server_id": 1,
+            "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": "2025-04-21T18:40:20.000000Z",
+            "updated_at": "2025-04-21T18:40:20.000000Z"
+        }
+    ],
+    "links": {
+        "first": "/?page=1",
+        "last": "/?page=1",
+        "prev": null,
+        "next": null
+    },
+    "meta": {
+        "current_page": 1,
+        "from": 1,
+        "last_page": 1,
+        "links": [
+            {
+                "url": null,
+                "label": "&laquo; Previous",
+                "active": false
+            },
+            {
+                "url": "/?page=1",
+                "label": "1",
+                "active": true
+            },
+            {
+                "url": null,
+                "label": "Next &raquo;",
+                "active": false
+            }
+        ],
+        "path": "/",
+        "per_page": 25,
+        "to": 2,
+        "total": 2
+    }
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/servers/{server_id}/sites +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ +

create

+ +

+ +

Create a new site.

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/servers/32/sites" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"type\": \"load-balancer\",
+    \"domain\": \"consequatur\",
+    \"aliases\": [
+        \"consequatur\"
+    ],
+    \"php_version\": \"7.4\",
+    \"web_directory\": \"public\",
+    \"source_control\": \"consequatur\",
+    \"repository\": \"organization\\/repository\",
+    \"branch\": \"main\",
+    \"composer\": true,
+    \"version\": \"5.2.1\",
+    \"user\": \"consequatur\",
+    \"method\": \"ip-hash\"
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/sites"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "type": "load-balancer",
+    "domain": "consequatur",
+    "aliases": [
+        "consequatur"
+    ],
+    "php_version": "7.4",
+    "web_directory": "public",
+    "source_control": "consequatur",
+    "repository": "organization\/repository",
+    "branch": "main",
+    "composer": true,
+    "version": "5.2.1",
+    "user": "consequatur",
+    "method": "ip-hash"
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 50,
+    "server_id": 1,
+    "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": "2025-04-21T18:40:20.000000Z",
+    "updated_at": "2025-04-21T18:40:20.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects/{project_id}/servers/{server_id}/sites +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+

Body Parameters

+
+ type +    + string +     + +
+

+ Example: + load-balancer +

+ Must be one of: +
    +
  • php
  • +
  • php-blank
  • +
  • phpmyadmin
  • +
  • laravel
  • +
  • wordpress
  • +
  • load-balancer
  • +
+
+
+ domain +    + string +     + +
+

+ Example: + consequatur +

+
+
+ aliases +    + string[] +     + + +
+
+
+ php_version +    + string +     + +
+

+ One of the installed PHP Versions Example: + 7.4 +

+
+
+ web_directory +    + string +     + +
+

+ Required for PHP and Laravel sites Example: + public +

+
+
+ source_control +    + string +     + +
+

+ Source control ID, Required for Sites which support source control Example: + consequatur +

+
+
+ repository +    + string +     + +
+

+ Repository, Required for Sites which support source control Example: + organization/repository +

+
+
+ branch +    + string +     + +
+

+ Branch, Required for Sites which support source control Example: + main +

+
+
+ composer +    + boolean +     + + +
+

+ Run composer if site supports composer Example: + true +

+
+
+ version +    + string +     + +
+

+ Version, if the site type requires a version like PHPMyAdmin Example: + 5.2.1 +

+
+
+ user +    + string +     + +
+

+ user, to isolate the website under a new user Example: + consequatur +

+
+
+ method +    + string +     + +
+

+ Load balancer method, Required if the site type is Load balancer Example: + ip-hash +

+ Must be one of: +
    +
  • round-robin
  • +
  • least-connections
  • +
  • ip-hash
  • +
+
+
+ +

show

+ +

+ +

Get a site by ID.

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/servers/32/sites/17" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/sites/17"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 50,
+    "server_id": 1,
+    "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": "2025-04-21T18:40:20.000000Z",
+    "updated_at": "2025-04-21T18:40:20.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/servers/{server_id}/sites/{id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ id +    + integer +     + +
+

+ The ID of the site. Example: + 17 +

+
+
+ +

delete

+ +

+ +

Delete site.

+ + +
Example request:
+ +
+
curl --request DELETE \
+    "https://vito.test/api/projects/1/servers/32/sites/17" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/sites/17"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "DELETE",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ DELETE + api/projects/{project_id}/servers/{server_id}/sites/{site_id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ site_id +    + integer +     + +
+

+ The ID of the site. Example: + 17 +

+
+
+ +

+ load-balancer +

+ +

+ +

Update load balancer.

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/servers/32/sites/17/load-balancer" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"method\": \"ip-hash\",
+    \"servers\": [
+        \"consequatur\"
+    ]
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/sites/17/load-balancer"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "method": "ip-hash",
+    "servers": [
+        "consequatur"
+    ]
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects/{project_id}/servers/{server_id}/sites/{site_id}/load-balancer +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ site_id +    + integer +     + +
+

+ The ID of the site. Example: + 17 +

+
+

Body Parameters

+
+ method +    + string +     + +
+

+ Load balancer method, Required if the site type is Load balancer Example: + ip-hash +

+ Must be one of: +
    +
  • round-robin
  • +
  • least-connections
  • +
  • ip-hash
  • +
+
+
+ servers +    + string[] +     + + +
+

+ Array of servers including server, port, weight, backup. (server is the local IP of the + server) +

+
+
+ +

aliases

+ +

+ +

Update aliases.

+ + +
Example request:
+ +
+
curl --request PUT \
+    "https://vito.test/api/projects/1/servers/32/sites/17/aliases" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"aliases\": [
+        \"consequatur\"
+    ]
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/sites/17/aliases"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "aliases": [
+        "consequatur"
+    ]
+};
+
+fetch(url, {
+    method: "PUT",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ PUT + api/projects/{project_id}/servers/{server_id}/sites/{site_id}/aliases +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ site_id +    + integer +     + +
+

+ The ID of the site. Example: + 17 +

+
+

Body Parameters

+
+ aliases +    + string[] +     + + +
+

Array of aliases

+
+
+ +

deploy

+ +

+ +

Run site deployment script

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/servers/32/sites/17/deploy" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/sites/17/deploy"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deploy +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ site_id +    + integer +     + +
+

+ The ID of the site. Example: + 17 +

+
+
+ +

+ deployment-script +

+ +

+ +

Update site deployment script

+ + +
Example request:
+ +
+
curl --request PUT \
+    "https://vito.test/api/projects/1/servers/32/sites/17/deployment-script" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"script\": \"consequatur\"
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/sites/17/deployment-script"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "script": "consequatur"
+};
+
+fetch(url, {
+    method: "PUT",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ PUT + + api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deployment-script + +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ site_id +    + integer +     + +
+

+ The ID of the site. Example: + 17 +

+
+

Body Parameters

+
+ script +    + string +     + +
+

+ Content of the deployment script Example: + consequatur +

+
+
+ +

+ deployment-script +

+ +

+ +

Get site deployment script content

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/servers/32/sites/17/deployment-script" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/sites/17/deployment-script"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + + api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deployment-script + +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ site_id +    + integer +     + +
+

+ The ID of the site. Example: + 17 +

+
+
+ +

env

+ +

+ +

Get site .env file content

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/servers/32/sites/17/env" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/sites/17/env"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "data": {
+        "env": "APP_NAME=Laravel\\nAPP_ENV=production"
+    }
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/servers/{server_id}/sites/{site_id}/env +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ site_id +    + integer +     + +
+

+ The ID of the site. Example: + 17 +

+
+
+ +

env

+ +

+ +

Update site .env file

+ + +
Example request:
+ +
+
curl --request PUT \
+    "https://vito.test/api/projects/1/servers/32/sites/17/env" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"env\": \"consequatur\"
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/sites/17/env"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "env": "consequatur"
+};
+
+fetch(url, {
+    method: "PUT",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ PUT + api/projects/{project_id}/servers/{server_id}/sites/{site_id}/env +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ site_id +    + integer +     + +
+

+ The ID of the site. Example: + 17 +

+
+

Body Parameters

+
+ env +    + string +     + +
+

+ Content of the .env file Example: + consequatur +

+
+
+ +

source-controls

+ +

list

+ +

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/source-controls" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/source-controls"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "data": [
+        {
+            "id": 5,
+            "project_id": null,
+            "global": true,
+            "name": "Dr. Cornelius Luettgen V",
+            "provider": "github",
+            "created_at": "2025-04-21T18:40:20.000000Z",
+            "updated_at": "2025-04-21T18:40:20.000000Z"
+        },
+        {
+            "id": 6,
+            "project_id": null,
+            "global": true,
+            "name": "Orville Satterfield",
+            "provider": "github",
+            "created_at": "2025-04-21T18:40:20.000000Z",
+            "updated_at": "2025-04-21T18:40:20.000000Z"
+        }
+    ],
+    "links": {
+        "first": "/?page=1",
+        "last": "/?page=1",
+        "prev": null,
+        "next": null
+    },
+    "meta": {
+        "current_page": 1,
+        "from": 1,
+        "last_page": 1,
+        "links": [
+            {
+                "url": null,
+                "label": "&laquo; Previous",
+                "active": false
+            },
+            {
+                "url": "/?page=1",
+                "label": "1",
+                "active": true
+            },
+            {
+                "url": null,
+                "label": "Next &raquo;",
+                "active": false
+            }
+        ],
+        "path": "/",
+        "per_page": 25,
+        "to": 2,
+        "total": 2
+    }
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/source-controls +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ +

create

+ +

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/source-controls" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"provider\": \"gitlab\",
+    \"name\": \"consequatur\",
+    \"token\": \"consequatur\",
+    \"url\": \"http:\\/\\/kunze.biz\\/iste-laborum-eius-est-dolor.html\",
+    \"username\": \"consequatur\",
+    \"password\": \"O[2UZ5ij-e\\/dl4m{o,\"
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/source-controls"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "provider": "gitlab",
+    "name": "consequatur",
+    "token": "consequatur",
+    "url": "http:\/\/kunze.biz\/iste-laborum-eius-est-dolor.html",
+    "username": "consequatur",
+    "password": "O[2UZ5ij-e\/dl4m{o,"
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 5,
+    "project_id": null,
+    "global": true,
+    "name": "Lonny Ankunding",
+    "provider": "github",
+    "created_at": "2025-04-21T18:40:20.000000Z",
+    "updated_at": "2025-04-21T18:40:20.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects/{project_id}/source-controls +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+

Body Parameters

+
+ provider +    + string +     + +
+

+ The provider Example: + gitlab +

+ Must be one of: +
    +
  • gitlab
  • +
  • github
  • +
  • bitbucket
  • +
+
+
+ name +    + string +     + +
+

+ The name of the storage provider. Example: + consequatur +

+
+
+ token +    + string +     + +
+

+ The token if provider requires api token Example: + consequatur +

+
+
+ url +    + string +     + +
+

+ The URL if the provider is Gitlab and it is self-hosted Example: + http://kunze.biz/iste-laborum-eius-est-dolor.html +

+
+
+ username +    + string +     + +
+

+ The username if the provider is Bitbucket Example: + consequatur +

+
+
+ password +    + string +     + +
+

+ The password if the provider is Bitbucket Example: + O[2UZ5ij-e/dl4m{o, +

+
+
+ +

show

+ +

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/source-controls/1" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/source-controls/1"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 5,
+    "project_id": null,
+    "global": true,
+    "name": "Dr. Enoch Harber II",
+    "provider": "github",
+    "created_at": "2025-04-21T18:40:20.000000Z",
+    "updated_at": "2025-04-21T18:40:20.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/source-controls/{sourceControl_id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ sourceControl_id +    + integer +     + +
+

+ The ID of the sourceControl. Example: + 1 +

+
+
+ +

update

+ +

+ + +
Example request:
+ +
+
curl --request PUT \
+    "https://vito.test/api/projects/1/source-controls/1" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"name\": \"consequatur\",
+    \"token\": \"consequatur\",
+    \"url\": \"http:\\/\\/kunze.biz\\/iste-laborum-eius-est-dolor.html\",
+    \"username\": \"consequatur\",
+    \"password\": \"O[2UZ5ij-e\\/dl4m{o,\",
+    \"global\": false
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/source-controls/1"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "name": "consequatur",
+    "token": "consequatur",
+    "url": "http:\/\/kunze.biz\/iste-laborum-eius-est-dolor.html",
+    "username": "consequatur",
+    "password": "O[2UZ5ij-e\/dl4m{o,",
+    "global": false
+};
+
+fetch(url, {
+    method: "PUT",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 5,
+    "project_id": null,
+    "global": true,
+    "name": "Lonny Ankunding",
+    "provider": "github",
+    "created_at": "2025-04-21T18:40:20.000000Z",
+    "updated_at": "2025-04-21T18:40:20.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ PUT + api/projects/{project_id}/source-controls/{sourceControl_id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ sourceControl_id +    + integer +     + +
+

+ The ID of the sourceControl. Example: + 1 +

+
+

Body Parameters

+
+ name +    + string +     + +
+

+ The name of the storage provider. Example: + consequatur +

+
+
+ token +    + string +     + +
+

+ The token if provider requires api token Example: + consequatur +

+
+
+ url +    + string +     + +
+

+ The URL if the provider is Gitlab and it is self-hosted Example: + http://kunze.biz/iste-laborum-eius-est-dolor.html +

+
+
+ username +    + string +     + +
+

+ The username if the provider is Bitbucket Example: + consequatur +

+
+
+ password +    + string +     + +
+

+ The password if the provider is Bitbucket Example: + O[2UZ5ij-e/dl4m{o, +

+
+
+ global +    + string +     + +
+

+ Accessible in all projects Example: + false +

+ Must be one of: +
    +
  • 1
  • +
  • +
+
+
+ +

delete

+ +

+ + +
Example request:
+ +
+
curl --request DELETE \
+    "https://vito.test/api/projects/1/source-controls/1" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/source-controls/1"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "DELETE",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ DELETE + api/projects/{project_id}/source-controls/{sourceControl_id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ sourceControl_id +    + integer +     + +
+

+ The ID of the sourceControl. Example: + 1 +

+
+
+ +

ssh-keys

+ +

list

+ +

+ +

Get all ssh keys.

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/servers/32/ssh-keys" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/ssh-keys"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "data": [
+        {
+            "id": 2,
+            "user": {
+                "id": 1,
+                "name": "Saeed Vaziry",
+                "email": "demo@vitodeploy.com",
+                "created_at": "2024-12-19T23:19:20.000000Z",
+                "updated_at": "2025-04-19T21:24:56.000000Z"
+            },
+            "name": "Prof. Aurelia Buckridge MD",
+            "created_at": "2025-04-21T18:40:19.000000Z",
+            "updated_at": "2025-04-21T18:40:19.000000Z"
+        },
+        {
+            "id": 3,
+            "user": {
+                "id": 1,
+                "name": "Saeed Vaziry",
+                "email": "demo@vitodeploy.com",
+                "created_at": "2024-12-19T23:19:20.000000Z",
+                "updated_at": "2025-04-19T21:24:56.000000Z"
+            },
+            "name": "Jaylan Lakin",
+            "created_at": "2025-04-21T18:40:19.000000Z",
+            "updated_at": "2025-04-21T18:40:19.000000Z"
+        }
+    ],
+    "links": {
+        "first": "/?page=1",
+        "last": "/?page=1",
+        "prev": null,
+        "next": null
+    },
+    "meta": {
+        "current_page": 1,
+        "from": 1,
+        "last_page": 1,
+        "links": [
+            {
+                "url": null,
+                "label": "&laquo; Previous",
+                "active": false
+            },
+            {
+                "url": "/?page=1",
+                "label": "1",
+                "active": true
+            },
+            {
+                "url": null,
+                "label": "Next &raquo;",
+                "active": false
+            }
+        ],
+        "path": "/",
+        "per_page": 25,
+        "to": 2,
+        "total": 2
+    }
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/servers/{server_id}/ssh-keys +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ +

create

+ +

+ +

Deploy ssh key to server.

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/servers/32/ssh-keys" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"key_id\": \"consequatur\",
+    \"name\": \"consequatur\",
+    \"public_key\": \"consequatur\"
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/ssh-keys"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "key_id": "consequatur",
+    "name": "consequatur",
+    "public_key": "consequatur"
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 2,
+    "user": {
+        "id": 1,
+        "name": "Saeed Vaziry",
+        "email": "demo@vitodeploy.com",
+        "created_at": "2024-12-19T23:19:20.000000Z",
+        "updated_at": "2025-04-19T21:24:56.000000Z"
+    },
+    "name": "Dr. Cornelius Luettgen V",
+    "created_at": "2025-04-21T18:40:19.000000Z",
+    "updated_at": "2025-04-21T18:40:19.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects/{project_id}/servers/{server_id}/ssh-keys +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+

Body Parameters

+
+ key_id +    + string +     + +
+

+ The ID of the key. Example: + consequatur +

+
+
+ name +    + string +     + +
+

+ Key name, required if key_id is not provided. Example: + consequatur +

+
+
+ public_key +    + string +     + +
+

+ Public Key, required if key_id is not provided. Example: + consequatur +

+
+
+ +

delete

+ +

+ +

Delete ssh key from server.

+ + +
Example request:
+ +
+
curl --request DELETE \
+    "https://vito.test/api/projects/1/servers/32/ssh-keys/1" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/servers/32/ssh-keys/1"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "DELETE",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ DELETE + api/projects/{project_id}/servers/{server_id}/ssh-keys/{sshKey_id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ server_id +    + integer +     + +
+

+ The ID of the server. Example: + 32 +

+
+
+ sshKey_id +    + integer +     + +
+

+ The ID of the sshKey. Example: + 1 +

+
+
+ +

storage-providers

+ +

list

+ +

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/storage-providers" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/storage-providers"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "data": [
+        {
+            "id": 5,
+            "project_id": null,
+            "global": true,
+            "name": "dolores",
+            "provider": "local",
+            "created_at": "2025-04-21T18:40:20.000000Z",
+            "updated_at": "2025-04-21T18:40:20.000000Z"
+        },
+        {
+            "id": 6,
+            "project_id": null,
+            "global": true,
+            "name": "dignissimos",
+            "provider": "dropbox",
+            "created_at": "2025-04-21T18:40:20.000000Z",
+            "updated_at": "2025-04-21T18:40:20.000000Z"
+        }
+    ],
+    "links": {
+        "first": "/?page=1",
+        "last": "/?page=1",
+        "prev": null,
+        "next": null
+    },
+    "meta": {
+        "current_page": 1,
+        "from": 1,
+        "last_page": 1,
+        "links": [
+            {
+                "url": null,
+                "label": "&laquo; Previous",
+                "active": false
+            },
+            {
+                "url": "/?page=1",
+                "label": "1",
+                "active": true
+            },
+            {
+                "url": null,
+                "label": "Next &raquo;",
+                "active": false
+            }
+        ],
+        "path": "/",
+        "per_page": 25,
+        "to": 2,
+        "total": 2
+    }
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/storage-providers +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ +

create

+ +

+ + +
Example request:
+ +
+
curl --request POST \
+    "https://vito.test/api/projects/1/storage-providers" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"provider\": \"consequatur\",
+    \"name\": \"consequatur\",
+    \"token\": \"consequatur\",
+    \"key\": \"consequatur\",
+    \"secret\": \"consequatur\"
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/storage-providers"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "provider": "consequatur",
+    "name": "consequatur",
+    "token": "consequatur",
+    "key": "consequatur",
+    "secret": "consequatur"
+};
+
+fetch(url, {
+    method: "POST",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 5,
+    "project_id": null,
+    "global": true,
+    "name": "dolores",
+    "provider": "local",
+    "created_at": "2025-04-21T18:40:20.000000Z",
+    "updated_at": "2025-04-21T18:40:20.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ POST + api/projects/{project_id}/storage-providers +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+

Body Parameters

+
+ provider +    + string +     + +
+

+ The provider (aws, linode, hetzner, digitalocean, vultr, ...) Example: + consequatur +

+
+
+ name +    + string +     + +
+

+ The name of the storage provider. Example: + consequatur +

+
+
+ token +    + string +     + +
+

+ The token if provider requires api token Example: + consequatur +

+
+
+ key +    + string +     + +
+

+ The key if provider requires key Example: + consequatur +

+
+
+ secret +    + string +     + +
+

+ The secret if provider requires key Example: + consequatur +

+
+
+ +

show

+ +

+ + +
Example request:
+ +
+
curl --request GET \
+    --get "https://vito.test/api/projects/1/storage-providers/3" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/storage-providers/3"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "GET",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 5,
+    "project_id": null,
+    "global": true,
+    "name": "facilis",
+    "provider": "dropbox",
+    "created_at": "2025-04-21T18:40:20.000000Z",
+    "updated_at": "2025-04-21T18:40:20.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ GET + api/projects/{project_id}/storage-providers/{storageProvider_id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ storageProvider_id +    + integer +     + +
+

+ The ID of the storageProvider. Example: + 3 +

+
+
+ +

+ update +

+ +

+ + +
Example request:
+ +
+
curl --request PUT \
+    "https://vito.test/api/projects/1/storage-providers/3" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json" \
+    --data "{
+    \"name\": \"consequatur\",
+    \"global\": true
+}"
+
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/storage-providers/3"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+let body = {
+    "name": "consequatur",
+    "global": true
+};
+
+fetch(url, {
+    method: "PUT",
+    headers,
+    body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+ + +
+

Example response (200):

+
+
+
+{
+    "id": 5,
+    "project_id": null,
+    "global": true,
+    "name": "dolores",
+    "provider": "local",
+    "created_at": "2025-04-21T18:40:20.000000Z",
+    "updated_at": "2025-04-21T18:40:20.000000Z"
+}
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ PUT + api/projects/{project_id}/storage-providers/{storageProvider_id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ storageProvider_id +    + integer +     + +
+

+ The ID of the storageProvider. Example: + 3 +

+
+

Body Parameters

+
+ name +    + string +     + +
+

+ The name of the storage provider. Example: + consequatur +

+
+
+ global +    + string +     + +
+

+ Accessible in all projects Example: + true +

+ Must be one of: +
    +
  • 1
  • +
  • +
+
+
+ +

+ delete +

+ +

+ + +
Example request:
+ +
+
curl --request DELETE \
+    "https://vito.test/api/projects/1/storage-providers/3" \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ +
+
const url = new URL(
+    "https://vito.test/api/projects/1/storage-providers/3"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+fetch(url, {
+    method: "DELETE",
+    headers,
+}).then(response => response.json());
+
+
+ + +
+

Example response (204):

+
+
+Empty response
+ 
+
+ + +
+

+ Request    + + +    + +

+

+ DELETE + api/projects/{project_id}/storage-providers/{storageProvider_id} +

+

Headers

+
+ Content-Type +        + +
+

+ Example: + application/json +

+
+
+ Accept +        + +
+

+ Example: + application/json +

+
+

URL Parameters

+
+ project_id +    + integer +     + +
+

+ The ID of the project. Example: + 1 +

+
+
+ storageProvider_id +    + integer +     + +
+

+ The ID of the storageProvider. Example: + 3 +

+
+
+
+
+
+ + +
+
+
+ +