ControlUp Machine API

Machine usage reports

Business capability
IT Infrastructure Management BC-600.50

Operations 4

GET /v1/machines/statistics/{grouping} Get machine statistics #
GET /v1/machines/sizing_recommendation/virtualization Get sizing recommendations for virtual environments #
GET /v1/machines/sizing_recommendation/azure Get sizing recommendation for machine for Azure environment #
GET /v1/machines/aggregated Get aggregated machine statistics #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/controlup-machine-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

controlup-machine-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: VDI & DAAS Machine API
  version: 1.0.0
  description: Machine usage reports
servers:
- url: https://api.controlup.com/historical
security:
- bearer-jwt:
  - read
  - write
tags:
- name: Machine
  description: Machine usage reports
paths:
  /v1/machines/statistics/{grouping}:
    get:
      tags:
      - Machine
      summary: Get machine statistics
      description: Returns historical information about machine resource consumption. Visit the <a href='https://support.controlup.com/docs/computer-statistics-report' target='_blank'>Machine Statistics Report</a> documentation for column descriptions and more details.
      operationId: getMachineStatsByMachine
      parameters:
      - name: grouping
        in: path
        description: Returns machine resource consumption statistics grouped by the specified entity
        required: true
        schema:
          type: string
          enum:
          - machine
          - host
          - folder
      - name: aggregationType
        in: query
        description: Set how machine statistics are aggregated during the selected time range. Avg returns the average of each metric. Max returns the maximum of each metric. Min returns the minimum of each metric. Worst returns either the maximum or minimum of each metric according to each metric type.
        required: true
        schema:
          type: string
          enum:
          - Avg
          - Max
          - Min
          - Worst
      - name: metricsType
        in: query
        description: The type of information to return. Default returns all available information.
        required: true
        schema:
          type: string
          enum:
          - Default
          - PVS
          - GPU
          - UserSessions
      - name: _timeFrom
        in: query
        description: 'Start date and time of the search period in the format: YYYY-MM-DD''T''hh:mm:ss.sssZ'
        required: true
        schema:
          type: string
          format: date-time
        example: '2025-02-01T00:00:00.000Z'
      - name: _timeTo
        in: query
        description: 'End date and time of the search period in the format: YYYY-MM-DD''T''hh:mm:ss.sssZ'
        required: true
        schema:
          type: string
          format: date-time
        example: '2025-02-02T00:00:00.000Z'
      - name: _page
        in: query
        description: The page number returned. The first page is 1.
        schema:
          type: integer
          format: int32
          minimum: 1
        example: 1
      - name: _limit
        in: query
        description: The number of items returned per page. Minimum is 1.
        schema:
          type: integer
          format: int32
          maximum: 100000
          minimum: 1
        example: 20
      responses:
        '200':
          description: Successfully retrieved
          content:
            application/json:
              schema:
                type: string
                oneOf:
                - $ref: '#/components/schemas/MachineStatisticsByMachineResponse'
                - $ref: '#/components/schemas/MachineStatisticsByFolderResponse'
                - $ref: '#/components/schemas/MachineStatisticsByHostResponse'
            application/xml:
              schema:
                type: string
                oneOf:
                - $ref: '#/components/schemas/MachineStatisticsByMachineResponse'
                - $ref: '#/components/schemas/MachineStatisticsByFolderResponse'
                - $ref: '#/components/schemas/MachineStatisticsByHostResponse'
        '400':
          description: Bad Request - one of the inputs isn't correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
        '401':
          description: User is not authorized to access the resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
        '403':
          description: Authorization details are not provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
        '501':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
        '504':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
  /v1/machines/sizing_recommendation/virtualization:
    get:
      tags:
      - Machine
      summary: Get sizing recommendations for virtual environments
      description: Returns sizing recommendations to optimize resource allocation for machines based on historical information. Visit the <a href='https://support.controlup.com/docs/sizing-recommendations-report' target='_blank'>Sizing Recommendations Report</a> documentation for more details.
      operationId: getRecommendationVirtualization
      parameters:
      - name: activeSessionSizing
        in: query
        description: 'Specifies which calculation method to use for sizing recommendations.


          false: Calculates utilization averages across a continuous 24/7 period, regardless of whether a session is active. This includes nights and weekends when machines might be idle. If your machines have significantly different resource utilization depending on whether a session is active, then this method can under-estimate a machine''s hardware requirements.


          true: Only calculates utilization averages when an active user session is detected. This can provide a more realistic view of hardware requirements by excluding idle time.'
        required: false
        schema:
          type: boolean
          default: false
        example: false
      - name: _page
        in: query
        description: The page number returned. The first page is 1.
        schema:
          type: integer
          format: int32
          minimum: 1
        example: 1
      - name: _limit
        in: query
        description: The number of items returned per page. Minimum is 1.
        schema:
          type: integer
          format: int32
          maximum: 100000
          minimum: 1
        example: 20
      responses:
        '200':
          description: Successfully retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SizingRecommendationVirtualizationResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/SizingRecommendationVirtualizationResponse'
        '400':
          description: Bad Request - one of the inputs isn't correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
        '401':
          description: User is not authorized to access the resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
        '403':
          description: Authorization details are not provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
        '501':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
        '504':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
  /v1/machines/sizing_recommendation/azure:
    get:
      tags:
      - Machine
      summary: Get sizing recommendation for machine for Azure environment
      description: Returns sizing recommendations to optimize resource allocation for machines based on historical information. Visit the <a href='https://support.controlup.com/docs/sizing-recommendations-report' target='_blank'>Sizing Recommendations Report</a> documentation for more details.
      operationId: getRecommendationAzure
      parameters:
      - name: license
        in: query
        description: Your license type for Microsoft Windows Virtual Machines. If you have Azure Hybrid Benefit, enter ‘Azure Hybrid Benefit’. If you purchase a new license for each machine, enter ‘OS (Windows)’.
        required: true
        schema:
          type: string
          enum:
          - Azure Hybrid Benefit
          - OS (Windows)
        example: Azure Hybrid Benefit
      - name: azureRegion
        in: query
        description: The Azure region where you want to see representative costs. You must provide the name of the region as it appears in the report creation UI.
        required: true
        schema:
          type: string
      - name: currency
        in: query
        description: The currency used for all cost information in the report.
        required: false
        schema:
          type: string
          default: USD
          enum:
          - USD
          - EUR
          - GBP
        example: USD
      - name: msEaDiscountRatePct
        in: query
        description: The discount rate percentage due to a Microsoft Enterprise Agreement. If you don’t have a discount rate, enter `0`.
        required: false
        schema:
          type: integer
          format: int32
          default: 0
          maximum: 100
          minimum: 0
        example: 0
      - name: acceleratedNetworking
        in: query
        description: Select whether you require VMs with or without Accelerated Networking. Enter `any` if you have no preference.
        required: false
        schema:
          type: string
          default: Any
          enum:
          - Any
          - 'True'
          - 'False'
        example: Any
      - name: memoryPreservingMaintenance
        in: query
        description: Select whether you require VMs with or without Memory Preserving Maintenance. Enter `any` if you have no preference.
        required: false
        schema:
          type: string
          default: Any
          enum:
          - Any
          - 'True'
          - 'False'
        example: Any
      - name: hyperVGeneration
        in: query
        description: Select the required Hyper-V generation for VMs. Enter `any` if you have no preference.
        required: false
        schema:
          type: string
          default: Any
          enum:
          - Any
          - V1
          - V2
          - ALL
        example: Any
      - name: cpuArchitectureType
        in: query
        description: Select the required CPU architecture for VMs. Enter `any` if you have no preference.
        required: false
        schema:
          type: string
          default: Any
          enum:
          - Any
          - X64
          - ARM64
        example: Any
      - name: vCPUsPerCore
        in: query
        description: Select the required vCPUs per core for VMs. Enter `any` if you have no preference.
        required: false
        schema:
          type: string
          enum:
          - Any
          - '1'
          - '2'
        example: Any
      - name: rdmaEnabled
        in: query
        description: Select whether you require RDMA-capable VMs. Enter `any` if you have no preference.
        required: false
        schema:
          type: string
          default: Any
          enum:
          - Any
          - 'True'
          - 'False'
        example: Any
      - name: premiumIO
        in: query
        description: Select whether you require VMs with premium IO. Enter `any` if you have no preference.
        required: false
        schema:
          type: string
          default: Any
          enum:
          - Any
          - 'True'
          - 'False'
        example: Any
      - name: encryptionAtHostSupport
        in: query
        description: Select whether you require VMs with encryption at host. Enter `any` if you have no preference.
        required: false
        schema:
          type: string
          default: Any
          enum:
          - Any
          - 'True'
          - 'False'
        example: Any
      - name: diskTier
        in: query
        description: Select your required disk tier. Enter `any` if you have no preference.
        required: false
        schema:
          type: string
          default: Any
          enum:
          - Any
          - Standard
          - Premium
          - Ultra
        example: Any
      - name: redundancy
        in: query
        description: Select your required disk redundancy option. Enter `any` if you have no preference.
        required: false
        schema:
          type: string
          default: Any
          enum:
          - Any
          - LRS
          - ZRS
        example: Any
      - name: minimumDiskSize
        in: query
        description: Select your required minimum disk size in GB. Enter `any` if you have no preference.
        required: false
        schema:
          type: string
          enum:
          - Any
          - '1'
          - '2'
          - '4'
          - '8'
          - '16'
          - '32'
          - '64'
          - '128'
          - '256'
          - '512'
          - '1024'
          - '2048'
          - '4096'
          - '8192'
          - '16384'
          - '32767'
        example: Any
      - name: costOption
        in: query
        description: Your Azure cost option. Select from pay as you go (`PAYG`), spot machines (`Spot`), reserved instance for one a one-year term (`RESERVED_ONE_YEAR`), or reserved instance for a three-year term (`RESERVED_THREE_YEAR).
        required: false
        schema:
          type: string
          default: PAYG
          enum:
          - PAYG
          - SPOT
          - RESERVED_ONE_YEAR
          - RESERVED_THREE_YEAR
        example: Any
      - name: _page
        in: query
        description: The page number returned. The first page is 1.
        schema:
          type: integer
          format: int32
          minimum: 1
        example: 1
      - name: _limit
        in: query
        description: The number of items returned per page. Minimum is 1.
        schema:
          type: integer
          format: int32
          maximum: 100000
          minimum: 1
        example: 20
      responses:
        '200':
          description: Successfully retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SizingRecommendationAzureResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/SizingRecommendationAzureResponse'
        '400':
          description: Bad Request - one of the inputs isn't correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
        '401':
          description: User is not authorized to access the resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
        '403':
          description: Authorization details are not provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
        '501':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
        '504':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
  /v1/machines/aggregated:
    get:
      tags:
      - Machine
      summary: Get aggregated machine statistics
      description: Returns aggregated machine metrics (avg/min/max/count) grouped by a single machine dimension such as folder, operating system, hypervisor platform, Azure region/VM size, or GPU architecture/model. Always returns machine_count (COUNT(DISTINCT computer_id)) plus one column per <metric>_<aggregation> combination. Visit the <a href='https://support.controlup.com/docs/computer-statistics-report' target='_blank'>Machine Statistics Report</a> documentation for column descriptions and more details.
      operationId: getMachinesAggregated
      parameters:
      - name: groupBy
        in: query
        description: Single machine dimension to group rows by.
        required: true
        schema:
          type: string
          enum:
          - folderPath
          - folderId
          - operatingSystem
          - hypervisorPlatform
          - azRegion
          - azVmSize
          - gpuArchitecture
          - gpuModel
      - name: metrics
        in: query
        description: One or more machine metrics to aggregate. Repeat the parameter for multiple values.
        required: true
        schema:
          type: array
          items:
            type: string
            enum:
            - cpu_avg
            - cpu_95_avg
            - cpu_ready_avg
            - memory_in_use_avg
            - system_drive_free_space_avg
            - logon_duration_avg
            - app_load_time_avg
            - processes_count_avg
            - avg_processor_queue_length_avg
            - page_faults_per_sec_avg
            - disk_read_kbyte_per_sec_avg
            - disk_write_kbyte_per_sec_avg
            - disk_total_kbyte_per_sec_avg
            - disk_reads_per_sec_avg
            - disk_writes_per_sec_avg
            - disk_transfers_per_sec_avg
            - avg_disk_queue_avg
            - network_received_mbit_per_sec_avg
            - network_sent_mbit_per_sec_avg
            - network_total_mbit_per_sec_avg
            - non_zero_avg_user_input_delay_avg
            - non_zero_max_user_input_delay_avg
            - gpu_utilization_avg
            - gpu_available_memory_avg
            - gpu_frame_buffer_size_avg
            - gpu_frame_buffer_memory_utilization_avg
            - gpu_memory_usage_avg
            - gpu_decoder_usage_avg
            - gpu_encoder_usage_avg
            - pvs_device_free_space_on_write_cache_drive_avg
            - pvs_ram_cache_usage_avg
            - pvs_target_device_health
            - pvs_device_write_cache_volume_size
            - total_sessions_avg
            - active_sessions_avg
            - user_sessions_count_avg
            - idle_sessions_count_avg
            - disconnected_sessions_avg
            - other_sessions_count_avg
            - ica_sessions_count_avg
            - session_disconnect_rate_avg
      - name: aggregations
        in: query
        description: 'Aggregation functions to apply to each metric. Repeat for multiple. Default: avg.'
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - avg
            - min
            - max
            - count
      - name: presetType
        in: query
        description: 'Metric compatibility scope. Restricts which metrics are valid. Default: Default (all metrics).'
        required: false
        schema:
          type: string
          default: Default
          enum:
          - Default
          - PVS
          - GPU
          - UserSessions
      - name: _sortBy
        in: query
        description: 'Response field to sort by (must equal a returned <metric>_<aggregation>, machine_count, or the groupBy field). Default: <first metric>_<first aggregation>.'
        required: false
        schema:
          type: string
      - name: _sortOrder
        in: query
        description: 'Sort order. Default: desc.'
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
      - name: _timeFrom
        in: query
        description: 'Start date and time of the search period in the format: YYYY-MM-DD''T''hh:mm:ss.sssZ'
        required: true
        schema:
          type: string
          format: date-time
        example: '2025-02-01T00:00:00.000Z'
      - name: _timeTo
        in: query
        description: 'End date and time of the search period in the format: YYYY-MM-DD''T''hh:mm:ss.sssZ'
        required: true
        schema:
          type: string
          format: date-time
        example: '2025-02-02T00:00:00.000Z'
      - name: operatingSystem
        in: query
        description: Filter machines whose operating system contains this value (pre-aggregation filter).
        required: false
        schema:
          type: string
      - name: hypervisorPlatform
        in: query
        description: Filter machines whose hypervisor platform contains this value (pre-aggregation filter).
        required: false
        schema:
          type: string
      - name: azRegion
        in: query
        description: Filter machines whose Azure region contains this value (pre-aggregation filter).
        required: false
        schema:
          type: string
      - name: azVmSize
        in: query
        description: Filter machines whose Azure VM size contains this value (pre-aggregation filter).
        required: false
        schema:
          type: string
      - name: vmName
        in: query
        description: Filter machines whose VM name contains this value (pre-aggregation filter).
        required: false
        schema:
          type: string
      - name: _page
        in: query
        description: The page number returned. The first page is 1.
        schema:
          type: integer
          format: int32
          minimum: 1
        example: 1
      - name: _limit
        in: query
        description: 'Grouped rows per page. Default: 100, maximum: 10000.'
        schema:
          type: integer
          format: int32
          maximum: 10000
          minimum: 1
        example: 100
      responses:
        '200':
          description: Successfully retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachineAggregatedResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/MachineAggregatedResponse'
        '400':
          description: Bad Request - one of the inputs isn't correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
        '401':
          description: User is not authorized to access the resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
        '403':
          description: Authorization details are not provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
        '501':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
        '504':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
components:
  schemas:
    MachineStatisticsByMachineResult:
      type: object
      description: Machine statistics with grouping by machine
      properties:
        organization_id:
          type: integer
          format: int64
        computer_id:
          type: string
        computer_name:
          type: string
        update_time:
          type: string
        operating_system:
          type: string
        cpu_count:
          type: integer
          format: int64
        cpu_model:
          type: string
        cpu_cores:
          type: integer
          format: int64
        cpu_sockets:
          type: integer
          format: int64
        cpu_speed:
          type: integer
          format: int64
        total_ram:
          type: integer
          format: int64
        dns_addresses:
          type: string
        host_name:
          type: string
        hypervisor_platform:
          type: string
        machine_logon_server:
          type: string
        machine_boot_time:
          type: string
        az_vm_size:
          type: string
        az_region:
          type: string
        az_resource_group:
          type: string
        az_subscription_id:
          type: string
        az_os_disk_sku_size:
          type: string
        az_disks_count:
          type: integer
          format: int64
        az_total_disks_size_gb:
          type: integer
          format: int64
        az_os_disk_size_gb:
          type: integer
          format: int64
        uptime_in_sec:
          type: integer
          format: int64
        cpu_avg:
          type: integer
          format: int64
        memory_in_use_avg:
          type: integer
          format: int64
        disk_read_kbyte_per_sec_avg:
          type: integer
          format: int64
        disk_write_kbyte_per_sec_avg:
          type: integer
          format: int64
        disk_total_kbyte_per_sec_avg:
          type: integer
          format: int64
        system_drive_free_space_avg:
          type: integer
          format: int64
        disk_reads_per_sec_avg:
          type: integer
          format: int64
        disk_writes_per_sec_avg:
          type: integer
          format: int64
        disk_transfers_per_sec_avg:
          type: integer
          format: int64
        network_received_mbit_per_sec_avg:
          type: integer
          format: int64
        network_sent_mbit_per_sec_avg:
          type: integer
          format: int64
        app_load_time_avg:
          type: integer
          format: int64
        non_zero_avg_user_input_delay_avg:
          type: integer
          format: int64
        non_zero_max_user_input_delay_avg:
          type: integer
          format: int64
        avg_disk_queue_avg:
          type: integer
          format: int64
        logon_duration_avg:
          type: integer
          format: int64
        page_faults_per_sec_avg:
          type: integer
          format: int64
        processes_count_avg:
          type: integer
          format: int64
        avg_processor_queue_length_avg:
          type: integer
          format: int64
        vm_name:
          type: string
        gpu_architecture:
          type: string
        gpu_model:
          type: string
        gpu_number_of_cores:
          type: integer
          format: int64
        gpu_nvidia_driver_version:
          type: string
        gpu_nvidia_license_port:
          type: string
        gpu_nvidia_license_server:
          type: string
        gpu_utilization_avg:
          type: integer
          format: int64
        gpu_available_memory_avg:
          type: integer
          format: int64
        gpu_frame_buffer_size_avg:
          type: integer
          format: int64
        gpu_frame_buffer_memory_utilization_avg:
          type: integer
          format: int64
        gpu_memory_usage_avg:
          type: integer
          format: int64
        gpu_decoder_usage_avg:
          type: integer
          format: int64
        gpu_encoder_usage_avg:
          type: integer
          format: int64
        pvs_device_boot_retry_count_last:
          type: integer
          format: int64
        pvs_device_boot_time_sec_last:
          type: integer
          format: int64
        pvs_device_disk_type:
          type: string
        pvs_device_server_reconnect_count_last:
          type: integer
          format: int64
        pvs_device_udp_retry_count_last:
          type: integer
          format: int64
        pvs_device_version:
          type: string
        pvs_device_write_cache_type:
          type: string
        pvs_device_write_cache_volume_size:
          type: integer
          format: int64
        pvs_target_device_health:
          type: integer
          format: int64
        pvs_vdisk_file_name:
          type: string
        pvs_vdisk_mode:
          type: string
        pvs_device_free_space_on_write_cache_drive_avg:
          type: integer
          format: int64
        pvs_ram_cache_usage_avg:
          type: integer
          format: int64
        total_sessions_avg:
          type: integer
          format: int64
        active_sessions_avg:
          type: integer
          format: int64
        user_sessions_count_avg:
          type: integer
          format: int64
        idle_sessions_count_avg:
          type: integer
          format: int64
        disconnected_sessions_avg:
          type: integer
   

# --- truncated at 32 KB (62 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/controlup/refs/heads/main/openapi/controlup-machine-api-openapi.yml