From bf1e0dc6a9ac6c00c7bd5fbf7d2d82992cfc594e Mon Sep 17 00:00:00 2001 From: Prophet731 Date: Tue, 2 Jun 2026 11:59:25 -0500 Subject: [PATCH] docs: add VirtFusion OpenAPI spec (v7) under docs/ Vendored copy of https://docs.virtfusion.com/api/openapi.yaml for offline reference when auditing API behavior (success codes, request/response shapes). Current production target is VirtFusion v7. Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/openapi.yaml | 8359 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 8359 insertions(+) create mode 100644 docs/openapi.yaml diff --git a/docs/openapi.yaml b/docs/openapi.yaml new file mode 100644 index 0000000..d13daa9 --- /dev/null +++ b/docs/openapi.yaml @@ -0,0 +1,8359 @@ +openapi: 3.0.1 +info: + title: VirtFusion Global API + description: >- + You can use this API to access all Administrator API endpoints, such as the + server API to deploy and manage servers, or the system API to configure and + manage the system. + + + The API is organized around REST. All requests should be made over SSL. All + request and response bodies, including errors, are encoded in JSON. + + + Endpoint https://cp.domain.com/api/v1 + version: 1.0.0 +tags: + - name: General + - name: Hypervisors + - name: Hypervisor Groups + - name: Servers + - name: Servers/Network + - name: Servers/Network/Firewall + - name: Servers/Network/Traffic + - name: Servers/Power + - name: Servers/Backup Manager + - name: IP Blocks + - name: Backups + - name: DNS + - name: Media + - name: Packages + - name: Queue & Tasks + - name: SSH Keys + - name: Users + - name: Users/External Rel ID & Rel Str + - name: Self Service + - name: Self Service/External Relational ID +paths: + /connect: + get: + summary: Test connection + deprecated: false + description: '' + tags: + - General + parameters: [] + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: [] + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /compute/hypervisors/groups: + get: + summary: Retrieve hypervisor groups + deprecated: false + description: '' + tags: + - Hypervisor Groups + parameters: + - name: results + in: query + description: >- + Number of results to return. Range between 1 and 200. Defaults to + 20. + required: false + example: 20 + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + current_page: 1 + data: + - id: 1 + name: Default + label: null + description: Default hypervisor group + distributionType: 5 + enabled: true + default: true + created: '2024-03-12T22:21:32+00:00' + updated: '2024-04-12T20:56:04+00:00' + - id: 2 + name: Test 1 + label: null + description: null + distributionType: 13 + enabled: true + default: false + created: '2024-10-08T13:23:28+00:00' + updated: '2024-10-08T13:23:42+00:00' + - id: 3 + name: Test 2 + label: null + description: null + distributionType: 5 + enabled: true + default: false + created: '2024-10-12T21:12:33+00:00' + updated: '2024-10-12T21:14:18+00:00' + first_page_url: >- + https://192.168.3.11/api/v1/compute/hypervisors/groups?results=20&page=1 + from: 1 + last_page: 1 + last_page_url: >- + https://192.168.3.11/api/v1/compute/hypervisors/groups?results=20&page=1 + links: + - url: null + label: '« Previous' + active: false + - url: >- + https://192.168.3.11/api/v1/compute/hypervisors/groups?results=20&page=1 + label: '1' + active: true + - url: null + label: Next » + active: false + next_page_url: null + path: https://192.168.3.11/api/v1/compute/hypervisors/groups + per_page: 20 + prev_page_url: null + to: 3 + total: 3 + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /compute/hypervisors/groups/{hypervisorGroupId}: + get: + summary: Retrieve a hypervisor group + deprecated: false + description: '' + tags: + - Hypervisor Groups + parameters: + - name: hypervisorGroupId + in: path + description: A valid hypervisor group ID as shown in VirtFusion. + required: true + example: 1 + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + id: 1 + name: Default + label: null + description: Default hypervisor group + distributionType: 5 + enabled: true + default: true + created: '2024-03-12T22:21:32+00:00' + updated: '2024-04-12T20:56:04+00:00' + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /compute/hypervisors/groups/{hypervisorGroupId}/resources: + get: + summary: Retrieve a hypervisor groups resources + deprecated: false + description: '' + tags: + - Hypervisor Groups + parameters: + - name: hypervisorGroupId + in: path + description: A valid hypervisor group ID as shown in VirtFusion. + required: true + example: 1 + schema: + type: integer + - name: results + in: query + description: >- + Number of results to return. Range between 1 and 200. Defaults to + 20. + required: false + example: 20 + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + current_page: 1 + data: + - hypervisor: + id: 1 + name: PHV 1 (RED) + enabled: true + prohibit: false + accept: false + commissioned: true + resources: + servers: + units: '#' + max: 0 + allocated: 1 + free: -1 + percent: null + memory: + units: MB + max: 6004 + allocated: 4096 + free: 1908 + percent: 68.2 + cpuCores: + units: '#' + max: 4 + allocated: 3 + free: 1 + percent: 75 + localStorage: + enabled: 1 + name: Local (Default mountpoint) + storageType: 0 + units: GB + max: 90 + allocated: 25 + free: 65 + percent: 27.8 + otherStorage: [] + network: + total: + ipv4: + free: 470 + - hypervisor: + id: 2 + name: PHV 2 (BLUE) + enabled: true + prohibit: false + accept: false + commissioned: true + resources: + servers: + units: '#' + max: 0 + allocated: 1 + free: -1 + percent: null + memory: + units: MB + max: 10000 + allocated: 1024 + free: 8976 + percent: 10.2 + cpuCores: + units: '#' + max: 28 + allocated: 1 + free: 27 + percent: 3.6 + localStorage: + enabled: 1 + name: Local (Default mountpoint) + storageType: 0 + units: GB + max: 150 + allocated: 10 + free: 140 + percent: 6.7 + otherStorage: [] + network: + total: + ipv4: + free: 470 + - hypervisor: + id: 3 + name: BHV 9 + enabled: true + prohibit: false + accept: false + commissioned: true + resources: + servers: + units: '#' + max: 0 + allocated: 2 + free: -2 + percent: null + memory: + units: MB + max: 27913 + allocated: 2048 + free: 25865 + percent: 7.3 + cpuCores: + units: '#' + max: 64 + allocated: 2 + free: 62 + percent: 3.1 + localStorage: + enabled: 1 + name: Local (Default mountpoint) + storageType: 0 + units: GB + max: 400 + allocated: 20 + free: 380 + percent: 5 + otherStorage: [] + network: + total: + ipv4: + free: 470 + - hypervisor: + id: 4 + name: BHV 8 + enabled: true + prohibit: false + accept: false + commissioned: true + resources: + servers: + units: '#' + max: 0 + allocated: 0 + free: 0 + percent: null + memory: + units: MB + max: 27913 + allocated: 0 + free: 27913 + percent: 0 + cpuCores: + units: '#' + max: 16 + allocated: 0 + free: 16 + percent: 0 + localStorage: + enabled: 1 + name: Local (Default mountpoint) + storageType: 0 + units: GB + max: 1000 + allocated: 0 + free: 1000 + percent: 0 + otherStorage: [] + network: + total: + ipv4: + free: 0 + - hypervisor: + id: 8 + name: BHV 3 + enabled: true + prohibit: false + accept: false + commissioned: true + resources: + servers: + units: '#' + max: 0 + allocated: 2 + free: -2 + percent: null + memory: + units: MB + max: 27913 + allocated: 2048 + free: 25865 + percent: 7.3 + cpuCores: + units: '#' + max: 120 + allocated: 3 + free: 117 + percent: 2.5 + localStorage: + enabled: 1 + name: Local (Default mountpoint) + storageType: 1 + units: GB + max: 2000 + allocated: 20 + free: 1980 + percent: 1 + otherStorage: [] + network: + total: + ipv4: + free: 470 + - hypervisor: + id: 9 + name: BHV 4 + enabled: true + prohibit: false + accept: false + commissioned: true + resources: + servers: + units: '#' + max: 0 + allocated: 0 + free: 0 + percent: null + memory: + units: MB + max: 13684 + allocated: 0 + free: 13684 + percent: 0 + cpuCores: + units: '#' + max: 4 + allocated: 0 + free: 4 + percent: 0 + localStorage: + enabled: 1 + name: Local (Default mountpoint) + storageType: 0 + units: GB + max: 1000 + allocated: 0 + free: 1000 + percent: 0 + otherStorage: [] + network: + total: + ipv4: + free: 0 + - hypervisor: + id: 10 + name: BHV 5 + enabled: true + prohibit: false + accept: false + commissioned: true + resources: + servers: + units: '#' + max: 0 + allocated: 0 + free: 0 + percent: null + memory: + units: MB + max: 13684 + allocated: 0 + free: 13684 + percent: 0 + cpuCores: + units: '#' + max: 4 + allocated: 0 + free: 4 + percent: 0 + localStorage: + enabled: 1 + name: Local (Default mountpoint) + storageType: 0 + units: GB + max: 1000 + allocated: 0 + free: 1000 + percent: 0 + otherStorage: [] + network: + total: + ipv4: + free: 0 + - hypervisor: + id: 11 + name: BHV 6 + enabled: true + prohibit: false + accept: false + commissioned: true + resources: + servers: + units: '#' + max: 0 + allocated: 1 + free: -1 + percent: null + memory: + units: MB + max: 27913 + allocated: 1024 + free: 26889 + percent: 3.7 + cpuCores: + units: '#' + max: 16 + allocated: 1 + free: 15 + percent: 6.3 + localStorage: + enabled: 1 + name: Local (Default mountpoint) + storageType: 0 + units: GB + max: 1000 + allocated: 10 + free: 990 + percent: 1 + otherStorage: [] + network: + total: + ipv4: + free: 478 + - hypervisor: + id: 12 + name: BHV 7 + enabled: true + prohibit: false + accept: false + commissioned: true + resources: + servers: + units: '#' + max: 0 + allocated: 1 + free: -1 + percent: null + memory: + units: MB + max: 27913 + allocated: 1024 + free: 26889 + percent: 3.7 + cpuCores: + units: '#' + max: 16 + allocated: 1 + free: 15 + percent: 6.3 + localStorage: + enabled: 1 + name: Local (Default mountpoint) + storageType: 0 + units: GB + max: 1000 + allocated: 10 + free: 990 + percent: 1 + otherStorage: [] + network: + total: + ipv4: + free: 478 + - hypervisor: + id: 13 + name: Ceph Hypervisor 1 + enabled: true + prohibit: false + accept: false + commissioned: true + resources: + servers: + units: '#' + max: 0 + allocated: 5 + free: -5 + percent: null + memory: + units: MB + max: 24000 + allocated: 7168 + free: 16832 + percent: 29.9 + cpuCores: + units: '#' + max: 64 + allocated: 8 + free: 56 + percent: 12.5 + localStorage: + enabled: 1 + name: Local (Default mountpoint) + storageType: 1 + units: GB + max: 100 + allocated: 50 + free: 50 + percent: 50 + otherStorage: + - id: 1 + name: Ceph RBD + enabled: 0 + path: null + units: GB + storageType: 2 + isDatastore: true + max: 10000 + allocated: 35 + free: 9965 + percent: 0.4 + - id: 4 + name: Ceph FS + enabled: 0 + path: null + units: GB + storageType: 2 + isDatastore: true + max: 558349385 + allocated: 5 + free: 558349380 + percent: 0 + network: + total: + ipv4: + free: 503 + - hypervisor: + id: 14 + name: Ceph Hypervisor 2 + enabled: true + prohibit: false + accept: false + commissioned: true + resources: + servers: + units: '#' + max: 0 + allocated: 3 + free: -3 + percent: null + memory: + units: MB + max: 24000 + allocated: 3072 + free: 20928 + percent: 12.8 + cpuCores: + units: '#' + max: 64 + allocated: 3 + free: 61 + percent: 4.7 + localStorage: + enabled: 1 + name: Local (Default mountpoint) + storageType: 1 + units: GB + max: 1000 + allocated: 10 + free: 990 + percent: 1 + otherStorage: + - id: 2 + name: Ceph RBD + enabled: 0 + path: null + units: GB + storageType: 2 + isDatastore: true + max: 10000 + allocated: 10 + free: 9990 + percent: 0.1 + - id: 3 + name: Ceph EC + enabled: 0 + path: null + units: GB + storageType: 2 + isDatastore: true + max: 13333333 + allocated: 10 + free: 13333323 + percent: 0 + network: + total: + ipv4: + free: 33 + first_page_url: >- + https://192.168.3.11/api/v1/compute/hypervisors/groups/1/resources?page=1 + from: 1 + last_page: 1 + last_page_url: >- + https://192.168.3.11/api/v1/compute/hypervisors/groups/1/resources?page=1 + links: + - url: null + label: '« Previous' + active: false + - url: >- + https://192.168.3.11/api/v1/compute/hypervisors/groups/1/resources?page=1 + label: '1' + active: true + - url: null + label: Next » + active: false + next_page_url: null + path: >- + https://192.168.3.11/api/v1/compute/hypervisors/groups/1/resources + per_page: 20 + prev_page_url: null + to: 11 + total: 11 + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/firewall/{interface}/disable: + post: + summary: Disable firewall + deprecated: false + description: '' + tags: + - Servers/Network/Firewall + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + - name: interface + in: path + description: primary or secondary. + required: true + example: primary + schema: + type: string + - name: sync + in: query + description: >- + Synchronise and apply the defined rules. true|false Defaults to + false. + required: false + example: 'true' + schema: + type: boolean + responses: + '200': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/firewall/{interface}/enable: + post: + summary: Enable firewall + deprecated: false + description: '' + tags: + - Servers/Network/Firewall + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + - name: interface + in: path + description: primary or secondary. + required: true + example: primary + schema: + type: string + - name: sync + in: query + description: >- + Synchronise and apply the defined rules. true|false Defaults to + false. + required: false + example: 'true' + schema: + type: boolean + responses: + '200': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/firewall/{interface}: + get: + summary: Retrieve firewall + deprecated: false + description: '' + tags: + - Servers/Network/Firewall + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + - name: interface + in: path + description: primary or secondary. + required: true + example: primary + schema: + type: string + - name: sync + in: query + description: >- + Synchronise and apply the defined rules. true|false Defaults to + false. + required: false + example: 'true' + schema: + type: boolean + responses: + '200': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + example: |- + { + "data": { + "enabled": true, + "rules": [] + } + } + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/firewall/{interface}/rules: + post: + summary: Apply firewall rulesets + deprecated: false + description: '' + tags: + - Servers/Network/Firewall + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + - name: interface + in: path + description: primary or secondary. + required: true + example: primary + schema: + type: string + - name: sync + in: query + description: >- + Synchronise and apply the defined rules. true|false Defaults to + false. + required: false + example: 'true' + schema: + type: boolean + requestBody: + content: + application/json: + schema: + type: object + properties: + rulesets: + type: array + items: + type: integer + description: >- + An array of ruleset IDs. All existing rules will be flushed + and the new rules applied. An empty array will flush all + rules. + required: + - rulesets + example: + rulesets: + - 1 + - 2 + - 5 + responses: + '201': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/traffic/blocks: + post: + summary: Add a traffic block to a server + deprecated: false + description: '' + tags: + - Servers/Network/Traffic + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + requestBody: + content: + application/json: + schema: + type: object + properties: + month: + type: integer + description: >- + The numeric month as returned by the GET request + (available). + amount: + type: integer + description: An amount of traffic in GB. + required: + - month + - amount + example: + month: 2 + amount: 100 + responses: + '201': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + get: + summary: Retrieve a servers traffic blocks + deprecated: false + description: '' + tags: + - Servers/Network/Traffic + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + requestBody: + content: + application/json: + schema: + type: object + properties: + month: + type: integer + description: >- + The numeric month as returned by the GET request + (available). + amount: + type: integer + description: An amount of traffic in GB. + required: + - month + - amount + example: '' + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + assigned: + - id: 2 + current: false + month: 2 + traffic: 100 + start: '2025-02-20 00:00:00' + end: '2025-03-19 23:59:59' + added: '2025-01-20T15:08:15.000000Z' + available: + total: 25 + current: + month: 1 + start: '2025-01-20 00:00:00' + end: '2025-02-19 23:59:59' + months: + '1': + month: 1 + start: '2025-01-20 00:00:00' + end: '2025-02-19 23:59:59' + '2': + month: 2 + start: '2025-02-20 00:00:00' + end: '2025-03-19 23:59:59' + '3': + month: 3 + start: '2025-03-20 00:00:00' + end: '2025-04-19 23:59:59' + '4': + month: 4 + start: '2025-04-20 00:00:00' + end: '2025-05-19 23:59:59' + '5': + month: 5 + start: '2025-05-20 00:00:00' + end: '2025-06-19 23:59:59' + '6': + month: 6 + start: '2025-06-20 00:00:00' + end: '2025-07-19 23:59:59' + '7': + month: 7 + start: '2025-07-20 00:00:00' + end: '2025-08-19 23:59:59' + '8': + month: 8 + start: '2025-08-20 00:00:00' + end: '2025-09-19 23:59:59' + '9': + month: 9 + start: '2025-09-20 00:00:00' + end: '2025-10-19 23:59:59' + '10': + month: 10 + start: '2025-10-20 00:00:00' + end: '2025-11-19 23:59:59' + '11': + month: 11 + start: '2025-11-20 00:00:00' + end: '2025-12-19 23:59:59' + '12': + month: 12 + start: '2025-12-20 00:00:00' + end: '2026-01-19 23:59:59' + '13': + month: 13 + start: '2026-01-20 00:00:00' + end: '2026-02-19 23:59:59' + '14': + month: 14 + start: '2026-02-20 00:00:00' + end: '2026-03-19 23:59:59' + '15': + month: 15 + start: '2026-03-20 00:00:00' + end: '2026-04-19 23:59:59' + '16': + month: 16 + start: '2026-04-20 00:00:00' + end: '2026-05-19 23:59:59' + '17': + month: 17 + start: '2026-05-20 00:00:00' + end: '2026-06-19 23:59:59' + '18': + month: 18 + start: '2026-06-20 00:00:00' + end: '2026-07-19 23:59:59' + '19': + month: 19 + start: '2026-07-20 00:00:00' + end: '2026-08-19 23:59:59' + '20': + month: 20 + start: '2026-08-20 00:00:00' + end: '2026-09-19 23:59:59' + '21': + month: 21 + start: '2026-09-20 00:00:00' + end: '2026-10-19 23:59:59' + '22': + month: 22 + start: '2026-10-20 00:00:00' + end: '2026-11-19 23:59:59' + '23': + month: 23 + start: '2026-11-20 00:00:00' + end: '2026-12-19 23:59:59' + '24': + month: 24 + start: '2026-12-20 00:00:00' + end: '2027-01-19 23:59:59' + '25': + month: 25 + start: '2027-01-20 00:00:00' + end: '2027-02-19 23:59:59' + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/traffic/blocks/{blockId}: + delete: + summary: Remove a traffic block from a server + deprecated: false + description: '' + tags: + - Servers/Network/Traffic + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + - name: blockId + in: path + description: >- + ID of an assigned traffic block as returned by the GET request + (assigned). + required: true + example: '1' + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + properties: + month: + type: integer + description: >- + The numeric month as returned by the GET request + (available). + amount: + type: integer + description: An amount of traffic in GB. + required: + - month + - amount + example: + month: 2 + amount: 100 + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/modify/traffic: + put: + summary: Modify primary traffic allowance + deprecated: false + description: '' + tags: + - Servers/Network/Traffic + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + requestBody: + content: + application/json: + schema: + type: object + properties: + traffic: + type: string + description: Range of 0 - 999999999 + required: + - traffic + example: + traffic: 1000 + responses: + '201': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/networkWhitelist: + post: + summary: Add an address to the whitelist + deprecated: false + description: '' + tags: + - Servers/Network + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 9 + schema: + type: integer + requestBody: + content: + application/json: + schema: + type: object + properties: + interface: + type: string + description: Primary or secondary. + ip: + type: string + description: IPv4 or IPv6 address. + cidr: + type: integer + description: IPv4 or IPv6 CIDR. + required: + - interface + - ip + - cidr + example: + interface: primary + ip: 10.0.0.10 + cidr: 32 + responses: + '201': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + delete: + summary: Remove an address from the whitelist + deprecated: false + description: '' + tags: + - Servers/Network + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 9 + schema: + type: integer + requestBody: + content: + application/json: + schema: + type: object + properties: + interface: + type: string + description: Primary or secondary. + ip: + type: string + description: IPv4 or IPv6 address. + required: + - interface + - ip + example: + interface: primary + ip: 10.0.0.10 + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/ipv4Qty: + post: + summary: Add a quantity of IPv4 addresses + deprecated: false + description: '' + tags: + - Servers/Network + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 9 + schema: + type: integer + requestBody: + content: + application/json: + schema: + type: object + properties: + interface: + type: string + description: Primary or secondary. + quantity: + type: integer + description: Number of IPv4 addresses. + required: + - interface + - quantity + example: + interface: primary + quantity: 2 + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + - 192.168.4.36 + - 192.168.4.37 + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/ipv4: + post: + summary: Add an array of IPv4 addresses + deprecated: false + description: '' + tags: + - Servers/Network + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 9 + schema: + type: integer + requestBody: + content: + application/json: + schema: + type: object + properties: + ip: + type: array + items: + type: string + required: + - ip + example: + ip: + - 10.100.0.10 + - 10.100.0.11 + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + delete: + summary: Remove an array of IPv4 addresses + deprecated: false + description: '' + tags: + - Servers/Network + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 9 + schema: + type: integer + requestBody: + content: + application/json: + schema: + type: object + properties: + ip: + type: array + items: + type: string + description: Valid IPv4 addresses. + description: Valid IPv4 addresses. + required: + - ip + example: + ip: + - 10.100.0.10 + - 10.100.0.11 + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/power/boot: + post: + summary: Boot a server + deprecated: false + description: '' + tags: + - Servers/Power + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + queueId: 171 + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/power/shutdown: + post: + summary: Shutdown a server + deprecated: false + description: '' + tags: + - Servers/Power + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + queueId: 171 + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/power/restart: + post: + summary: Restart a server + deprecated: false + description: '' + tags: + - Servers/Power + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + queueId: 171 + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/power/poweroff: + post: + summary: Poweroff a server + deprecated: false + description: '' + tags: + - Servers/Power + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + queueId: 171 + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/backupManager/access: + put: + summary: Modify Access + deprecated: false + description: >- + Adjust the backup manager access type and various other settings for the + specified virtual server. + tags: + - Servers/Backup Manager + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 9 + schema: + type: integer + requestBody: + content: + application/json: + schema: + type: object + properties: + type: + type: string + enum: + - inherit + - disabled + - scheduled + - view_restore + - full + - manual + required: + - type + examples: {} + responses: + '201': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}: + get: + summary: Retrieve a server + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 1 + schema: + type: integer + - name: remoteState + in: query + description: Return the remote state of the server. + required: false + example: 'false' + schema: + type: boolean + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + id: 69 + ownerId: 1 + hypervisorId: 6 + arch: 1 + name: Elliptical Way + selfService: 0 + selfServiceSettings: [] + hostname: null + commissionStatus: 3 + uuid: b9fd9092-7200-4a24-96d4-76aedd664274 + state: complete + migratable: true + timezone: _default + migrateLevel: 0 + deleteLevel: 0 + configLevel: 0 + backupLevel: 0 + elevated: false + elevateId: null + elevate: false + destroyable: true + rebuild: false + suspended: false + protected: false + buildFailed: false + primaryNetworkDhcp4: false + primaryNetworkDhcp6: false + built: '2025-01-15T15:00:49+00:00' + created: '2024-12-06T21:25:58+00:00' + updated: '2025-01-15T23:17:49+00:00' + traffic: + public: + countMethod: 1 + currentPeriod: + start: '2025-01-06T00:00:00.000000Z' + end: '2025-02-05T23:59:59.999999Z' + limit: 20000 + settings: + osTemplateInstall: true + osTemplateInstallId: 49 + encryptedPassword: >- + eyJpdiI6IkNtT0ZmUEQ4Q2ZuNW5yUWVXZUcvWWc9PSIsInZhbHVlIjoibHJmMTNHZXpqV3lneFUrZEZ3eThSWEZVbVk5TDlBYTJQbXpPbFRvcmd0OD0iLCJtYWMiOiI1NTNhMGVmNzBlZWViZWI3NjkyMmYzYmM3NWFjMDY3ZTlmZmE4ZDE3NDI2YzliMjY0ODM4YzQzMDViMWY3MTI1IiwidGFnIjoiIn0= + backupPlan: null + uefi: false + uefiType: 0 + cloudInit: true + cloudInitType: 1 + config: + cloud.init: + on.network: + netplan_routes_v4: true + netplan_routes_v6: true + on.network.libvirtrouted: + netplan_routes_v4: true + netplan_routes_v6: true + on.all: + user.data: + runcmd: + - >- + DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get + --option=Dpkg::Options::=--force-confold + --option=Dpkg::options::=--force-unsafe-io + --assume-yes --quiet update + - >- + DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get + --option=Dpkg::Options::=--force-confold + --option=Dpkg::options::=--force-unsafe-io + --assume-yes --quiet install qemu-guest-agent + - /usr/bin/systemctl enable qemu-guest-agent + - /usr/bin/systemctl start qemu-guest-agent + - >- + DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get + --option=Dpkg::Options::=--force-confold + --option=Dpkg::options::=--force-unsafe-io + --assume-yes --quiet dist-upgrade + on.password: + user.data: + runcmd: + - >- + /usr/bin/sed -i "s/#PermitRootLogin + prohibit-password/PermitRootLogin yes/g" + /etc/ssh/sshd_config + - >- + /usr/bin/sed -i "s/PasswordAuthentication + no/PasswordAuthentication yes/g" + /etc/ssh/sshd_config + - /usr/bin/systemctl restart sshd + on.sshkey: + user.data: [] + userConfig: [] + bootOrder: + - hd + - cdrom + tpmType: 0 + networkBoot: false + bootMenu: 1 + customISO: 1 + securityDriver: 3 + memBalloon: + model: 1 + autoDeflate: 0 + freePageReporting: 0 + hyperv: + enabled: false + passthrough: false + relaxed: 0 + vapic: 0 + spinlocks: 0 + vpindex: 0 + runtime: 0 + synic: 0 + stimer: 0 + reset: 0 + vendorId: 0 + frequencies: 0 + reenlightenment: 0 + tlbflush: 0 + ipi: 0 + evmcs: 0 + vendorIdValue: KVM VM + spinlocksValue: 8191 + clockEnabled: 0 + extended: + cpuFlags: + topoext: '1' + svm: '1' + vmx: '1' + machineType: inherit + pciPorts: 16 + resources: + memory: 1024 + storage: 11 + traffic: 20000 + cpuCores: 2 + cpu: + cores: 2 + type: inherit + typeExact: host-model + shares: 1024 + throttle: 0 + topology: + enabled: false + sockets: 1 + cores: 1 + threads: 1 + dies: 1 + customXML: + domain: + xml: '' + enabled: false + os: + xml: '' + enabled: false + devices: + xml: '' + enabled: false + features: + xml: '' + enabled: false + clock: + xml: '' + enabled: false + cpuTune: + xml: '' + enabled: false + qemuCommandline: [] + qemuAgent: + os: + screen: >- + iVBORw0KGgoAAAANSUhEUgAAAJYAAABTCAAAAABYT6E5AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAHdElNRQfpARESACl1ShbSAAAB0klEQVRo3u3VS2/TQBAA4NlZr9eP+N04DmmKqxZFBQRC6oX/wN9G4s6l0ENFKQQoSVw7deT4xaFpRTkgkNKIivksreWd9e5oVqsFIH+N/UmUrdrrz9//tMaMxK8rSaEgAICGGnAAuGpAv+sy8f3wUYnBttibW2Wz33X9qfayOJhVXvydx8nzYLDMjcfZTrZTdH1tlHXxQbWXx1PhGD23lYVymD7LDHt7st7SKWGlxSguWRvtvq70yWjqST8YnmilCxB9GzdD8zwcnZrClKGZIna81jzMpWE97OfKWH0DArj24shac7VYlJuJNy9qgd4ZDOczYaXmhcLNeXQKgyJBP80VN40mbmp1vixYkMu5lXU/gK1Vjc+PwVwY1dNj++Ndb+u/ga0eAAbXr1UA2E0XA3Z18m4N/3mW/0UkIu4Aoio6jAP05E3EtRGYcJABbjgn5dVRrTpJ6G0t+btIme1e5IbNB2VwVn8qpB4Xvfe6G791TjabFla5Y1iG7etfz3WXMVW1jGU7kBKeMDBs4H1w1c9qteFqMdaqDTZc1AtE1mDVqnUN2HC+NW5FC20/Kctmw0ndQ7fuZ0IIIYQQQgghhBBCCCGEEEIIIYQQQgghhNwTPwDlF4AYGPA7/gAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyNS0wMS0xN1QxODowMDo0MSswMDowMA+ZFQkAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjUtMDEtMTdUMTg6MDA6NDErMDA6MDB+xK21AAAAAElFTkSuQmCC + media: + isoMounted: false + isoType: local + isoName: '' + isoFilename: '' + isoUrl: '' + isoDownload: false + backupPlan: + id: null + name: null + vnc: + ip: 192.168.4.2 + port: 5903 + enabled: false + network: + interfaces: + - id: 69 + order: 1 + enabled: true + tag: 4618706442 + name: ens3 + type: public + driver: 1 + processQueues: null + mac: 00:E7:FB:01:87:14 + ipv4ToMac: null + ipv6ToMac: null + inTrafficCount: true + outTrafficCount: false + inAverage: 0 + inPeak: 0 + inBurst: 0 + outAverage: 0 + outPeak: 0 + outBurst: 0 + ipFilter: false + vlans: [] + ipFilterType: null + portIsolated: false + ipv4_resolver_1: 1 + ipv4_resolver_2: 2 + ipv6_resolver_1: 1 + ipv6_resolver_2: 2 + networkProfile: 0 + dhcpV4: 0 + dhcpV6: 0 + firewallEnabled: false + hypervisorNetwork: 6 + isNat: false + nat: false + firewall: [] + hypervisorConnectivity: + id: 6 + type: simpleBridge + bridge: br0 + mtu: null + primary: true + default: true + ipWhitelist: [] + actions: [] + ipv4: + - id: 33 + order: 1 + enabled: true + blockId: 1 + address: 192.168.4.32 + gateway: 192.168.4.1 + netmask: 255.255.254.0 + resolver1: 8.8.8.8 + resolver2: 8.8.4.4 + rdns: null + mac: null + - id: 36 + order: 2 + enabled: true + blockId: 1 + address: 192.168.4.35 + gateway: 192.168.4.1 + netmask: 255.255.254.0 + resolver1: 8.8.8.8 + resolver2: 8.8.4.4 + rdns: null + mac: null + ipv6: + - id: 502 + block: + id: 5 + name: V6 For BHV 1,3 + order: 1 + enabled: true + addresses: [] + addressesDetailed: [] + subnet: '2001:db8:abcd:12:2::' + cidr: 80 + exhausted: false + gateway: 2001:db8:abcd:12::1 + resolver1: 2001:4860:4860::8888 + resolver2: 2001:4860:4860::8844 + routeNet: false + - id: 505 + block: + id: 5 + name: V6 For BHV 1,3 + order: 1 + enabled: true + addresses: [] + addressesDetailed: [] + subnet: '2001:db8:abcd:12:5::' + cidr: 80 + exhausted: false + gateway: 2001:db8:abcd:12::1 + resolver1: 2001:4860:4860::8888 + resolver2: 2001:4860:4860::8844 + routeNet: false + - id: 506 + block: + id: 5 + name: V6 For BHV 1,3 + order: 1 + enabled: true + addresses: [] + addressesDetailed: [] + subnet: '2001:db8:abcd:12:6::' + cidr: 80 + exhausted: false + gateway: 2001:db8:abcd:12::1 + resolver1: 2001:4860:4860::8888 + resolver2: 2001:4860:4860::8844 + routeNet: false + - id: 507 + block: + id: 5 + name: V6 For BHV 1,3 + order: 1 + enabled: true + addresses: [] + addressesDetailed: [] + subnet: '2001:db8:abcd:12:7::' + cidr: 80 + exhausted: false + gateway: 2001:db8:abcd:12::1 + resolver1: 2001:4860:4860::8888 + resolver2: 2001:4860:4860::8844 + routeNet: false + - id: 508 + block: + id: 5 + name: V6 For BHV 1,3 + order: 1 + enabled: true + addresses: [] + addressesDetailed: [] + subnet: '2001:db8:abcd:12:8::' + cidr: 80 + exhausted: false + gateway: 2001:db8:abcd:12::1 + resolver1: 2001:4860:4860::8888 + resolver2: 2001:4860:4860::8844 + routeNet: false + - id: 509 + block: + id: 5 + name: V6 For BHV 1,3 + order: 1 + enabled: true + addresses: [] + addressesDetailed: [] + subnet: '2001:db8:abcd:12:9::' + cidr: 80 + exhausted: false + gateway: 2001:db8:abcd:12::1 + resolver1: 2001:4860:4860::8888 + resolver2: 2001:4860:4860::8844 + routeNet: false + secondaryInterfaces: + - id: 4 + enabled: true + order: 1 + tag: 3933491695 + name: eth1 + type: private + driver: 1 + processQueues: null + mac: 00:F0:4A:C6:3F:08 + ipv4ToMac: null + ipv6ToMac: null + inTrafficCount: true + outTrafficCount: false + inAverage: 0 + inPeak: 0 + inBurst: 0 + outAverage: 0 + outPeak: 0 + outBurst: 0 + ipFilter: true + vlans: [] + ipFilterType: 4-6 + portIsolated: false + ipv4_resolver_1: 1 + ipv4_resolver_2: 2 + ipv6_resolver_1: 1 + ipv6_resolver_2: 2 + networkProfile: 0 + dhcpV4: 0 + dhcpV6: 0 + firewallEnabled: false + hypervisorNetwork: 6 + isNat: false + nat: false + firewall: [] + hypervisorConnectivity: + id: 6 + type: simpleBridge + bridge: br0 + mtu: null + primary: true + default: true + ipWhitelist: [] + actions: [] + ipv4: + - id: 34 + order: 1 + enabled: true + address: 192.168.4.33 + gateway: 192.168.4.1 + netmask: 255.255.254.0 + resolver1: 8.8.8.8 + resolver2: 8.8.4.4 + rdns: null + mac: null + - id: 35 + order: 2 + enabled: true + address: 192.168.4.34 + gateway: 192.168.4.1 + netmask: 255.255.254.0 + resolver1: 8.8.8.8 + resolver2: 8.8.4.4 + rdns: null + mac: null + ipv6: + - id: 503 + block: + id: 5 + name: V6 For BHV 1,3 + order: 1 + enabled: true + addresses: [] + addressesDetailed: [] + subnet: '2001:db8:abcd:12:3::' + cidr: 80 + exhausted: false + gateway: 2001:db8:abcd:12::1 + resolver1: 2001:4860:4860::8888 + resolver2: 2001:4860:4860::8844 + routeNet: false + - id: 504 + block: + id: 5 + name: V6 For BHV 1,3 + order: 1 + enabled: true + addresses: [] + addressesDetailed: [] + subnet: '2001:db8:abcd:12:4::' + cidr: 80 + exhausted: false + gateway: 2001:db8:abcd:12::1 + resolver1: 2001:4860:4860::8888 + resolver2: 2001:4860:4860::8844 + routeNet: false + storage: + - _id: 80 + id: 1 + cache: null + bus: null + capacity: 11 + drive: a + datastoreDiskId: null + filesystem: null + iops: + read: null + write: null + bytes: + read: null + write: null + type: qcow2 + profile: 1 + status: 3 + enabled: true + primary: true + created: '2024-12-06T21:25:58+00:00' + updated: '2025-01-07T22:26:16+00:00' + datastore: [] + name: b9fd9092-7200-4a24-96d4-76aedd664274_1 + filename: b9fd9092-7200-4a24-96d4-76aedd664274_1.img + hypervisorStorageId: null + local: true + locationType: mountpoint + path: /home/vf-data/disk + hypervisorAssets: [] + hypervisor: + id: 6 + ip: 192.168.4.2 + hostname: null + port: 8892 + maintenance: false + groupId: 2 + group: + name: Test + icon: null + timezone: Europe/London + forceIPv6: false + vncListenType: 1 + displayName: null + cpuSet: null + nfType: 4 + backupStorageType: 2 + defaultDiskType: inherit + defaultDiskCacheType: inherit + defaultCPU: inherit + defaultMachineType: inherit + created: '2024-03-30T09:53:38+00:00' + updated: '2024-12-06T21:25:54+00:00' + name: BHV 1 + dataDir: /home/vf-data + resources: + servers: + units: '#' + max: 0 + allocated: 5 + free: -5 + percent: null + memory: + units: MB + max: 29419 + allocated: 7168 + free: 22251 + percent: 24.4 + cpuCores: + units: '#' + max: 128 + allocated: 6 + free: 122 + percent: 4.7 + localStorage: + enabled: 1 + name: Local (Default mountpoint) + storageType: 1 + units: GB + max: 1000 + allocated: 141 + free: 859 + percent: 14.1 + otherStorage: [] + owner: + id: 1 + admin: true + extRelationId: null + name: Jon Doe + email: jon@doe.com + timezone: Europe/London + suspended: false + twoFactorAuth: false + created: '2024-03-12T22:22:09+00:00' + updated: '2025-01-15T11:01:18+00:00' + sshKeys: + - id: 1 + ownerId: 1 + type: OpenSSH + name: Test Key + public: >- + ssh-rsa + AAAAB3NzaC1yc2EAAAADAQABAAACAQC+JdL4fWELBWGAknSu0PwVpDDOlORxy9z7eVnZphZXBzYLMnux+ZogVLns6+O6NDE8JmWvP9RIg3SIga7RDOkW9UCdLzRu0jF2ALL7CK1huo1Ih0PDM9ZbFDy2Fd7a4DTvUX6923fQyW0PWRtyL11R4c9NUqzejKp5kW8vHfPQjzwb1hGIKvkSYkI0Auq4JJhlvjjnoK7Z8t5mpDrVfNTrVqevPgsW5Xwnq8R+02XywrY+Q/wnpxDs4Ujb2aA61A0x5J0xcZQpTQHoJNj77J3VmPI7Ry7Q8hPbTSLGZbN+gODr0lOaL5TdbvM3bnus5JvoqgRoszzPcTiNMZAe3v9UM8hiXise54b8rsc2M9MQ4olPu7TrROZbcw+9q4m6cV+dfVU/NRFkf27YRa4oZNKehHsMiupDyoISgSl4qSB8YXAWsX03oC/gzpB2YJIqEL1Y/SmKYEhgr0cplkvGZy6C/Q9cJHyHlMPtEBPexgcjXC9QrDZ4n2cmde3TuSRMctawcat7Nuq08C8fGHaGHr8iAeage3o/ODVOt0rhBu69PknzQeVBdlwK3+p1dH6PnMzNNBhWyNZT/NqB2eS6K8lYpOQ47byXPwYsRLvStUjpZRdikOT7D31T5g8FwOThQ+6WX+xfMD7CSLsSKCn/FhlinbVbG2IhCLH3B30Akw5bUw== + enabled: true + created: '2024-03-13T20:28:32+00:00' + sharedUsers: [] + tasks: + active: false + lastOn: '2025-01-15 15:00:49' + actions: + pending: [] + remoteState: false + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + delete: + summary: Delete a server + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 9 + schema: + type: integer + - name: delay + in: query + description: >- + How many minutes the system should wait before deleting the server. + (0-43800) + required: false + example: 5 + schema: + type: integer + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/backups/plan/{planId}: + put: + summary: Add, remove or modify a backup plan + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 9 + schema: + type: integer + - name: planId + in: path + description: >- + A valid backup plan ID as shown in VirtFusion. A value of 0 (zero) + will remove the plan. + required: true + example: 0 + schema: + type: integer + responses: + '201': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/build: + post: + summary: Build a server + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 9 + schema: + type: integer + requestBody: + content: + application/json: + schema: + type: object + properties: + operatingSystemId: + type: integer + description: A valid operating system template ID. + name: + type: string + description: Server name. + hostname: + type: string + description: Server Hostname. + sshKeys: + type: array + items: + type: integer + description: An array of SSH keys. + vnc: + type: boolean + description: Enable/disable. + ipv6: + type: boolean + description: Enable/disable. + email: + type: boolean + description: Enable/disable. + swap: + type: number + description: Values of 256, 512, 768, 1, 1.5, 2, 3, 4, 5,6 8 + required: + - operatingSystemId + example: + operatingSystemId: 1 + name: server 1 + hostname: server1.domain.com + sshKeys: + - 1 + - 2 + - 3 + - 4 + vnc: false + ipv6: false + swap: 512 + email: true + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + id: 9 + ownerId: 3 + hypervisorId: 6 + arch: 1 + name: server 1 + selfService: 0 + selfServiceSettings: [] + hostname: server1.domain.com + commissionStatus: 1 + uuid: 5de5a89b-b707-41bf-a051-7af1a4e67795 + state: queued + migratable: true + timezone: _default + migrateLevel: 0 + deleteLevel: 0 + configLevel: 1 + backupLevel: 0 + elevated: false + elevateId: null + elevate: false + destroyable: true + rebuild: false + suspended: false + protected: false + buildFailed: false + primaryNetworkDhcp4: false + primaryNetworkDhcp6: false + built: '2024-11-29T19:32:17+00:00' + created: '2024-04-11T17:22:19+00:00' + updated: '2025-01-20T13:32:44+00:00' + traffic: + public: + countMethod: 1 + currentPeriod: + start: '2025-01-11T00:00:00.000000Z' + end: '2025-02-10T23:59:59.999999Z' + limit: 200 + settings: + osTemplateInstall: true + osTemplateInstallId: 1 + encryptedPassword: >- + eyJpdiI6IjVsdWVBMzNNWnVXZzlYMjhlTUMzSXc9PSIsInZhbHVlIjoiT2E3SDNmVTVCOW1GK1RCd0h6YjZwZnIva1ZHbU9rQU1VL1hsQSthcUVRYz0iLCJtYWMiOiIzMzdmNjkxOTcwMjkxYmM2ZmNlMjgyMzdkMTQzMDY2OWY1ZTBlYjExYzA1MjdjMzZmMTU1ZTVlMGFiMWY2ZmJlIiwidGFnIjoiIn0= + backupPlan: null + uefi: false + uefiType: 0 + cloudInit: true + cloudInitType: 1 + config: + cloud.init: + on.all: + user.data: + runcmd: + - >- + DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get + --option=Dpkg::Options::=--force-confold + --option=Dpkg::options::=--force-unsafe-io + --assume-yes --quiet update + - >- + DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get + --option=Dpkg::Options::=--force-confold + --option=Dpkg::options::=--force-unsafe-io + --assume-yes --quiet dist-upgrade + on.password: + user.data: [] + on.sshkey: + user.data: [] + on.allpre: + user.data: [] + on.allpost: + user.data: [] + on.network: [] + on.network.libvirtrouted: [] + userConfig: [] + bootOrder: + - hd + - cdrom + tpmType: 0 + networkBoot: false + bootMenu: 1 + customISO: 1 + securityDriver: 3 + memBalloon: + model: 1 + autoDeflate: 0 + freePageReporting: 0 + hyperv: + enabled: false + passthrough: false + relaxed: 0 + vapic: 0 + spinlocks: 0 + vpindex: 0 + runtime: 0 + synic: 0 + stimer: 0 + reset: 0 + vendorId: 0 + frequencies: 0 + reenlightenment: 0 + tlbflush: 0 + ipi: 0 + evmcs: 0 + vendorIdValue: KVM VM + spinlocksValue: 8191 + clockEnabled: 0 + extended: + cpuFlags: + topoext: '1' + svm: '1' + vmx: '1' + machineType: inherit + pciPorts: 16 + resources: + memory: 2048 + storage: 10 + traffic: 200 + cpuCores: 1 + decryptedPassword: uv1dmfUUaENhNpbrGUwD + cpu: + cores: 1 + type: inherit + typeExact: host-model + shares: 1024 + throttle: 0 + topology: + enabled: false + sockets: 1 + cores: 1 + threads: 1 + dies: 1 + customXML: + domain: + xml: '' + enabled: false + os: + xml: '' + enabled: false + devices: + xml: '' + enabled: false + features: + xml: '' + enabled: false + clock: + xml: '' + enabled: false + cpuTune: + xml: '' + enabled: false + qemuCommandline: [] + qemuAgent: + os: + screen: >- + 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 + media: + isoMounted: false + isoType: local + isoName: '' + isoFilename: '' + isoUrl: '' + isoDownload: false + backupPlan: + id: null + name: null + vnc: + ip: 192.168.4.2 + port: 5901 + enabled: false + network: + interfaces: + - id: 9 + order: 1 + enabled: true + tag: 4238114467 + name: eth0 + type: public + driver: 1 + processQueues: null + mac: 00:C3:BA:23:37:B3 + ipv4ToMac: null + ipv6ToMac: null + inTrafficCount: true + outTrafficCount: false + inAverage: 0 + inPeak: 0 + inBurst: 0 + outAverage: 0 + outPeak: 0 + outBurst: 0 + ipFilter: true + vlans: [] + ipFilterType: '4' + portIsolated: false + ipv4_resolver_1: 1 + ipv4_resolver_2: 2 + ipv6_resolver_1: 1 + ipv6_resolver_2: 2 + networkProfile: 0 + dhcpV4: 0 + dhcpV6: 0 + firewallEnabled: false + hypervisorNetwork: 6 + isNat: false + nat: false + firewall: [] + hypervisorConnectivity: + id: 6 + type: simpleBridge + bridge: br0 + mtu: null + primary: true + default: true + ipWhitelist: + - id: 1 + type: 4 + ip: 100.100.100.100 + mask: 32 + - id: 2 + type: 4 + ip: 10.0.0.10 + mask: 32 + actions: [] + ipv4: + - id: 22 + order: 1 + enabled: true + blockId: 1 + address: 192.168.4.21 + gateway: 192.168.4.1 + netmask: 255.255.254.0 + resolver1: 8.8.8.8 + resolver2: 8.8.4.4 + rdns: null + mac: null + - id: 37 + order: 2 + enabled: true + blockId: 1 + address: 192.168.4.36 + gateway: 192.168.4.1 + netmask: 255.255.254.0 + resolver1: 8.8.8.8 + resolver2: 8.8.4.4 + rdns: null + mac: null + - id: 38 + order: 3 + enabled: true + blockId: 1 + address: 192.168.4.37 + gateway: 192.168.4.1 + netmask: 255.255.254.0 + resolver1: 8.8.8.8 + resolver2: 8.8.4.4 + rdns: null + mac: null + ipv6: [] + secondaryInterfaces: [] + storage: + - _id: 11 + id: 1 + cache: null + bus: null + capacity: 10 + drive: a + datastoreDiskId: null + filesystem: null + iops: + read: null + write: null + bytes: + read: null + write: null + type: qcow2 + profile: 0 + status: 3 + enabled: true + primary: true + created: '2024-04-11T17:22:19+00:00' + updated: '2024-04-11T17:22:19+00:00' + datastore: [] + name: 5de5a89b-b707-41bf-a051-7af1a4e67795_1 + filename: 5de5a89b-b707-41bf-a051-7af1a4e67795_1.img + hypervisorStorageId: null + local: true + locationType: mountpoint + path: /home/vf-data/disk + hypervisorAssets: [] + hypervisor: + id: 6 + ip: 192.168.4.2 + hostname: null + port: 8892 + maintenance: false + groupId: 2 + group: + name: Test + icon: null + timezone: Europe/London + forceIPv6: false + vncListenType: 1 + displayName: null + cpuSet: null + nfType: 4 + backupStorageType: 2 + defaultDiskType: inherit + defaultDiskCacheType: inherit + defaultCPU: inherit + defaultMachineType: inherit + created: '2024-03-30T09:53:38+00:00' + updated: '2024-12-06T21:25:54+00:00' + name: BHV 1 + dataDir: /home/vf-data + resources: + servers: + units: '#' + max: 0 + allocated: 5 + free: -5 + percent: null + memory: + units: MB + max: 29419 + allocated: 7168 + free: 22251 + percent: 24.4 + cpuCores: + units: '#' + max: 128 + allocated: 6 + free: 122 + percent: 4.7 + localStorage: + enabled: 1 + name: Local (Default mountpoint) + storageType: 1 + units: GB + max: 1000 + allocated: 141 + free: 859 + percent: 14.1 + otherStorage: [] + owner: + id: 3 + admin: false + extRelationId: 1 + name: jon Doe + email: jon@doe.com + timezone: Europe/London + suspended: false + twoFactorAuth: false + created: '2025-01-20T12:48:20+00:00' + updated: '2025-01-20T13:00:38+00:00' + sshKeys: [] + sharedUsers: [] + tasks: + active: true + lastOn: '2024-11-29 19:32:17' + actions: + pending: [] + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/package/{packageId}: + put: + summary: Change a server package + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 9 + schema: + type: integer + - name: packageId + in: path + description: A valid package ID as shown in VirtFusion. + required: true + example: 1 + schema: + type: integer + requestBody: + content: + application/json: + schema: + type: object + properties: + backupPlan: + type: boolean + cpu: + type: boolean + memory: + type: boolean + primaryDiskReadIOPS: + type: boolean + primaryDiskReadThroughput: + type: boolean + primaryDiskSize: + type: boolean + primaryDiskWriteIOPS: + type: boolean + primaryDiskWriteThroughput: + type: boolean + primaryNetworkInboundSpeed: + type: boolean + primaryNetworkOutboundSpeed: + type: boolean + primaryNetworkTraffic: + type: boolean + example: + backupPlan: true + cpu: true + memory: true + primaryDiskReadIOPS: false + primaryDiskReadThroughput: false + primaryDiskSize: true + primaryDiskWriteIOPS: true + primaryDiskWriteThroughput: true + primaryNetworkInboundSpeed: true + primaryNetworkOutboundSpeed: true + primaryNetworkTraffic: true + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + info: + - CPU cores not updated. It matches the current value + - >- + primary disk not updated. It either matches or is lower than + the current value + - traffic not updated. It matches the current value + - >- + primary network speed inbound not updated. It matches the + current value + - >- + primary network speed outbound not updated. It matches the + current value + - write IOPS not updated. It matches the current value + - write bytes/sec not updated. It matches the current value + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers: + post: + summary: Create a server + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: dryRun + in: query + description: >- + Test to see if a server can be created without actual creation. + true|false Defaults to false. + required: false + example: 'false' + schema: + type: boolean + requestBody: + content: + application/json: + schema: + type: object + properties: + packageId: + type: integer + description: A valid package ID. + userId: + type: integer + description: A valid user ID. + hypervisorId: + type: integer + description: A valid hypervisor group ID. + ipv4: + type: integer + description: Number of IPv4 addresses. + storage: + type: integer + description: Number of GB primary storage. + traffic: + type: integer + description: Number of GB traffic (0=unlimited). + memory: + type: integer + description: Number of MB memory. + cpuCores: + type: integer + description: Number of CPU cores. + networkSpeedInbound: + type: integer + description: Inbound network speed (kB/s). + networkSpeedOutbound: + type: integer + description: Outbound network speed (kB/s). + storageProfile: + type: integer + description: Storage profile ID. + networkProfile: + type: integer + description: Network profile ID. + firewallRulesets: + type: array + items: + type: integer + description: >- + Array of firewall rulesets. This will override package + settings. A value of -1 will force no rulesets to be + applied. + hypervisorAssetGroups: + type: array + items: + type: integer + description: >- + Array of hypervisor asset groups. This will override package + settings. A value of -1 will force no groups to be applied. + additionalStorage1Enable: + type: boolean + description: Enable/disable additional storage 1. + additionalStorage2Enable: + type: boolean + description: Enable/disable additional storage 2. + additionalStorage1Profile: + type: integer + description: Additional storage 1 profile ID. + additionalStorage2Profile: + type: integer + description: Additional storage 2 profile ID. + additionalStorage1Capacity: + type: integer + description: Number of GB additional storage 1 capacity. + additionalStorage2Capacity: + type: integer + description: Number of GB additional storage 2 capacity. + required: + - packageId + - userId + - hypervisorId + example: + packageId: 1 + userId: 1 + hypervisorId: 1 + ipv4: 1 + storage: 20 + traffic: 20 + memory: 512 + cpuCores: 5 + networkSpeedInbound: 200 + networkSpeedOutbound: 400 + storageProfile: 1 + networkProfile: 1 + firewallRulesets: + - 1 + - 2 + hypervisorAssetGroups: + - 3 + - 4 + additionalStorage1Enable: true + additionalStorage2Enable: false + additionalStorage1Profile: 1 + additionalStorage2Profile: 2 + additionalStorage1Capacity: 10 + additionalStorage2Capacity: 20 + responses: + '201': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + id: 70 + ownerId: 1 + hypervisorId: 14 + arch: 1 + name: '' + selfService: 0 + selfServiceSettings: [] + hostname: null + commissionStatus: 0 + uuid: ab68e20a-211f-4b90-99f1-8ee9068c81de + state: allocated + migratable: true + timezone: _default + migrateLevel: 0 + deleteLevel: 0 + configLevel: 0 + backupLevel: 0 + elevated: false + elevateId: null + elevate: false + destroyable: true + rebuild: false + suspended: false + protected: false + buildFailed: false + primaryNetworkDhcp4: false + primaryNetworkDhcp6: false + built: null + created: '2025-01-20T14:00:47+00:00' + updated: '2025-01-20T14:00:47+00:00' + traffic: + public: + countMethod: 1 + currentPeriod: + start: '2025-01-20T00:00:00.000000Z' + end: '2025-02-19T23:59:59.999999Z' + limit: 20 + settings: + osTemplateInstall: true + osTemplateInstallId: 0 + encryptedPassword: >- + eyJpdiI6IkF5L05USXR3OGRNMm80NVFpMXhaVnc9PSIsInZhbHVlIjoiZ0JtclcxSFhoeEdEOGJPa1J6cTVteTllOTh5YU1xM3ViUGphSS9qUTFPMD0iLCJtYWMiOiI3MWFmYzhkY2Y4ZTkxNmNjZWFhZDgzMjZlMjIwZGFhYTg2YTU2OThmYzdjN2MwYzZjNzZhNDBmZTE2MDY4MTc5IiwidGFnIjoiIn0= + backupPlan: null + uefi: false + uefiType: 0 + cloudInit: true + cloudInitType: 1 + config: [] + userConfig: [] + bootOrder: + - hd + - cdrom + tpmType: 0 + networkBoot: false + bootMenu: 1 + customISO: 1 + securityDriver: 3 + memBalloon: + model: 1 + autoDeflate: 0 + freePageReporting: 0 + hyperv: + enabled: false + passthrough: false + relaxed: 0 + vapic: 0 + spinlocks: 0 + vpindex: 0 + runtime: 0 + synic: 0 + stimer: 0 + reset: 0 + vendorId: 0 + frequencies: 0 + reenlightenment: 0 + tlbflush: 0 + ipi: 0 + evmcs: 0 + vendorIdValue: WIN KVM + spinlocksValue: 8191 + clockEnabled: 0 + extended: + cpuFlags: + topoext: '1' + svm: '1' + vmx: '1' + machineType: inherit + pciPorts: 16 + resources: + memory: 512 + storage: 20 + traffic: 20 + cpuCores: 5 + cpu: + cores: 5 + type: inherit + typeExact: host-model + shares: 1024 + throttle: 0 + topology: + enabled: false + sockets: 1 + cores: 5 + threads: 1 + dies: 1 + customXML: + domain: + xml: '' + enabled: false + os: + xml: '' + enabled: false + devices: + xml: '' + enabled: false + features: + xml: '' + enabled: false + clock: + xml: '' + enabled: false + cpuTune: + xml: '' + enabled: false + qemuCommandline: [] + qemuAgent: + os: + screen: >- + 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UPvQ+TVr1rhVq1alv6JrF52j48RM7IpCL/bqGo961KOyy8i3sikf5E9dV0HHyIfrr79+tq1zeklX17AyoIuojKisWPDznS9Do6Ojmc0rV650Dz/8sJ3GsiIC1KArAutfdvfdd3d//etf3b///W+3bNky96tf/cr985//dMuXL3fvfve70z86/3itz5gxw33pS19yt912W/r79a9/7S688EJ33333uauvvtq94Q1vyJ/i3vrWt6bxOubee+918+fPbztmt912y+J/8pOftMUtWLDAXXfddel5F1xwgfvFL36R3gxk88knn5zeVNpOSDYmYuNf/vKXNA3Zd/jhh+cv2bb9tre9LbNXeer022abbdrO9TduuOGGtc6VMElglL/vfOc7btNNN/VPSVkUpSeBe+ihh9zNN9/svvrVr7Zx6cXe5z//+W02vf3tb29L3zYuuuii7DiVhw984APZ9llnnZUe1ku6T3/607Pzlb8XvOAFlpR77GMfm/KwfP/rX//Kbvg6SDZa3N/+9rfsPFaqI4BAV8c2vfIHP/hBd+6557oddtjBDQ+345bAnXrqqcl3P9q/zLTddts5/QEccMABac3UN1E1QYmRzvn+97/vVKspCqppffazn12r5mjHPuEJT7BVd8ghh7ilS5e6LbfcMttnK6rBHXHEEc7EwPZP1EY9PaiWrp/VBO2adSxVY1y4cKG79NJL3ZOe9KSuTJDdc+bMcW9+85vTm+bGG2/c1Xn+Qddff7275557sl2ve93rsnVb0ZOMb9M//vEPi0qXvg/bIjps3H333U61Xws777yzrbo99tgjW9eK8unH++u6wRKqJ9CuGNWn16gUnv3sZ7vFixdnwqxHcNWk1XTgh9e+9rXuuc99brpLgisxnDt3bnaIanuqPetc/3F07733Tmvg2YG5Ff1BLVq0KLd37c33vOc9mZDrkflPf/qT+8Mf/tD2+L/nnns6PQko9NPGta0p3qPmiEsuuaTw9/Of/9zdcsstxSfm9oq9xPiaa65pa1KYNWuWKxJJna4as9LWTfOKK65oa0pR09NLX/rSXCouZTeevaq5W3jOc56T1mBtW0vdOCyo7HzjG9+wzdJlN5zkXwu77LKLra4l0IpQTd+Cf+xvf/tb282yQgIIdIVwP/GJT2TCJ5F9+ctfnjY7PO5xj3Ovec1r2lL+6Ec/mm6/6U1v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 + media: + isoMounted: false + isoType: local + isoName: '' + isoFilename: '' + isoUrl: '' + isoDownload: false + backupPlan: + id: null + name: null + vnc: + ip: 192.168.30.6 + port: 5904 + enabled: false + network: + interfaces: + - id: 70 + order: 1 + enabled: true + tag: 6927490480 + name: eth0 + type: public + driver: null + processQueues: null + mac: 00:BA:76:AB:DF:4E + ipv4ToMac: null + ipv6ToMac: null + inTrafficCount: true + outTrafficCount: false + inAverage: 200 + inPeak: 0 + inBurst: 0 + outAverage: 400 + outPeak: 0 + outBurst: 0 + ipFilter: true + vlans: [] + ipFilterType: '4' + portIsolated: false + ipv4_resolver_1: 1 + ipv4_resolver_2: 2 + ipv6_resolver_1: 1 + ipv6_resolver_2: 2 + networkProfile: 0 + dhcpV4: 0 + dhcpV6: 0 + firewallEnabled: false + hypervisorNetwork: 14 + isNat: false + nat: false + firewall: [] + hypervisorConnectivity: + id: 14 + type: simpleBridge + bridge: br0 + mtu: null + primary: true + default: true + ipWhitelist: [] + actions: [] + ipv4: + - id: 520 + order: 1 + enabled: true + blockId: 3 + address: 192.168.30.207 + gateway: 192.168.30.1 + netmask: 255.255.255.0 + resolver1: 8.8.8.8 + resolver2: 8.8.4.4 + rdns: null + mac: null + ipv6: [] + secondaryInterfaces: [] + storage: + - _id: 81 + id: 1 + cache: null + bus: null + capacity: 20 + drive: a + datastoreDiskId: null + filesystem: null + iops: + read: null + write: null + bytes: + read: null + write: null + type: qcow2 + profile: 1 + status: 3 + enabled: true + primary: true + created: '2025-01-20T14:00:47+00:00' + updated: '2025-01-20T14:00:47+00:00' + datastore: [] + name: ab68e20a-211f-4b90-99f1-8ee9068c81de_1 + filename: ab68e20a-211f-4b90-99f1-8ee9068c81de_1.img + hypervisorStorageId: null + local: true + locationType: mountpoint + path: /home/vf-data/disk + - _id: 82 + id: 2 + cache: null + bus: null + capacity: 10 + drive: b + datastoreDiskId: null + filesystem: null + iops: + read: null + write: null + bytes: + read: null + write: null + type: qcow2 + profile: 0 + status: 1 + enabled: false + primary: false + created: '2025-01-20T14:00:47+00:00' + updated: '2025-01-20T14:00:47+00:00' + datastore: [] + name: ab68e20a-211f-4b90-99f1-8ee9068c81de_2 + filename: ab68e20a-211f-4b90-99f1-8ee9068c81de_2.img + hypervisorStorageId: null + local: true + locationType: mountpoint + path: /home/vf-data/disk + hypervisorAssets: [] + hypervisor: + id: 14 + ip: 192.168.30.6 + hostname: null + port: 8892 + maintenance: false + groupId: 1 + group: + name: Default + icon: null + timezone: Europe/London + forceIPv6: false + vncListenType: 1 + displayName: null + cpuSet: null + nfType: 4 + backupStorageType: 2 + defaultDiskType: inherit + defaultDiskCacheType: inherit + defaultCPU: inherit + defaultMachineType: inherit + created: '2024-05-14T11:19:04+00:00' + updated: '2024-06-28T21:22:01+00:00' + name: Ceph Hypervisor 2 + dataDir: /home/vf-data + resources: + servers: + units: '#' + max: 0 + allocated: 4 + free: -4 + percent: null + memory: + units: MB + max: 24000 + allocated: 3584 + free: 20416 + percent: 14.9 + cpuCores: + units: '#' + max: 64 + allocated: 8 + free: 56 + percent: 12.5 + localStorage: + enabled: 1 + name: Local (Default mountpoint) + storageType: 1 + units: GB + max: 1000 + allocated: 40 + free: 960 + percent: 4 + otherStorage: + - id: 2 + name: Ceph RBD + enabled: 0 + path: null + units: GB + storageType: 2 + isDatastore: true + max: 10000 + allocated: 10 + free: 9990 + percent: 0.1 + - id: 3 + name: Ceph EC + enabled: 0 + path: null + units: GB + storageType: 2 + isDatastore: true + max: 13333333 + allocated: 10 + free: 13333323 + percent: 0 + owner: + id: 1 + admin: true + extRelationId: null + name: Jon Doe + email: jon@doe.com + timezone: Europe/London + suspended: false + twoFactorAuth: false + created: '2024-03-12T22:22:09+00:00' + updated: '2025-01-15T11:01:18+00:00' + sshKeys: [] + sharedUsers: [] + tasks: + active: false + lastOn: null + actions: + pending: + - id: 19 + action: Create HDD (sdb) + requires: + - boot + - restart + - shutdown + - poweroff + collected: false + complete: false + failed: false + payload: + disk: + id: 82 + disk_storage_id: null + created: '2025-01-20T14:00:47+00:00' + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + '422': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + errors: + - Invalid or disabled firewall ruleset + headers: {} + security: + - bearer: [] + get: + summary: Retrieve servers + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: type + in: query + description: simple or full. Defaults to simple. + required: false + example: simple + schema: + type: string + - name: results + in: query + description: >- + Number of results to return. Range between 1 and 200. Defaults to + 20. + required: false + example: 20 + schema: + type: integer + - name: hypervisorId + in: query + description: >- + Filter by hypervisor ID. Specify multiple with + hypervisorId[]=1&hypervisorId[]=2 etc... + required: false + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + current_page: 1 + data: + - id: 5 + uuid: 1fb4b391-b360-40e7-8fe1-5b024c7508ac + name: Avaricious Trade + commissioned: 3 + owner: 1 + hypervisorId: 7 + suspended: false + protected: false + updated: '2024-04-02T10:15:10+00:00' + created: '2024-03-30T14:41:27+00:00' + - id: 8 + uuid: 82c37680-bf8f-4712-854f-31428933703f + name: PDNS + commissioned: 3 + owner: 1 + hypervisorId: 3 + suspended: false + protected: false + updated: '2024-04-13T22:02:04+00:00' + created: '2024-04-09T11:33:43+00:00' + - id: 9 + uuid: 5de5a89b-b707-41bf-a051-7af1a4e67795 + name: server 1 + commissioned: 2 + owner: 3 + hypervisorId: 6 + suspended: false + protected: false + updated: '2025-01-20T14:13:50+00:00' + created: '2024-04-11T17:22:19+00:00' + - id: 10 + uuid: 71178184-7554-406f-80b8-0c1d7ffcfd49 + name: Respectful Exit + commissioned: 3 + owner: 1 + hypervisorId: 6 + suspended: false + protected: false + updated: '2024-05-13T08:16:00+00:00' + created: '2024-04-23T11:50:58+00:00' + - id: 11 + uuid: ffed8ddb-c758-41ff-8380-abb1377dfb38 + name: Ubuntu Test + commissioned: 0 + owner: 1 + hypervisorId: 7 + suspended: false + protected: false + updated: '2024-05-02T18:33:20+00:00' + created: '2024-04-25T20:18:57+00:00' + - id: 19 + uuid: c77ce40f-0226-43ca-b000-c9b7fe143dc7 + name: Metallic National + commissioned: 3 + owner: 1 + hypervisorId: 2 + suspended: false + protected: false + updated: '2024-05-02T18:34:27+00:00' + created: '2024-05-02T10:36:37+00:00' + - id: 20 + uuid: 785aaddd-b08b-448b-9486-baf29cd3c0f8 + name: Rubbery Daughter + commissioned: 3 + owner: 1 + hypervisorId: 7 + suspended: false + protected: false + updated: '2024-10-07T21:32:34+00:00' + created: '2024-05-03T10:05:41+00:00' + - id: 22 + uuid: 5a7e3d49-0fdf-4cfa-bb14-864f3ca0e79a + name: Frightening Clock + commissioned: 3 + owner: 1 + hypervisorId: 7 + suspended: false + protected: false + updated: '2024-06-08T08:30:15+00:00' + created: '2024-05-03T10:35:36+00:00' + - id: 23 + uuid: b1f6efb6-22a1-4d0a-b043-17d0ccfce4b2 + name: Backup Test + commissioned: 3 + owner: 1 + hypervisorId: 6 + suspended: false + protected: false + updated: '2024-05-14T15:29:37+00:00' + created: '2024-05-04T07:30:10+00:00' + - id: 26 + uuid: 5c681c72-6828-4fa3-8011-ced2502384e6 + name: Ceph Test 1 + commissioned: 3 + owner: 1 + hypervisorId: 13 + suspended: false + protected: false + updated: '2024-05-14T11:42:08+00:00' + created: '2024-05-14T10:57:56+00:00' + - id: 27 + uuid: 8cb75e06-caae-47f5-9bf2-3ea1d341d10e + name: OVS BHV 6 + commissioned: 3 + owner: 1 + hypervisorId: 11 + suspended: false + protected: false + updated: '2024-05-17T13:25:10+00:00' + created: '2024-05-16T16:56:12+00:00' + - id: 28 + uuid: 3a63170a-2350-422d-8cfb-449ed6940414 + name: OVS BHV 7 + commissioned: 3 + owner: 1 + hypervisorId: 12 + suspended: false + protected: false + updated: '2024-05-17T13:25:04+00:00' + created: '2024-05-16T18:13:44+00:00' + - id: 29 + uuid: f24aebac-016c-4139-afcf-5dbfeda54fc8 + name: OVS BHV 1 + commissioned: 3 + owner: 1 + hypervisorId: 6 + suspended: false + protected: false + updated: '2024-05-17T13:25:00+00:00' + created: '2024-05-17T11:25:13+00:00' + - id: 30 + uuid: 67486d4d-d974-45c3-a680-980bc84635d8 + name: Test 10 + commissioned: 3 + owner: 1 + hypervisorId: 1 + suspended: false + protected: false + updated: '2024-06-07T16:41:45+00:00' + created: '2024-06-07T12:03:00+00:00' + - id: 36 + uuid: a3df9e3c-893e-4f42-ad90-cf34df155589 + name: Frail Text + commissioned: 3 + owner: 1 + hypervisorId: 13 + suspended: false + protected: false + updated: '2024-06-28T21:25:57+00:00' + created: '2024-06-28T13:39:55+00:00' + - id: 37 + uuid: a3b2e9f8-9b5c-44a3-bcb6-bbadf9bd83e2 + name: Stark Brown + commissioned: 3 + owner: 1 + hypervisorId: 13 + suspended: false + protected: false + updated: '2024-08-23T20:15:25+00:00' + created: '2024-06-28T21:36:23+00:00' + - id: 38 + uuid: 8c6f63d1-ec53-4e1a-a52f-d50f03b05c70 + name: '' + commissioned: 0 + owner: 1 + hypervisorId: 14 + suspended: false + protected: false + updated: '2024-08-23T20:17:42+00:00' + created: '2024-08-23T20:17:42+00:00' + - id: 39 + uuid: 539bff72-f6cd-4260-96f1-b7523fd890c5 + name: Thorny Impression + commissioned: 3 + owner: 1 + hypervisorId: 14 + suspended: false + protected: false + updated: '2024-08-23T20:20:32+00:00' + created: '2024-08-23T20:18:39+00:00' + - id: 40 + uuid: ce445459-c716-4f88-a7c6-a0ffd29eb9b2 + name: Present Charge + commissioned: 2 + owner: 1 + hypervisorId: 14 + suspended: false + protected: false + updated: '2024-08-23T20:57:22+00:00' + created: '2024-08-23T20:56:04+00:00' + - id: 41 + uuid: 6fce272f-c6ea-45bd-bf24-d4d357d9a788 + name: CP Test + commissioned: 3 + owner: 1 + hypervisorId: 13 + suspended: false + protected: false + updated: '2024-08-27T11:10:48+00:00' + created: '2024-08-27T11:09:54+00:00' + first_page_url: https://192.168.3.11/api/v1/servers?page=1 + from: 1 + last_page: 2 + last_page_url: https://192.168.3.11/api/v1/servers?page=2 + links: + - url: null + label: '« Previous' + active: false + - url: https://192.168.3.11/api/v1/servers?page=1 + label: '1' + active: true + - url: https://192.168.3.11/api/v1/servers?page=2 + label: '2' + active: false + - url: https://192.168.3.11/api/v1/servers?page=2 + label: Next » + active: false + next_page_url: https://192.168.3.11/api/v1/servers?page=2 + path: https://192.168.3.11/api/v1/servers + per_page: 20 + prev_page_url: null + to: 20 + total: 27 + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/modify/name: + put: + summary: Modify name + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + requestBody: + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The new name of the server. + required: + - name + example: + name: Server 1 + responses: + '201': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/resetPassword: + post: + summary: Reset a server password + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + requestBody: + content: + application/json: + schema: + type: object + properties: + user: + type: string + description: Either root or Administrator. + sendMail: + type: boolean + description: >- + Optional (default true) Email the password to the user. + (true|false). + required: + - user + example: + user: root + sendMail: true + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + queueId: 176 + expectedPassword: l1LMzm2JGhWYdjjn8JkC + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/user/{userId}: + get: + summary: Retrieve a users servers + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: userId + in: path + description: A valid user ID as shown in VirtFusion. + required: true + example: 3 + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + - id: 9 + ownerId: 3 + hypervisorId: 6 + name: server 1 + hostname: server1.domain.com + commissionStatus: 2 + uuid: 5de5a89b-b707-41bf-a051-7af1a4e67795 + state: failed + rebuild: false + suspended: false + protected: false + buildFailed: false + backup_level: 0 + backup_plan: null + os: + screen: >- + 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 + server_info: + show: false + icon: null + name: null + label: null + vnc: + expose_details: true + ip: 192.168.4.2 + hostname: null + port: 5901 + enabled: 0 + resources: + memory: 2048 + storage: 10 + traffic: 200 + cpuCores: 1 + cpu_model: null + network: + interfaces: + - order: 1 + enabled: true + tag: 4238114467 + name: eth0 + mac: 00:C3:BA:23:37:B3 + inAverage: 0 + inPeak: 0 + inBurst: 0 + outAverage: 0 + outPeak: 0 + outBurst: 0 + isNat: false + ipv4: + - order: 1 + enabled: true + address: 192.168.4.21 + gateway: 192.168.4.1 + netmask: 255.255.254.0 + resolver1: 8.8.8.8 + resolver2: 8.8.4.4 + - order: 2 + enabled: true + address: 192.168.4.36 + gateway: 192.168.4.1 + netmask: 255.255.254.0 + resolver1: 8.8.8.8 + resolver2: 8.8.4.4 + - order: 3 + enabled: true + address: 192.168.4.37 + gateway: 192.168.4.1 + netmask: 255.255.254.0 + resolver1: 8.8.8.8 + resolver2: 8.8.4.4 + ipv6: [] + config: + uefi: false + bootOrder: + - hd + - cdrom + media: + isoMounted: false + isoName: '' + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/templates: + get: + summary: Retrieve OS templates available to a server + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + - name: Debian + description: >- + Debian GNU/Linux, is a Linux distribution composed of free + and open-source software, developed by the + community-supported Debian Project. + icon: debian_logo.png + templates: + - id: 8 + name: Debian + version: 11 (Bullseye) + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using Advanced Package + Tool (APT), the main command-line package manager for + Debian. + icon: debian_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 46 + name: Debian + version: 12 (Bookworm) + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using Advanced Package + Tool (APT), the main command-line package manager for + Debian. + icon: debian_logo.png + eol: false + eol_date: '2024-04-23 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 56 + name: Debian + version: 12 (Bookworm) + variant: Test + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using Advanced Package + Tool (APT), the main command-line package manager for + Debian. + icon: debian_logo.png + eol: false + eol_date: '2024-04-23 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: true + type: linux + id: 1 + - name: CentOS + description: >- + The CentOS Linux distribution is a stable, predictable, + manageable and reproducible platform derived from the + sources of Red Hat Enterprise Linux (RHEL). + icon: centos_logo.png + templates: + - id: 1 + name: CentOS + version: '7' + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using Yum, the main + command-line package manager for CentOS. + icon: centos_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 2 + name: CentOS Stream + version: '9' + variant: Minimal + arch: 1 + description: >- + Base installation with limited packages. New packages + are easily installed using DNF (yum), the main + command-line package manager for CentOS. + icon: centos_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + id: 2 + - name: Rocky Linux + description: >- + Rocky Linux is a community enterprise operating system + designed to be 100% bug-for-bug compatible with America's + top enterprise Linux distribution now that its downstream + partner has shifted direction. It is under intensive + development by the community. Rocky Linux is led by + Gregory Kurtzer, founder of the CentOS project. + icon: rocky_linux_logo.png + templates: + - id: 7 + name: Rocky Linux + version: '8' + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using DNF (yum), the + main command-line package manager for Rocky Linux. + icon: rocky_linux_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 13 + name: Rocky Linux + version: '9' + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using DNF (yum), the + main command-line package manager for Rocky Linux. + icon: rocky_linux_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + id: 3 + - name: AlmaLinux + description: >- + AlmaLinux OS is an open-source, community-driven project + that intends provide and alternative to the CentOS Stable + release. AlmaLinux is an OS that is 1:1 binary compatible + with RHEL® 8 and a global collaborative of the developer + community, industry, academia and research which build + upon this technology to empower humanity. + icon: almalinux_logo.png + templates: + - id: 6 + name: AlmaLinux + version: '8' + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using DNF (yum), the + main command-line package manager for AlmaLinux. + icon: almalinux_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 12 + name: ARM -> AlmaLinux + version: '9' + variant: Latest + arch: 1 + description: >- + Latest version with base packages. New packages are + easily installed using DNF (yum), the main + command-line package manager for AlmaLinux. + icon: almalinux_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + id: 4 + - name: Ubuntu + description: >- + The most popular server Linux in the cloud and data + centre, you can rely on Ubuntu Server and its five years + of guaranteed free upgrades. + icon: ubuntu_logo.png + templates: + - id: 3 + name: Ubuntu Server + version: 20.04 LTS (Focal Fossa) + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using Advanced Package + Tool (APT), the main command-line package manager for + Ubuntu. + icon: ubuntu_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 4 + name: Ubuntu Server + version: 18.04 LTS (Bionic Beaver) + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using Advanced Package + Tool (APT), the main command-line package manager for + Ubuntu. + icon: ubuntu_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 9 + name: Ubuntu Server + version: 22.04 LTS (Jammy Jellyfish) + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using Advanced Package + Tool (APT), the main command-line package manager for + Ubuntu. + icon: ubuntu_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 49 + name: Ubuntu Server + version: 24.04 LTS (Noble Numbat) + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using Advanced Package + Tool (APT), the main command-line package manager for + Ubuntu. + icon: ubuntu_logo.png + eol: false + eol_date: '2024-04-25 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + id: 5 + - name: Fedora + description: >- + Fedora Server is a powerful, flexible operating system + that includes the best and latest datacenter technologies. + It puts you in control of all your infrastructure and + services. + icon: fedora_logo.png + templates: + - id: 11 + name: Fedora + version: '37' + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using DNF (yum), the + main command-line package manager for Fedora. + icon: fedora_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 14 + name: Fedora + version: '38' + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using DNF (yum), the + main command-line package manager for Fedora. + icon: fedora_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 15 + name: Fedora + version: '39' + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using DNF (yum), the + main command-line package manager for Fedora. + icon: fedora_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 59 + name: Fedora + version: '41' + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using DNF (yum), the + main command-line package manager for Fedora. + icon: fedora_logo.png + eol: false + eol_date: '2024-12-18 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + id: 6 + - name: FreeBSD + description: >- + FreeBSD is an operating system used to power modern + servers, desktops, and embedded platforms. A large + community has continually developed it for more than + thirty years. Its advanced networking, security, and + storage features have made FreeBSD the platform of choice + for many of the busiest web sites and most pervasive + embedded networking and storage devices. + icon: freebsd_logo.png + templates: + - id: 52 + name: FreeBSD + version: '13.3' + variant: Minimal + arch: 1 + description: Minimal installation with limited packages. + icon: freebsd_logo.png + eol: false + eol_date: '2024-05-15 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: unix + - id: 53 + name: FreeBSD + version: '14.0' + variant: Minimal + arch: 1 + description: Minimal installation with limited packages. + icon: freebsd_logo.png + eol: false + eol_date: '2024-05-15 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: unix + - id: 55 + name: FreeBSD + version: '14.2' + variant: Minimal + arch: 1 + description: Minimal installation with limited packages. + icon: freebsd_logo.png + eol: false + eol_date: '2024-10-20 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: true + type: unix + - id: 58 + name: FreeBSD + version: '13.2' + variant: Minimal + arch: 1 + description: Minimal installation with limited packages. + icon: freebsd_logo.png + eol: false + eol_date: '2024-12-10 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: unix + id: 7 + - name: Other + description: '' + icon: linux_logo.png + templates: + - id: 5 + name: openSUSE + version: Leap 15 + variant: Minimal + arch: 1 + description: >- + openSUSE is a project that serves to promote the use + of free and open-source software.

