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 default: 1 671 type: integer 672 max_vcpus: 673 minimum: 1 674 default: 1 675 type: integer 676 topology: 677 $ref: "#/components/schemas/CpuTopology" 678 kvm_hyperv: 679 type: boolean 680 default: false 681 max_phys_bits: 682 type: integer 683 affinity: 684 type: array 685 items: 686 $ref: "#/components/schemas/CpuAffinity" 687 features: 688 $ref: "#/components/schemas/CpuFeatures" 689 690 PciSegmentConfig: 691 required: 692 - pci_segment 693 type: object 694 properties: 695 pci_segment: 696 type: integer 697 format: int16 698 mmio32_aperture_weight: 699 type: integer 700 format: int32 701 mmio64_aperture_weight: 702 type: integer 703 format: int32 704 705 PlatformConfig: 706 type: object 707 properties: 708 num_pci_segments: 709 type: integer 710 format: int16 711 iommu_segments: 712 type: array 713 items: 714 type: integer 715 format: int16 716 serial_number: 717 type: string 718 uuid: 719 type: string 720 oem_strings: 721 type: array 722 items: 723 type: string 724 tdx: 725 type: boolean 726 default: false 727 728 MemoryZoneConfig: 729 required: 730 - id 731 - size 732 type: object 733 properties: 734 id: 735 type: string 736 size: 737 type: integer 738 format: int64 739 default: 512 MB 740 file: 741 type: string 742 mergeable: 743 type: boolean 744 default: false 745 shared: 746 type: boolean 747 default: false 748 hugepages: 749 type: boolean 750 default: false 751 hugepage_size: 752 type: integer 753 format: int64 754 host_numa_node: 755 type: integer 756 format: int32 757 hotplug_size: 758 type: integer 759 format: int64 760 hotplugged_size: 761 type: integer 762 format: int64 763 prefault: 764 type: boolean 765 default: false 766 767 MemoryConfig: 768 required: 769 - size 770 type: object 771 properties: 772 size: 773 type: integer 774 format: int64 775 default: 512 MB 776 hotplug_size: 777 type: integer 778 format: int64 779 hotplugged_size: 780 type: integer 781 format: int64 782 mergeable: 783 type: boolean 784 default: false 785 hotplug_method: 786 type: string 787 default: "Acpi" 788 shared: 789 type: boolean 790 default: false 791 hugepages: 792 type: boolean 793 default: false 794 hugepage_size: 795 type: integer 796 format: int64 797 prefault: 798 type: boolean 799 default: false 800 thp: 801 type: boolean 802 default: true 803 zones: 804 type: array 805 items: 806 $ref: "#/components/schemas/MemoryZoneConfig" 807 808 TokenBucket: 809 required: 810 - size 811 - refill_time 812 type: object 813 properties: 814 size: 815 type: integer 816 format: int64 817 minimum: 0 818 description: The total number of tokens this bucket can hold. 819 one_time_burst: 820 type: integer 821 format: int64 822 minimum: 0 823 description: The initial size of a token bucket. 824 refill_time: 825 type: integer 826 format: int64 827 minimum: 0 828 description: The amount of milliseconds it takes for the bucket to refill. 829 description: 830 Defines a token bucket with a maximum capacity (_size_), an initial burst size 831 (_one_time_burst_) and an interval for refilling purposes (_refill_time_). 832 The refill-rate is derived from _size_ and _refill_time_, and it is the constant 833 rate at which the tokens replenish. The refill process only starts happening after 834 the initial burst budget is consumed. 835 Consumption from the token bucket is unbounded in speed which allows for bursts 836 bound in size by the amount of tokens available. 837 Once the token bucket is empty, consumption speed is bound by the refill-rate. 838 839 RateLimiterConfig: 840 type: object 841 properties: 842 bandwidth: 843 $ref: "#/components/schemas/TokenBucket" 844 ops: 845 $ref: "#/components/schemas/TokenBucket" 846 description: 847 Defines an IO rate limiter with independent bytes/s and ops/s limits. 848 Limits are defined by configuring each of the _bandwidth_ and _ops_ token buckets. 849 850 RateLimitGroupConfig: 851 required: 852 - id 853 - rate_limiter_config 854 type: object 855 properties: 856 id: 857 type: string 858 rate_limiter_config: 859 $ref: "#/components/schemas/RateLimiterConfig" 860 861 VirtQueueAffinity: 862 required: 863 - queue_index 864 - host_cpus 865 type: object 866 properties: 867 queue_index: 868 type: integer 869 host_cpus: 870 type: array 871 items: 872 type: integer 873 874 DiskConfig: 875 required: 876 - path 877 type: object 878 properties: 879 path: 880 type: string 881 readonly: 882 type: boolean 883 default: false 884 direct: 885 type: boolean 886 default: false 887 iommu: 888 type: boolean 889 default: false 890 num_queues: 891 type: integer 892 default: 1 893 queue_size: 894 type: integer 895 default: 128 896 vhost_user: 897 type: boolean 898 default: false 899 vhost_socket: 900 type: string 901 rate_limiter_config: 902 $ref: "#/components/schemas/RateLimiterConfig" 903 pci_segment: 904 type: integer 905 format: int16 906 id: 907 type: string 908 serial: 909 type: string 910 rate_limit_group: 911 type: string 912 queue_affinity: 913 type: array 914 items: 915 $ref: "#/components/schemas/VirtQueueAffinity" 916 917 NetConfig: 918 type: object 919 properties: 920 tap: 921 type: string 922 ip: 923 type: string 924 default: "192.168.249.1" 925 mask: 926 type: string 927 default: "255.255.255.0" 928 mac: 929 type: string 930 host_mac: 931 type: string 932 mtu: 933 type: integer 934 iommu: 935 type: boolean 936 default: false 937 num_queues: 938 type: integer 939 default: 2 940 queue_size: 941 type: integer 942 default: 256 943 vhost_user: 944 type: boolean 945 default: false 946 vhost_socket: 947 type: string 948 vhost_mode: 949 type: string 950 default: "Client" 951 id: 952 type: string 953 pci_segment: 954 type: integer 955 format: int16 956 rate_limiter_config: 957 $ref: "#/components/schemas/RateLimiterConfig" 958 959 RngConfig: 960 required: 961 - src 962 type: object 963 properties: 964 src: 965 type: string 966 default: "/dev/urandom" 967 iommu: 968 type: boolean 969 default: false 970 971 BalloonConfig: 972 required: 973 - size 974 type: object 975 properties: 976 size: 977 type: integer 978 format: int64 979 deflate_on_oom: 980 type: boolean 981 default: false 982 description: Deflate balloon when the guest is under memory pressure. 983 free_page_reporting: 984 type: boolean 985 default: false 986 description: Enable guest to report free pages. 987 988 FsConfig: 989 required: 990 - num_queues 991 - queue_size 992 - socket 993 - tag 994 type: object 995 properties: 996 tag: 997 type: string 998 socket: 999 type: string 1000 num_queues: 1001 type: integer 1002 default: 1 1003 queue_size: 1004 type: integer 1005 default: 1024 1006 pci_segment: 1007 type: integer 1008 format: int16 1009 id: 1010 type: string 1011 1012 PmemConfig: 1013 required: 1014 - file 1015 type: object 1016 properties: 1017 file: 1018 type: string 1019 size: 1020 type: integer 1021 format: int64 1022 iommu: 1023 type: boolean 1024 default: false 1025 discard_writes: 1026 type: boolean 1027 default: false 1028 pci_segment: 1029 type: integer 1030 format: int16 1031 id: 1032 type: string 1033 1034 ConsoleConfig: 1035 required: 1036 - mode 1037 type: object 1038 properties: 1039 file: 1040 type: string 1041 socket: 1042 type: string 1043 mode: 1044 type: string 1045 enum: ["Off", "Pty", "Tty", "File", "Socket", "Null"] 1046 iommu: 1047 type: boolean 1048 default: false 1049 1050 DebugConsoleConfig: 1051 required: 1052 - mode 1053 type: object 1054 properties: 1055 file: 1056 type: string 1057 mode: 1058 type: string 1059 enum: ["Off", "Pty", "Tty", "File", "Null"] 1060 iobase: 1061 type: integer 1062 1063 DeviceConfig: 1064 required: 1065 - path 1066 type: object 1067 properties: 1068 path: 1069 type: string 1070 iommu: 1071 type: boolean 1072 default: false 1073 pci_segment: 1074 type: integer 1075 format: int16 1076 id: 1077 type: string 1078 x_nv_gpudirect_clique: 1079 type: integer 1080 format: int8 1081 TpmConfig: 1082 required: 1083 - socket 1084 type: object 1085 properties: 1086 socket: 1087 type: string 1088 1089 VdpaConfig: 1090 required: 1091 - path 1092 - num_queues 1093 type: object 1094 properties: 1095 path: 1096 type: string 1097 num_queues: 1098 type: integer 1099 default: 1 1100 iommu: 1101 type: boolean 1102 default: false 1103 pci_segment: 1104 type: integer 1105 format: int16 1106 id: 1107 type: string 1108 1109 VsockConfig: 1110 required: 1111 - cid 1112 - socket 1113 type: object 1114 properties: 1115 cid: 1116 type: integer 1117 format: int64 1118 minimum: 3 1119 description: Guest Vsock CID 1120 socket: 1121 type: string 1122 description: Path to UNIX domain socket, used to proxy vsock connections. 1123 iommu: 1124 type: boolean 1125 default: false 1126 pci_segment: 1127 type: integer 1128 format: int16 1129 id: 1130 type: string 1131 1132 SgxEpcConfig: 1133 required: 1134 - id 1135 - size 1136 type: object 1137 properties: 1138 id: 1139 type: string 1140 size: 1141 type: integer 1142 format: int64 1143 prefault: 1144 type: boolean 1145 default: false 1146 1147 NumaDistance: 1148 required: 1149 - destination 1150 - distance 1151 type: object 1152 properties: 1153 destination: 1154 type: integer 1155 format: int32 1156 distance: 1157 type: integer 1158 format: int32 1159 1160 NumaConfig: 1161 required: 1162 - guest_numa_id 1163 type: object 1164 properties: 1165 guest_numa_id: 1166 type: integer 1167 format: int32 1168 cpus: 1169 type: array 1170 items: 1171 type: integer 1172 format: int32 1173 distances: 1174 type: array 1175 items: 1176 $ref: "#/components/schemas/NumaDistance" 1177 memory_zones: 1178 type: array 1179 items: 1180 type: string 1181 sgx_epc_sections: 1182 type: array 1183 items: 1184 type: string 1185 pci_segments: 1186 type: array 1187 items: 1188 type: integer 1189 format: int32 1190 1191 VmResize: 1192 type: object 1193 properties: 1194 desired_vcpus: 1195 minimum: 1 1196 type: integer 1197 desired_ram: 1198 description: desired memory ram in bytes 1199 type: integer 1200 format: int64 1201 desired_balloon: 1202 description: desired balloon size in bytes 1203 type: integer 1204 format: int64 1205 1206 VmResizeZone: 1207 type: object 1208 properties: 1209 id: 1210 type: string 1211 desired_ram: 1212 description: desired memory zone size in bytes 1213 type: integer 1214 format: int64 1215 1216 VmRemoveDevice: 1217 type: object 1218 properties: 1219 id: 1220 type: string 1221 1222 VmSnapshotConfig: 1223 type: object 1224 properties: 1225 destination_url: 1226 type: string 1227 1228 VmCoredumpData: 1229 type: object 1230 properties: 1231 destination_url: 1232 type: string 1233 1234 RestoreConfig: 1235 required: 1236 - source_url 1237 type: object 1238 properties: 1239 source_url: 1240 type: string 1241 prefault: 1242 type: boolean 1243 1244 ReceiveMigrationData: 1245 required: 1246 - receiver_url 1247 type: object 1248 properties: 1249 receiver_url: 1250 type: string 1251 1252 SendMigrationData: 1253 required: 1254 - destination_url 1255 type: object 1256 properties: 1257 destination_url: 1258 type: string 1259 local: 1260 type: boolean 1261 1262 VmAddUserDevice: 1263 required: 1264 - socket 1265 type: object 1266 properties: 1267 socket: 1268 type: string 1269