1openapi: 3.0.1 2info: 3 title: Cloud Hypervisor API 4 description: Local HTTP based API for managing and inspecting a cloud-hypervisor virtual machine. 5 license: 6 name: Apache 2.0 7 url: http://www.apache.org/licenses/LICENSE-2.0.html 8 version: 0.3.0 9 10servers: 11 - url: http://localhost/api/v1 12 13paths: 14 /vmm.ping: 15 get: 16 summary: Ping the VMM to check for API server availability 17 responses: 18 200: 19 description: The VMM information 20 content: 21 application/json: 22 schema: 23 $ref: "#/components/schemas/VmmPingResponse" 24 25 /vmm.shutdown: 26 put: 27 summary: Shuts the cloud-hypervisor VMM. 28 operationId: shutdownVMM 29 responses: 30 204: 31 description: The VMM successfully shutdown. 32 33 /vm.info: 34 get: 35 summary: Returns general information about the cloud-hypervisor Virtual Machine (VM) instance. 36 responses: 37 200: 38 description: The VM information 39 content: 40 application/json: 41 schema: 42 $ref: "#/components/schemas/VmInfo" 43 44 /vm.counters: 45 get: 46 summary: Get counters from the VM 47 responses: 48 200: 49 description: The VM counters 50 content: 51 application/json: 52 schema: 53 $ref: "#/components/schemas/VmCounters" 54 55 /vm.create: 56 put: 57 summary: Create the cloud-hypervisor Virtual Machine (VM) instance. The instance is not booted, only created. 58 operationId: createVM 59 requestBody: 60 description: The VM configuration 61 content: 62 application/json: 63 schema: 64 $ref: "#/components/schemas/VmConfig" 65 required: true 66 responses: 67 204: 68 description: The VM instance was successfully created. 69 70 /vm.delete: 71 put: 72 summary: Delete the cloud-hypervisor Virtual Machine (VM) instance. 73 operationId: deleteVM 74 responses: 75 204: 76 description: The VM instance was successfully deleted. 77 78 /vm.boot: 79 put: 80 summary: Boot the previously created VM instance. 81 operationId: bootVM 82 responses: 83 204: 84 description: The VM instance successfully booted. 85 404: 86 description: The VM instance could not boot because it is not created yet 87 88 /vm.pause: 89 put: 90 summary: Pause a previously booted VM instance. 91 operationId: pauseVM 92 responses: 93 204: 94 description: The VM instance successfully paused. 95 404: 96 description: The VM instance could not pause because it is not created yet 97 405: 98 description: The VM instance could not pause because it is not booted. 99 100 /vm.resume: 101 put: 102 summary: Resume a previously paused VM instance. 103 operationId: resumeVM 104 responses: 105 204: 106 description: The VM instance successfully paused. 107 404: 108 description: The VM instance could not resume because it is not booted yet 109 405: 110 description: The VM instance could not resume because it is not paused. 111 112 /vm.shutdown: 113 put: 114 summary: Shut the VM instance down. 115 operationId: shutdownVM 116 responses: 117 204: 118 description: The VM instance successfully shut down. 119 404: 120 description: The VM instance could not shut down because is not created. 121 405: 122 description: The VM instance could not shut down because it is not started. 123 124 /vm.reboot: 125 put: 126 summary: Reboot the VM instance. 127 operationId: rebootVM 128 responses: 129 204: 130 description: The VM instance successfully rebooted. 131 404: 132 description: The VM instance could not reboot because it is not created. 133 405: 134 description: The VM instance could not reboot because it is not booted. 135 136 /vm.power-button: 137 put: 138 summary: Trigger a power button in the VM 139 operationId: power-buttonVM 140 responses: 141 204: 142 description: Power button successfully triggered in the VM 143 404: 144 description: The button could not be triggered because it is not created yet 145 405: 146 description: The button could not be triggered because it is not booted. 147 148 /vm.resize: 149 put: 150 summary: Resize the VM 151 requestBody: 152 description: The target size for the VM 153 content: 154 application/json: 155 schema: 156 $ref: "#/components/schemas/VmResize" 157 required: true 158 responses: 159 204: 160 description: The VM instance was successfully resized. 161 404: 162 description: The VM instance could not be resized because it is not created. 163 429: 164 description: The VM instance could not be resized because a cpu removal is still pending. 165 166 /vm.resize-zone: 167 put: 168 summary: Resize a memory zone 169 requestBody: 170 description: The target size for the memory zone 171 content: 172 application/json: 173 schema: 174 $ref: "#/components/schemas/VmResizeZone" 175 required: true 176 responses: 177 204: 178 description: The memory zone was successfully resized. 179 500: 180 description: The memory zone could not be resized. 181 182 /vm.add-device: 183 put: 184 summary: Add a new device to the VM 185 requestBody: 186 description: The path of the new device 187 content: 188 application/json: 189 schema: 190 $ref: "#/components/schemas/DeviceConfig" 191 required: true 192 responses: 193 200: 194 description: The new device was successfully added to the VM instance. 195 content: 196 application/json: 197 schema: 198 $ref: "#/components/schemas/PciDeviceInfo" 199 204: 200 description: The new device was successfully (cold) added to the VM instance. 201 404: 202 description: The new device could not be added to the VM instance. 203 204 /vm.remove-device: 205 put: 206 summary: Remove a device from the VM 207 requestBody: 208 description: The identifier of the device 209 content: 210 application/json: 211 schema: 212 $ref: "#/components/schemas/VmRemoveDevice" 213 required: true 214 responses: 215 204: 216 description: The device was successfully removed from the VM instance. 217 404: 218 description: The device could not be removed from the VM instance. 219 220 /vm.add-disk: 221 put: 222 summary: Add a new disk to the VM 223 requestBody: 224 description: The details of the new disk 225 content: 226 application/json: 227 schema: 228 $ref: "#/components/schemas/DiskConfig" 229 required: true 230 responses: 231 200: 232 description: The new disk was successfully added to the VM instance. 233 content: 234 application/json: 235 schema: 236 $ref: "#/components/schemas/PciDeviceInfo" 237 204: 238 description: The new disk was successfully (cold) added to the VM instance. 239 500: 240 description: The new disk could not be added to the VM instance. 241 242 /vm.add-fs: 243 put: 244 summary: Add a new virtio-fs device to the VM 245 requestBody: 246 description: The details of the new virtio-fs 247 content: 248 application/json: 249 schema: 250 $ref: "#/components/schemas/FsConfig" 251 required: true 252 responses: 253 200: 254 description: The new device was successfully added to the VM instance. 255 content: 256 application/json: 257 schema: 258 $ref: "#/components/schemas/PciDeviceInfo" 259 204: 260 description: The new device was successfully (cold) added to the VM instance. 261 500: 262 description: The new device could not be added to the VM instance. 263 264 /vm.add-pmem: 265 put: 266 summary: Add a new pmem device to the VM 267 requestBody: 268 description: The details of the new pmem device 269 content: 270 application/json: 271 schema: 272 $ref: "#/components/schemas/PmemConfig" 273 required: true 274 responses: 275 200: 276 description: The new device was successfully added to the VM instance. 277 content: 278 application/json: 279 schema: 280 $ref: "#/components/schemas/PciDeviceInfo" 281 204: 282 description: The new device was successfully (cold) added to the VM instance. 283 500: 284 description: The new device could not be added to the VM instance. 285 286 /vm.add-net: 287 put: 288 summary: Add a new network device to the VM 289 requestBody: 290 description: The details of the new network device 291 content: 292 application/json: 293 schema: 294 $ref: "#/components/schemas/NetConfig" 295 required: true 296 responses: 297 200: 298 description: The new device was successfully added to the VM instance. 299 content: 300 application/json: 301 schema: 302 $ref: "#/components/schemas/PciDeviceInfo" 303 204: 304 description: The new device was successfully (cold) added to the VM instance. 305 500: 306 description: The new device could not be added to the VM instance. 307 308 /vm.add-vsock: 309 put: 310 summary: Add a new vsock device to the VM 311 requestBody: 312 description: The details of the new vsock device 313 content: 314 application/json: 315 schema: 316 $ref: "#/components/schemas/VsockConfig" 317 required: true 318 responses: 319 200: 320 description: The new device was successfully added to the VM instance. 321 content: 322 application/json: 323 schema: 324 $ref: "#/components/schemas/PciDeviceInfo" 325 204: 326 description: The new device was successfully (cold) added to the VM instance. 327 500: 328 description: The new device could not be added to the VM instance. 329 330 /vm.add-vdpa: 331 put: 332 summary: Add a new vDPA device to the VM 333 requestBody: 334 description: The details of the new vDPA device 335 content: 336 application/json: 337 schema: 338 $ref: "#/components/schemas/VdpaConfig" 339 required: true 340 responses: 341 200: 342 description: The new vDPA device was successfully added to the VM instance. 343 content: 344 application/json: 345 schema: 346 $ref: "#/components/schemas/PciDeviceInfo" 347 204: 348 description: The new vDPA device was successfully (cold) added to the VM instance. 349 500: 350 description: The new vDPA device could not be added to the VM instance. 351 352 /vm.add-user-device: 353 put: 354 requestBody: 355 content: 356 application/json: 357 schema: 358 $ref: '#/components/schemas/VmAddUserDevice' 359 description: The path of the new device 360 required: true 361 responses: 362 "200": 363 content: 364 application/json: 365 schema: 366 $ref: '#/components/schemas/PciDeviceInfo' 367 description: The new device was successfully added to the VM instance. 368 "204": 369 description: The new device was successfully (cold) added to the VM instance. 370 "404": 371 description: The new device could not be added to the VM instance. 372 summary: Add a new userspace device to the VM 373 374 /vm.snapshot: 375 put: 376 summary: Returns a VM snapshot. 377 requestBody: 378 description: The snapshot configuration 379 content: 380 application/json: 381 schema: 382 $ref: "#/components/schemas/VmSnapshotConfig" 383 required: true 384 responses: 385 204: 386 description: The VM instance was successfully snapshotted. 387 404: 388 description: The VM instance could not be snapshotted because it is not created. 389 405: 390 description: The VM instance could not be snapshotted because it is not booted. 391 392 /vm.coredump: 393 put: 394 summary: Takes a VM coredump. 395 requestBody: 396 description: The coredump configuration 397 content: 398 application/json: 399 schema: 400 $ref: "#/components/schemas/VmCoredumpData" 401 required: true 402 responses: 403 204: 404 description: The VM instance was successfully coredumped. 405 404: 406 description: The VM instance could not be coredumped because it is not created. 407 405: 408 description: The VM instance could not be coredumped because it is not booted. 409 410 /vmm.nmi: 411 put: 412 summary: Inject an NMI. 413 responses: 414 204: 415 description: The NMI successfully injected. 416 417 /vm.restore: 418 put: 419 summary: Restore a VM from a snapshot. 420 requestBody: 421 description: The restore configuration 422 content: 423 application/json: 424 schema: 425 $ref: "#/components/schemas/RestoreConfig" 426 required: true 427 responses: 428 204: 429 description: The VM instance was successfully restored. 430 404: 431 description: The VM instance could not be restored because it is already created. 432 433 /vm.receive-migration: 434 put: 435 summary: Receive a VM migration from URL 436 requestBody: 437 description: The URL for the reception of migration state 438 content: 439 application/json: 440 schema: 441 $ref: "#/components/schemas/ReceiveMigrationData" 442 required: true 443 responses: 444 204: 445 description: The VM migration was successfully received. 446 500: 447 description: The VM migration could not be received. 448 449 /vm.send-migration: 450 put: 451 summary: Send a VM migration to URL 452 requestBody: 453 description: The URL for sending the migration state 454 content: 455 application/json: 456 schema: 457 $ref: "#/components/schemas/SendMigrationData" 458 required: true 459 responses: 460 204: 461 description: The VM migration was successfully sent. 462 500: 463 description: The VM migration could not be sent. 464 465components: 466 schemas: 467 VmmPingResponse: 468 required: 469 - version 470 type: object 471 properties: 472 build_version: 473 type: string 474 version: 475 type: string 476 pid: 477 type: integer 478 format: int64 479 features: 480 type: array 481 items: 482 type: string 483 description: Virtual Machine Monitor information 484 485 VmInfo: 486 required: 487 - config 488 - state 489 type: object 490 properties: 491 config: 492 $ref: "#/components/schemas/VmConfig" 493 state: 494 type: string 495 enum: [Created, Running, Shutdown, Paused] 496 memory_actual_size: 497 type: integer 498 format: int64 499 device_tree: 500 type: object 501 additionalProperties: 502 $ref: "#/components/schemas/DeviceNode" 503 description: Virtual Machine information 504 505 DeviceNode: 506 type: object 507 properties: 508 id: 509 type: string 510 resources: 511 type: array 512 items: 513 # Rust enum type (with data) which can't be better represented here 514 type: object 515 children: 516 type: array 517 items: 518 type: string 519 pci_bdf: 520 type: string 521 522 VmCounters: 523 type: object 524 additionalProperties: 525 type: object 526 additionalProperties: 527 type: integer 528 format: int64 529 530 PciDeviceInfo: 531 required: 532 - id 533 - bdf 534 type: object 535 properties: 536 id: 537 type: string 538 bdf: 539 type: string 540 description: Information about a PCI device 541 542 PayloadConfig: 543 type: object 544 properties: 545 firmware: 546 type: string 547 kernel: 548 type: string 549 cmdline: 550 type: string 551 initramfs: 552 type: string 553 igvm: 554 type: string 555 host_data: 556 type: string 557 description: Payloads to boot in guest 558 559 VmConfig: 560 required: 561 - payload 562 type: object 563 properties: 564 cpus: 565 $ref: "#/components/schemas/CpusConfig" 566 memory: 567 $ref: "#/components/schemas/MemoryConfig" 568 payload: 569 $ref: "#/components/schemas/PayloadConfig" 570 rate_limit_groups: 571 type: array 572 items: 573 $ref: "#/components/schemas/RateLimitGroupConfig" 574 disks: 575 type: array 576 items: 577 $ref: "#/components/schemas/DiskConfig" 578 net: 579 type: array 580 items: 581 $ref: "#/components/schemas/NetConfig" 582 rng: 583 $ref: "#/components/schemas/RngConfig" 584 balloon: 585 $ref: "#/components/schemas/BalloonConfig" 586 fs: 587 type: array 588 items: 589 $ref: "#/components/schemas/FsConfig" 590 pmem: 591 type: array 592 items: 593 $ref: "#/components/schemas/PmemConfig" 594 serial: 595 $ref: "#/components/schemas/ConsoleConfig" 596 console: 597 $ref: "#/components/schemas/ConsoleConfig" 598 debug_console: 599 $ref: "#/components/schemas/DebugConsoleConfig" 600 devices: 601 type: array 602 items: 603 $ref: "#/components/schemas/DeviceConfig" 604 vdpa: 605 type: array 606 items: 607 $ref: "#/components/schemas/VdpaConfig" 608 vsock: 609 $ref: "#/components/schemas/VsockConfig" 610 sgx_epc: 611 type: array 612 items: 613 $ref: "#/components/schemas/SgxEpcConfig" 614 numa: 615 type: array 616 items: 617 $ref: "#/components/schemas/NumaConfig" 618 iommu: 619 type: boolean 620 default: false 621 watchdog: 622 type: boolean 623 default: false 624 pvpanic: 625 type: boolean 626 default: false 627 pci_segments: 628 type: array 629 items: 630 $ref: "#/components/schemas/PciSegmentConfig" 631 platform: 632 $ref: "#/components/schemas/PlatformConfig" 633 tpm: 634 $ref: "#/components/schemas/TpmConfig" 635 landlock_enable: 636 type: boolean 637 default: false 638 landlock_rules: 639 type: array 640 items: 641 $ref: "#/components/schemas/LandlockConfig" 642 description: Virtual machine configuration 643 644 CpuAffinity: 645 required: 646 - vcpu 647 - host_cpus 648 type: object 649 properties: 650 vcpu: 651 type: integer 652 host_cpus: 653 type: array 654 items: 655 type: integer 656 657 CpuFeatures: 658 type: object 659 properties: 660 amx: 661 type: boolean 662 663 CpuTopology: 664 type: object 665 properties: 666 threads_per_core: 667 type: integer 668 cores_per_die: 669 type: integer 670 dies_per_package: 671 type: integer 672 packages: 673 type: integer 674 675 CpusConfig: 676 required: 677 - boot_vcpus 678 - max_vcpus 679 type: object 680 properties: 681 boot_vcpus: 682 minimum: 1 683 type: integer 684 max_vcpus: 685 minimum: 1 686 type: integer 687 topology: 688 $ref: "#/components/schemas/CpuTopology" 689 kvm_hyperv: 690 type: boolean 691 default: false 692 max_phys_bits: 693 type: integer 694 affinity: 695 type: array 696 items: 697 $ref: "#/components/schemas/CpuAffinity" 698 features: 699 $ref: "#/components/schemas/CpuFeatures" 700 701 PciSegmentConfig: 702 required: 703 - pci_segment 704 type: object 705 properties: 706 pci_segment: 707 type: integer 708 format: int16 709 mmio32_aperture_weight: 710 type: integer 711 format: int32 712 mmio64_aperture_weight: 713 type: integer 714 format: int32 715 716 PlatformConfig: 717 type: object 718 properties: 719 num_pci_segments: 720 type: integer 721 format: int16 722 iommu_segments: 723 type: array 724 items: 725 type: integer 726 format: int16 727 iommu_address_width: 728 type: integer 729 format: uint8 730 serial_number: 731 type: string 732 uuid: 733 type: string 734 oem_strings: 735 type: array 736 items: 737 type: string 738 tdx: 739 type: boolean 740 default: false 741 sev_snp: 742 type: boolean 743 default: false 744 745 MemoryZoneConfig: 746 required: 747 - id 748 - size 749 type: object 750 properties: 751 id: 752 type: string 753 size: 754 type: integer 755 format: int64 756 file: 757 type: string 758 mergeable: 759 type: boolean 760 default: false 761 shared: 762 type: boolean 763 default: false 764 hugepages: 765 type: boolean 766 default: false 767 hugepage_size: 768 type: integer 769 format: int64 770 host_numa_node: 771 type: integer 772 format: int32 773 hotplug_size: 774 type: integer 775 format: int64 776 hotplugged_size: 777 type: integer 778 format: int64 779 prefault: 780 type: boolean 781 default: false 782 783 MemoryConfig: 784 required: 785 - size 786 type: object 787 properties: 788 size: 789 type: integer 790 format: int64 791 hotplug_size: 792 type: integer 793 format: int64 794 hotplugged_size: 795 type: integer 796 format: int64 797 mergeable: 798 type: boolean 799 default: false 800 hotplug_method: 801 type: string 802 default: "Acpi" 803 shared: 804 type: boolean 805 default: false 806 hugepages: 807 type: boolean 808 default: false 809 hugepage_size: 810 type: integer 811 format: int64 812 prefault: 813 type: boolean 814 default: false 815 thp: 816 type: boolean 817 default: true 818 zones: 819 type: array 820 items: 821 $ref: "#/components/schemas/MemoryZoneConfig" 822 823 TokenBucket: 824 required: 825 - size 826 - refill_time 827 type: object 828 properties: 829 size: 830 type: integer 831 format: int64 832 minimum: 0 833 description: The total number of tokens this bucket can hold. 834 one_time_burst: 835 type: integer 836 format: int64 837 minimum: 0 838 description: The initial size of a token bucket. 839 refill_time: 840 type: integer 841 format: int64 842 minimum: 0 843 description: The amount of milliseconds it takes for the bucket to refill. 844 description: 845 Defines a token bucket with a maximum capacity (_size_), an initial burst size 846 (_one_time_burst_) and an interval for refilling purposes (_refill_time_). 847 The refill-rate is derived from _size_ and _refill_time_, and it is the constant 848 rate at which the tokens replenish. The refill process only starts happening after 849 the initial burst budget is consumed. 850 Consumption from the token bucket is unbounded in speed which allows for bursts 851 bound in size by the amount of tokens available. 852 Once the token bucket is empty, consumption speed is bound by the refill-rate. 853 854 RateLimiterConfig: 855 type: object 856 properties: 857 bandwidth: 858 $ref: "#/components/schemas/TokenBucket" 859 ops: 860 $ref: "#/components/schemas/TokenBucket" 861 description: 862 Defines an IO rate limiter with independent bytes/s and ops/s limits. 863 Limits are defined by configuring each of the _bandwidth_ and _ops_ token buckets. 864 865 RateLimitGroupConfig: 866 required: 867 - id 868 - rate_limiter_config 869 type: object 870 properties: 871 id: 872 type: string 873 rate_limiter_config: 874 $ref: "#/components/schemas/RateLimiterConfig" 875 876 VirtQueueAffinity: 877 required: 878 - queue_index 879 - host_cpus 880 type: object 881 properties: 882 queue_index: 883 type: integer 884 host_cpus: 885 type: array 886 items: 887 type: integer 888 889 DiskConfig: 890 type: object 891 properties: 892 path: 893 type: string 894 readonly: 895 type: boolean 896 default: false 897 direct: 898 type: boolean 899 default: false 900 iommu: 901 type: boolean 902 default: false 903 num_queues: 904 type: integer 905 default: 1 906 queue_size: 907 type: integer 908 default: 128 909 vhost_user: 910 type: boolean 911 default: false 912 vhost_socket: 913 type: string 914 rate_limiter_config: 915 $ref: "#/components/schemas/RateLimiterConfig" 916 pci_segment: 917 type: integer 918 format: int16 919 id: 920 type: string 921 serial: 922 type: string 923 rate_limit_group: 924 type: string 925 queue_affinity: 926 type: array 927 items: 928 $ref: "#/components/schemas/VirtQueueAffinity" 929 930 NetConfig: 931 type: object 932 properties: 933 tap: 934 type: string 935 ip: 936 type: string 937 default: "192.168.249.1" 938 description: IPv4 or IPv6 address 939 mask: 940 type: string 941 default: "255.255.255.0" 942 description: Must be a valid IPv4 netmask if ip is an IPv4 address or a valid IPv6 netmask if ip is an IPv6 address. 943 mac: 944 type: string 945 host_mac: 946 type: string 947 mtu: 948 type: integer 949 iommu: 950 type: boolean 951 default: false 952 num_queues: 953 type: integer 954 default: 2 955 queue_size: 956 type: integer 957 default: 256 958 vhost_user: 959 type: boolean 960 default: false 961 vhost_socket: 962 type: string 963 vhost_mode: 964 type: string 965 default: "Client" 966 id: 967 type: string 968 pci_segment: 969 type: integer 970 format: int16 971 rate_limiter_config: 972 $ref: "#/components/schemas/RateLimiterConfig" 973 974 RngConfig: 975 required: 976 - src 977 type: object 978 properties: 979 src: 980 type: string 981 iommu: 982 type: boolean 983 default: false 984 985 BalloonConfig: 986 required: 987 - size 988 type: object 989 properties: 990 size: 991 type: integer 992 format: int64 993 deflate_on_oom: 994 type: boolean 995 default: false 996 description: Deflate balloon when the guest is under memory pressure. 997 free_page_reporting: 998 type: boolean 999 default: false 1000 description: Enable guest to report free pages. 1001 1002 FsConfig: 1003 required: 1004 - num_queues 1005 - queue_size 1006 - socket 1007 - tag 1008 type: object 1009 properties: 1010 tag: 1011 type: string 1012 socket: 1013 type: string 1014 num_queues: 1015 type: integer 1016 default: 1 1017 queue_size: 1018 type: integer 1019 default: 1024 1020 pci_segment: 1021 type: integer 1022 format: int16 1023 id: 1024 type: string 1025 1026 PmemConfig: 1027 required: 1028 - file 1029 type: object 1030 properties: 1031 file: 1032 type: string 1033 size: 1034 type: integer 1035 format: int64 1036 iommu: 1037 type: boolean 1038 default: false 1039 discard_writes: 1040 type: boolean 1041 default: false 1042 pci_segment: 1043 type: integer 1044 format: int16 1045 id: 1046 type: string 1047 1048 ConsoleConfig: 1049 required: 1050 - mode 1051 type: object 1052 properties: 1053 file: 1054 type: string 1055 socket: 1056 type: string 1057 mode: 1058 type: string 1059 enum: ["Off", "Pty", "Tty", "File", "Socket", "Null"] 1060 iommu: 1061 type: boolean 1062 default: false 1063 1064 DebugConsoleConfig: 1065 required: 1066 - mode 1067 type: object 1068 properties: 1069 file: 1070 type: string 1071 mode: 1072 type: string 1073 enum: ["Off", "Pty", "Tty", "File", "Null"] 1074 iobase: 1075 type: integer 1076 1077 DeviceConfig: 1078 required: 1079 - path 1080 type: object 1081 properties: 1082 path: 1083 type: string 1084 iommu: 1085 type: boolean 1086 default: false 1087 pci_segment: 1088 type: integer 1089 format: int16 1090 id: 1091 type: string 1092 x_nv_gpudirect_clique: 1093 type: integer 1094 format: int8 1095 TpmConfig: 1096 required: 1097 - socket 1098 type: object 1099 properties: 1100 socket: 1101 type: string 1102 1103 VdpaConfig: 1104 required: 1105 - path 1106 - num_queues 1107 type: object 1108 properties: 1109 path: 1110 type: string 1111 num_queues: 1112 type: integer 1113 default: 1 1114 iommu: 1115 type: boolean 1116 default: false 1117 pci_segment: 1118 type: integer 1119 format: int16 1120 id: 1121 type: string 1122 1123 VsockConfig: 1124 required: 1125 - cid 1126 - socket 1127 type: object 1128 properties: 1129 cid: 1130 type: integer 1131 format: int64 1132 minimum: 3 1133 description: Guest Vsock CID 1134 socket: 1135 type: string 1136 description: Path to UNIX domain socket, used to proxy vsock connections. 1137 iommu: 1138 type: boolean 1139 default: false 1140 pci_segment: 1141 type: integer 1142 format: int16 1143 id: 1144 type: string 1145 1146 SgxEpcConfig: 1147 required: 1148 - id 1149 - size 1150 type: object 1151 properties: 1152 id: 1153 type: string 1154 size: 1155 type: integer 1156 format: int64 1157 prefault: 1158 type: boolean 1159 default: false 1160 1161 NumaDistance: 1162 required: 1163 - destination 1164 - distance 1165 type: object 1166 properties: 1167 destination: 1168 type: integer 1169 format: int32 1170 distance: 1171 type: integer 1172 format: int32 1173 1174 NumaConfig: 1175 required: 1176 - guest_numa_id 1177 type: object 1178 properties: 1179 guest_numa_id: 1180 type: integer 1181 format: int32 1182 cpus: 1183 type: array 1184 items: 1185 type: integer 1186 format: int32 1187 distances: 1188 type: array 1189 items: 1190 $ref: "#/components/schemas/NumaDistance" 1191 memory_zones: 1192 type: array 1193 items: 1194 type: string 1195 sgx_epc_sections: 1196 type: array 1197 items: 1198 type: string 1199 pci_segments: 1200 type: array 1201 items: 1202 type: integer 1203 format: int32 1204 1205 VmResize: 1206 type: object 1207 properties: 1208 desired_vcpus: 1209 minimum: 1 1210 type: integer 1211 desired_ram: 1212 description: desired memory ram in bytes 1213 type: integer 1214 format: int64 1215 desired_balloon: 1216 description: desired balloon size in bytes 1217 type: integer 1218 format: int64 1219 1220 VmResizeZone: 1221 type: object 1222 properties: 1223 id: 1224 type: string 1225 desired_ram: 1226 description: desired memory zone size in bytes 1227 type: integer 1228 format: int64 1229 1230 VmRemoveDevice: 1231 type: object 1232 properties: 1233 id: 1234 type: string 1235 1236 VmSnapshotConfig: 1237 type: object 1238 properties: 1239 destination_url: 1240 type: string 1241 1242 VmCoredumpData: 1243 type: object 1244 properties: 1245 destination_url: 1246 type: string 1247 1248 RestoreConfig: 1249 required: 1250 - source_url 1251 type: object 1252 properties: 1253 source_url: 1254 type: string 1255 prefault: 1256 type: boolean 1257 1258 ReceiveMigrationData: 1259 required: 1260 - receiver_url 1261 type: object 1262 properties: 1263 receiver_url: 1264 type: string 1265 1266 SendMigrationData: 1267 required: 1268 - destination_url 1269 type: object 1270 properties: 1271 destination_url: 1272 type: string 1273 local: 1274 type: boolean 1275 1276 VmAddUserDevice: 1277 required: 1278 - socket 1279 type: object 1280 properties: 1281 socket: 1282 type: string 1283 1284 LandlockConfig: 1285 required: 1286 - path 1287 - access 1288 type: object 1289 properties: 1290 path: 1291 type: string 1292 access: 1293 type: string 1294