openapi: 3.0.3 info: title: 'API Documentation' description: "VitoDeploy's API documentation." version: 1.0.0 servers: - url: 'https://your-vito-url' paths: '/api/projects/{project_id}/servers/{server_id}/cron-jobs': get: summary: list operationId: list description: 'Get all cron jobs.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: null server_id: null command: 'ls -la' user: root frequency: '* * * * *' status: ready created_at: null updated_at: null - id: null server_id: null command: 'ls -la' user: root frequency: '* * * * *' status: ready created_at: null updated_at: null links: first: '/?page=1' last: '/?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: null server_id: null command: 'ls -la' user: root frequency: '* * * * *' status: ready created_at: null updated_at: null - id: null server_id: null command: 'ls -la' user: root frequency: '* * * * *' status: ready created_at: null updated_at: null items: type: object properties: id: type: string example: null server_id: type: string example: null command: type: string example: 'ls -la' user: type: string example: root frequency: type: string example: '* * * * *' status: type: string example: ready created_at: type: string example: null updated_at: type: string example: null links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - cron-jobs post: summary: create operationId: create description: 'Create a new cron job.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null command: 'ls -la' user: root frequency: '* * * * *' status: ready created_at: null updated_at: null properties: id: type: string example: null server_id: type: string example: null command: type: string example: 'ls -la' user: type: string example: root frequency: type: string example: '* * * * *' status: type: string example: ready created_at: type: string example: null updated_at: type: string example: null tags: - cron-jobs requestBody: required: true content: application/json: schema: type: object properties: command: type: string description: '' example: itaque nullable: false user: type: string description: '' example: root nullable: false enum: - root - vito frequency: type: string description: 'Frequency of the cron job.' example: '* * * * *' nullable: false required: - command - user - frequency parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/cron-jobs/{cronJob_id}': get: summary: show operationId: show description: 'Get a cron job by ID.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null command: 'ls -la' user: root frequency: '* * * * *' status: ready created_at: null updated_at: null properties: id: type: string example: null server_id: type: string example: null command: type: string example: 'ls -la' user: type: string example: root frequency: type: string example: '* * * * *' status: type: string example: ready created_at: type: string example: null updated_at: type: string example: null tags: - cron-jobs delete: summary: delete operationId: delete description: 'Delete cron job.' parameters: [] responses: 204: description: '' tags: - cron-jobs parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer - in: path name: cronJob_id description: 'The ID of the cronJob.' example: 18 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/database-users': get: summary: list operationId: list description: 'Get all database users.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: null server_id: null username: xgaylord databases: [] host: '%' status: null created_at: null updated_at: null - id: null server_id: null username: una37 databases: [] host: '%' status: null created_at: null updated_at: null links: first: '/?page=1' last: '/?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: null server_id: null username: xgaylord databases: [] host: '%' status: null created_at: null updated_at: null - id: null server_id: null username: una37 databases: [] host: '%' status: null created_at: null updated_at: null items: type: object properties: id: type: string example: null server_id: type: string example: null username: type: string example: xgaylord databases: type: array example: [] host: type: string example: '%' status: type: string example: null created_at: type: string example: null updated_at: type: string example: null links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - database-users post: summary: create operationId: create description: 'Create a new database user.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null username: kari.farrell databases: [] host: '%' status: null created_at: null updated_at: null properties: id: type: string example: null server_id: type: string example: null username: type: string example: kari.farrell databases: type: array example: [] host: type: string example: '%' status: type: string example: null created_at: type: string example: null updated_at: type: string example: null tags: - database-users requestBody: required: true content: application/json: schema: type: object properties: username: type: string description: '' example: consequuntur nullable: false password: type: string description: '' example: 'fI/i2.O4u&dla?eXvR2' nullable: false host: type: string description: 'Host, if it is a remote user.' example: '%' nullable: false required: - username - password - host parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/database-users/{databaseUser_id}': get: summary: show operationId: show description: 'Get a database user by ID.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null username: caterina.mosciski databases: [] host: '%' status: null created_at: null updated_at: null properties: id: type: string example: null server_id: type: string example: null username: type: string example: caterina.mosciski databases: type: array example: [] host: type: string example: '%' status: type: string example: null created_at: type: string example: null updated_at: type: string example: null tags: - database-users delete: summary: delete operationId: delete description: 'Delete database user.' parameters: [] responses: 204: description: '' tags: - database-users parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer - in: path name: databaseUser_id description: 'The ID of the databaseUser.' example: 18 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/database-users/{databaseUser_id}/link': post: summary: link operationId: link description: 'Link to databases' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null username: kurtis05 databases: [] host: '%' status: null created_at: null updated_at: null properties: id: type: string example: null server_id: type: string example: null username: type: string example: kurtis05 databases: type: array example: [] host: type: string example: '%' status: type: string example: null created_at: type: string example: null updated_at: type: string example: null tags: - database-users requestBody: required: true content: application/json: schema: type: object properties: databases: type: string description: 'Array of database names to link to the user.' example: non nullable: false required: - databases parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer - in: path name: databaseUser_id description: 'The ID of the databaseUser.' example: 4 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/databases': get: summary: list operationId: list description: 'Get all databases.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: null server_id: null name: amalia38 status: ready created_at: null updated_at: null - id: null server_id: null name: troy.rippin status: ready created_at: null updated_at: null links: first: '/?page=1' last: '/?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: null server_id: null name: amalia38 status: ready created_at: null updated_at: null - id: null server_id: null name: troy.rippin status: ready created_at: null updated_at: null items: type: object properties: id: type: string example: null server_id: type: string example: null name: type: string example: amalia38 status: type: string example: ready created_at: type: string example: null updated_at: type: string example: null links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - databases post: summary: create operationId: create description: 'Create a new database.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null name: harvey.haskell status: ready created_at: null updated_at: null properties: id: type: string example: null server_id: type: string example: null name: type: string example: harvey.haskell status: type: string example: ready created_at: type: string example: null updated_at: type: string example: null tags: - databases requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: '' example: et nullable: false required: - name parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/databases/{id}': get: summary: show operationId: show description: 'Get a database by ID.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null name: ruthie.koepp status: ready created_at: null updated_at: null properties: id: type: string example: null server_id: type: string example: null name: type: string example: ruthie.koepp status: type: string example: ready created_at: type: string example: null updated_at: type: string example: null tags: - databases parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer - in: path name: id description: 'The ID of the database.' example: 19 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/databases/{database_id}': delete: summary: delete operationId: delete description: 'Delete database.' parameters: [] responses: 204: description: '' tags: - databases parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer - in: path name: database_id description: 'The ID of the database.' example: 15 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/firewall-rules': get: summary: list operationId: list description: 'Get all firewall rules.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: null server_id: null type: allow protocol: tcp port: 38781 source: 79.116.255.150 mask: 24 note: test status: null created_at: null updated_at: null - id: null server_id: null type: allow protocol: tcp port: 32141 source: 52.174.114.251 mask: 24 note: test status: null created_at: null updated_at: null links: first: '/?page=1' last: '/?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: null server_id: null type: allow protocol: tcp port: 38781 source: 79.116.255.150 mask: 24 note: test status: null created_at: null updated_at: null - id: null server_id: null type: allow protocol: tcp port: 32141 source: 52.174.114.251 mask: 24 note: test status: null created_at: null updated_at: null items: type: object properties: id: type: string example: null server_id: type: string example: null type: type: string example: allow protocol: type: string example: tcp port: type: integer example: 38781 source: type: string example: 79.116.255.150 mask: type: integer example: 24 note: type: string example: test status: type: string example: null created_at: type: string example: null updated_at: type: string example: null links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - firewall-rules post: summary: create operationId: create description: 'Create a new firewall rule.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null type: allow protocol: tcp port: 47148 source: 119.182.8.45 mask: 24 note: test status: null created_at: null updated_at: null properties: id: type: string example: null server_id: type: string example: null type: type: string example: allow protocol: type: string example: tcp port: type: integer example: 47148 source: type: string example: 119.182.8.45 mask: type: integer example: 24 note: type: string example: test status: type: string example: null created_at: type: string example: null updated_at: type: string example: null tags: - firewall-rules requestBody: required: true content: application/json: schema: type: object properties: type: type: string description: '' example: deny nullable: false enum: - allow - deny protocol: type: string description: '' example: udp nullable: false enum: - tcp - udp port: type: string description: '' example: et nullable: false source: type: string description: '' example: voluptates nullable: false mask: type: string description: 'Mask for source IP.' example: '0' nullable: false required: - type - protocol - port - source - mask parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/firewall-rules/{firewallRule_id}': get: summary: show operationId: show description: 'Get a firewall rule by ID.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null type: allow protocol: tcp port: 2317 source: 44.161.134.114 mask: 24 note: test status: null created_at: null updated_at: null properties: id: type: string example: null server_id: type: string example: null type: type: string example: allow protocol: type: string example: tcp port: type: integer example: 2317 source: type: string example: 44.161.134.114 mask: type: integer example: 24 note: type: string example: test status: type: string example: null created_at: type: string example: null updated_at: type: string example: null tags: - firewall-rules delete: summary: delete operationId: delete description: 'Delete firewall rule.' parameters: [] responses: 204: description: '' tags: - firewall-rules parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer - in: path name: firewallRule_id description: 'The ID of the firewallRule.' example: 29 required: true schema: type: integer /api/health: get: summary: health-check operationId: healthCheck description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: success: true version: 2.1.0 properties: success: type: boolean example: true version: type: string example: 2.1.0 tags: - general security: [] /api/projects: get: summary: list operationId: list description: 'Get all projects.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: 3 name: 'Jeffry Dickinson' created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' - id: 4 name: 'Miss Tianna Dietrich PhD' created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' links: first: '/?page=1' last: '/?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: 3 name: 'Jeffry Dickinson' created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' - id: 4 name: 'Miss Tianna Dietrich PhD' created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' items: type: object properties: id: type: integer example: 3 name: type: string example: 'Jeffry Dickinson' created_at: type: string example: '2025-01-30T22:42:49.000000Z' updated_at: type: string example: '2025-01-30T22:42:49.000000Z' links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - projects post: summary: create operationId: create description: 'Create a new project.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 3 name: 'Isidro Franecki' created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' properties: id: type: integer example: 3 name: type: string example: 'Isidro Franecki' created_at: type: string example: '2025-01-30T22:42:49.000000Z' updated_at: type: string example: '2025-01-30T22:42:49.000000Z' tags: - projects requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'The name of the project.' example: quos nullable: false required: - name '/api/projects/{id}': get: summary: show operationId: show description: 'Get a project by ID.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 3 name: 'Rhoda Parisian' created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' properties: id: type: integer example: 3 name: type: string example: 'Rhoda Parisian' created_at: type: string example: '2025-01-30T22:42:49.000000Z' updated_at: type: string example: '2025-01-30T22:42:49.000000Z' tags: - projects put: summary: update operationId: update description: 'Update project.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 3 name: 'Mr. Dashawn Jacobson Sr.' created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' properties: id: type: integer example: 3 name: type: string example: 'Mr. Dashawn Jacobson Sr.' created_at: type: string example: '2025-01-30T22:42:49.000000Z' updated_at: type: string example: '2025-01-30T22:42:49.000000Z' tags: - projects requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'The name of the project.' example: ullam nullable: false required: - name parameters: - in: path name: id description: 'The ID of the project.' example: 1 required: true schema: type: integer '/api/projects/{project_id}': delete: summary: delete operationId: delete description: 'Delete project.' parameters: [] responses: 204: description: '' tags: - projects parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer '/api/projects/{project_id}/server-providers': get: summary: list operationId: list description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: 2 project_id: null global: true name: laudantium provider: vultr created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' - id: 3 project_id: null global: true name: aut provider: aws created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' links: first: '/?page=1' last: '/?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: 2 project_id: null global: true name: laudantium provider: vultr created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' - id: 3 project_id: null global: true name: aut provider: aws created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' items: type: object properties: id: type: integer example: 2 project_id: type: string example: null global: type: boolean example: true name: type: string example: laudantium provider: type: string example: vultr created_at: type: string example: '2025-01-30T22:42:49.000000Z' updated_at: type: string example: '2025-01-30T22:42:49.000000Z' links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - server-providers post: summary: create operationId: create description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 2 project_id: null global: true name: quia provider: vultr created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' properties: id: type: integer example: 2 project_id: type: string example: null global: type: boolean example: true name: type: string example: quia provider: type: string example: vultr created_at: type: string example: '2025-01-30T22:42:49.000000Z' updated_at: type: string example: '2025-01-30T22:42:49.000000Z' tags: - server-providers requestBody: required: true content: application/json: schema: type: object properties: provider: type: string description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)' example: voluptatem nullable: false name: type: string description: 'The name of the server provider.' example: repellat nullable: false token: type: string description: 'The token if provider requires api token' example: omnis nullable: false key: type: string description: 'The key if provider requires key' example: recusandae nullable: false secret: type: string description: 'The secret if provider requires key' example: in nullable: false required: - provider - name - token - key - secret parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer '/api/projects/{project_id}/server-providers/{serverProvider_id}': get: summary: show operationId: show description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 2 project_id: null global: true name: ab provider: hetzner created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' properties: id: type: integer example: 2 project_id: type: string example: null global: type: boolean example: true name: type: string example: ab provider: type: string example: hetzner created_at: type: string example: '2025-01-30T22:42:49.000000Z' updated_at: type: string example: '2025-01-30T22:42:49.000000Z' tags: - server-providers put: summary: update operationId: update description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 2 project_id: null global: true name: nesciunt provider: linode created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' properties: id: type: integer example: 2 project_id: type: string example: null global: type: boolean example: true name: type: string example: nesciunt provider: type: string example: linode created_at: type: string example: '2025-01-30T22:42:49.000000Z' updated_at: type: string example: '2025-01-30T22:42:49.000000Z' tags: - server-providers requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'The name of the server provider.' example: est nullable: false global: type: string description: 'Accessible in all projects' example: true nullable: false enum: - true - false required: - name - global delete: summary: delete operationId: delete description: '' parameters: [] responses: 204: description: '' tags: - server-providers parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: serverProvider_id description: 'The ID of the serverProvider.' example: 1 required: true schema: type: integer '/api/projects/{project_id}/servers': get: summary: list operationId: list description: 'Get all servers in a project.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: null project_id: null user_id: null provider_id: null name: 'Amina DuBuque' ssh_user: vito ip: 163.77.69.73 local_ip: 137.139.200.70 port: 22 os: ubuntu_22 type: regular type_data: null provider: custom provider_data: null public_key: test status: ready auto_update: null available_updates: 0 security_updates: null progress: 100 progress_step: null updates: null last_update_check: null created_at: null updated_at: null - id: null project_id: null user_id: null provider_id: null name: 'Floy Cummerata' ssh_user: vito ip: 62.53.140.25 local_ip: 34.59.35.195 port: 22 os: ubuntu_22 type: regular type_data: null provider: custom provider_data: null public_key: test status: ready auto_update: null available_updates: 0 security_updates: null progress: 100 progress_step: null updates: null last_update_check: null created_at: null updated_at: null links: first: '/?page=1' last: '/?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: null project_id: null user_id: null provider_id: null name: 'Amina DuBuque' ssh_user: vito ip: 163.77.69.73 local_ip: 137.139.200.70 port: 22 os: ubuntu_22 type: regular type_data: null provider: custom provider_data: null public_key: test status: ready auto_update: null available_updates: 0 security_updates: null progress: 100 progress_step: null updates: null last_update_check: null created_at: null updated_at: null - id: null project_id: null user_id: null provider_id: null name: 'Floy Cummerata' ssh_user: vito ip: 62.53.140.25 local_ip: 34.59.35.195 port: 22 os: ubuntu_22 type: regular type_data: null provider: custom provider_data: null public_key: test status: ready auto_update: null available_updates: 0 security_updates: null progress: 100 progress_step: null updates: null last_update_check: null created_at: null updated_at: null items: type: object properties: id: type: string example: null project_id: type: string example: null user_id: type: string example: null provider_id: type: string example: null name: type: string example: 'Amina DuBuque' ssh_user: type: string example: vito ip: type: string example: 163.77.69.73 local_ip: type: string example: 137.139.200.70 port: type: integer example: 22 os: type: string example: ubuntu_22 type: type: string example: regular type_data: type: string example: null provider: type: string example: custom provider_data: type: string example: null public_key: type: string example: test status: type: string example: ready auto_update: type: string example: null available_updates: type: integer example: 0 security_updates: type: string example: null progress: type: integer example: 100 progress_step: type: string example: null updates: type: string example: null last_update_check: type: string example: null created_at: type: string example: null updated_at: type: string example: null links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - servers post: summary: create operationId: create description: 'Create a new server.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null project_id: null user_id: null provider_id: null name: 'Archibald Nolan' ssh_user: vito ip: 226.168.13.177 local_ip: 143.14.43.182 port: 22 os: ubuntu_22 type: regular type_data: null provider: custom provider_data: null public_key: test status: ready auto_update: null available_updates: 0 security_updates: null progress: 100 progress_step: null updates: null last_update_check: null created_at: null updated_at: null properties: id: type: string example: null project_id: type: string example: null user_id: type: string example: null provider_id: type: string example: null name: type: string example: 'Archibald Nolan' ssh_user: type: string example: vito ip: type: string example: 226.168.13.177 local_ip: type: string example: 143.14.43.182 port: type: integer example: 22 os: type: string example: ubuntu_22 type: type: string example: regular type_data: type: string example: null provider: type: string example: custom provider_data: type: string example: null public_key: type: string example: test status: type: string example: ready auto_update: type: string example: null available_updates: type: integer example: 0 security_updates: type: string example: null progress: type: integer example: 100 progress_step: type: string example: null updates: type: string example: null last_update_check: type: string example: null created_at: type: string example: null updated_at: type: string example: null tags: - servers requestBody: required: true content: application/json: schema: type: object properties: provider: type: string description: 'The server provider type' example: iste nullable: false server_provider: type: string description: 'If the provider is not custom, the ID of the server provider profile' example: custom nullable: false enum: - custom - hetzner - digitalocean - linode - vultr region: type: string description: 'Provider region if the provider is not custom' example: libero nullable: false plan: type: string description: 'Provider plan if the provider is not custom' example: ut nullable: false ip: type: string description: 'SSH IP address if the provider is custom' example: molestias nullable: false port: type: string description: 'SSH Port if the provider is custom' example: laudantium nullable: false name: type: string description: 'The name of the server.' example: illum nullable: false os: type: string description: 'The os of the server' example: autem nullable: false webserver: type: string description: 'Web server' example: none nullable: false enum: - none - nginx database: type: string description: Database example: postgresql12 nullable: false enum: - none - mysql57 - mysql80 - mariadb103 - mariadb104 - mariadb103 - postgresql12 - postgresql13 - postgresql14 - postgresql15 - postgresql16 php: type: string description: 'PHP version' example: '7.4' nullable: false enum: - '7.0' - '7.1' - '7.2' - '7.3' - '7.4' - '8.0' - '8.1' - '8.2' - '8.3' required: - provider - server_provider - region - plan - ip - port - name - os - webserver - database - php parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer '/api/projects/{project_id}/servers/{id}': get: summary: show operationId: show description: 'Get a server by ID.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null project_id: null user_id: null provider_id: null name: 'Tevin Sipes' ssh_user: vito ip: 61.41.183.152 local_ip: 197.160.239.147 port: 22 os: ubuntu_22 type: regular type_data: null provider: custom provider_data: null public_key: test status: ready auto_update: null available_updates: 0 security_updates: null progress: 100 progress_step: null updates: null last_update_check: null created_at: null updated_at: null properties: id: type: string example: null project_id: type: string example: null user_id: type: string example: null provider_id: type: string example: null name: type: string example: 'Tevin Sipes' ssh_user: type: string example: vito ip: type: string example: 61.41.183.152 local_ip: type: string example: 197.160.239.147 port: type: integer example: 22 os: type: string example: ubuntu_22 type: type: string example: regular type_data: type: string example: null provider: type: string example: custom provider_data: type: string example: null public_key: type: string example: test status: type: string example: ready auto_update: type: string example: null available_updates: type: integer example: 0 security_updates: type: string example: null progress: type: integer example: 100 progress_step: type: string example: null updates: type: string example: null last_update_check: type: string example: null created_at: type: string example: null updated_at: type: string example: null tags: - servers parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: id description: 'The ID of the server.' example: 8 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/reboot': post: summary: reboot operationId: reboot description: 'Reboot a server.' parameters: [] responses: 204: description: '' tags: - servers parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/upgrade': post: summary: upgrade operationId: upgrade description: 'Upgrade server.' parameters: [] responses: 204: description: '' tags: - servers parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}': delete: summary: delete operationId: delete description: 'Delete server.' parameters: [] responses: 204: description: '' tags: - servers parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/services': get: summary: list operationId: list description: 'Get all services.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: null server_id: null type: null type_data: null name: null version: null unit: null status: null is_default: null created_at: null updated_at: null - id: null server_id: null type: null type_data: null name: null version: null unit: null status: null is_default: null created_at: null updated_at: null links: first: '/?page=1' last: '/?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: null server_id: null type: null type_data: null name: null version: null unit: null status: null is_default: null created_at: null updated_at: null - id: null server_id: null type: null type_data: null name: null version: null unit: null status: null is_default: null created_at: null updated_at: null items: type: object properties: id: type: string example: null server_id: type: string example: null type: type: string example: null type_data: type: string example: null name: type: string example: null version: type: string example: null unit: type: string example: null status: type: string example: null is_default: type: string example: null created_at: type: string example: null updated_at: type: string example: null links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - services parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/services/{id}': get: summary: show operationId: show description: 'Get a service by ID.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null type: null type_data: null name: null version: null unit: null status: null is_default: null created_at: null updated_at: null properties: id: type: string example: null server_id: type: string example: null type: type: string example: null type_data: type: string example: null name: type: string example: null version: type: string example: null unit: type: string example: null status: type: string example: null is_default: type: string example: null created_at: type: string example: null updated_at: type: string example: null tags: - services parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer - in: path name: id description: 'The ID of the service.' example: 53 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/services/{service_id}/start': post: summary: start operationId: start description: 'Start service.' parameters: [] responses: 204: description: '' tags: - services parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer - in: path name: service_id description: 'The ID of the service.' example: 53 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/services/{service_id}/stop': post: summary: stop operationId: stop description: 'Stop service.' parameters: [] responses: 204: description: '' tags: - services parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer - in: path name: service_id description: 'The ID of the service.' example: 53 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/services/{service_id}/restart': post: summary: restart operationId: restart description: 'Restart service.' parameters: [] responses: 204: description: '' tags: - services parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer - in: path name: service_id description: 'The ID of the service.' example: 53 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/services/{service_id}/enable': post: summary: enable operationId: enable description: 'Enable service.' parameters: [] responses: 204: description: '' tags: - services parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer - in: path name: service_id description: 'The ID of the service.' example: 53 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/services/{service_id}/disable': post: summary: disable operationId: disable description: 'Disable service.' parameters: [] responses: 204: description: '' tags: - services parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer - in: path name: service_id description: 'The ID of the service.' example: 53 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/services/{service_id}': delete: summary: delete operationId: delete description: 'Delete service.' parameters: [] responses: 204: description: '' tags: - services parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer - in: path name: service_id description: 'The ID of the service.' example: 53 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/sites': get: summary: list operationId: list description: 'Get all sites.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: null server_id: null source_control_id: null type: laravel type_data: null domain: test.com aliases: null web_directory: / path: /home php_version: '8.2' repository: null branch: main status: ready port: null user: vito progress: 100 created_at: null updated_at: null - id: null server_id: null source_control_id: null type: laravel type_data: null domain: test.com aliases: null web_directory: / path: /home php_version: '8.2' repository: null branch: main status: ready port: null user: vito progress: 100 created_at: null updated_at: null links: first: '/?page=1' last: '/?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: null server_id: null source_control_id: null type: laravel type_data: null domain: test.com aliases: null web_directory: / path: /home php_version: '8.2' repository: null branch: main status: ready port: null user: vito progress: 100 created_at: null updated_at: null - id: null server_id: null source_control_id: null type: laravel type_data: null domain: test.com aliases: null web_directory: / path: /home php_version: '8.2' repository: null branch: main status: ready port: null user: vito progress: 100 created_at: null updated_at: null items: type: object properties: id: type: string example: null server_id: type: string example: null source_control_id: type: string example: null type: type: string example: laravel type_data: type: string example: null domain: type: string example: test.com aliases: type: string example: null web_directory: type: string example: / path: type: string example: /home php_version: type: string example: '8.2' repository: type: string example: null branch: type: string example: main status: type: string example: ready port: type: string example: null user: type: string example: vito progress: type: integer example: 100 created_at: type: string example: null updated_at: type: string example: null links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - sites post: summary: create operationId: create description: 'Create a new site.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null source_control_id: null type: laravel type_data: null domain: test.com aliases: null web_directory: / path: /home php_version: '8.2' repository: null branch: main status: ready port: null user: vito progress: 100 created_at: null updated_at: null properties: id: type: string example: null server_id: type: string example: null source_control_id: type: string example: null type: type: string example: laravel type_data: type: string example: null domain: type: string example: test.com aliases: type: string example: null web_directory: type: string example: / path: type: string example: /home php_version: type: string example: '8.2' repository: type: string example: null branch: type: string example: main status: type: string example: ready port: type: string example: null user: type: string example: vito progress: type: integer example: 100 created_at: type: string example: null updated_at: type: string example: null tags: - sites requestBody: required: true content: application/json: schema: type: object properties: type: type: string description: '' example: php nullable: false enum: - php - php-blank - phpmyadmin - laravel - wordpress - load-balancer domain: type: string description: '' example: rem nullable: false aliases: type: array description: '' example: - libero items: type: string php_version: type: string description: 'One of the installed PHP Versions' example: '7.4' nullable: false web_directory: type: string description: 'Required for PHP and Laravel sites' example: public nullable: false source_control: type: string description: 'Source control ID, Required for Sites which support source control' example: dolor nullable: false repository: type: string description: 'Repository, Required for Sites which support source control' example: organization/repository nullable: false branch: type: string description: 'Branch, Required for Sites which support source control' example: main nullable: false composer: type: boolean description: 'Run composer if site supports composer' example: true nullable: false version: type: string description: 'Version, if the site type requires a version like PHPMyAdmin' example: 5.2.1 nullable: false user: type: string description: 'user, to isolate the website under a new user' example: vitae nullable: false method: type: string description: 'Load balancer method, Required if the site type is Load balancer' example: ip-hash nullable: false enum: - round-robin - least-connections - ip-hash required: - type - domain - aliases - php_version - web_directory - source_control - repository - branch - composer - version - user - method parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/sites/{id}': get: summary: show operationId: show description: 'Get a site by ID.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null source_control_id: null type: laravel type_data: null domain: test.com aliases: null web_directory: / path: /home php_version: '8.2' repository: null branch: main status: ready port: null user: vito progress: 100 created_at: null updated_at: null properties: id: type: string example: null server_id: type: string example: null source_control_id: type: string example: null type: type: string example: laravel type_data: type: string example: null domain: type: string example: test.com aliases: type: string example: null web_directory: type: string example: / path: type: string example: /home php_version: type: string example: '8.2' repository: type: string example: null branch: type: string example: main status: type: string example: ready port: type: string example: null user: type: string example: vito progress: type: integer example: 100 created_at: type: string example: null updated_at: type: string example: null tags: - sites parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer - in: path name: id description: 'The ID of the site.' example: 26 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/sites/{site_id}': delete: summary: delete operationId: delete description: 'Delete site.' parameters: [] responses: 204: description: '' tags: - sites parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer - in: path name: site_id description: 'The ID of the site.' example: 26 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/load-balancer': post: summary: load-balancer operationId: loadBalancer description: 'Update load balancer.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object nullable: true tags: - sites requestBody: required: true content: application/json: schema: type: object properties: method: type: string description: 'Load balancer method, Required if the site type is Load balancer' example: least-connections nullable: false enum: - round-robin - least-connections - ip-hash servers: type: array description: 'Array of servers including server, port, weight, backup. (server is the local IP of the server)' example: - deleniti items: type: string required: - method - servers parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer - in: path name: site_id description: 'The ID of the site.' example: 26 required: true schema: type: integer '/api/projects/{project_id}/source-controls': get: summary: list operationId: list description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: 5 project_id: null global: true name: 'Mr. Reuben Schimmel' provider: github created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' - id: 6 project_id: null global: true name: 'Ms. Brandy Mraz V' provider: github created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' links: first: '/?page=1' last: '/?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: 5 project_id: null global: true name: 'Mr. Reuben Schimmel' provider: github created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' - id: 6 project_id: null global: true name: 'Ms. Brandy Mraz V' provider: github created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' items: type: object properties: id: type: integer example: 5 project_id: type: string example: null global: type: boolean example: true name: type: string example: 'Mr. Reuben Schimmel' provider: type: string example: github created_at: type: string example: '2025-01-30T22:42:49.000000Z' updated_at: type: string example: '2025-01-30T22:42:49.000000Z' links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - source-controls post: summary: create operationId: create description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 5 project_id: null global: true name: 'Harmony Koss DVM' provider: github created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' properties: id: type: integer example: 5 project_id: type: string example: null global: type: boolean example: true name: type: string example: 'Harmony Koss DVM' provider: type: string example: github created_at: type: string example: '2025-01-30T22:42:49.000000Z' updated_at: type: string example: '2025-01-30T22:42:49.000000Z' tags: - source-controls requestBody: required: true content: application/json: schema: type: object properties: provider: type: string description: 'The provider' example: bitbucket nullable: false enum: - gitlab - github - bitbucket name: type: string description: 'The name of the storage provider.' example: dignissimos nullable: false token: type: string description: 'The token if provider requires api token' example: voluptates nullable: false url: type: string description: 'The URL if the provider is Gitlab and it is self-hosted' example: 'https://www.hamill.net/culpa-non-qui-suscipit-dolores-id-aliquam' nullable: false username: type: string description: 'The username if the provider is Bitbucket' example: nisi nullable: false password: type: string description: 'The password if the provider is Bitbucket' example: W~19Z0 nullable: false required: - provider - name - token - url - username - password parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer '/api/projects/{project_id}/source-controls/{sourceControl_id}': get: summary: show operationId: show description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 5 project_id: null global: true name: 'Martin Welch' provider: github created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' properties: id: type: integer example: 5 project_id: type: string example: null global: type: boolean example: true name: type: string example: 'Martin Welch' provider: type: string example: github created_at: type: string example: '2025-01-30T22:42:49.000000Z' updated_at: type: string example: '2025-01-30T22:42:49.000000Z' tags: - source-controls put: summary: update operationId: update description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 5 project_id: null global: true name: 'Miss Dulce Nicolas III' provider: github created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' properties: id: type: integer example: 5 project_id: type: string example: null global: type: boolean example: true name: type: string example: 'Miss Dulce Nicolas III' provider: type: string example: github created_at: type: string example: '2025-01-30T22:42:49.000000Z' updated_at: type: string example: '2025-01-30T22:42:49.000000Z' tags: - source-controls requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'The name of the storage provider.' example: aut nullable: false token: type: string description: 'The token if provider requires api token' example: repudiandae nullable: false url: type: string description: 'The URL if the provider is Gitlab and it is self-hosted' example: 'http://howe.net/eaque-assumenda-voluptatem-quo-libero-eius.html' nullable: false username: type: string description: 'The username if the provider is Bitbucket' example: consequatur nullable: false password: type: string description: 'The password if the provider is Bitbucket' example: 'oX/H"pAIt7R2"' nullable: false global: type: string description: 'Accessible in all projects' example: false nullable: false enum: - true - false required: - name - token - url - username - password - global delete: summary: delete operationId: delete description: '' parameters: [] responses: 204: description: '' tags: - source-controls parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: sourceControl_id description: 'The ID of the sourceControl.' example: 1 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/ssh-keys': get: summary: list operationId: list description: 'Get all ssh keys.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: null user: null name: 'Godfrey Mills' created_at: null updated_at: null - id: null user: null name: 'Donato Streich' created_at: null updated_at: null links: first: '/?page=1' last: '/?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: null user: null name: 'Godfrey Mills' created_at: null updated_at: null - id: null user: null name: 'Donato Streich' created_at: null updated_at: null items: type: object properties: id: type: string example: null user: type: string example: null name: type: string example: 'Godfrey Mills' created_at: type: string example: null updated_at: type: string example: null links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - ssh-keys post: summary: create operationId: create description: 'Deploy ssh key to server.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null user: null name: 'Mr. Stanton Bergnaum' created_at: null updated_at: null properties: id: type: string example: null user: type: string example: null name: type: string example: 'Mr. Stanton Bergnaum' created_at: type: string example: null updated_at: type: string example: null tags: - ssh-keys requestBody: required: true content: application/json: schema: type: object properties: key_id: type: string description: 'The ID of the key.' example: numquam nullable: false name: type: string description: 'Key name, required if key_id is not provided.' example: alias nullable: false public_key: type: string description: 'Public Key, required if key_id is not provided.' example: voluptate nullable: false required: - key_id - name - public_key parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/ssh-keys/{sshKey_id}': delete: summary: delete operationId: delete description: 'Delete ssh key from server.' parameters: [] responses: 204: description: '' tags: - ssh-keys parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 8 required: true schema: type: integer - in: path name: sshKey_id description: 'The ID of the sshKey.' example: 1 required: true schema: type: integer '/api/projects/{project_id}/storage-providers': get: summary: list operationId: list description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: 5 project_id: null global: true name: dolorem provider: s3 created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' - id: 6 project_id: null global: true name: itaque provider: s3 created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' links: first: '/?page=1' last: '/?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: 5 project_id: null global: true name: dolorem provider: s3 created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' - id: 6 project_id: null global: true name: itaque provider: s3 created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' items: type: object properties: id: type: integer example: 5 project_id: type: string example: null global: type: boolean example: true name: type: string example: dolorem provider: type: string example: s3 created_at: type: string example: '2025-01-30T22:42:49.000000Z' updated_at: type: string example: '2025-01-30T22:42:49.000000Z' links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - storage-providers post: summary: create operationId: create description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 5 project_id: null global: true name: quos provider: s3 created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' properties: id: type: integer example: 5 project_id: type: string example: null global: type: boolean example: true name: type: string example: quos provider: type: string example: s3 created_at: type: string example: '2025-01-30T22:42:49.000000Z' updated_at: type: string example: '2025-01-30T22:42:49.000000Z' tags: - storage-providers requestBody: required: true content: application/json: schema: type: object properties: provider: type: string description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)' example: alias nullable: false name: type: string description: 'The name of the storage provider.' example: explicabo nullable: false token: type: string description: 'The token if provider requires api token' example: ut nullable: false key: type: string description: 'The key if provider requires key' example: libero nullable: false secret: type: string description: 'The secret if provider requires key' example: consequatur nullable: false required: - provider - name - token - key - secret parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer '/api/projects/{project_id}/storage-providers/{storageProvider_id}': get: summary: show operationId: show description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 5 project_id: null global: true name: id provider: s3 created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' properties: id: type: integer example: 5 project_id: type: string example: null global: type: boolean example: true name: type: string example: id provider: type: string example: s3 created_at: type: string example: '2025-01-30T22:42:49.000000Z' updated_at: type: string example: '2025-01-30T22:42:49.000000Z' tags: - storage-providers put: summary: update operationId: update description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 5 project_id: null global: true name: velit provider: s3 created_at: '2025-01-30T22:42:49.000000Z' updated_at: '2025-01-30T22:42:49.000000Z' properties: id: type: integer example: 5 project_id: type: string example: null global: type: boolean example: true name: type: string example: velit provider: type: string example: s3 created_at: type: string example: '2025-01-30T22:42:49.000000Z' updated_at: type: string example: '2025-01-30T22:42:49.000000Z' tags: - storage-providers requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'The name of the storage provider.' example: sequi nullable: false global: type: string description: 'Accessible in all projects' example: false nullable: false enum: - true - false required: - name - global delete: summary: delete operationId: delete description: '' parameters: [] responses: 204: description: '' tags: - storage-providers parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: storageProvider_id description: 'The ID of the storageProvider.' example: 3 required: true schema: type: integer tags: - name: cron-jobs description: '' - name: database-users description: '' - name: databases description: '' - name: firewall-rules description: '' - name: general description: '' - name: projects description: '' - name: server-providers description: '' - name: servers description: '' - name: services description: '' - name: sites description: '' - name: source-controls description: '' - name: ssh-keys description: '' - name: storage-providers description: '' components: securitySchemes: default: type: http scheme: bearer description: 'You can retrieve your token by visiting here' security: - default: []