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