openapi: 3.0.3 info: title: 'API Documentation' description: "VitoDeploy's API documentation." version: 1.0.0 servers: - url: 'https://vito.test' tags: - name: Endpoints description: '' - 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: '' paths: '/api/servers/{server_id}/agent/{id}': post: summary: '' operationId: postApiServersServer_idAgentId description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: load: type: number description: '' example: 4326.41688 nullable: false memory_total: type: number description: '' example: 4326.41688 nullable: false memory_used: type: number description: '' example: 4326.41688 nullable: false memory_free: type: number description: '' example: 4326.41688 nullable: false disk_total: type: number description: '' example: 4326.41688 nullable: false disk_used: type: number description: '' example: 4326.41688 nullable: false disk_free: type: number description: '' example: 4326.41688 nullable: false required: - load - memory_total - memory_used - memory_free - disk_total - disk_used - disk_free security: [] parameters: - in: path name: server_id description: 'The ID of the server.' example: 6 required: true schema: type: integer - in: path name: id description: 'The ID of the agent.' example: architecto required: true schema: type: string /api/git-hooks: get: summary: '' operationId: getApiGitHooks description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: '' properties: message: type: string example: '' tags: - Endpoints security: [] '/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: 3 server_id: 1 command: 'ls -la' user: root frequency: '* * * * *' status: ready status_color: success created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 4 server_id: 1 command: 'ls -la' user: root frequency: '* * * * *' status: ready status_color: success created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.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 server_id: 1 command: 'ls -la' user: root frequency: '* * * * *' status: ready status_color: success created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 4 server_id: 1 command: 'ls -la' user: root frequency: '* * * * *' status: ready status_color: success created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' items: type: object properties: id: type: integer example: 3 server_id: type: integer example: 1 command: type: string example: 'ls -la' user: type: string example: root frequency: type: string example: '* * * * *' status: type: string example: ready status_color: type: string example: success created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.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: - cron-jobs security: [] post: summary: create operationId: create description: 'Create a new cron job.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 3 server_id: 1 command: 'ls -la' user: root frequency: '* * * * *' status: ready status_color: success created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 3 server_id: type: integer example: 1 command: type: string example: 'ls -la' user: type: string example: root frequency: type: string example: '* * * * *' status: type: string example: ready status_color: type: string example: success created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - cron-jobs requestBody: required: true content: application/json: schema: type: object properties: command: type: string description: '' example: architecto nullable: false user: type: string description: '' example: vito nullable: false enum: - root - vito frequency: type: string description: 'Frequency of the cron job.' example: '* * * * *' nullable: false required: - command - user - frequency security: [] 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: 6 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: 3 server_id: 1 command: 'ls -la' user: root frequency: '* * * * *' status: ready status_color: success created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 3 server_id: type: integer example: 1 command: type: string example: 'ls -la' user: type: string example: root frequency: type: string example: '* * * * *' status: type: string example: ready status_color: type: string example: success created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - cron-jobs security: [] delete: summary: delete operationId: delete description: 'Delete cron job.' parameters: [] responses: 204: description: '' tags: - cron-jobs security: [] 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: 6 required: true schema: type: integer - in: path name: cronJob_id description: 'The ID of the cronJob.' example: 1 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: 4 server_id: 1 username: cartwright.maxine databases: [] host: '%' status: creating status_color: warning created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 5 server_id: 1 username: gusikowski.eden databases: [] host: '%' status: creating status_color: warning created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.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: 4 server_id: 1 username: cartwright.maxine databases: [] host: '%' status: creating status_color: warning created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 5 server_id: 1 username: gusikowski.eden databases: [] host: '%' status: creating status_color: warning created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' items: type: object properties: id: type: integer example: 4 server_id: type: integer example: 1 username: type: string example: cartwright.maxine databases: type: array example: [] host: type: string example: '%' status: type: string example: creating status_color: type: string example: warning created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.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: - database-users security: [] post: summary: create operationId: create description: 'Create a new database user.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 4 server_id: 1 username: justina.gaylord databases: [] host: '%' status: creating status_color: warning created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 4 server_id: type: integer example: 1 username: type: string example: justina.gaylord databases: type: array example: [] host: type: string example: '%' status: type: string example: creating status_color: type: string example: warning created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - database-users requestBody: required: true content: application/json: schema: type: object properties: username: type: string description: '' example: architecto nullable: false password: type: string description: '' example: '|]|{+-' nullable: false host: type: string description: 'Host, if it is a remote user.' example: '%' nullable: false required: - username - password - host security: [] 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: 6 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: 4 server_id: 1 username: zbailey databases: [] host: '%' status: creating status_color: warning created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 4 server_id: type: integer example: 1 username: type: string example: zbailey databases: type: array example: [] host: type: string example: '%' status: type: string example: creating status_color: type: string example: warning created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - database-users security: [] delete: summary: delete operationId: delete description: 'Delete database user.' parameters: [] responses: 204: description: '' tags: - database-users security: [] 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: 6 required: true schema: type: integer - in: path name: databaseUser_id description: 'The ID of the databaseUser.' example: 16 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: 4 server_id: 1 username: zbailey databases: [] host: '%' status: creating status_color: warning created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 4 server_id: type: integer example: 1 username: type: string example: zbailey databases: type: array example: [] host: type: string example: '%' status: type: string example: creating status_color: type: string example: warning created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' 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: architecto nullable: false required: - databases security: [] 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: 6 required: true schema: type: integer - in: path name: databaseUser_id description: 'The ID of the databaseUser.' example: 16 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: 9 server_id: 1 name: zbailey collation: null charset: null status: ready status_color: success created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 10 server_id: 1 name: rempel.chadrick collation: null charset: null status: ready status_color: success created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.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: 9 server_id: 1 name: zbailey collation: null charset: null status: ready status_color: success created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 10 server_id: 1 name: rempel.chadrick collation: null charset: null status: ready status_color: success created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' items: type: object properties: id: type: integer example: 9 server_id: type: integer example: 1 name: type: string example: zbailey collation: type: string example: null charset: type: string example: null status: type: string example: ready status_color: type: string example: success created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.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: - databases security: [] post: summary: create operationId: create description: 'Create a new database.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 9 server_id: 1 name: zbailey collation: null charset: null status: ready status_color: success created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 9 server_id: type: integer example: 1 name: type: string example: zbailey collation: type: string example: null charset: type: string example: null status: type: string example: ready status_color: type: string example: success created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - databases requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: '' example: architecto nullable: false charset: type: string description: '' example: architecto nullable: false collation: type: string description: '' example: architecto nullable: false required: - name - charset - collation security: [] 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: 6 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: 9 server_id: 1 name: rempel.chadrick collation: null charset: null status: ready status_color: success created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 9 server_id: type: integer example: 1 name: type: string example: rempel.chadrick collation: type: string example: null charset: type: string example: null status: type: string example: ready status_color: type: string example: success created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - databases security: [] 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: 6 required: true schema: type: integer - in: path name: id description: 'The ID of the database.' example: 8 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 security: [] 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: 6 required: true schema: type: integer - in: path name: database_id description: 'The ID of the database.' example: 8 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: 22 name: eius server_id: 1 type: allow protocol: tcp port: 9322 source: 113.14.236.204 mask: '24' note: test status: creating status_color: info created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 23 name: velit server_id: 1 type: allow protocol: tcp port: 2983 source: 199.172.126.144 mask: '24' note: test status: creating status_color: info created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.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: 22 name: eius server_id: 1 type: allow protocol: tcp port: 9322 source: 113.14.236.204 mask: '24' note: test status: creating status_color: info created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 23 name: velit server_id: 1 type: allow protocol: tcp port: 2983 source: 199.172.126.144 mask: '24' note: test status: creating status_color: info created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' items: type: object properties: id: type: integer example: 22 name: type: string example: eius server_id: type: integer example: 1 type: type: string example: allow protocol: type: string example: tcp port: type: integer example: 9322 source: type: string example: 113.14.236.204 mask: type: string example: '24' note: type: string example: test status: type: string example: creating status_color: type: string example: info created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.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: - firewall-rules security: [] post: summary: create operationId: create description: 'Create a new firewall rule.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 22 name: eius server_id: 1 type: allow protocol: tcp port: 9322 source: 113.14.236.204 mask: '24' note: test status: creating status_color: info created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 22 name: type: string example: eius server_id: type: integer example: 1 type: type: string example: allow protocol: type: string example: tcp port: type: integer example: 9322 source: type: string example: 113.14.236.204 mask: type: string example: '24' note: type: string example: test status: type: string example: creating status_color: type: string example: info created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - firewall-rules requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: '' example: architecto nullable: false type: type: string description: '' example: allow nullable: false enum: - allow - deny protocol: type: string description: '' example: tcp nullable: false enum: - tcp - udp port: type: string description: '' example: architecto nullable: false source: type: string description: '' example: architecto nullable: false mask: type: string description: 'Mask for source IP.' example: '0' nullable: false required: - name - type - protocol - port - mask security: [] 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: 6 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/firewall-rules/{firewallRule_id}': put: summary: edit operationId: edit description: 'Update an existing firewall rule.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 22 name: eius server_id: 1 type: allow protocol: tcp port: 9322 source: 113.14.236.204 mask: '24' note: test status: creating status_color: info created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 22 name: type: string example: eius server_id: type: integer example: 1 type: type: string example: allow protocol: type: string example: tcp port: type: integer example: 9322 source: type: string example: 113.14.236.204 mask: type: string example: '24' note: type: string example: test status: type: string example: creating status_color: type: string example: info created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - firewall-rules requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: '' example: architecto nullable: false 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: architecto nullable: false source: type: string description: '' example: architecto nullable: false mask: type: string description: 'Mask for source IP.' example: '0' nullable: false required: - name - type - protocol - port - mask security: [] get: summary: show operationId: show description: 'Get a firewall rule by ID.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 22 name: velit server_id: 1 type: allow protocol: tcp port: 2983 source: 199.172.126.144 mask: '24' note: test status: creating status_color: info created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 22 name: type: string example: velit server_id: type: integer example: 1 type: type: string example: allow protocol: type: string example: tcp port: type: integer example: 2983 source: type: string example: 199.172.126.144 mask: type: string example: '24' note: type: string example: test status: type: string example: creating status_color: type: string example: info created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - firewall-rules security: [] delete: summary: delete operationId: delete description: 'Delete firewall rule.' parameters: [] responses: 204: description: '' tags: - firewall-rules security: [] 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: 6 required: true schema: type: integer - in: path name: firewallRule_id description: 'The ID of the firewallRule.' example: 19 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.5.0 properties: success: type: boolean example: true version: type: string example: 2.5.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: 'Belle Dickens' created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 4 name: 'Mittie Considine' created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.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: 'Belle Dickens' created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 4 name: 'Mittie Considine' created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' items: type: object properties: id: type: integer example: 3 name: type: string example: 'Belle Dickens' created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.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 security: [] post: summary: create operationId: create description: 'Create a new project.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 3 name: 'Ms. Elisabeth Okuneva' created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 3 name: type: string example: 'Ms. Elisabeth Okuneva' created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - projects requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'The name of the project.' example: architecto nullable: false required: - name security: [] '/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: "Aleen O'Kon" created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 3 name: type: string example: "Aleen O'Kon" created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - projects security: [] put: summary: update operationId: update description: 'Update project.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 3 name: 'Ms. Elisabeth Okuneva' created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 3 name: type: string example: 'Ms. Elisabeth Okuneva' created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - projects requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'The name of the project.' example: architecto nullable: false required: - name security: [] 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 security: [] parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects': post: summary: create operationId: create description: 'Create a new redirect.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object nullable: true tags: - redirects requestBody: required: true content: application/json: schema: type: object properties: from: type: string description: '' example: architecto nullable: false to: type: string description: '' example: architecto nullable: false mode: type: string description: '' example: 307 nullable: false enum: - 301 - 302 - 307 - 308 required: - from - to - mode security: [] 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: 6 required: true schema: type: integer - in: path name: site_id description: 'The ID of the site.' example: 14 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects/{redirect_id}': delete: summary: delete operationId: delete description: 'Delete a redirect.' parameters: [] responses: 204: description: '' tags: - redirects security: [] 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: 6 required: true schema: type: integer - in: path name: site_id description: 'The ID of the site.' example: 14 required: true schema: type: integer - in: path name: redirect_id description: 'The ID of the redirect.' example: 2 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: 4 project_id: null global: true name: ab provider: custom created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 5 project_id: null global: true name: incidunt provider: custom created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.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: 4 project_id: null global: true name: ab provider: custom created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 5 project_id: null global: true name: incidunt provider: custom created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' items: type: object properties: id: type: integer example: 4 project_id: type: string example: null global: type: boolean example: true name: type: string example: ab provider: type: string example: custom created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.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 security: [] post: summary: create operationId: create description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 4 project_id: null global: true name: eius provider: custom created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 4 project_id: type: string example: null global: type: boolean example: true name: type: string example: eius provider: type: string example: custom created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.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: architecto nullable: false name: type: string description: 'The name of the server provider.' example: architecto nullable: false token: type: string description: 'The token if provider requires api token' example: architecto nullable: false key: type: string description: 'The key if provider requires key' example: architecto nullable: false secret: type: string description: 'The secret if provider requires key' example: architecto nullable: false required: - provider - name - token - key - secret security: [] 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: 4 project_id: null global: true name: mollitia provider: vultr created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 4 project_id: type: string example: null global: type: boolean example: true name: type: string example: mollitia provider: type: string example: vultr created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - server-providers security: [] put: summary: update operationId: update description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 4 project_id: null global: true name: eius provider: custom created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 4 project_id: type: string example: null global: type: boolean example: true name: type: string example: eius provider: type: string example: custom created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.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: architecto nullable: false global: type: string description: 'Accessible in all projects' example: false nullable: false enum: - true - false required: - name - global security: [] delete: summary: delete operationId: delete description: '' parameters: [] responses: 204: description: '' tags: - server-providers security: [] 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: 3 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: 7 project_id: 1 services: [] user_id: 1 provider_id: null name: 'Rhiannon Hackett' ssh_user: vito ssh_users: - root - vito ip: 15.21.182.27 local_ip: 15.126.47.30 port: 22 os: ubuntu_22 type: regular type_data: null provider: custom provider_data: null public_key: test status: ready auto_update: null available_updates: 0 security_updates: null progress: 100 progress_step: null updates: 0 last_update_check: null status_color: success created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 8 project_id: 1 services: [] user_id: 1 provider_id: null name: 'Maya Bins' ssh_user: vito ssh_users: - root - vito ip: 88.63.32.129 local_ip: 161.58.4.234 port: 22 os: ubuntu_22 type: regular type_data: null provider: custom provider_data: null public_key: test status: ready auto_update: null available_updates: 0 security_updates: null progress: 100 progress_step: null updates: 0 last_update_check: null status_color: success created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.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: 7 project_id: 1 services: [] user_id: 1 provider_id: null name: 'Rhiannon Hackett' ssh_user: vito ssh_users: - root - vito ip: 15.21.182.27 local_ip: 15.126.47.30 port: 22 os: ubuntu_22 type: regular type_data: null provider: custom provider_data: null public_key: test status: ready auto_update: null available_updates: 0 security_updates: null progress: 100 progress_step: null updates: 0 last_update_check: null status_color: success created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 8 project_id: 1 services: [] user_id: 1 provider_id: null name: 'Maya Bins' ssh_user: vito ssh_users: - root - vito ip: 88.63.32.129 local_ip: 161.58.4.234 port: 22 os: ubuntu_22 type: regular type_data: null provider: custom provider_data: null public_key: test status: ready auto_update: null available_updates: 0 security_updates: null progress: 100 progress_step: null updates: 0 last_update_check: null status_color: success created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' items: type: object properties: id: type: integer example: 7 project_id: type: integer example: 1 services: type: array example: [] user_id: type: integer example: 1 provider_id: type: string example: null name: type: string example: 'Rhiannon Hackett' ssh_user: type: string example: vito ssh_users: type: array example: - root - vito items: type: string ip: type: string example: 15.21.182.27 local_ip: type: string example: 15.126.47.30 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: integer example: 0 last_update_check: type: string example: null status_color: type: string example: success created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.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: - servers security: [] post: summary: create operationId: create description: 'Create a new server.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 7 project_id: 1 services: [] user_id: 1 provider_id: null name: 'Ms. Elisabeth Okuneva' ssh_user: vito ssh_users: - root - vito ip: 75.13.66.152 local_ip: 199.172.126.144 port: 22 os: ubuntu_22 type: regular type_data: null provider: custom provider_data: null public_key: test status: ready auto_update: null available_updates: 0 security_updates: null progress: 100 progress_step: null updates: 0 last_update_check: null status_color: success created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 7 project_id: type: integer example: 1 services: type: array example: [] user_id: type: integer example: 1 provider_id: type: string example: null name: type: string example: 'Ms. Elisabeth Okuneva' ssh_user: type: string example: vito ssh_users: type: array example: - root - vito items: type: string ip: type: string example: 75.13.66.152 local_ip: type: string example: 199.172.126.144 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: integer example: 0 last_update_check: type: string example: null status_color: type: string example: success created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - servers requestBody: required: true content: application/json: schema: type: object properties: provider: type: string description: 'The server provider type' example: architecto nullable: false server_provider: type: string description: 'If the provider is not custom, the ID of the server provider profile' example: linode nullable: false enum: - custom - hetzner - digitalocean - linode - vultr region: type: string description: 'Provider region if the provider is not custom' example: architecto nullable: false plan: type: string description: 'Provider plan if the provider is not custom' example: architecto nullable: false ip: type: string description: 'SSH IP address if the provider is custom' example: architecto nullable: false port: type: string description: 'SSH Port if the provider is custom' example: architecto nullable: false name: type: string description: 'The name of the server.' example: architecto nullable: false os: type: string description: 'The os of the server' example: architecto nullable: false webserver: type: string description: 'Web server' example: none nullable: false enum: - none - nginx - caddy database: type: string description: Database example: mysql80 nullable: false enum: - none - mysql57 - mysql80 - mariadb103 - mariadb104 - mariadb103 - postgresql12 - postgresql13 - postgresql14 - postgresql15 - postgresql16 php: type: string description: 'PHP version' example: '8.2' 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 security: [] 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: 7 project_id: 1 services: [] user_id: 1 provider_id: null name: 'Belle Dickens' ssh_user: vito ssh_users: - root - vito ip: 51.210.32.30 local_ip: 82.174.132.158 port: 22 os: ubuntu_22 type: regular type_data: null provider: custom provider_data: null public_key: test status: ready auto_update: null available_updates: 0 security_updates: null progress: 100 progress_step: null updates: 0 last_update_check: null status_color: success created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 7 project_id: type: integer example: 1 services: type: array example: [] user_id: type: integer example: 1 provider_id: type: string example: null name: type: string example: 'Belle Dickens' ssh_user: type: string example: vito ssh_users: type: array example: - root - vito items: type: string ip: type: string example: 51.210.32.30 local_ip: type: string example: 82.174.132.158 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: integer example: 0 last_update_check: type: string example: null status_color: type: string example: success created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - servers security: [] 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: 6 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 security: [] 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: 6 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 security: [] 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: 6 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 security: [] 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: 6 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: 1 type: webserver type_data: null name: nginx version: null unit: null status: ready status_color: success icon: '' is_default: null created_at: null updated_at: null - id: null server_id: 1 type: webserver type_data: null name: nginx version: null unit: null status: ready status_color: success icon: '' 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: 1 type: webserver type_data: null name: nginx version: null unit: null status: ready status_color: success icon: '' is_default: null created_at: null updated_at: null - id: null server_id: 1 type: webserver type_data: null name: nginx version: null unit: null status: ready status_color: success icon: '' is_default: null created_at: null updated_at: null items: type: object properties: id: type: string example: null server_id: type: integer example: 1 type: type: string example: webserver type_data: type: string example: null name: type: string example: nginx version: type: string example: null unit: type: string example: null status: type: string example: ready status_color: type: string example: success icon: type: string example: '' 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 security: [] 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: 6 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: 1 type: webserver type_data: null name: nginx version: null unit: null status: ready status_color: success icon: '' is_default: null created_at: null updated_at: null properties: id: type: string example: null server_id: type: integer example: 1 type: type: string example: webserver type_data: type: string example: null name: type: string example: nginx version: type: string example: null unit: type: string example: null status: type: string example: ready status_color: type: string example: success icon: type: string example: '' is_default: type: string example: null created_at: type: string example: null updated_at: type: string example: null tags: - services security: [] 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: 6 required: true schema: type: integer - in: path name: id description: 'The ID of the service.' example: 22 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 security: [] 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: 6 required: true schema: type: integer - in: path name: service_id description: 'The ID of the service.' example: 22 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 security: [] 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: 6 required: true schema: type: integer - in: path name: service_id description: 'The ID of the service.' example: 22 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 security: [] 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: 6 required: true schema: type: integer - in: path name: service_id description: 'The ID of the service.' example: 22 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 security: [] 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: 6 required: true schema: type: integer - in: path name: service_id description: 'The ID of the service.' example: 22 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 security: [] 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: 6 required: true schema: type: integer - in: path name: service_id description: 'The ID of the service.' example: 22 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 security: [] 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: 6 required: true schema: type: integer - in: path name: service_id description: 'The ID of the service.' example: 22 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: 15 server_id: 1 source_control_id: null type: laravel type_data: null features: - deployment - commands - env - ssl - workers domain: test.com aliases: null web_directory: / path: /home php_version: '8.2' repository: null branch: main status: ready status_color: success auto_deploy: false port: null user: vito url: 'http://test.com' force_ssl: false progress: 100 created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 16 server_id: 1 source_control_id: null type: laravel type_data: null features: - deployment - commands - env - ssl - workers domain: test.com aliases: null web_directory: / path: /home php_version: '8.2' repository: null branch: main status: ready status_color: success auto_deploy: false port: null user: vito url: 'http://test.com' force_ssl: false progress: 100 created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.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: 15 server_id: 1 source_control_id: null type: laravel type_data: null features: - deployment - commands - env - ssl - workers domain: test.com aliases: null web_directory: / path: /home php_version: '8.2' repository: null branch: main status: ready status_color: success auto_deploy: false port: null user: vito url: 'http://test.com' force_ssl: false progress: 100 created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 16 server_id: 1 source_control_id: null type: laravel type_data: null features: - deployment - commands - env - ssl - workers domain: test.com aliases: null web_directory: / path: /home php_version: '8.2' repository: null branch: main status: ready status_color: success auto_deploy: false port: null user: vito url: 'http://test.com' force_ssl: false progress: 100 created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' items: type: object properties: id: type: integer example: 15 server_id: type: integer example: 1 source_control_id: type: string example: null type: type: string example: laravel type_data: type: string example: null features: type: array example: - deployment - commands - env - ssl - workers items: type: string 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 status_color: type: string example: success auto_deploy: type: boolean example: false port: type: string example: null user: type: string example: vito url: type: string example: 'http://test.com' force_ssl: type: boolean example: false progress: type: integer example: 100 created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.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: - sites security: [] post: summary: create operationId: create description: 'Create a new site.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 15 server_id: 1 source_control_id: null type: laravel type_data: null features: - deployment - commands - env - ssl - workers domain: test.com aliases: null web_directory: / path: /home php_version: '8.2' repository: null branch: main status: ready status_color: success auto_deploy: false port: null user: vito url: 'http://test.com' force_ssl: false progress: 100 created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 15 server_id: type: integer example: 1 source_control_id: type: string example: null type: type: string example: laravel type_data: type: string example: null features: type: array example: - deployment - commands - env - ssl - workers items: type: string 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 status_color: type: string example: success auto_deploy: type: boolean example: false port: type: string example: null user: type: string example: vito url: type: string example: 'http://test.com' force_ssl: type: boolean example: false progress: type: integer example: 100 created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - sites requestBody: required: true content: application/json: schema: type: object properties: type: type: string description: '' example: php-blank nullable: false enum: - php - php-blank - phpmyadmin - laravel - wordpress - load-balancer domain: type: string description: '' example: architecto nullable: false aliases: type: array description: '' example: - architecto 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: architecto 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: architecto nullable: false method: type: string description: 'Load balancer method, Required if the site type is Load balancer' example: round-robin 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 security: [] 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: 6 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: 15 server_id: 1 source_control_id: null type: laravel type_data: null features: - deployment - commands - env - ssl - workers domain: test.com aliases: null web_directory: / path: /home php_version: '8.2' repository: null branch: main status: ready status_color: success auto_deploy: false port: null user: vito url: 'http://test.com' force_ssl: false progress: 100 created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 15 server_id: type: integer example: 1 source_control_id: type: string example: null type: type: string example: laravel type_data: type: string example: null features: type: array example: - deployment - commands - env - ssl - workers items: type: string 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 status_color: type: string example: success auto_deploy: type: boolean example: false port: type: string example: null user: type: string example: vito url: type: string example: 'http://test.com' force_ssl: type: boolean example: false progress: type: integer example: 100 created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - sites security: [] 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: 6 required: true schema: type: integer - in: path name: id description: 'The ID of the site.' example: 14 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 security: [] 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: 6 required: true schema: type: integer - in: path name: site_id description: 'The ID of the site.' example: 14 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: round-robin 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: - architecto items: type: string required: - method - servers security: [] 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: 6 required: true schema: type: integer - in: path name: site_id description: 'The ID of the site.' example: 14 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/aliases': put: summary: aliases operationId: aliases description: 'Update aliases.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object nullable: true tags: - sites requestBody: required: true content: application/json: schema: type: object properties: aliases: type: array description: 'Array of aliases' example: - architecto items: type: string required: - aliases security: [] 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: 6 required: true schema: type: integer - in: path name: site_id description: 'The ID of the site.' example: 14 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deploy': post: summary: deploy operationId: deploy description: 'Run site deployment script' parameters: [] responses: 200: description: '' content: application/json: schema: type: object nullable: true tags: - sites security: [] 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: 6 required: true schema: type: integer - in: path name: site_id description: 'The ID of the site.' example: 14 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deployment-script': put: summary: deployment-script operationId: deploymentScript description: 'Update site deployment script' parameters: [] responses: 204: description: '' tags: - sites requestBody: required: true content: application/json: schema: type: object properties: script: type: string description: 'Content of the deployment script' example: architecto nullable: false required: - script security: [] get: summary: deployment-script operationId: deploymentScript description: 'Get site deployment script content' parameters: [] responses: 200: description: '' content: application/json: schema: type: object nullable: true tags: - sites security: [] 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: 6 required: true schema: type: integer - in: path name: site_id description: 'The ID of the site.' example: 14 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/env': get: summary: env operationId: env description: 'Get site .env file content' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: env: APP_NAME=Laravel\nAPP_ENV=production properties: data: type: object properties: env: type: string example: APP_NAME=Laravel\nAPP_ENV=production tags: - sites security: [] put: summary: env operationId: env description: 'Update site .env file' parameters: [] responses: 200: description: '' content: application/json: schema: type: object nullable: true tags: - sites requestBody: required: true content: application/json: schema: type: object properties: env: type: string description: 'Content of the .env file' example: architecto nullable: false required: - env security: [] 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: 6 required: true schema: type: integer - in: path name: site_id description: 'The ID of the site.' example: 14 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: 2 project_id: null global: true name: 'Ms. Elisabeth Okuneva' provider: github created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 3 project_id: null global: true name: "Aleen O'Kon" provider: github created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.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: 'Ms. Elisabeth Okuneva' provider: github created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 3 project_id: null global: true name: "Aleen O'Kon" provider: github created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.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: 'Ms. Elisabeth Okuneva' provider: type: string example: github created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.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 security: [] 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: 'Mrs. Justina Gaylord' provider: github created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 2 project_id: type: string example: null global: type: boolean example: true name: type: string example: 'Mrs. Justina Gaylord' provider: type: string example: github created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - source-controls requestBody: required: true content: application/json: schema: type: object properties: provider: type: string description: 'The provider' example: gitlab nullable: false enum: - gitlab - github - bitbucket name: type: string description: 'The name of the storage provider.' example: architecto nullable: false token: type: string description: 'The token if provider requires api token' example: architecto nullable: false url: type: string description: 'The URL if the provider is Gitlab and it is self-hosted' example: 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html' nullable: false username: type: string description: 'The username if the provider is Bitbucket' example: architecto nullable: false password: type: string description: 'The password if the provider is Bitbucket' example: '|]|{+-' nullable: false required: - provider - name - token - url - username - password security: [] 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: 2 project_id: null global: true name: 'Misael Runte' provider: github created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 2 project_id: type: string example: null global: type: boolean example: true name: type: string example: 'Misael Runte' provider: type: string example: github created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - source-controls security: [] 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: 'Mrs. Justina Gaylord' provider: github created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 2 project_id: type: string example: null global: type: boolean example: true name: type: string example: 'Mrs. Justina Gaylord' provider: type: string example: github created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.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: architecto nullable: false token: type: string description: 'The token if provider requires api token' example: architecto nullable: false url: type: string description: 'The URL if the provider is Gitlab and it is self-hosted' example: 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html' nullable: false username: type: string description: 'The username if the provider is Bitbucket' example: architecto nullable: false password: type: string description: 'The password if the provider is Bitbucket' example: '|]|{+-' nullable: false global: type: string description: 'Accessible in all projects' example: false nullable: false enum: - true - false required: - name - token - url - username - password - global security: [] delete: summary: delete operationId: delete description: '' parameters: [] responses: 204: description: '' tags: - source-controls security: [] 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: 3 name: 'Haven Romaguera' created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 4 name: 'Viva Marquardt' created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.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: 'Haven Romaguera' created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 4 name: 'Viva Marquardt' created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' items: type: object properties: id: type: integer example: 3 name: type: string example: 'Haven Romaguera' created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.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: - ssh-keys security: [] post: summary: create operationId: create description: 'Deploy ssh key to server.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 3 name: 'Ms. Elisabeth Okuneva' created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 3 name: type: string example: 'Ms. Elisabeth Okuneva' created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - ssh-keys requestBody: required: true content: application/json: schema: type: object properties: key_id: type: string description: 'The ID of the key.' example: architecto nullable: false name: type: string description: 'Key name, required if key_id is not provided.' example: architecto nullable: false public_key: type: string description: 'Public Key, required if key_id is not provided.' example: architecto nullable: false required: - key_id - name - public_key security: [] 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: 6 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 security: [] 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: 6 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: 4 project_id: null global: true name: harum provider: local created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 5 project_id: null global: true name: commodi provider: local created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.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: 4 project_id: null global: true name: harum provider: local created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' - id: 5 project_id: null global: true name: commodi provider: local created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' items: type: object properties: id: type: integer example: 4 project_id: type: string example: null global: type: boolean example: true name: type: string example: harum provider: type: string example: local created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.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 security: [] post: summary: create operationId: create description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 4 project_id: null global: true name: eius provider: local created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 4 project_id: type: string example: null global: type: boolean example: true name: type: string example: eius provider: type: string example: local created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.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: architecto nullable: false name: type: string description: 'The name of the storage provider.' example: architecto nullable: false token: type: string description: 'The token if provider requires api token' example: architecto nullable: false key: type: string description: 'The key if provider requires key' example: architecto nullable: false secret: type: string description: 'The secret if provider requires key' example: architecto nullable: false required: - provider - name - token - key - secret security: [] 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: 4 project_id: null global: true name: et provider: dropbox created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 4 project_id: type: string example: null global: type: boolean example: true name: type: string example: et provider: type: string example: dropbox created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.000000Z' tags: - storage-providers security: [] put: summary: update operationId: update description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 4 project_id: null global: true name: eius provider: local created_at: '2025-06-10T10:21:56.000000Z' updated_at: '2025-06-10T10:21:56.000000Z' properties: id: type: integer example: 4 project_id: type: string example: null global: type: boolean example: true name: type: string example: eius provider: type: string example: local created_at: type: string example: '2025-06-10T10:21:56.000000Z' updated_at: type: string example: '2025-06-10T10:21:56.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: architecto nullable: false global: type: string description: 'Accessible in all projects' example: true nullable: false enum: - true - false required: - name - global security: [] delete: summary: delete operationId: delete description: '' parameters: [] responses: 204: description: '' tags: - storage-providers security: [] 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: 1 required: true schema: type: integer