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