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: 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: '&laquo; 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 &raquo;
                    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: '&laquo; 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 &raquo;
                    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}:
    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: >-
                        iVBORw0KGgoAAAANSUhEUgAAAJYAAABTCAAAAABYT6E5AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAHdElNRQfpARESACeS8jvVAAAI2klEQVRo3u2W+XMjxRXHX3fPfWhG1+i0ZMmXbK3t9dq7bFg2ARKgSFWSn5If8+/lx1xFhSpCQSWppVhYWKB2F+y1JV+yLI1kndbcnR98LBACJGxCUjWfH3r6eN39puf1dx7A/yboiy2EvsHiv+wY+vL2CP2jQ+irjP8TbpP5fiCJtm4BAEBclUURuzFxotnnBqkgZ3uQcCXncs75WAy5oHiKA1x8/NTd+mW8LN0+WIJl+UpdfJH91XSEZZfw8Kq4kpEzKRNeOq50JzMvNEupVCET1QXlWr8qzsbL6Yimt4Wft18YFyPVLUyfrlu43YOupbpGjFOxY6p/enjK+1uFiEvkhK4olLZygQ3RFiCRU9GV6bEfYYPMItUzquWC1QgOE+t4jIKnfVzoc+VllXnSJojBZ/0EkzkdAADiC5dzEKgVljxtp+B7u2j/jldf0YkQAMIIEAA6a6CzKuAvzkJftdjnrjWCy4P+v4PMiWogYJEiCiJKcpRhPRYvH0M8PyKEpAF7qgvxEqpET0uZdDw1kxitNmDej8/qs8XJdXupX+36PEuxgOcHPGb8dTNAJQcBEhnis/jK8SqT4qvl0TzKEOzT8myQcCp9lsELHYoUwOmILfqYQtFhPACJeFwgsMwvXkt0K9ulZqR+utB1pMLuTGv6D4WPQJzOR+SP5eHGvZHjxCIuX0nWb7mDZnKYzX/Argz6aE7e28jCas2ouavxMY7UZqXF41t75JjfnrlmR3aym1cb0380nln4iIoeqVTu+2TkBFOJibaoLh3EttYOBten94rd0SIF+28wx/3ojd1MjuWn6+oeuv5YxPqpiFZ+d1oKHP7Zjy0ibcfrVEhhuP5ZA0XNoQNCGmEX+R4JxH6kn6qxmk5NjAOB7BtDbT/IqZpeGzpKYGdc9zHNrW/bvE13ZpBSSzhil9PGNBiJXD8YBRm9obEI92MtzjoxtF7iOELqt5k3YbabOuwn27pBEWwCQBIAgOGRDgAgAgBAAqCogs6KZQbIVKpgQASMtB6bikhiVMMkDyAZBT4mFjQgaSEDEMsCaLiQTRvGVIZTzyJEOo8U+Un4ZwDw2R6QhMRZhRVnzkdljTurMQvjsmGMpffLD5eJyzXSZq6Rv3PjzUrWVKIdV+Pyo6XtOGcS+niZC47y629n2zOmJWfFzOl7cw9yGXmi3FvT4ny2EWTvFE90nLEblqEi20/sbXyw0L3y+gGsY5dr5FrZw/w7a03IZG38kfTcVqF+e0dqGW97r2xXYmKz/OlueeGw0oS/stfrpLiV9GVpemTiKvVVijYLrHrEcO12lulIzYEhD9yHk07U5IaPcde+54+YftTeNNSj/gFnW3Z7pr/XT7HKfcVvY3u4qb3Lb8aVelRMJd3+qUSd/BHLLgW+SmFzio02pAMqq76yz890XQFPbNJq00BwJG2ojExHGwnkpImnTwAAgJeqAHr5QlYIYITh24LZiw+EgMCliqW1Swu99Hl75tusSSpsOnZzKxZkYZBOpNg17Tj949rK6Lqf68C8khZvdmZJKlcYzbHRuDAmr4g8X4JYOYpzsmqgCf9M74dWWVZjyrr7/PECGlFIGLKsawiKXFJ4dnfNzfr+CBbUqHSrUZDXmlWa1LT+17tFmR/UjODALaamu9Tfv7IzdxeUnp3d5lb9rWDl0407tJrbXH0kiaksy9uvJfLuSoNGZu7rp1nZjR/+BfEeXH3u8YHgjTVlzmbm644xFxDekUfiZum+IEeda17wG7T8aKXuz916Q5aTuhawPTqiiAKiAAgoAKDz4vyJFAcoscVo8S4b2AwIjsNhSx2KE3kM8lgdE4It1uYDDMhFHpJtBp8ifiJ5GAU+9YHxo2NPcnxEJc/iLKMFPOvgpYnUO3KkgeBzNsypd0E61Xss79qCLXt4ggD5X6/y1WE5zgdLFIu5GTtHutySuSznkonsSTXpFA6Bd1wO4rE+F7ipTAdEfWITzBA78PJuQivac2U0vnZQMRnHdvURO8b6CKKJrU6r64goOfFdLJj7DMqK5uziTtUJlrkWXc1OJ4xxtf9MoqDNCgUxUTCfHVJ1dUEMKuxaC9YJUzrSyY031Qr6ZKpfYoXu1IYo1o14JhlP9gbpR+pLbcFn28lFNKX3Np0T5sUh7/SJnfXb7YXl+1or2S7G1j/J1yWLWeJUOf5Z6v1kqzwdkbaslvvCgHcHxMp57U5Ex+QnU3l1K78guGytqGtV245PbY+NuffVqSKmv66n7ICmGvaLlH+EskHSFCdyN3JKbBb8oZAKuBaM82MBbIc/YMvWjQf+gRH4kjQ5aeHbbsOX/CabICOX4U8UT28ntrM9xWTGgtouOorfD07EBCYr7Ye95+2OzVltMY57VBj0Zn1mxIwTAXInLkqM1ZOgVzLdQcniXS44LjdjJ5GRfmLHMd2DDAFIAoh8tJwvFNKz5zIL7IXeKsLFB4+IDNEh+STpi3MgKQAAYFwItwwAGs8DiOhc3aPcxZ8EACJnCh9/EkQKAIAhAyg8gHKpIjc/nt9+9RNWHOzM7pTt6WNEpWgPRE/yWS8/+T0kNrq8M44OVW8Ajmn3+GsTgkbABUjYTTbr0Z9+Jh0YvcXGWD1+QDfeXZzceIdwZIw/YF5uprenTVfNdyZC5LfqzU72w0b+Rh33JJQatDOb27klK7ASd9WpoPTnuPvqh6mD0m7hdRrAy0f4SOIGbwXdmsvdc997cHfHsGosexXYLcvtOX5KTrGMxwvbPSzh0cTxIeaZ4AvM5ogVSN+hVo2YAiPUvKG7Q+HEmwQO9bdPfQLM8MDBDBOYJu37+0ApZzZp/xB3BQ72rclol1Lqyfsnkw5Azez4Rx5nHvLHsXkK9uMnwgoAQM5SRrF0mUriRQm+E/9qDooxAACq9q6+NWXN3FlqKm6w++UlKVxI3Rf66T9rfKP1txwiP5sQ8bl6sl1gV8vikWh/+RW/n4wbqWOGgCW6rIOWrS1sf/clQ0JCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQp4afwdRMMFLNhfN2wAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyNS0wMS0xN1QxODowMDozOSswMDowMDazUncAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjUtMDEtMTdUMTg6MDA6MzkrMDA6MDBH7urLAAAAAElFTkSuQmCC
                  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: >-
                        [encoded data, 11528 characters]
                  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: '&laquo; 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 &raquo;
                    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: >-
                        iVBORw0KGgoAAAANSUhEUgAAAJYAAABTCAAAAABYT6E5AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAHdElNRQfpARESACeS8jvVAAAI2klEQVRo3u2W+XMjxRXHX3fPfWhG1+i0ZMmXbK3t9dq7bFg2ARKgSFWSn5If8+/lx1xFhSpCQSWppVhYWKB2F+y1JV+yLI1kndbcnR98LBACJGxCUjWfH3r6eN39puf1dx7A/yboiy2EvsHiv+wY+vL2CP2jQ+irjP8TbpP5fiCJtm4BAEBclUURuzFxotnnBqkgZ3uQcCXncs75WAy5oHiKA1x8/NTd+mW8LN0+WIJl+UpdfJH91XSEZZfw8Kq4kpEzKRNeOq50JzMvNEupVCET1QXlWr8qzsbL6Yimt4Wft18YFyPVLUyfrlu43YOupbpGjFOxY6p/enjK+1uFiEvkhK4olLZygQ3RFiCRU9GV6bEfYYPMItUzquWC1QgOE+t4jIKnfVzoc+VllXnSJojBZ/0EkzkdAADiC5dzEKgVljxtp+B7u2j/jldf0YkQAMIIEAA6a6CzKuAvzkJftdjnrjWCy4P+v4PMiWogYJEiCiJKcpRhPRYvH0M8PyKEpAF7qgvxEqpET0uZdDw1kxitNmDej8/qs8XJdXupX+36PEuxgOcHPGb8dTNAJQcBEhnis/jK8SqT4qvl0TzKEOzT8myQcCp9lsELHYoUwOmILfqYQtFhPACJeFwgsMwvXkt0K9ulZqR+utB1pMLuTGv6D4WPQJzOR+SP5eHGvZHjxCIuX0nWb7mDZnKYzX/Argz6aE7e28jCas2ouavxMY7UZqXF41t75JjfnrlmR3aym1cb0380nln4iIoeqVTu+2TkBFOJibaoLh3EttYOBten94rd0SIF+28wx/3ojd1MjuWn6+oeuv5YxPqpiFZ+d1oKHP7Zjy0ibcfrVEhhuP5ZA0XNoQNCGmEX+R4JxH6kn6qxmk5NjAOB7BtDbT/IqZpeGzpKYGdc9zHNrW/bvE13ZpBSSzhil9PGNBiJXD8YBRm9obEI92MtzjoxtF7iOELqt5k3YbabOuwn27pBEWwCQBIAgOGRDgAgAgBAAqCogs6KZQbIVKpgQASMtB6bikhiVMMkDyAZBT4mFjQgaSEDEMsCaLiQTRvGVIZTzyJEOo8U+Un4ZwDw2R6QhMRZhRVnzkdljTurMQvjsmGMpffLD5eJyzXSZq6Rv3PjzUrWVKIdV+Pyo6XtOGcS+niZC47y629n2zOmJWfFzOl7cw9yGXmi3FvT4ny2EWTvFE90nLEblqEi20/sbXyw0L3y+gGsY5dr5FrZw/w7a03IZG38kfTcVqF+e0dqGW97r2xXYmKz/OlueeGw0oS/stfrpLiV9GVpemTiKvVVijYLrHrEcO12lulIzYEhD9yHk07U5IaPcde+54+YftTeNNSj/gFnW3Z7pr/XT7HKfcVvY3u4qb3Lb8aVelRMJd3+qUSd/BHLLgW+SmFzio02pAMqq76yz890XQFPbNJq00BwJG2ojExHGwnkpImnTwAAgJeqAHr5QlYIYITh24LZiw+EgMCliqW1Swu99Hl75tusSSpsOnZzKxZkYZBOpNg17Tj949rK6Lqf68C8khZvdmZJKlcYzbHRuDAmr4g8X4JYOYpzsmqgCf9M74dWWVZjyrr7/PECGlFIGLKsawiKXFJ4dnfNzfr+CBbUqHSrUZDXmlWa1LT+17tFmR/UjODALaamu9Tfv7IzdxeUnp3d5lb9rWDl0407tJrbXH0kiaksy9uvJfLuSoNGZu7rp1nZjR/+BfEeXH3u8YHgjTVlzmbm644xFxDekUfiZum+IEeda17wG7T8aKXuz916Q5aTuhawPTqiiAKiAAgoAKDz4vyJFAcoscVo8S4b2AwIjsNhSx2KE3kM8lgdE4It1uYDDMhFHpJtBp8ifiJ5GAU+9YHxo2NPcnxEJc/iLKMFPOvgpYnUO3KkgeBzNsypd0E61Xss79qCLXt4ggD5X6/y1WE5zgdLFIu5GTtHutySuSznkonsSTXpFA6Bd1wO4rE+F7ipTAdEfWITzBA78PJuQivac2U0vnZQMRnHdvURO8b6CKKJrU6r64goOfFdLJj7DMqK5uziTtUJlrkWXc1OJ4xxtf9MoqDNCgUxUTCfHVJ1dUEMKuxaC9YJUzrSyY031Qr6ZKpfYoXu1IYo1o14JhlP9gbpR+pLbcFn28lFNKX3Np0T5sUh7/SJnfXb7YXl+1or2S7G1j/J1yWLWeJUOf5Z6v1kqzwdkbaslvvCgHcHxMp57U5Ex+QnU3l1K78guGytqGtV245PbY+NuffVqSKmv66n7ICmGvaLlH+EskHSFCdyN3JKbBb8oZAKuBaM82MBbIc/YMvWjQf+gRH4kjQ5aeHbbsOX/CabICOX4U8UT28ntrM9xWTGgtouOorfD07EBCYr7Ye95+2OzVltMY57VBj0Zn1mxIwTAXInLkqM1ZOgVzLdQcniXS44LjdjJ5GRfmLHMd2DDAFIAoh8tJwvFNKz5zIL7IXeKsLFB4+IDNEh+STpi3MgKQAAYFwItwwAGs8DiOhc3aPcxZ8EACJnCh9/EkQKAIAhAyg8gHKpIjc/nt9+9RNWHOzM7pTt6WNEpWgPRE/yWS8/+T0kNrq8M44OVW8Ajmn3+GsTgkbABUjYTTbr0Z9+Jh0YvcXGWD1+QDfeXZzceIdwZIw/YF5uprenTVfNdyZC5LfqzU72w0b+Rh33JJQatDOb27klK7ASd9WpoPTnuPvqh6mD0m7hdRrAy0f4SOIGbwXdmsvdc997cHfHsGosexXYLcvtOX5KTrGMxwvbPSzh0cTxIeaZ4AvM5ogVSN+hVo2YAiPUvKG7Q+HEmwQO9bdPfQLM8MDBDBOYJu37+0ApZzZp/xB3BQ72rclol1Lqyfsnkw5Azez4Rx5nHvLHsXkK9uMnwgoAQM5SRrF0mUriRQm+E/9qDooxAACq9q6+NWXN3FlqKm6w++UlKVxI3Rf66T9rfKP1txwiP5sQ8bl6sl1gV8vikWh/+RW/n4wbqWOGgCW6rIOWrS1sf/clQ0JCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQp4afwdRMMFLNhfN2wAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyNS0wMS0xN1QxODowMDozOSswMDowMDazUncAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjUtMDEtMTdUMTg6MDA6MzkrMDA6MDBH7urLAAAAAElFTkSuQmCC
                    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.<br><br>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: <xml/>
              os: <xml/>
              devices: <xml/>
              features: <xml/>
              clock: <xml/>
              cpuTune: <xml/>
              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: '&laquo; 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 &raquo;
                    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: '&laquo; Previous'
                    active: false
                  - url: https://192.168.3.11/api/v1/connectivity/ipblocks?page=1
                    label: '1'
                    active: true
                  - url: null
                    label: Next &raquo;
                    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.<br><br>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.<br><br>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 loging 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: []