Minimal + installation with limited packages. New packages are + easily installed using Zypper, the main command-line + package manager for openSUSE. + icon: opensuse_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + id: 0 + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/suspend: + post: + summary: Suspend a server + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/modify/cpuThrottle: + put: + summary: Throttle a servers CPU + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + - name: sync + in: query + description: >- + Synchronise and apply the defined percentage. true|false Defaults to + false. + required: false + example: 'true' + schema: + type: boolean + requestBody: + content: + application/json: + schema: + type: object + properties: + percent: + type: integer + description: The percentage the CPU should be throttled (0-99). + required: + - percent + example: + percent: 50 + responses: + '201': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/traffic: + get: + summary: Retrieve a servers traffic statistics + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + monthly: + - month: 2 + start: '2025-01-06 00:00:00' + end: '2025-02-05 23:59:59' + rx: 1847110337 + tx: 1270421 + total: 1848380758 + limit: 20000 + blocks: + - id: 2 + traffic: 100 + - month: 1 + start: '2024-12-06 00:00:00' + end: '2025-01-05 23:59:59' + rx: 5650592916 + tx: 42336801 + total: 5692929717 + limit: 20000 + blocks: [] + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/unsuspend: + post: + summary: Unsuspend a server + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/vnc: + post: + summary: Enable or disable VNC + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + requestBody: + content: + application/json: + schema: + type: object + properties: + action: + type: string + enum: + - enable + - disable + required: + - action + example: + action: enable + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + vnc: + ip: 192.168.4.2 + hostname: null + port: 5903 + password: ZNYonJeU + wss: + token: 69316231-d34a-4d36-b754-ffd3253df96d + url: /vnc/?token=69316231-d34a-4d36-b754-ffd3253df96d + enabled: false + queueId: null + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + get: + summary: Retrive VNC details + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + vnc: + ip: 192.168.4.2 + hostname: null + port: 5903 + password: ZNYonJeU + wss: + token: 69316231-d34a-4d36-b754-ffd3253df96d + url: /vnc/?token=69316231-d34a-4d36-b754-ffd3253df96d + enabled: false + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/owner/{newOwnerId}: + put: + summary: Change owner + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 9 + schema: + type: integer + - name: newOwnerId + in: path + description: A vailid user ID as shown in VirtFusion. + required: true + schema: + type: integer + responses: + '201': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/modify/memory: + put: + summary: Modify memory + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + requestBody: + content: + application/json: + schema: + type: object + properties: + memory: + type: integer + description: The new memory value in MB. + minimum: 256 + example: 1024 + required: + - memory + example: + memory: 1024 + responses: + '201': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/modify/cpuCores: + put: + summary: Modify CPU cores + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + requestBody: + content: + application/json: + schema: + type: object + properties: + cores: + type: integer + description: The new core value. + minimum: 1 + maximum: 600 + example: 4 + required: + - cores + example: + cores: 4 + responses: + '201': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /servers/{serverId}/customXML: + post: + summary: Set custom XML + deprecated: false + description: '' + tags: + - Servers + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 69 + schema: + type: integer + requestBody: + content: + application/json: + schema: + type: object + properties: + domain: + type: string + os: + type: string + devices: + type: string + features: + type: string + clock: + type: string + cpuTune: + type: string + domainEnabled: + type: boolean + osEnabled: + type: boolean + devicesEnabled: + type: boolean + featuresEnabled: + type: boolean + clockEnabled: + type: boolean + cpuTuneEnabled: + type: boolean + example: + domain: + os: + devices: + features: + clock: + cpuTune: + domainEnabled: true + osEnabled: true + devicesEnabled: true + featuresEnabled: true + clockEnabled: true + cpuTuneEnabled: true + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: '' + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /compute/hypervisors: + get: + summary: Retrieve hypervisors + deprecated: false + description: '' + tags: + - Hypervisors + parameters: + - name: results + in: query + description: >- + Number of results to return. Range between 1 and 200. Defaults to + 20. + required: false + example: 20 + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + current_page: 1 + data: + - id: 1 + commissioned: 3 + ip: 192.168.4.10 + ipAlt: null + hostname: null + port: 8892 + sshPort: 22 + name: PHV 1 (RED) + maintenance: false + enabled: true + nfType: 4 + group: + id: 1 + name: Default + description: Default hypervisor group + default: true + enabled: true + distributionType: 5 + created: '2024-03-12T22:21:32+00:00' + updated: '2024-04-12T20:56:04+00:00' + encryptedToken: >- + eyJpdiI6Ik1Ua29ZSGp0QThxWVZhellzL2VTU3c9PSIsInZhbHVlIjoiNzc1eGdMMzFPUFpFZVpIbytzMDc1NzRsUHRJVnFTWFpKWS9WamJIaVJVMVZkSFZjZVM1YVB3bnlQeGt4eEhVamhrWGF4SnNqQVFES010Y3owUmJneTR4a05oRkp1R08xVXI1eHcvQ3NsbW5qU0dpUWhZbnFUMWYrTHM5L2NoZmhUQm9nRnV4b2Y0dENGLy9vanVDMnkwTG1mNXBYM1JVcE5TNWRCSGkvZS9qVEFsSWx5WXdXOU1wajIwam1DV1d4aUNXMUNGMThFNXI5THM4VWFmYnRFNkx3VHFaV3o3M0VVaEZXSHo0TVdKc0xSemJYVExUWEVlZHM0ZVNoUkk0ZEI2QnAySlVESVU2R0JDcWJMeG9YRUhIM0Vad2w2VHNGcFQ3R1BkbU1TbzU3V2JzbEJFNlUvSW90eGxNZkdqRjVmMGx6TTRIWEttYVA0Ti9JQkEwQURrWTRPL2k4VFJsNjhFTHh3UW1wSGMzUkxibEtDeDdlK2tOekQxVkh0bzhsWXY1RkxxaWRkSFBEQlNvM1l2akxqNitickp1TzR0ekhTbmdVSG5VUE5tMGh1WFJuejhscFpSS2dLcE1ZaS9NUlRKdnNUS0wzYWlDYjB1MVJhcmk4OEJoZURNQ3JROE5WcTZTdzV0Si9UeDhwMTFLK3lZV0NDdzB5b2NBZFhsM0hYMDJPMHlXS1g1MmxhNWdrOTRTSDJHbWNvODNuOUswMHJpYTVBL0YwRW9BVndsMllIdW95ZjBhZXdLUTRSR0xBelBVekViTCtKaG8wSGxPR1NOWmNSaXpxQ1hBUVdsdE9HMUhtc2YrRU14WkhOaUVVeWhXRlB2amtRRXkxZjY0cm85ekxVYWE1QU5zdlJDK2N6YmZrNHNOWk4xSTZXbUhxYklLTmgraTZFWHM9IiwibWFjIjoiOTY2ZmJkNzJkNzZmNmZmYTQzM2U4NDQzMDdhYTAzOWZhNTM0M2I1MDQyYWUwYzQ1ZGIyZTRlOGEwM2M0MTRhYiIsInRhZyI6IiJ9 + maxServers: 0 + maxCpu: 4 + maxMemory: 6004 + networks: + - id: 1 + type: simpleBridge + bridge: br0 + primary: true + default: true + created: '2024-03-12T22:37:15+00:00' + updated: '2024-03-12T22:37:40+00:00' + storage: [] + created: '2024-03-12T22:37:15+00:00' + updated: '2024-05-10T11:27:52+00:00' + - id: 2 + commissioned: 3 + ip: 192.168.4.9 + ipAlt: null + hostname: null + port: 8892 + sshPort: 22 + name: PHV 2 (BLUE) + maintenance: false + enabled: true + nfType: 4 + group: + id: 1 + name: Default + description: Default hypervisor group + default: true + enabled: true + distributionType: 5 + created: '2024-03-12T22:21:32+00:00' + updated: '2024-04-12T20:56:04+00:00' + encryptedToken: >- + eyJpdiI6IjgyR2FZZmJwalVDYUxBR2hMdXdTNmc9PSIsInZhbHVlIjoiSFA1Tm44VzdZMUdZSXNZSTNUdmF5dGo5WjIrZEJlU04xQlVIOEZnUzc3dFZRY0ltc3pLdTZ2SFdkUXlQWUF5UEVaZUE3dXVKQXV6ajZvUTZiY0lBQmlnVllvRDZMSDBYK0ZMV0d5dzRTZlYwaDFRcllsNEdGaTljQnpnbEg5Umt6SmdBZ3ZQL0RneTZEUHhKanFGZU9hSWtvR29lYVlLdzk5NTJNZE1hbExSaWtuMkE4cTVaSGxSbWlJZ3pHejhFWnFxbEltNUcrSXVIdE4rQW9ET2R0M0MrK0RHOXNhOFFuVEw1R2k4eEpDNmZiNWJPVS9NL2xrVk40eG93NzQxaTRFN0pBR0FEL2JTclIvd2xWM3JkbnltZGhrc0xkUzV0SGtKNVoyU2JFY2M0S3dyVXEzS256b1ZHOVRvSWlmNm9OT0d6TktEWUduaVBHT2VHaFpqakU2SjFhU2lqTUZPeVdRN3dWSjhnakVQYkFiVmpCK05ja3BVU3FxakNjUUEzRHl3WUZweFJuQ0FBVkR2eTcxLzVVR2ZPNHU2bDJGRTJ6bVkrZ201akZXT0JIeHByK2VQVmMwUEJ5aDM0TWI0RmViakprM0phVXRVMFUvU1Y5M0FCRTBORm1aNWtGUklRbW51Y010NWIzUE02Vno3SkU2MVk4WTUwRy9QUndTZEgwWmRiLzhiV0w1c0ZsNkRMZkNycUlabWQrQ0F5cnYxamgxcWZjNjk3NXlMZHNMdnZqZkhKdG1sY2VLVmFPUTI3OTJ4UVdGLzF4SE83Y0N5dEhNNUhSQWhoZ29uUXMvR3dGeHVUMlRjc3dYZkVrYVVUMWZVQjhZOVRBT1RXYk84bFpqbGZ5RGQ2Rncvb2lQbVh0djBnSHUwSWJKbnAzQmQrL1VIK1JOK2N4NE09IiwibWFjIjoiNGUyNTIxYTIyNDBjZmRiYmEzNmQ5NTc4MGZmMTU4ZjgwN2Q2OTQzYzFhYTgxODVmYzkyMmU3YWNiOGRmNWZjZSIsInRhZyI6IiJ9 + maxServers: 0 + maxCpu: 28 + maxMemory: 10000 + networks: + - id: 2 + type: simpleBridge + bridge: br0 + primary: true + default: true + created: '2024-03-16T19:31:43+00:00' + updated: '2024-03-16T19:32:46+00:00' + storage: [] + created: '2024-03-16T19:31:43+00:00' + updated: '2024-04-26T16:41:51+00:00' + - id: 3 + commissioned: 3 + ip: 192.168.4.12 + ipAlt: null + hostname: null + port: 8892 + sshPort: 22 + name: BHV 9 + maintenance: false + enabled: true + nfType: 4 + group: + id: 1 + name: Default + description: Default hypervisor group + default: true + enabled: true + distributionType: 5 + created: '2024-03-12T22:21:32+00:00' + updated: '2024-04-12T20:56:04+00:00' + encryptedToken: >- + eyJpdiI6IlZ6MFN4dnlvQm9DTXNsaDM3YWg1aUE9PSIsInZhbHVlIjoiamlrbEhzRlY5d0RRaUxMYkZIUEV2UHh5eVJVMHEwOGQ2QkVIS0tydW82Um15bGFPVHJQbmUzMDMvbGxyZkEyR0MwT1JUR3ZNaDUvZWE5UFYwOExOU2xKNDhUa2g5VnNqQ2NoamptNnp3dmY0VVhzSXEwTEsxWDRwMDdtMyttdmp2UVRHOFJsb3Q3VkpKWEw0N3JmelAxNWZGWTVRQ1lCWHFpM3N5anFnaDNlcVFWazV6ci9Fem9xQTYrYXpNeUw0a3Jobm85aFRweCsxQVNoOWJrVktveWczYm5CL3VyNVhqWHlFbEpRYUtINzhwMCtEN3N4aEEwdTQ0YzdSbVhqQk9BTDVkN3F0aDFHWngwQU1iNDJKT1BRT25LYjZacklPM1llL2hQRWJab1l5QVdTQUtiVkZXcXROZC9xOWxLdzROTUprRkUxWkNjY2l3TnIzYXk5YiswNkhIQTlKejI3YXhPc2xXRklETmtYRkNNWlIzT1RHZkZTVGMvY1lra2JaemNQcW8vUEFLbEROS3dJQkorSVNUeTJESzZtV2tUV0Q0Nk5QVWRvUnJUbWhkVFlwZmphNXZXanFUTi9SbnVacTJXUzhYZW8zby95RG9jVWJDT25UMHU3dVZSN1UrS3RxRFhlM3diYkhxL1g3OXZIdmwzUzhCZmpjN3ZpMkhlRlNSMmNPMzduektWRGpYOFQ2UktIQjdnaEVoZy95MmZYK0c1dTZOemZ0VXpxbHpneVlndkp0anNuN2Y4bXlScXhoWFQrai9yL2wrWWhLNGlGWGVhc09iSEQrRzYrOThCY1czUTdnd0pOTFdSZ05uNUU5QUZPVmtHOENBRDljOFN1UjBteUdacmZYZWdtM2RodXg4dEx5cExGZVZ0TTNrQTVVTFlTZU0vZ28xLzA9IiwibWFjIjoiNzdmZTc5MDI2NjY3OTc2NzhmMjJiMWY3ZGNjNGI4YmNkZTNiNzE0MmNlODdkYzNlNzIxNDU5NmVlMjJmODNhYSIsInRhZyI6IiJ9 + maxServers: 0 + maxCpu: 64 + maxMemory: 27913 + networks: + - id: 3 + type: simpleBridge + bridge: br0 + primary: true + default: true + created: '2024-03-29T20:10:22+00:00' + updated: '2024-04-09T11:32:14+00:00' + storage: [] + created: '2024-03-29T20:10:22+00:00' + updated: '2024-04-16T10:44:21+00:00' + - id: 4 + commissioned: 3 + ip: 192.168.4.11 + ipAlt: null + hostname: null + port: 8892 + sshPort: 22 + name: BHV 8 + maintenance: false + enabled: true + nfType: 4 + group: + id: 1 + name: Default + description: Default hypervisor group + default: true + enabled: true + distributionType: 5 + created: '2024-03-12T22:21:32+00:00' + updated: '2024-04-12T20:56:04+00:00' + encryptedToken: >- + eyJpdiI6ImpjS3JqNWhlOHl6Rm5RUk80WkRVQkE9PSIsInZhbHVlIjoiUXNSVEhXMWhJM2hrZ2gza3hBVGtQUjJMenp4bThNL2d0ajYyUGNTQ2s2TjMxZEZ3ZVJVYzQxbUhjSXZMd2greWY5MEl3ajFLK3RrL1BpSzdZbCtzRkpObisvNktxanpZZzBORFpHRUdnN2t3cmN2YXJBbnhQbWRkQ0FUVkozQTVwanlYZHJxVlF2Y3VBOWVBb21FdytUT3Z0cUdrMTU0V3YxM0w1VUh2NER4VkpESngvK0kwNmp6eHFVSDloSWxEd2t4aHV4UnM2c1kyRFRjTDJ5TXJ0dFZPRjZNL3YxKzFpODlzRHFtak5PRm1pVDFBdHJwNGhqNEZiV05Fd1c2OWlkeWxuTWdUT1Z1STE4MjFIMnBoaDA1WWhmSitFMFdnZGdqZ0lZSlBzODd5Y3hDVzNCYWFwSHlHV1hDU0lXZDJKS3RsYWN4VU9EUmJqeTM3Vy9RSXFKTGxkRnZlMnhjWm5mekRrd0VZVjEzeVFhMDFGazJKbXNOVTdCUzdTcW9PbzFsdkEzZE9nK0k4dW5ndXB6OTJDbUFWZk5hU1JveExMSGFzMnNsQzFUSzRDSHVaQkkvR2JseFFwT1BDTWcvZjlqaU5IdDJPMnRTRjJrVmxuYjJzeDRBT2NTNjl5V2hVc3c3UC9ucG11UFozZjErOFovcXVZQlJHSkt0RWJrcVFvY2NyMDdDZ0JFOE5SVklJa0loSVIvSStwVWh6b0twV1NLT0tOaXF3N1EvQkJUTmhYRit3eFR2VGxMc3NMSDVSUWtyMlZCck43ZkFYVXMrVEpoVXhHSVJlN2pMOENnL1R4SzVIeHkrWkVWKzlhRmN5RWdmK1IzaGpJZ0VtbUMvTzJvRnI2TW93RmpyNXlITXB3TGpteGZ6NmZpUEh4NlNVMytsd0hsS0kxRDA9IiwibWFjIjoiNWFkMTQ4YmQ1MGJjMTE3N2QzN2JhOGJkOTM1NzBlNjIzYjFkM2UyMjkxYjI3OWJmMTkxMmVmYjcxNzEwZTNkNCIsInRhZyI6IiJ9 + maxServers: 0 + maxCpu: 16 + maxMemory: 27913 + networks: + - id: 4 + type: macVTap + bridge: eth0 + primary: true + default: true + created: '2024-03-29T20:10:42+00:00' + updated: '2024-03-29T20:10:42+00:00' + storage: [] + created: '2024-03-29T20:10:42+00:00' + updated: '2024-04-16T10:44:21+00:00' + - id: 6 + commissioned: 3 + ip: 192.168.4.2 + ipAlt: 123.123.123.121 + hostname: null + port: 8892 + sshPort: 22 + name: BHV 1 + maintenance: false + enabled: true + nfType: 4 + group: + id: 2 + name: Test + description: null + default: false + enabled: true + distributionType: 13 + created: '2024-10-08T13:23:28+00:00' + updated: '2024-10-08T13:23:42+00:00' + encryptedToken: >- + eyJpdiI6ImQ0M1hybkc5bDJaQ2IrakJFUGZ0MEE9PSIsInZhbHVlIjoiNW1ETjRDeGMxZDlDOWx3M1ZmRkFBZG84dGRwbEZVRVlwc0JJT202UXhHekJ0cS9wNWpIUjJiUzJhaG0ySCs4aHpLakF2RnNJTjVPZ09hN0ttcEg4bkJrdjRqd2pxNHlPcTBaNnBDZ2VwTllUNzNnRTdBUlVHM245VDVhWkxhYkZ5MnRmQXZJMjZkQWxkV3BmbVdZNWt0clR2UlNGTEZES0kzaksyd2xmZFJITlRRMU0yUkp2WkNRU0lYUlRkWWF3NWxxY1cyUFo1WFByczZIak4wMnl4VmdSbUs0b0RjVWNacmZmcDM1VTgyWlo1OGYydnBXVGNOdHZIRXA3YnNIZFIzTXJiUmorcVExc216R3VyeTQ0U2JTeDZZbzlBcHN2MFNyczlNZGZPM1M5K2FuUVQrNVc1UHVuTEZUSC8yMi9FWHVOYUphblNPVnZsQ2RhVGdrSE5zczlyTEF6QTM5cTBrci8yRy9DM204NWJxOUZBZjdhTmRFZnc1UWcwVUM1L3dveGpvb2tleEd2eVF0amlSN2VRYzdlS3kzQUtMRVk2WkFma25aVjN5OWRURDZFN3JnWU5UVDRkTjRWc0Rib1JIdXAwSlZQTVViWHJTNlIrbFBvb1M0MHVOOEU4VGlBdGZ4dVI0V1BwS3dnempYSC94bmRXdHdET2FEUGZHVXptNzFQQjM3UnRwbWtSQW1wY2xscGxTTmRvZzJpQ0pEWXdoYWRGTk03aytWbGJyVUh3ZGliVWN1NGVEM1lRNjFVV3oxYkNOL0NJUFUycVlQQ212S0NsYitIK2p5QkxwdUk2bk4vL0l6QktraCtqR2lnYkYzNU1IazBPVG42RGlCVkVBV2JKcGI4My9lNDl4N29vQUNJempjaGtlQU1tVWlHZDBDUFkwVU1lTmM9IiwibWFjIjoiMTk1MWEwNGQyYzdiOGM5ZTQ4NDBjZWI2N2JjYTJjYmFhNThhOGUyMDE1MTdiZDdmN2E2YjE4MjZmZjk1OTcxYiIsInRhZyI6IiJ9 + maxServers: 0 + maxCpu: 128 + maxMemory: 29419 + networks: + - id: 6 + type: simpleBridge + bridge: br0 + primary: true + default: true + created: '2024-03-30T09:53:38+00:00' + updated: '2025-01-15T13:31:56+00:00' + - id: 17 + type: lvBridgeOVS + bridge: bhv1 + primary: false + default: false + created: '2024-05-17T11:25:57+00:00' + updated: '2024-05-17T11:25:57+00:00' + storage: [] + created: '2024-03-30T09:53:38+00:00' + updated: '2024-12-06T21:25:54+00:00' + first_page_url: >- + https://192.168.3.11/api/v1/compute/hypervisors?results=5&page=1 + from: 1 + last_page: 3 + last_page_url: >- + https://192.168.3.11/api/v1/compute/hypervisors?results=5&page=3 + links: + - url: null + label: '« Previous' + active: false + - url: >- + https://192.168.3.11/api/v1/compute/hypervisors?results=5&page=1 + label: '1' + active: true + - url: >- + https://192.168.3.11/api/v1/compute/hypervisors?results=5&page=2 + label: '2' + active: false + - url: >- + https://192.168.3.11/api/v1/compute/hypervisors?results=5&page=3 + label: '3' + active: false + - url: >- + https://192.168.3.11/api/v1/compute/hypervisors?results=5&page=2 + label: Next » + active: false + next_page_url: >- + https://192.168.3.11/api/v1/compute/hypervisors?results=5&page=2 + path: https://192.168.3.11/api/v1/compute/hypervisors + per_page: 5 + prev_page_url: null + to: 5 + total: 14 + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /compute/hypervisors/{hypervisorId}: + get: + summary: Retrive a Hypervisor + deprecated: false + description: '' + tags: + - Hypervisors + parameters: + - name: hypervisorId + in: path + description: A valid hypervisor ID as shown in VirtFusion. + required: true + example: 1 + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + id: 1 + commissioned: 3 + ip: 192.168.4.10 + ipAlt: null + hostname: null + port: 8892 + sshPort: 22 + name: PHV 1 (RED) + maintenance: false + enabled: true + nfType: 4 + group: + id: 1 + name: Default + description: Default hypervisor group + default: true + enabled: true + distributionType: 5 + created: '2024-03-12T22:21:32+00:00' + updated: '2024-04-12T20:56:04+00:00' + encryptedToken: >- + eyJpdiI6Ik1Ua29ZSGp0QThxWVZhellzL2VTU3c9PSIsInZhbHVlIjoiNzc1eGdMMzFPUFpFZVpIbytzMDc1NzRsUHRJVnFTWFpKWS9WamJIaVJVMVZkSFZjZVM1YVB3bnlQeGt4eEhVamhrWGF4SnNqQVFES010Y3owUmJneTR4a05oRkp1R08xVXI1eHcvQ3NsbW5qU0dpUWhZbnFUMWYrTHM5L2NoZmhUQm9nRnV4b2Y0dENGLy9vanVDMnkwTG1mNXBYM1JVcE5TNWRCSGkvZS9qVEFsSWx5WXdXOU1wajIwam1DV1d4aUNXMUNGMThFNXI5THM4VWFmYnRFNkx3VHFaV3o3M0VVaEZXSHo0TVdKc0xSemJYVExUWEVlZHM0ZVNoUkk0ZEI2QnAySlVESVU2R0JDcWJMeG9YRUhIM0Vad2w2VHNGcFQ3R1BkbU1TbzU3V2JzbEJFNlUvSW90eGxNZkdqRjVmMGx6TTRIWEttYVA0Ti9JQkEwQURrWTRPL2k4VFJsNjhFTHh3UW1wSGMzUkxibEtDeDdlK2tOekQxVkh0bzhsWXY1RkxxaWRkSFBEQlNvM1l2akxqNitickp1TzR0ekhTbmdVSG5VUE5tMGh1WFJuejhscFpSS2dLcE1ZaS9NUlRKdnNUS0wzYWlDYjB1MVJhcmk4OEJoZURNQ3JROE5WcTZTdzV0Si9UeDhwMTFLK3lZV0NDdzB5b2NBZFhsM0hYMDJPMHlXS1g1MmxhNWdrOTRTSDJHbWNvODNuOUswMHJpYTVBL0YwRW9BVndsMllIdW95ZjBhZXdLUTRSR0xBelBVekViTCtKaG8wSGxPR1NOWmNSaXpxQ1hBUVdsdE9HMUhtc2YrRU14WkhOaUVVeWhXRlB2amtRRXkxZjY0cm85ekxVYWE1QU5zdlJDK2N6YmZrNHNOWk4xSTZXbUhxYklLTmgraTZFWHM9IiwibWFjIjoiOTY2ZmJkNzJkNzZmNmZmYTQzM2U4NDQzMDdhYTAzOWZhNTM0M2I1MDQyYWUwYzQ1ZGIyZTRlOGEwM2M0MTRhYiIsInRhZyI6IiJ9 + maxServers: 0 + maxCpu: 4 + maxMemory: 6004 + created: '2024-03-12T22:37:15+00:00' + updated: '2024-05-10T11:27:52+00:00' + networks: + - id: 1 + type: simpleBridge + bridge: br0 + primary: true + default: true + created: '2024-03-12T22:37:15+00:00' + updated: '2024-03-12T22:37:40+00:00' + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /connectivity/ipblocks/{blockId}/ipv4: + post: + summary: Add an IPv4 range to an IP block + deprecated: false + description: '' + tags: + - IP Blocks + parameters: + - name: blockId + in: path + description: A valid IPv4 block ID as shown in VirtFusion. + required: true + example: 1 + schema: + type: integer + requestBody: + content: + application/json: + schema: + type: object + properties: + type: + type: string + description: Must be set to range. + start: + type: string + description: Start of IPv4 range. + end: + type: string + description: End of IPv4 range. + required: + - type + - start + - end + example: + type: range + start: 192.168.1.2 + end: 192.168.1.10 + responses: + '204': + description: '' + content: + text/css: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /connectivity/ipblocks: + get: + summary: Retrieve IP blocks + deprecated: false + description: '' + tags: + - IP Blocks + parameters: + - name: results + in: query + description: >- + Number of results to return. Range between 1 and 200. Defaults to + 20. + required: false + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + current_page: 1 + data: + - id: 1 + type: 4 + name: 192.168.4.0/23 + ipv4: + gateway: 192.168.4.1 + netmask: 255.255.254.0 + resolvers: + primary: 8.8.8.8 + secondary: 8.8.4.4 + total: 521 + usedTotal: 21 + freeTotal: 500 + ipv6: + gateway: null + resolvers: + primary: null + secondary: null + subnet: null + from: 48 + to: 64 + restricted: [] + total: 0 + generatedTotal: 0 + usedTotal: 0 + freeTotal: 0 + freeGenerated: 0 + blacklistedTotal: 0 + rdnsType: 0 + rdnsZoneId: null + networkProfile: 0 + routeBlock: null + dhcp: 1 + enabled: true + created: '2024-03-12T22:40:23+00:00' + updated: '2024-12-06T21:53:15+00:00' + - id: 2 + type: 6 + name: PDNS TEST + ipv4: + gateway: null + netmask: null + resolvers: + primary: null + secondary: null + total: 0 + usedTotal: 0 + freeTotal: 0 + ipv6: + gateway: 2a03:3a61:a1::1 + resolvers: + primary: 2001:4860:4860::8888 + secondary: 2001:4860:4860::8844 + subnet: '2a03:3a61:a1::' + from: 48 + to: 64 + restricted: [] + total: 65535 + generatedTotal: 300 + usedTotal: 0 + freeTotal: 65535 + freeGenerated: 300 + blacklistedTotal: 0 + rdnsType: 2 + rdnsZoneId: 1 + networkProfile: 0 + routeBlock: null + dhcp: 1 + enabled: true + created: '2024-04-26T11:41:41+00:00' + updated: '2024-12-31T10:23:33+00:00' + - id: 3 + type: 4 + name: 192.168.30.200-240 + ipv4: + gateway: 192.168.30.1 + netmask: 255.255.255.0 + resolvers: + primary: 8.8.8.8 + secondary: 8.8.4.4 + total: 41 + usedTotal: 8 + freeTotal: 33 + ipv6: + gateway: null + resolvers: + primary: null + secondary: null + subnet: null + from: 48 + to: 64 + restricted: [] + total: 0 + generatedTotal: 0 + usedTotal: 0 + freeTotal: 0 + freeGenerated: 0 + blacklistedTotal: 0 + rdnsType: 0 + rdnsZoneId: null + networkProfile: 0 + routeBlock: null + dhcp: 1 + enabled: true + created: '2024-05-14T10:43:52+00:00' + updated: '2024-05-14T10:44:25+00:00' + - id: 4 + type: 4 + name: 10.1.1.0/24 + ipv4: + gateway: null + netmask: 255.255.255.255 + resolvers: + primary: 8.8.8.8 + secondary: 8.8.4.4 + total: 0 + usedTotal: 0 + freeTotal: 0 + ipv6: + gateway: null + resolvers: + primary: null + secondary: null + subnet: null + from: 48 + to: 64 + restricted: [] + total: 0 + generatedTotal: 0 + usedTotal: 0 + freeTotal: 0 + freeGenerated: 0 + blacklistedTotal: 0 + rdnsType: 0 + rdnsZoneId: null + networkProfile: 0 + routeBlock: null + dhcp: 1 + enabled: true + created: '2024-05-16T18:11:03+00:00' + updated: '2024-05-17T13:22:04+00:00' + - id: 5 + type: 6 + name: V6 For BHV 1,3 + ipv4: + gateway: null + netmask: null + resolvers: + primary: null + secondary: null + total: 0 + usedTotal: 0 + freeTotal: 0 + ipv6: + gateway: 2001:db8:abcd:12::1 + resolvers: + primary: 2001:4860:4860::8888 + secondary: 2001:4860:4860::8844 + subnet: '2001:db8:abcd:12::' + from: 64 + to: 80 + restricted: [] + total: 65535 + generatedTotal: 1100 + usedTotal: 9 + freeTotal: 65526 + freeGenerated: 1091 + blacklistedTotal: 0 + rdnsType: 0 + rdnsZoneId: null + networkProfile: 0 + routeBlock: null + dhcp: 1 + enabled: true + created: '2024-09-19T17:23:05+00:00' + updated: '2024-12-06T21:23:55+00:00' + first_page_url: https://192.168.3.11/api/v1/connectivity/ipblocks?page=1 + from: 1 + last_page: 1 + last_page_url: https://192.168.3.11/api/v1/connectivity/ipblocks?page=1 + links: + - url: null + label: '« Previous' + active: false + - url: https://192.168.3.11/api/v1/connectivity/ipblocks?page=1 + label: '1' + active: true + - url: null + label: Next » + active: false + next_page_url: null + path: https://192.168.3.11/api/v1/connectivity/ipblocks + per_page: 20 + prev_page_url: null + to: 5 + total: 5 + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /connectivity/ipblocks/{blockId}: + get: + summary: Retrieve an IP block + deprecated: false + description: '' + tags: + - IP Blocks + parameters: + - name: blockId + in: path + description: A valid IP block ID as shown in VirtFusion. + required: true + example: 1 + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + id: 1 + type: 4 + name: 192.168.4.0/23 + ipv4: + gateway: 192.168.4.1 + netmask: 255.255.254.0 + resolvers: + primary: 8.8.8.8 + secondary: 8.8.4.4 + total: 521 + usedTotal: 21 + freeTotal: 500 + ipv6: + gateway: null + resolvers: + primary: null + secondary: null + subnet: null + from: 48 + to: 64 + restricted: [] + total: 0 + generatedTotal: 0 + usedTotal: 0 + freeTotal: 0 + freeGenerated: 0 + blacklistedTotal: 0 + rdnsType: 0 + rdnsZoneId: null + networkProfile: 0 + routeBlock: null + dhcp: 1 + enabled: true + created: '2024-03-12T22:40:23+00:00' + updated: '2024-12-06T21:53:15+00:00' + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /backups/server/{serverId}: + get: + summary: Retrieve a server backups + deprecated: false + description: '' + tags: + - Backups + parameters: + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 1 + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + - id: 42 + serverId: 202 + storage: + id: 5 + name: Backup Server 1 + enabled: true + deleting: false + restoring: false + progress: false + complete: true + deleteAfter: null + created: '2022-03-03T20:25:01+00:00' + updated: '2022-03-03T20:26:01+00:00' + - id: 49 + serverId: 202 + storage: + id: 5 + name: Backup Server 1 + enabled: true + deleting: false + restoring: false + progress: false + complete: true + deleteAfter: null + created: '2022-03-04T20:25:01+00:00' + updated: '2022-03-04T20:26:01+00:00' + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /dns/services/{serviceId}: + get: + summary: Retrieve a DNS service + deprecated: false + description: '' + tags: + - DNS + parameters: + - name: serviceId + in: path + description: A valid DNS service ID as shown in VirtFusion. + required: true + example: '1' + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + id: 4 + type: 1 + name: ClouDNS + username: '456754' + url: https://api.cloudns.net + ip: null + port: 443 + password: >- + eyJpdiI6IjVUOU11S09KNmFtNnlqLzRzR0FYd1E9PSIsInZhbHVlIjoiS01SNjdhbEt1TzFVMHM0Nk1lY2Z0bnl5cUJJUDlxeUF0VXdtTTUwWW41QT0iLCJtYWMiOiI4NTBlNzFhNzJmNTkwMTA1ODQ0MjU4OTUzNjM0MzAxN2QwYzY5OTdiMTgzNDg3ZGFjMmU5NjE0Y2E3YTE1NWVjIiwidGFnIjoiIn0= + config: {} + subAccount: false + capabilities: 1 + enabled: true + created: '2022-02-11T11:55:49+00:00' + updated: '2022-02-14T22:45:43+00:00' + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /media/iso/{isoId}: + get: + summary: Retrieve an ISO + deprecated: false + description: '' + tags: + - Media + parameters: + - name: isoId + in: path + description: A valid ISO ID as shown in VirtFusion. + required: true + example: '1' + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + id: 1 + name: Deb Arch + description: null + arch: 2 + url: >- + https://cdimage.debian.org/debian-cd/current/arm64/iso-cd/debian-12.5.0-arm64-netinst.iso + filename: deb-arc + enabled: true + config: '[]' + global: true + download: true + users: [] + created: '2024-03-13T09:34:54+00:00' + updated: '2024-04-01T20:34:05+00:00' + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /media/templates/fromServerPackageSpec/{serverPackageId}: + get: + summary: Retrieve operating system templates that are available for a package + deprecated: false + description: '' + tags: + - Media + parameters: + - name: serverPackageId + in: path + description: A valid server package ID as shown in VirtFusion. + required: true + example: 1 + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + - name: Debian + description: >- + Debian GNU/Linux, is a Linux distribution composed of free + and open-source software, developed by the + community-supported Debian Project. + icon: debian_logo.png + templates: + - id: 8 + name: Debian + version: 11 (Bullseye) + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using Advanced Package + Tool (APT), the main command-line package manager for + Debian. + icon: debian_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 44 + name: Debian + version: 12 (Bookworm) + variant: null + arch: 2 + description: >- + Minimal installation with limited packages. New + packages are easily installed using Advanced Package + Tool (APT), the main command-line package manager for + Debian. + icon: debian_logo.png + eol: false + eol_date: '2024-04-02 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 46 + name: Debian + version: 12 (Bookworm) + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using Advanced Package + Tool (APT), the main command-line package manager for + Debian. + icon: debian_logo.png + eol: false + eol_date: '2024-04-23 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 56 + name: Debian + version: 12 (Bookworm) + variant: Test + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using Advanced Package + Tool (APT), the main command-line package manager for + Debian. + icon: debian_logo.png + eol: false + eol_date: '2024-04-23 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: true + type: linux + id: 1 + - name: CentOS + description: >- + The CentOS Linux distribution is a stable, predictable, + manageable and reproducible platform derived from the + sources of Red Hat Enterprise Linux (RHEL). + icon: centos_logo.png + templates: + - id: 1 + name: CentOS + version: '7' + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using Yum, the main + command-line package manager for CentOS. + icon: centos_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 2 + name: CentOS Stream + version: '9' + variant: Minimal + arch: 1 + description: >- + Base installation with limited packages. New packages + are easily installed using DNF (yum), the main + command-line package manager for CentOS. + icon: centos_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + id: 2 + - name: Rocky Linux + description: >- + Rocky Linux is a community enterprise operating system + designed to be 100% bug-for-bug compatible with America's + top enterprise Linux distribution now that its downstream + partner has shifted direction. It is under intensive + development by the community. Rocky Linux is led by + Gregory Kurtzer, founder of the CentOS project. + icon: rocky_linux_logo.png + templates: + - id: 7 + name: Rocky Linux + version: '8' + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using DNF (yum), the + main command-line package manager for Rocky Linux. + icon: rocky_linux_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 13 + name: Rocky Linux + version: '9' + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using DNF (yum), the + main command-line package manager for Rocky Linux. + icon: rocky_linux_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 40 + name: Rocky Linux + version: '9' + variant: '' + arch: 2 + description: >- + Minimal installation with limited packages. New + packages are easily installed using DNF (yum), the + main command-line package manager for Rocky Linux. + icon: rocky_linux_logo.png + eol: false + eol_date: '2024-03-28 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + id: 3 + - name: AlmaLinux + description: >- + AlmaLinux OS is an open-source, community-driven project + that intends provide and alternative to the CentOS Stable + release. AlmaLinux is an OS that is 1:1 binary compatible + with RHEL® 8 and a global collaborative of the developer + community, industry, academia and research which build + upon this technology to empower humanity. + icon: almalinux_logo.png + templates: + - id: 6 + name: AlmaLinux + version: '8' + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using DNF (yum), the + main command-line package manager for AlmaLinux. + icon: almalinux_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 12 + name: ARM -> AlmaLinux + version: '9' + variant: Latest + arch: 1 + description: >- + Latest version with base packages. New packages are + easily installed using DNF (yum), the main + command-line package manager for AlmaLinux. + icon: almalinux_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 39 + name: AlmaLinux + version: '9' + variant: null + arch: 2 + description: >- + Minimal installation with limited packages. New + packages are easily installed using DNF (yum), the + main command-line package manager for AlmaLinux. + icon: almalinux_logo.png + eol: false + eol_date: '2024-03-28 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + id: 4 + - name: Ubuntu + description: >- + The most popular server Linux in the cloud and data + centre, you can rely on Ubuntu Server and its five years + of guaranteed free upgrades. + icon: ubuntu_logo.png + templates: + - id: 3 + name: Ubuntu Server + version: 20.04 LTS (Focal Fossa) + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using Advanced Package + Tool (APT), the main command-line package manager for + Ubuntu. + icon: ubuntu_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 4 + name: Ubuntu Server + version: 18.04 LTS (Bionic Beaver) + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using Advanced Package + Tool (APT), the main command-line package manager for + Ubuntu. + icon: ubuntu_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 9 + name: Ubuntu Server + version: 22.04 LTS (Jammy Jellyfish) + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using Advanced Package + Tool (APT), the main command-line package manager for + Ubuntu. + icon: ubuntu_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 41 + name: Ubuntu + version: 22.04 LTS (Jammy Jellyfish) + variant: '' + arch: 2 + description: >- + Minimal installation with limited packages. New + packages are easily installed using Advanced Package + Tool (APT), the main command-line package manager for + Ubuntu. + icon: ubuntu_logo.png + eol: false + eol_date: '2024-03-28 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 49 + name: Ubuntu Server + version: 24.04 LTS (Noble Numbat) + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using Advanced Package + Tool (APT), the main command-line package manager for + Ubuntu. + icon: ubuntu_logo.png + eol: false + eol_date: '2024-04-25 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 51 + name: Ubuntu + version: 24.04 LTS (Noble Numbat) + variant: null + arch: 2 + description: >- + Minimal installation with limited packages. New + packages are easily installed using Advanced Package + Tool (APT), the main command-line package manager for + Ubuntu. + icon: ubuntu_logo.png + eol: false + eol_date: '2024-05-02 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + id: 5 + - name: Fedora + description: >- + Fedora Server is a powerful, flexible operating system + that includes the best and latest datacenter technologies. + It puts you in control of all your infrastructure and + services. + icon: fedora_logo.png + templates: + - id: 11 + name: Fedora + version: '37' + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using DNF (yum), the + main command-line package manager for Fedora. + icon: fedora_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 14 + name: Fedora + version: '38' + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using DNF (yum), the + main command-line package manager for Fedora. + icon: fedora_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 15 + name: Fedora + version: '39' + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using DNF (yum), the + main command-line package manager for Fedora. + icon: fedora_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 59 + name: Fedora + version: '41' + variant: Minimal + arch: 1 + description: >- + Minimal installation with limited packages. New + packages are easily installed using DNF (yum), the + main command-line package manager for Fedora. + icon: fedora_logo.png + eol: false + eol_date: '2024-12-18 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + id: 6 + - name: FreeBSD + description: >- + FreeBSD is an operating system used to power modern + servers, desktops, and embedded platforms. A large + community has continually developed it for more than + thirty years. Its advanced networking, security, and + storage features have made FreeBSD the platform of choice + for many of the busiest web sites and most pervasive + embedded networking and storage devices. + icon: freebsd_logo.png + templates: + - id: 52 + name: FreeBSD + version: '13.3' + variant: Minimal + arch: 1 + description: Minimal installation with limited packages. + icon: freebsd_logo.png + eol: false + eol_date: '2024-05-15 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: unix + - id: 53 + name: FreeBSD + version: '14.0' + variant: Minimal + arch: 1 + description: Minimal installation with limited packages. + icon: freebsd_logo.png + eol: false + eol_date: '2024-05-15 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: unix + - id: 55 + name: FreeBSD + version: '14.2' + variant: Minimal + arch: 1 + description: Minimal installation with limited packages. + icon: freebsd_logo.png + eol: false + eol_date: '2024-10-20 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: true + type: unix + - id: 58 + name: FreeBSD + version: '13.2' + variant: Minimal + arch: 1 + description: Minimal installation with limited packages. + icon: freebsd_logo.png + eol: false + eol_date: '2024-12-10 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: unix + id: 7 + - name: Other + description: '' + icon: linux_logo.png + templates: + - id: 5 + name: openSUSE + version: Leap 15 + variant: Minimal + arch: 1 + description: >- + openSUSE is a project that serves to promote the use + of free and open-source software.

