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: []