Minimal + installation with limited packages. New packages are + easily installed using Zypper, the main command-line + package manager for openSUSE. + icon: opensuse_logo.png + eol: false + eol_date: '2024-03-12 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + - id: 36 + name: openSUSE + version: Leap 15.6 + variant: '' + arch: 2 + description: >- + openSUSE is a project that serves to promote the use + of free and open-source software.

Minimal + installation with limited packages. New packages are + easily installed using Zypper, the main command-line + package manager for openSUSE. + icon: opensuse_logo.png + eol: false + eol_date: '2024-03-14 00:00:00' + eol_warning: false + deploy_type: 1 + vnc: false + type: linux + id: 0 + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /packages: + get: + summary: Retrieve packages + deprecated: false + description: '' + tags: + - Packages + parameters: [] + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + - id: 1 + name: Test + description: null + enabled: true + memory: 1024 + primaryStorage: 10 + traffic: 200 + cpuCores: 1 + primaryNetworkSpeedIn: 0 + primaryNetworkSpeedOut: 0 + primaryDiskType: inherit + backupPlanId: 0 + primaryStorageReadBytesSec: null + primaryStorageWriteBytesSec: null + primaryStorageReadIopsSec: null + primaryStorageWriteIopsSec: null + primaryStorageProfile: 1 + primaryNetworkProfile: 0 + created: '2024-03-12T22:41:31.000000Z' + - id: 2 + name: Test Only + description: null + enabled: true + memory: 1024 + primaryStorage: 10 + traffic: 200 + cpuCores: 1 + primaryNetworkSpeedIn: 0 + primaryNetworkSpeedOut: 0 + primaryDiskType: inherit + backupPlanId: 0 + primaryStorageReadBytesSec: null + primaryStorageWriteBytesSec: null + primaryStorageReadIopsSec: null + primaryStorageWriteIopsSec: null + primaryStorageProfile: 0 + primaryNetworkProfile: 0 + created: '2024-06-28T12:36:16.000000Z' + - id: 3 + name: BASIC + description: null + enabled: true + memory: 1024 + primaryStorage: 10 + traffic: 20000 + cpuCores: 2 + primaryNetworkSpeedIn: 0 + primaryNetworkSpeedOut: 0 + primaryDiskType: inherit + backupPlanId: 0 + primaryStorageReadBytesSec: null + primaryStorageWriteBytesSec: null + primaryStorageReadIopsSec: null + primaryStorageWriteIopsSec: null + primaryStorageProfile: 1 + primaryNetworkProfile: 0 + created: '2024-10-12T15:54:54.000000Z' + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /packages/{packageId}: + get: + summary: Retrieve a packge + deprecated: false + description: '' + tags: + - Packages + parameters: + - name: packageId + in: path + description: A valid package ID as shown in VirtFusion. + required: true + example: 1 + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + id: 1 + name: Test + description: null + enabled: true + memory: 1024 + primaryStorage: 10 + traffic: 200 + cpuCores: 1 + primaryNetworkSpeedIn: 0 + primaryNetworkSpeedOut: 0 + primaryDiskType: inherit + backupPlanId: 0 + primaryStorageReadBytesSec: null + primaryStorageWriteBytesSec: null + primaryStorageReadIopsSec: null + primaryStorageWriteIopsSec: null + primaryStorageProfile: 1 + primaryNetworkProfile: 0 + created: '2024-03-12T22:41:31.000000Z' + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /queue/{queueId}: + get: + summary: Retrieve a queue item + deprecated: false + description: '' + tags: + - Queue & Tasks + parameters: + - name: queueId + in: path + description: A valid queue ID as shown in VirtFusion. + required: true + example: 158 + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + id: 158 + jobId: '852' + job: App\Jobs\Server\KVM\Build + hypervisorId: 6 + serverId: 69 + action: build_server + queue: default + started: '2025-01-15T15:00:26+00:00' + updated: '2025-01-15T15:00:49+00:00' + finished: '2025-01-15T15:00:49+00:00' + failed: false + progress: 100 + errors: + exception: + stringable: false + errors: [] + type: null + trace: null + message: null + primaryActions: + - type: server.get.status + dataType: object + data: + success: true + version: '{{VERSION}}' + setOpts: + failOnVersionCheck: true + failOnDisasterRecovery: true + createDirStructure: true + writeXMLConfiguration: false + failOnCustomXML: false + failOnPriorityXML: false + failOnElevateXML: true + actions: + createDirStructure: + requested: true + output: server directory structure set. No action required + msg: null + success: true + statusTree: + disasterRecoveryActive: false + customXML: false + priorityXML: false + elevateXML: false + created: '2025-01-15T15:00:26+00:00' + updated: '2025-01-15T15:00:26+00:00' + - type: server.config.dhcp + dataType: object + data: + system: + success: true + commandline: [] + data: [] + created: '2025-01-15T15:00:26+00:00' + updated: '2025-01-15T15:00:26+00:00' + - type: server.os.template.exists + dataType: object + data: + success: false + remote: + info: + url: >- + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img + content_type: application/octet-stream + http_code: 200 + header_size: 255 + request_size: 176 + filetime: -1 + ssl_verify_result: 20 + redirect_count: 0 + total_time: 0.070349 + namelookup_time: 0.016706 + connect_time: 0.03088 + pretransfer_time: 0.054076 + size_upload: 0 + size_download: 0 + speed_download: 0 + speed_upload: 0 + download_content_length: 609856512 + upload_content_length: 0 + starttransfer_time: 0.070305 + redirect_time: 0 + redirect_url: '' + primary_ip: 185.125.190.37 + certinfo: [] + primary_port: 443 + local_ip: 192.168.4.2 + local_port: 34728 + http_version: 2 + protocol: 2 + ssl_verifyresult: 0 + scheme: HTTPS + appconnect_time_us: 54015 + connect_time_us: 30880 + namelookup_time_us: 16706 + pretransfer_time_us: 54076 + redirect_time_us: 0 + starttransfer_time_us: 70305 + total_time_us: 70349 + effective_method: HEAD + exitCode: 0 + error: null + completed: true + created: '2025-01-15T15:00:27+00:00' + updated: '2025-01-15T15:00:27+00:00' + - type: server.os.template.download + dataType: object + data: + system: + success: true + errors: [] + commandline: [] + data: + - sourceUrl: >- + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img + sourceDecompress: '' + destinationPath: >- + /home/vf-data/os/template/ubuntu-noble-server-cloudimg-amd64-2024-04-25.qcow2 + exitCode: null + pid: null + finished: false + error: null + errorOutput: null + success: 0 + updated: 1736953227 + created: '2025-01-15T15:00:27+00:00' + updated: '2025-01-15T15:00:27+00:00' + - type: server.os.template.download.check + dataType: object + data: + success: true + filesize: 609856512 + remote: |- + { + "sourceUrl": "https:\/\/cloud-images.ubuntu.com\/noble\/current\/noble-server-cloudimg-amd64.img", + "sourceDecompress": "", + "destinationPath": "\/home\/vf-data\/os\/template\/ubuntu-noble-server-cloudimg-amd64-2024-04-25.qcow2", + "exitCode": 0, + "pid": 387093, + "finished": true, + "error": null, + "errorOutput": null, + "success": true, + "updated": 1736953235, + "decompressOutput": null + } + created: '2025-01-15T15:00:35+00:00' + updated: '2025-01-15T15:00:35+00:00' + - type: server.create.ci + dataType: object + data: + network: + version: 2 + ethernets: + ens3: + match: + macaddress: 00:e7:fb:01:87:14 + addresses: + - 192.168.4.32/23 + - 192.168.4.35/23 + gateway4: 192.168.4.1 + nameservers: + addresses: + - 8.8.8.8 + - 8.8.4.4 + routes: + - to: 192.168.4.1 + via: 0.0.0.0 + scope: link + ens4: + match: + macaddress: 00:f0:4a:c6:3f:08 + addresses: + - 192.168.4.33/23 + - 192.168.4.34/23 + gateway4: 192.168.4.1 + nameservers: + addresses: + - 8.8.8.8 + - 8.8.4.4 + user: + timezone: Europe/London + ssh_pwauth: false + users: + - name: root + ssh-authorized-keys: + - >- + ssh-rsa + AAAAB3NzaC1yc2EAAAADAQABAAACAQC+JdL4fWELBWGAknSu0PwVpDDOlORxy9z7eVnZphZXBzYLMnux+ZogVLns6+O6NDE8JmWvP9RIg3SIga7RDOkW9UCdLzRu0jF2ALL7CK1huo1Ih0PDM9ZbFDy2Fd7a4DTvUX6923fQyW0PWRtyL11R4c9NUqzejKp5kW8vHfPQjzwb1hGIKvkSYkI0Auq4JJhlvjjnoK7Z8t5mpDrVfNTrVqevPgsW5Xwnq8R+02XywrY+Q/wnpxDs3Wjb2aA61A0x5J0xcZQpTQHoJNj77J3VmPI7Ry7Q8hPbTSLGZbN+gODr0lOaL5TdbvM3bnus5JvoqgRoszzPcTiNMZAe3v9UM8hiXise54b8rsc2M9MQ4olPu7TrROZbcw+9q4m6cV+dfVU/NRFkf27YRa4oZNKehHsMiupDyoISgSl4qSB8YXAWsX03oC/gzpB2YJIqEL1Y/SmKYEhgr0cplkvGZy6C/Q9cJHyHlMPtEBPexgcjXC9QrVK4n2cmde3TuSRMctawcat7Nuq08C8fGHaGHr8iAeage3o/ODVOt0rhBu69PknzQeVBdlwK3+p1dH6PnMzNNBhWyNZT/NqB2eS6K8lYpOQ47byXPwYsRLvStUjpZRdikOT7D31T5g8FwOThQ+6WX+xfMD7CSLsSKCn/FhlinbVbG2IhCLH3B30Akw5bUw== + hashed_passwd: '' + lock_passwd: true + runcmd: + - >- + DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get + --option=Dpkg::Options::=--force-confold + --option=Dpkg::options::=--force-unsafe-io + --assume-yes --quiet update + - >- + DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get + --option=Dpkg::Options::=--force-confold + --option=Dpkg::options::=--force-unsafe-io + --assume-yes --quiet install qemu-guest-agent + - /usr/bin/systemctl enable qemu-guest-agent + - /usr/bin/systemctl start qemu-guest-agent + - >- + DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get + --option=Dpkg::Options::=--force-confold + --option=Dpkg::options::=--force-unsafe-io + --assume-yes --quiet dist-upgrade + meta: + instance-id: b9fd9092-7200-4a24-96d4-76aedd664274 + local-hostname: elliptical-way + created: '2025-01-15T15:00:35+00:00' + updated: '2025-01-15T15:00:35+00:00' + - type: server.disk.create.os + dataType: object + data: + system: + success: true + commandline: + - result: + success: true + exitOnZero: false + command: >- + 'virsh' 'destroy' + 'b9fd9092-7200-4a24-96d4-76aedd664274' + exit_code: 1 + pid: 387131 + started: 1736953235.403454 + env: + PATH: >- + /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + timeout: 180 + output: '' + error: >- + error: failed to get domain + 'b9fd9092-7200-4a24-96d4-76aedd664274' + - command: >- + qemu-img info + '/home/vf-data/os/template/ubuntu-noble-server-cloudimg-amd64-2024-04-25.qcow2' + | grep -v grep | grep -w "file format:" | awk '{ + print $3 }' + exit_code: 0 + output: qcow2 + error: '' + - command: >- + 'cloud-localds' + '/home/vf-data/server/b9fd9092-7200-4a24-96d4-76aedd664274/cloud-drive.img' + '--network-config=/home/vf-data/server/b9fd9092-7200-4a24-96d4-76aedd664274/network-config-v2.yaml' + '/home/vf-data/server/b9fd9092-7200-4a24-96d4-76aedd664274/user-data.yaml' + '/home/vf-data/server/b9fd9092-7200-4a24-96d4-76aedd664274/meta-data.yaml' + exit_code: 0 + output: '' + error: '' + data: + success: true + forkData: + status: true + errors: [] + commandline: [] + output: + - sourcePath: >- + /home/vf-data/os/template/ubuntu-noble-server-cloudimg-amd64-2024-04-25.qcow2 + destinationPath: >- + /home/vf-data/disk/b9fd9092-7200-4a24-96d4-76aedd664274_1.img + convertProcess: + - qemu-img + - convert + - '-f' + - qcow2 + - '-O' + - qcow2 + - >- + /home/vf-data/os/template/ubuntu-noble-server-cloudimg-amd64-2024-04-25.qcow2 + - >- + /home/vf-data/disk/b9fd9092-7200-4a24-96d4-76aedd664274_1.img + resizeProcess: + - qemu-img + - resize + - '-f' + - qcow2 + - >- + /home/vf-data/disk/b9fd9092-7200-4a24-96d4-76aedd664274_1.img + - 11G + resizeProcessPid: null + convertProcessPid: null + finished: false + convertProcessOutput: null + resizeProcessOutput: null + convertProcessExitCode: null + resizeProcessExitCode: null + convertProcessError: null + resizeProcessError: null + error: null + success: false + updated: 1736953238 + abort: false + error: null + errorException: null + created: '2025-01-15T15:00:38+00:00' + updated: '2025-01-15T15:00:38+00:00' + - type: server.os.install.check + dataType: object + data: + success: true + sourceFilesize: 609856512 + destinationFilesize: 1832517808 + remote: + sourcePath: >- + /home/vf-data/os/template/ubuntu-noble-server-cloudimg-amd64-2024-04-25.qcow2 + destinationPath: >- + /home/vf-data/disk/b9fd9092-7200-4a24-96d4-76aedd664274_1.img + convertProcess: + - qemu-img + - convert + - '-f' + - qcow2 + - '-O' + - qcow2 + - >- + /home/vf-data/os/template/ubuntu-noble-server-cloudimg-amd64-2024-04-25.qcow2 + - >- + /home/vf-data/disk/b9fd9092-7200-4a24-96d4-76aedd664274_1.img + resizeProcess: + - qemu-img + - resize + - '-f' + - qcow2 + - >- + /home/vf-data/disk/b9fd9092-7200-4a24-96d4-76aedd664274_1.img + - 11G + resizeProcessPid: 387270 + convertProcessPid: 387168 + finished: true + convertProcessOutput: '' + resizeProcessOutput: | + Image resized. + convertProcessExitCode: 0 + resizeProcessExitCode: 0 + convertProcessError: null + resizeProcessError: null + error: null + success: true + updated: 1736953244 + created: '2025-01-15T15:00:44+00:00' + updated: '2025-01-15T15:00:44+00:00' + - type: server.vnc.disable + dataType: object + data: + system: + success: true + commandline: + - command: '''/usr/sbin/ufw'' ''deny'' ''5903''' + exit_code: 0 + output: |- + Skipping adding existing rule + Skipping adding existing rule (v6) + error: '' + data: [] + created: '2025-01-15T15:00:45+00:00' + updated: '2025-01-15T15:00:45+00:00' + - type: server.boot + dataType: object + data: + system: + success: true + errors: [] + commandline: + - success: true + exitOnZero: false + command: >- + 'virsh' '-q' 'domstate' + 'b9fd9092-7200-4a24-96d4-76aedd664274' + exit_code: 1 + pid: 387301 + started: 1736953245.165795 + env: + PATH: >- + /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + timeout: 60 + output: '' + error: >- + error: failed to get domain + 'b9fd9092-7200-4a24-96d4-76aedd664274' + - success: true + exitOnZero: true + command: >- + 'virsh' 'create' + '/home/vf-data/server/b9fd9092-7200-4a24-96d4-76aedd664274/server.xml' + exit_code: 0 + pid: 387303 + started: 1736953245.190122 + env: + PATH: >- + /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + timeout: 360 + output: >- + Domain 'b9fd9092-7200-4a24-96d4-76aedd664274' + created from + /home/vf-data/server/b9fd9092-7200-4a24-96d4-76aedd664274/server.xml + error: '' + - result: + success: true + exitOnZero: true + command: >- + 'virsh' 'attach-disk' + 'b9fd9092-7200-4a24-96d4-76aedd664274' + '/home/vf-data/server/b9fd9092-7200-4a24-96d4-76aedd664274/cloud-drive.img' + 'sdx' '--mode' 'readonly' + exit_code: 0 + pid: 387457 + started: 1736953246.67152 + env: + PATH: >- + /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + timeout: 60 + output: Disk attached successfully + error: '' + data: + - - filter_list: null + filter_apply: null + filter_apply_success: true + filter_apply_error: false + filter_apply_error_trace: false + filter_apply_cli: null + filter_apply_code: null + tmp_filter_1: >- + /home/vf-data/server/b9fd9092-7200-4a24-96d4-76aedd664274/networkFilter-3933491695.xml + tmp_filter_2: >- + /home/vf-data/server/b9fd9092-7200-4a24-96d4-76aedd664274/networkFilter-3933491695.xml-tmp + sha1: bd9ce80d8372e025e5de8757ec63c042986a48fa + sha1_last: bd9ce80d8372e025e5de8757ec63c042986a48fa + native: + primary: [] + secondary: + sha1: 801b6632cbb50f2c8c6dd15037ba9c9d4e03cf50 + sha1_last: 801b6632cbb50f2c8c6dd15037ba9c9d4e03cf50 + created: '2025-01-15T15:00:46+00:00' + updated: '2025-01-15T15:00:46+00:00' + - type: server.config.statistics + dataType: object + data: [] + created: '2025-01-15T15:00:48+00:00' + updated: '2025-01-15T15:00:48+00:00' + subActions: [] + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /ssh_keys: + post: + summary: Add an SSH key to a user account + deprecated: false + description: '' + tags: + - SSH Keys + parameters: [] + requestBody: + content: + application/json: + schema: + type: object + properties: + userId: + type: integer + name: + type: string + publicKey: + type: string + required: + - userId + - name + - publicKey + example: + userId: 1 + name: Key 1 + publicKey: >- + ssh-rsa + AAAAB3NzaC1yc2EAAAADAQABAAABAQDF6O4Evybdywpi6PImTE5aJ75+5OpJKyd2QR2LSl0bVxhZjQOqN/4msCp/UjUpFDSeC1SQXeKQb4o7OZ7bUC8k2JbNxnArsYSGi/XhqczKOX/uYOMA/V8gb1e+uishQSzjYrneC0PufFYwNGStjYf0QXCsgQcYLsHbjV2g9j0FhVYxj5endy7Z1K1RMP7IzF5lh3KgtbqKhdJ8XK1fqXCcPHxEuAzjq7G2W+I9xOs8GqftxYGS4XAiOe7YLKfWM00dUdYMJ81R8lZFj5UzP0MOT9qxPNBNiB0MEQX8hc0+2nQdaQYkg8mbCJQxhT9Cr0rXyYdbaNnYWIJql3SVgigJ + responses: + '201': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + id: 2 + name: Key 1 + type: OpenSSH + createdAt: '2025-01-20T12:16:23.000000Z' + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /ssh_keys/{keyId}: + delete: + summary: Delete an SSH key from a user + deprecated: false + description: '' + tags: + - SSH Keys + parameters: + - name: keyId + in: path + description: A valid SSH key ID as shown in VirtFusion. + required: true + example: 2 + schema: + type: integer + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + get: + summary: Retrieve an SSH key + deprecated: false + description: '' + tags: + - SSH Keys + parameters: + - name: keyId + in: path + description: A valid SSH key ID as shown in VirtFusion. + required: true + example: 1 + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + id: 1 + name: MY SSH Key + publicKey: >- + ssh-rsa + AAAAB3NzaC1yc2EAAAADAQABAAACAQC+JdL4fWELBWGAknSu0PwVpDDOlORxy9z7eVnZphZXBzYLMnux+ZogVLns6+O6NDE8JmWvP9RIg3SIga7RDOkW9UCdLzRu0jF2ALL7CK1huo1Ih0PDM9ZbFDy2Fd7a4DTvUX6923fQyW0PWRtyL11R4c9NUqzejKp5kW8vHfPQjzwb1hGIKvkSYkI0Auq4JJhlvjjnoK7Z8t5mpDrVfNTrVqevPgsW5Xwnq8R+02XywrY+Q/wnpxDs4Ujb2aA61A0x5J0xcZQpTQHoJNj77J3VmPI7Ry7Q8hPbTSLGZbN+gODr0lOaL5TdbvM3bnus5JvoqgRoszzPcTiAQZAe3v9UM8hiXise54b8rsc2M9MQ4olPu7TrROZbcw+9q4m6cV+dfVU/NRFkf27YRa4oZNKehHsMiupDyoISgSl4qSB8YXAWsX03oC/gzpB2YJIqEL1Y/SmKYEhgr0cplkvGZy6C/Q9cJHyHlMPtEBPexgcjXC9QrVK4n2cmde3TuSRMctawcat7Nuq08C8fGHaGHr8iAeage3o/ODVOt0rhBu69PknzQeVBdlwK3+p1dH6PnMzNNBhWyNZT/NqB2eS6K8lYpOQ47byXPwYsRLvStUjpZRdikOT7D31T5g8FwOThQ+6WX+xfMD7CSLsSKCn/FhlinbVbG2IhCLH3B30Akw5bUw== + type: OpenSSH + enabled: true + created: '2024-03-13T20:28:32+00:00' + updated: '2024-03-13T20:28:32+00:00' + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /ssh_keys/user/{userId}: + get: + summary: Retrieve a users SSH keys + deprecated: false + description: '' + tags: + - SSH Keys + parameters: + - name: userId + in: path + description: A valid user ID as shown in VirtFusion. + required: true + example: 1 + schema: + type: integer + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + - id: 1 + name: My SSH Key + publicKey: >- + ssh-rsa + AAAAB3NzaC1yc2EAAAADAQABAAACAQC+JdL4fWELBWGAknSu0PwVpDDOlORxy9z7eVnZphZXBzYLMnux+ZogVLns6+O6NDE8JmWvP9RIg3SIga7RDOkW9UCdLzRu0jF2ALL7CK1huo1Ih0PDM9ZbFDy2Fd7a4DTvUX6923fQyW0PWRtyL11R4c9NUqzejKp5kW8vHfPQjzwb1hGIKvkSYkI0Auq4JJhlvjjnoK7Z8t5mpDrVfNTrVqevPgsW5Xwnq8R+02XywrY+Q/wnpxDs4Ujb2aA61A0x5J0xcRTpTQHoJNj77J3VmPI7Ry7Q8hPbTSLGZbN+gODr0lOaL5TdbvM3bnus5JvoqgRoszzPcTiNMZAe3v9UM8hiXise54b8rsc2M9MQ4olPu7TrROZbcw+9q4m6cV+dfVU/NRFkf27YRa4oZNKehHsMiupDyoISgSl4qSB8YXAWsX03oC/gzpB2YJIqEL1Y/SmKYEhgr0cplkvGZy6C/Q9cJHyHlMPtEBPexgcjXC9QrVK4n2cmde3TuSRMctawcat7Nuq08C8fGHaGHr8iAeage3o/ODVOt0rhBu69PknzQeVBdlwK3+p1dH6PnMzNNBhWyNZT/NqB2eS6K8lYpOQ47byXPwYsRLvStUjpZRdikOT7D31T5g8FwOThQ+6WX+xfMD7CSLsSKCn/FhlinbVbG2IhCLH3B30Akw5bUw== + type: OpenSSH + enabled: true + created: '2024-03-13T20:28:32+00:00' + updated: '2024-03-13T20:28:32+00:00' + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /users/{extRelationId}/byExtRelation: + delete: + summary: Delete a user + deprecated: false + description: '' + tags: + - Users/External Rel ID & Rel Str + parameters: + - name: extRelationId + in: path + description: A valid external relational ID as shown in VirtFusion. + required: true + example: '1' + schema: + type: string + - name: relStr + in: query + description: '' + required: false + example: 'true' + schema: + type: boolean + default: false + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + put: + summary: Modify a user + deprecated: false + description: '' + tags: + - Users/External Rel ID & Rel Str + parameters: + - name: extRelationId + in: path + description: A valid external relational ID as shown in VirtFusion. + required: true + example: '1' + schema: + type: string + - name: relStr + in: query + description: '' + required: false + schema: + type: boolean + default: false + requestBody: + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: Full name of the user. + email: + type: string + description: Email address of the user. + selfService: + type: integer + description: >- + default disabled) 0 = disabled, 1 = hourly, 2 = resource + packs, 3 = hourly & resource packs. + selfServiceHourlyCredit: + type: boolean + description: >- + Enable/disable credit balance billing for hourly self + service. (true|false). + selfServiceHourlyGroupProfiles: + type: array + items: + type: integer + description: >- + (default none) array of self service hourly group profile + ids. + selfServiceResourceGroupProfiles: + type: array + items: + type: integer + description: >- + (default none) array of self service resource group profile + ids. + selfServiceHourlyResourcePack: + type: integer + description: (default none) ID of an hourly self service resource pack. + enabled: + type: boolean + description: >- + (default false) Email the access credentials to the user. + (true|false). + example: + name: jon Doe + email: jon@doe.com + selfService: 3 + selfServiceHourlyCredit: true + selfServiceHourlyGroupProfiles: + - 1 + - 2 + - 3 + selfServiceResourceGroupProfiles: + - 4 + - 5 + - 6 + selfServiceHourlyResourcePack: 1 + enabled: true + responses: + '201': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + name: jon Doe + email: jon@doe.com + selfService: 3 + enabled: true + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + get: + summary: Retrieve a user + deprecated: false + description: '' + tags: + - Users/External Rel ID & Rel Str + parameters: + - name: extRelationId + in: path + description: A valid external relational ID as shown in VirtFusion. + required: true + example: '1' + schema: + type: string + - name: relStr + in: query + description: '' + required: false + schema: + type: boolean + default: false + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + id: 3 + admin: false + extRelationId: 1 + selfService: 3 + selfServiceHourlyGroupProfiles: [] + selfServiceResourceGroupProfiles: [] + selfServiceHourlyResourcePack: null + name: jon Doe + email: jon@doe.com + timezone: Europe/London + suspended: false + twoFactorAuth: false + created: '2025-01-20T12:48:20.000000Z' + updated: '2025-01-20T13:00:38.000000Z' + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /users/{extRelationId}/authenticationTokens: + post: + summary: Generate a set of login tokens + deprecated: false + description: '' + tags: + - Users/External Rel ID & Rel Str + parameters: + - name: extRelationId + in: path + description: A valid external relational ID as shown in VirtFusion. + required: true + example: '1' + schema: + type: string + - name: relStr + in: query + description: '' + required: false + schema: + type: boolean + default: false + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + authentication: + tokens: + '1': >- + zYpEXpWEeXR4LfogW3xIomIJS5YW8woOjo18h9st6Sh23ReeTEeQNI1RSQWXYv1AImtQzFm0CLrn6Ve8VtIP3MfDnoRWHxQ334UU + '2': >- + RGzuQDFt0KsWgPozaTZDpuXy3aSsbj6VHWbz4JrhGoj0ZOvaGHUcXM6WGeGuNgfTUPLcy0SYMNJWmI1idC8uR88ZSs00XRnEtbG9 + endpoint: /token_authenticate + endpoint_complete: >- + /token_authenticate/?1=zYpEXpWEeXR4LfogW3xIomIJS5YW8woOjo18h9st6Sh23ReeTEeQNI1RSQWXYv1AImtQzFm0CLrn6Ve8VtIP3MfDnoRWHxQ334UU&2=RGzuQDFt0KsWgPozaTZDpuXy3aSsbj6VHWbz4JrhGoj0ZOvaGHUcXM6WGeGuNgfTUPLcy0SYMNJWmI1idC8uR88ZSs00XRnEtbG9 + expiry: + ttl: 60 + expires: '2025-01-20T12:49:52.170943Z' + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /users/{extRelationId}/serverAuthenticationTokens/{serverId}: + post: + summary: Generate a set of login tokens using a server ID + deprecated: false + description: '' + tags: + - Users/External Rel ID & Rel Str + parameters: + - name: extRelationId + in: path + description: A valid external relational ID as shown in VirtFusion. + required: true + example: '1' + schema: + type: string + - name: serverId + in: path + description: A valid server ID as shown in VirtFusion. + required: true + example: 9 + schema: + type: integer + - name: relStr + in: query + description: '' + required: false + schema: + type: boolean + default: false + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + authentication: + tokens: + '1': >- + oIGBk2qEYTXKMGbaDVbpRFqwQC57Rzl5zWKhwQkgDbRBeXSTH865Bvv0Fm8oY6b0xYpH22xbLAKarOAy28PnToxRu5InfmkIHmo0 + '2': >- + WwiZ9XwqKM5jNGgCsCsUD4B6DDxAKeolJu3dBN7lsK1uGDVvElvfH77sDyukRIzTbbEI6fggKBXuSYRaYc5FqMab4L6PB0QcOxr9 + endpoint: /token_authenticate + endpoint_complete: >- + /token_authenticate/?1=oIGBk2qEYTXKMGbaDVbpRFqwQC57Rzl5zWKhwQkgDbRBeXSTH865Bvv0Fm8oY6b0xYpH22xbLAKarOAy28PnToxRu5InfmkIHmo0&2=WwiZ9XwqKM5jNGgCsCsUD4B6DDxAKeolJu3dBN7lsK1uGDVvElvfH77sDyukRIzTbbEI6fggKBXuSYRaYc5FqMab4L6PB0QcOxr9 + expiry: + ttl: 60 + expires: '2025-01-20T12:52:59.761522Z' + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /users/{extRelationId}/byExtRelation/resetPassword: + post: + summary: Change a user passowrd + deprecated: false + description: '' + tags: + - Users/External Rel ID & Rel Str + parameters: + - name: extRelationId + in: path + description: A valid external relational ID as shown in VirtFusion. + required: true + example: '1' + schema: + type: string + - name: relStr + in: query + description: '' + required: false + schema: + type: boolean + default: false + responses: + '201': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + email: jon@doe.com + password: zD2VqFKO554tdfWKOmGhw + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /users: + post: + summary: Create a user + deprecated: false + description: '' + tags: + - Users + parameters: [] + requestBody: + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: Full name of the user. + email: + type: string + description: Email address of the user. + extRelationId: + type: integer + description: Relation ID. + relStr: + type: string + description: Relational string. + selfService: + type: integer + description: >- + (default disabled) 0 = disabled, 1 = hourly, 2 = resource + packs, 3 = hourly & resource packs. + selfServiceHourlyCredit: + type: boolean + description: ' Enable/disable credit balance billing for hourly self service. (true|false).' + selfServiceHourlyGroupProfiles: + type: array + items: + type: integer + description: >- + (default none) array of self service hourly group profile + ids. + selfServiceResourceGroupProfiles: + type: array + items: + type: integer + description: ' (default none) array of self service resource group profile ids.' + selfServiceHourlyResourcePack: + type: integer + description: ' (default none) ID of an hourly self service resource pack.' + sendMail: + type: boolean + description: >- + (default false) Email the access credentials to the user. + (true|false). + required: + - name + - email + example: + name: Jon Doe + email: jon@doe.com + extRelationId: 1 + selfService: 3 + selfServiceHourlyCredit: true + selfServiceHourlyGroupProfiles: + - 1 + - 2 + - 3 + selfServiceResourceGroupProfiles: + - 4 + - 5 + - 6 + selfServiceHourlyResourcePack: 1 + sendMail: false + responses: + '201': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + id: 2 + admin: false + extRelationId: 1 + selfService: 3 + selfServiceHourlyGroupProfiles: [] + selfServiceResourceGroupProfiles: [] + selfServiceHourlyResourcePack: null + name: Jon Doe + email: jon@doe.com + timezone: Europe/London + suspended: false + twoFactorAuth: false + created: '2025-01-20T12:41:28.000000Z' + updated: '2025-01-20T12:41:28.000000Z' + password: 0hPZSAmj8Tgq1noGoenxpxlC9xf1tc + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /selfService/credit/byUserExtRelationId/{extRelationId}: + post: + summary: Add credit to user + deprecated: false + description: '' + tags: + - Self Service/External Relational ID + parameters: + - name: extRelationId + in: path + description: A valid external relational ID as shown in VirtFusion. + required: true + schema: + type: string + - name: relStr + in: query + description: '' + required: false + example: 'true' + schema: + type: boolean + requestBody: + content: + application/json: + schema: + type: object + properties: + tokens: + type: number + description: A numeric token value. + reference_1: + type: integer + description: ' An optional reference number. Max 64-bit integer.' + reference_2: + type: string + description: An optional reference in string format. Max 1000 character. + required: + - tokens + example: + tokens: 100 + reference_1: 400 + reference_2: This is a string reference with a 1000 character limit. + responses: + '201': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + id: 2 + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /selfService/hourlyGroupProfile/byUserExtRelationId/{extRelationId}: + post: + summary: Add an hourly group profile to a user + deprecated: false + description: '' + tags: + - Self Service/External Relational ID + parameters: + - name: extRelationId + in: path + description: A valid external relational ID as shown in VirtFusion. + required: true + example: '1' + schema: + type: string + - name: relStr + in: query + description: '' + required: false + example: 'true' + schema: + type: boolean + requestBody: + content: + application/json: + schema: + type: object + properties: + profileId: + type: integer + description: ID of an hourly group profile. + required: + - profileId + example: + profileId: 1 + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /selfService/resourceGroupProfile/byUserExtRelationId/{extRelationId}: + post: + summary: Add a resource group profile to a user + deprecated: false + description: '' + tags: + - Self Service/External Relational ID + parameters: + - name: extRelationId + in: path + description: A valid external relational ID as shown in VirtFusion. + required: true + example: '1' + schema: + type: string + - name: relStr + in: query + description: '' + required: false + example: 'true' + schema: + type: boolean + requestBody: + content: + application/json: + schema: + type: object + properties: + profileId: + type: integer + description: ID a resource group profile. + required: + - profileId + example: + profileId: 1 + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /selfService/resourcePack/byUserExtRelationId/{extRelationId}: + post: + summary: Add a resource pack to a user + deprecated: false + description: '' + tags: + - Self Service/External Relational ID + parameters: + - name: extRelationId + in: path + description: A valid external relational ID as shown in VirtFusion. + required: true + example: '1' + schema: + type: string + - name: relStr + in: query + description: '' + required: false + example: 'true' + schema: + type: boolean + requestBody: + content: + application/json: + schema: + type: object + properties: + packId: + type: integer + description: ID of a resource pack. + enabled: + type: boolean + description: Enable the pack. true|false defaults too true. + required: + - packId + - enabled + example: + packId: 1 + enabled: true + responses: + '201': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + id: 17 + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /selfService/hourlyStats/byUserExtRelationId/{extRelationId}: + get: + summary: Retrieve hourly statistics + deprecated: false + description: '' + tags: + - Self Service/External Relational ID + parameters: + - name: extRelationId + in: path + description: A valid external relational ID as shown in VirtFusion. + required: true + example: '1' + schema: + type: string + - name: period[] + in: query + description: 'Example: period[]=YYYY-MM-DD&period[]=YYYY-MM-D' + required: false + example: YYYY-MM-DD + schema: + type: string + - name: range + in: query + description: range=m + required: false + example: m + schema: + type: string + - name: relStr + in: query + description: '' + required: false + example: 'true' + schema: + type: boolean + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + periodId: 0 + period: January 2025 + previousPeriod: December 2024 + nextPeriod: February 2025 + monthlyTotal: + hours: 0 + value: '0.00' + tokens: false + servers: 0 + credit: + value: 0 + currency: + code: '' + prefix: '' + suffix: '' + value: 0 + currentValue: 0 + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /selfService/access/byUserExtRelationId/{extRelationId}: + put: + summary: Modify user access + deprecated: false + description: '' + tags: + - Self Service/External Relational ID + parameters: + - name: extRelationId + in: path + description: A valid external relational ID as shown in VirtFusion. + required: true + example: '1' + schema: + type: string + - name: relStr + in: query + description: '' + required: false + example: 'true' + schema: + type: boolean + requestBody: + content: + application/json: + schema: + type: object + properties: + syncToProfiles: + type: boolean + description: >- + true|false Default false. If true, the self service access + level will be set based on profiles. + required: + - syncToProfiles + example: + syncToProfiles: true + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /selfService/hourlyGroupProfile/{profileId}/byUserExtRelationId/{extRelationId}: + delete: + summary: Remove hourly group profile from a user + deprecated: false + description: '' + tags: + - Self Service/External Relational ID + parameters: + - name: profileId + in: path + description: ID of a hourly group profile. + required: true + example: 1 + schema: + type: integer + - name: extRelationId + in: path + description: A valid external relational ID as shown in VirtFusion. + required: true + example: '1' + schema: + type: string + - name: relStr + in: query + description: '' + required: false + example: 'true' + schema: + type: boolean + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /selfService/resourceGroupProfile/{profileId}/byUserExtRelationId/{extRelationId}: + delete: + summary: Remove resource group from a user + deprecated: false + description: '' + tags: + - Self Service/External Relational ID + parameters: + - name: profileId + in: path + description: ID of a hourly group profile. + required: true + example: 1 + schema: + type: integer + - name: extRelationId + in: path + description: A valid external relational ID as shown in VirtFusion. + required: true + example: '1' + schema: + type: string + - name: relStr + in: query + description: '' + required: false + example: 'true' + schema: + type: boolean + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /selfService/report/byUserExtRelationId/{extRelationId}: + get: + summary: Generate a report + deprecated: false + description: '' + tags: + - Self Service/External Relational ID + parameters: + - name: extRelationId + in: path + description: A valid external relational ID as shown in VirtFusion. + required: true + example: '1' + schema: + type: string + - name: period + in: query + description: >- + A single period in the range of 0-24 (0 being the currently defined + month in the self service settings | optional and will default to + the current month if not defined). + required: false + example: '0' + schema: + type: string + - name: currency + in: query + description: >- + A three letter currency code that is defined in the self service + settings. (optional and will default to the user defined currency if + not defined). + required: false + example: USD + schema: + type: string + - name: relStr + in: query + description: '' + required: false + example: 'true' + schema: + type: boolean + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + usage: + servers: [] + serversTotal: + hours: false + value: false + tokens: false + hourConversionRate: false + monthlyTotal: + hours: false + value: false + tokens: false + addonsTotal: + hours: 0 + value: 0 + tokens: false + taxStatus: 3 + success: false + history: '0' + breakdown: true + term: January 2025 + previousTerm: December 2024 + nextTerm: February 2025 + period: + ymd: '2025-01-01' + start: '2025-01-01T00:00:00+00:00' + end: '2025-01-31T00:00:00+00:00' + showHourlyRate: false + showMonthlyRate: false + currency: + prefix: '' + suffix: '' + code: '' + currentValue: 0 + value: 0 + default: + prefix: '' + suffix: '' + code: '' + limits: + success: true + packs: [] + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /selfService/hourlyResourcePack/byUserExtRelationId/{extRelationId}: + put: + summary: Set an hourly resource pack + deprecated: false + description: '' + tags: + - Self Service/External Relational ID + parameters: + - name: extRelationId + in: path + description: A valid external relational ID as shown in VirtFusion. + required: true + example: '1' + schema: + type: string + - name: relStr + in: query + description: '' + required: false + example: 'true' + schema: + type: boolean + requestBody: + content: + application/json: + schema: + type: object + properties: + packId: + type: integer + description: ID of an hourly resource pack. + required: + - packId + example: + packId: 1 + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /selfService/usage/byUserExtRelationId/{extRelationId}: + get: + summary: Retrieve a users usage + deprecated: false + description: '' + tags: + - Self Service/External Relational ID + parameters: + - name: extRelationId + in: path + description: A valid external relational ID as shown in VirtFusion. + required: true + example: '1' + schema: + type: string + - name: period[] + in: query + description: Array of periods or a single period. (YYYY-MM-DD). + required: false + example: '2025-01-01' + schema: + type: string + - name: range + in: query + description: >- + Length of period. Defaults to 1 month. Possible values d = day, w = + week, 2w = 2 weeks, 3w = 3 weeks, m = month. + required: false + example: m + schema: + type: string + - name: relStr + in: query + description: '' + required: false + example: 'true' + schema: + type: boolean + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + user: + id: 3 + relationalId: 1 + currency: null + timezone: Europe/London + name: jon Doe + email: jon@doe.com + usageServers: + hours: 0 + token: 0 + tokenReal: 0 + usageServersBillable: + hours: 0 + token: 0 + tokenReal: 0 + usageAddons: + hours: 0 + token: 0 + tokenReal: 0 + usageAddonsBillable: + hours: 0 + token: 0 + tokenReal: 0 + periods: + - period: '2025-01-01' + range: month + start: '2025-01-01T00:00:00+00:00' + end: '2025-01-31T23:59:59+00:00' + timezone: UTC + currentPeriod: true + hoursInMonthPeriod: 744 + monthToHourRate: 730 + monthToHourRateType: 1 + days: 31 + hours: 744 + minutes: 44640 + seconds: 2678400 + usageServers: + hours: 0 + token: 0 + tokenReal: 0 + usageServersBillable: + hours: 0 + token: 0 + tokenReal: 0 + usageAddons: + hours: 0 + token: 0 + tokenReal: 0 + usageAddonsBillable: + hours: 0 + token: 0 + tokenReal: 0 + servers: [] + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /selfService/credit/{creditId}: + delete: + summary: Cancel credit that was applied to a user + deprecated: false + description: '' + tags: + - Self Service + parameters: + - name: creditId + in: path + description: A valid credit ID. + required: true + example: 1 + schema: + type: integer + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /selfService/resourcePackServers/{packId}: + delete: + summary: Delete all servers attached to a pack ID + deprecated: false + description: '' + tags: + - Self Service + parameters: + - name: packId + in: path + description: ID of a resource pack. + required: true + example: 1 + schema: + type: integer + - name: delay + in: query + description: The delay in minutes. Defaults to 30 (0 - 43800). + required: false + example: 30 + schema: + type: integer + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /selfService/resourcePack/{packId}: + delete: + summary: Delete a user resource pack + deprecated: false + description: '' + tags: + - Self Service + parameters: + - name: packId + in: path + description: ID of a resource pack. + required: true + example: 1 + schema: + type: integer + - name: disable + in: query + description: >- + Disable the pack if it can't be deleted. true|false Defaults to + false. + required: false + example: 'true' + schema: + type: boolean + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + get: + summary: Retrieve a user resource pack + deprecated: false + description: '' + tags: + - Self Service + parameters: + - name: packId + in: path + description: ID of a resource pack. + required: true + example: 1 + schema: + type: integer + - name: withServers + in: query + description: include a list of assigned servers. true|false Defaults to false. + required: false + example: 'true' + schema: + type: boolean + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + type: pack + id: 18 + pid: 9 + label: null + name: Pack 2 · 2 / 4096 / 250 + limits: + total_servers: 2 + total_memory: 4096 + total_storage: 200 + total_cpu: 24 + total_traffic: 1000000 + max_memory: 4096 + max_storage: 10 + max_cpu: 8 + max_traffic: 500000 + used: + servers: 0 + memory: 0 + storage: 0 + cpu: 0 + traffic: 0 + usage: + servers: + t: 2 + u: 0 + f: 2 + p: 0 + l: true + memory: + t: 4096 + u: 0 + f: 4096 + p: 0 + l: true + storage: + t: 200 + u: 0 + f: 200 + p: 0 + l: true + cpu: + t: 24 + u: 0 + p: 0 + f: 24 + l: true + traffic: + t: 1000000 + u: 0 + f: 1000000 + p: 0 + l: true + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + put: + summary: Modify user resource pack + deprecated: false + description: '' + tags: + - Self Service + parameters: + - name: packId + in: path + description: ID of a resource pack. + required: true + example: 1 + schema: + type: integer + requestBody: + content: + application/json: + schema: + type: object + properties: + enabled: + type: boolean + required: + - enabled + example: + enabled: true + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /selfService/currencies: + get: + summary: Retrieve currencies + deprecated: false + description: '' + tags: + - Self Service + parameters: [] + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + example: + data: + - id: 11 + code: USD + value: '0.0100000000' + prefix: $ + suffix: null + default: true + enabled: true + - id: 12 + code: GBP + value: '0.0200000000' + prefix: £ + suffix: null + default: false + enabled: true + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /selfService/resourcePackServers/{packId}/suspend: + post: + summary: Suspend all servers assigned to a reosurce pack + deprecated: false + description: '' + tags: + - Self Service + parameters: + - name: packId + in: path + description: ID of a resource pack. + required: true + example: 1 + schema: + type: integer + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] + /selfService/resourcePackServers/{packId}/unsuspend: + post: + summary: Unsuspend all servers assigned to a reosurce pack + deprecated: false + description: '' + tags: + - Self Service + parameters: + - name: packId + in: path + description: ID of a resource pack. + required: true + example: 1 + schema: + type: integer + responses: + '204': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + headers: {} + '401': + $ref: '#/components/responses/401' + description: '' + security: + - bearer: [] +components: + schemas: {} + responses: + '401': + description: '' + content: + application/octet-stream: + schema: + type: object + properties: {} + examples: + '401': + summary: '401' + value: 401 Unauthorized + securitySchemes: + bearer: + type: http + scheme: bearer +servers: + - url: https://cp.domain.com/api/v1 + description: Example URL +security: + - bearer: []