xref: /cloud-hypervisor/vmm/src/api/openapi/cloud-hypervisor.yaml (revision 5e52729453cb62edbe4fb3a4aa24f8cca31e667e)
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.snapshot:
351    put:
352      summary: Returns a VM snapshot.
353      requestBody:
354        description: The snapshot configuration
355        content:
356          application/json:
357            schema:
358              $ref: "#/components/schemas/VmSnapshotConfig"
359        required: true
360      responses:
361        204:
362          description: The VM instance was successfully snapshotted.
363        404:
364          description: The VM instance could not be snapshotted because it is not created.
365        405:
366          description: The VM instance could not be snapshotted because it is not booted.
367
368  /vm.coredump:
369    put:
370      summary: Takes a VM coredump.
371      requestBody:
372        description: The coredump configuration
373        content:
374          application/json:
375            schema:
376              $ref: "#/components/schemas/VmCoredumpData"
377        required: true
378      responses:
379        204:
380          description: The VM instance was successfully coredumped.
381        404:
382          description: The VM instance could not be coredumped because it is not created.
383        405:
384          description: The VM instance could not be coredumped because it is not booted.
385
386  /vm.restore:
387    put:
388      summary: Restore a VM from a snapshot.
389      requestBody:
390        description: The restore configuration
391        content:
392          application/json:
393            schema:
394              $ref: "#/components/schemas/RestoreConfig"
395        required: true
396      responses:
397        204:
398          description: The VM instance was successfully restored.
399        404:
400          description: The VM instance could not be restored because it is already created.
401
402  /vm.receive-migration:
403    put:
404      summary: Receive a VM migration from URL
405      requestBody:
406        description: The URL for the reception of migration state
407        content:
408          application/json:
409            schema:
410              $ref: "#/components/schemas/ReceiveMigrationData"
411        required: true
412      responses:
413        204:
414          description: The VM migration was successfully received.
415        500:
416          description: The VM migration could not be received.
417
418  /vm.send-migration:
419    put:
420      summary: Send a VM migration to URL
421      requestBody:
422        description: The URL for sending the migration state
423        content:
424          application/json:
425            schema:
426              $ref: "#/components/schemas/SendMigrationData"
427        required: true
428      responses:
429        204:
430          description: The VM migration was successfully sent.
431        500:
432          description: The VM migration could not be sent.
433
434components:
435  schemas:
436    VmmPingResponse:
437      required:
438        - version
439      type: object
440      properties:
441        version:
442          type: string
443      description: Virtual Machine Monitor information
444
445    VmInfo:
446      required:
447        - config
448        - state
449      type: object
450      properties:
451        config:
452          $ref: "#/components/schemas/VmConfig"
453        state:
454          type: string
455          enum: [Created, Running, Shutdown, Paused]
456        memory_actual_size:
457          type: integer
458          format: int64
459        device_tree:
460          type: object
461          additionalProperties:
462            $ref: "#/components/schemas/DeviceNode"
463      description: Virtual Machine information
464
465    DeviceNode:
466      type: object
467      properties:
468        id:
469          type: string
470        resources:
471          type: array
472          items:
473            # Rust enum type (with data) which can't be better represented here
474            type: object
475        children:
476          type: array
477          items:
478            type: string
479        pci_bdf:
480          type: string
481
482    VmCounters:
483      type: object
484      additionalProperties:
485        type: object
486        additionalProperties:
487          type: integer
488          format: int64
489
490    PciDeviceInfo:
491      required:
492        - id
493        - bdf
494      type: object
495      properties:
496        id:
497          type: string
498        bdf:
499          type: string
500      description: Information about a PCI device
501
502    PayloadConfig:
503      type: object
504      properties:
505        firmware:
506          type: string
507        kernel:
508          type: string
509        cmdline:
510          type: string
511        initramfs:
512          type: string
513      description: Payloads to boot in guest
514
515    VmConfig:
516      required:
517        - payload
518      type: object
519      properties:
520        cpus:
521          $ref: "#/components/schemas/CpusConfig"
522        memory:
523          $ref: "#/components/schemas/MemoryConfig"
524        payload:
525          $ref: "#/components/schemas/PayloadConfig"
526        disks:
527          type: array
528          items:
529            $ref: "#/components/schemas/DiskConfig"
530        net:
531          type: array
532          items:
533            $ref: "#/components/schemas/NetConfig"
534        rng:
535          $ref: "#/components/schemas/RngConfig"
536        balloon:
537          $ref: "#/components/schemas/BalloonConfig"
538        fs:
539          type: array
540          items:
541            $ref: "#/components/schemas/FsConfig"
542        pmem:
543          type: array
544          items:
545            $ref: "#/components/schemas/PmemConfig"
546        serial:
547          $ref: "#/components/schemas/ConsoleConfig"
548        console:
549          $ref: "#/components/schemas/ConsoleConfig"
550        devices:
551          type: array
552          items:
553            $ref: "#/components/schemas/DeviceConfig"
554        vdpa:
555          type: array
556          items:
557            $ref: "#/components/schemas/VdpaConfig"
558        vsock:
559          $ref: "#/components/schemas/VsockConfig"
560        sgx_epc:
561          type: array
562          items:
563            $ref: "#/components/schemas/SgxEpcConfig"
564        numa:
565          type: array
566          items:
567            $ref: "#/components/schemas/NumaConfig"
568        iommu:
569          type: boolean
570          default: false
571        watchdog:
572          type: boolean
573          default: false
574        platform:
575          $ref: "#/components/schemas/PlatformConfig"
576        tpm:
577          $ref: "#/components/schemas/TpmConfig"
578      description: Virtual machine configuration
579
580    CpuAffinity:
581      type: object
582      properties:
583        vcpu:
584          type: integer
585        host_cpus:
586          type: array
587          items:
588            type: integer
589
590    CpuFeatures:
591      type: object
592      properties:
593        amx:
594          type: boolean
595
596    CpuTopology:
597      type: object
598      properties:
599        threads_per_core:
600          type: integer
601        cores_per_die:
602          type: integer
603        dies_per_package:
604          type: integer
605        packages:
606          type: integer
607
608    CpusConfig:
609      required:
610        - boot_vcpus
611        - max_vcpus
612      type: object
613      properties:
614        boot_vcpus:
615          minimum: 1
616          default: 1
617          type: integer
618        max_vcpus:
619          minimum: 1
620          default: 1
621          type: integer
622        topology:
623          $ref: "#/components/schemas/CpuTopology"
624        kvm_hyperv:
625          type: boolean
626          default: false
627        max_phys_bits:
628          type: integer
629        affinity:
630          type: array
631          items:
632            $ref: "#/components/schemas/CpuAffinity"
633        features:
634          $ref: "#/components/schemas/CpuFeatures"
635
636    PlatformConfig:
637      type: object
638      properties:
639        num_pci_segments:
640          type: integer
641          format: int16
642        iommu_segments:
643          type: array
644          items:
645            type: integer
646            format: int16
647        serial_number:
648          type: string
649        uuid:
650          type: string
651        oem_strings:
652          type: array
653          items:
654            type: string
655        tdx:
656          type: boolean
657          default: false
658
659    MemoryZoneConfig:
660      required:
661        - id
662        - size
663      type: object
664      properties:
665        id:
666          type: string
667        size:
668          type: integer
669          format: int64
670          default: 512 MB
671        mergeable:
672          type: boolean
673          default: false
674        shared:
675          type: boolean
676          default: false
677        hugepages:
678          type: boolean
679          default: false
680        hugepage_size:
681          type: integer
682          format: int64
683        host_numa_node:
684          type: integer
685          format: int32
686        hotplug_size:
687          type: integer
688          format: int64
689        hotplugged_size:
690          type: integer
691          format: int64
692        prefault:
693          type: boolean
694          default: false
695
696    MemoryConfig:
697      required:
698        - size
699      type: object
700      properties:
701        size:
702          type: integer
703          format: int64
704          default: 512 MB
705        hotplug_size:
706          type: integer
707          format: int64
708        hotplugged_size:
709          type: integer
710          format: int64
711        mergeable:
712          type: boolean
713          default: false
714        hotplug_method:
715          type: string
716          default: "Acpi"
717        shared:
718          type: boolean
719          default: false
720        hugepages:
721          type: boolean
722          default: false
723        hugepage_size:
724          type: integer
725          format: int64
726        prefault:
727          type: boolean
728          default: false
729        thp:
730          type: boolean
731          default: true
732        zones:
733          type: array
734          items:
735            $ref: "#/components/schemas/MemoryZoneConfig"
736
737    TokenBucket:
738      required:
739        - size
740        - refill_time
741      type: object
742      properties:
743        size:
744          type: integer
745          format: int64
746          minimum: 0
747          description: The total number of tokens this bucket can hold.
748        one_time_burst:
749          type: integer
750          format: int64
751          minimum: 0
752          description: The initial size of a token bucket.
753        refill_time:
754          type: integer
755          format: int64
756          minimum: 0
757          description: The amount of milliseconds it takes for the bucket to refill.
758      description:
759        Defines a token bucket with a maximum capacity (_size_), an initial burst size
760        (_one_time_burst_) and an interval for refilling purposes (_refill_time_).
761        The refill-rate is derived from _size_ and _refill_time_, and it is the constant
762        rate at which the tokens replenish. The refill process only starts happening after
763        the initial burst budget is consumed.
764        Consumption from the token bucket is unbounded in speed which allows for bursts
765        bound in size by the amount of tokens available.
766        Once the token bucket is empty, consumption speed is bound by the refill-rate.
767
768    RateLimiterConfig:
769      type: object
770      properties:
771        bandwidth:
772          $ref: "#/components/schemas/TokenBucket"
773        ops:
774          $ref: "#/components/schemas/TokenBucket"
775      description:
776        Defines an IO rate limiter with independent bytes/s and ops/s limits.
777        Limits are defined by configuring each of the _bandwidth_ and _ops_ token buckets.
778
779    DiskConfig:
780      required:
781        - path
782      type: object
783      properties:
784        path:
785          type: string
786        readonly:
787          type: boolean
788          default: false
789        direct:
790          type: boolean
791          default: false
792        iommu:
793          type: boolean
794          default: false
795        num_queues:
796          type: integer
797          default: 1
798        queue_size:
799          type: integer
800          default: 128
801        vhost_user:
802          type: boolean
803          default: false
804        vhost_socket:
805          type: string
806        rate_limiter_config:
807          $ref: "#/components/schemas/RateLimiterConfig"
808        pci_segment:
809          type: integer
810          format: int16
811        id:
812          type: string
813
814    NetConfig:
815      type: object
816      properties:
817        tap:
818          type: string
819        ip:
820          type: string
821          default: "192.168.249.1"
822        mask:
823          type: string
824          default: "255.255.255.0"
825        mac:
826          type: string
827        host_mac:
828          type: string
829        mtu:
830          type: integer
831        iommu:
832          type: boolean
833          default: false
834        num_queues:
835          type: integer
836          default: 2
837        queue_size:
838          type: integer
839          default: 256
840        vhost_user:
841          type: boolean
842          default: false
843        vhost_socket:
844          type: string
845        vhost_mode:
846          type: string
847          default: "Client"
848        id:
849          type: string
850        pci_segment:
851          type: integer
852          format: int16
853        rate_limiter_config:
854          $ref: "#/components/schemas/RateLimiterConfig"
855
856    RngConfig:
857      required:
858        - src
859      type: object
860      properties:
861        src:
862          type: string
863          default: "/dev/urandom"
864        iommu:
865          type: boolean
866          default: false
867
868    BalloonConfig:
869      required:
870        - size
871      type: object
872      properties:
873        size:
874          type: integer
875          format: int64
876        deflate_on_oom:
877          type: boolean
878          default: false
879          description: Deflate balloon when the guest is under memory pressure.
880        free_page_reporting:
881          type: boolean
882          default: false
883          description: Enable guest to report free pages.
884
885    FsConfig:
886      required:
887        - num_queues
888        - queue_size
889        - socket
890        - tag
891      type: object
892      properties:
893        tag:
894          type: string
895        socket:
896          type: string
897        num_queues:
898          type: integer
899          default: 1
900        queue_size:
901          type: integer
902          default: 1024
903        pci_segment:
904          type: integer
905          format: int16
906        id:
907          type: string
908
909    PmemConfig:
910      required:
911        - file
912      type: object
913      properties:
914        file:
915          type: string
916        size:
917          type: integer
918          format: int64
919        iommu:
920          type: boolean
921          default: false
922        discard_writes:
923          type: boolean
924          default: false
925        pci_segment:
926          type: integer
927          format: int16
928        id:
929          type: string
930
931    ConsoleConfig:
932      required:
933        - mode
934      type: object
935      properties:
936        file:
937          type: string
938        mode:
939          type: string
940          enum: [Off, Pty, Tty, File, Null]
941        iommu:
942          type: boolean
943          default: false
944
945    DeviceConfig:
946      required:
947        - path
948      type: object
949      properties:
950        path:
951          type: string
952        iommu:
953          type: boolean
954          default: false
955        pci_segment:
956          type: integer
957          format: int16
958        id:
959          type: string
960
961    TpmConfig:
962      required:
963        - socket
964      type: object
965      properties:
966        socket:
967          type: string
968
969    VdpaConfig:
970      required:
971        - path
972        - num_queues
973      type: object
974      properties:
975        path:
976          type: string
977        num_queues:
978          type: integer
979          default: 1
980        iommu:
981          type: boolean
982          default: false
983        pci_segment:
984          type: integer
985          format: int16
986        id:
987          type: string
988
989    VsockConfig:
990      required:
991        - cid
992        - socket
993      type: object
994      properties:
995        cid:
996          type: integer
997          format: int64
998          minimum: 3
999          description: Guest Vsock CID
1000        socket:
1001          type: string
1002          description: Path to UNIX domain socket, used to proxy vsock connections.
1003        iommu:
1004          type: boolean
1005          default: false
1006        pci_segment:
1007          type: integer
1008          format: int16
1009        id:
1010          type: string
1011
1012    SgxEpcConfig:
1013      required:
1014        - id
1015        - size
1016      type: object
1017      properties:
1018        id:
1019          type: string
1020        size:
1021          type: integer
1022          format: int64
1023        prefault:
1024          type: boolean
1025          default: false
1026
1027    NumaDistance:
1028      required:
1029        - destination
1030        - distance
1031      type: object
1032      properties:
1033        destination:
1034          type: integer
1035          format: int32
1036        distance:
1037          type: integer
1038          format: int32
1039
1040    NumaConfig:
1041      required:
1042        - guest_numa_id
1043      type: object
1044      properties:
1045        guest_numa_id:
1046          type: integer
1047          format: int32
1048        cpus:
1049          type: array
1050          items:
1051            type: integer
1052            format: int32
1053        distances:
1054          type: array
1055          items:
1056            $ref: "#/components/schemas/NumaDistance"
1057        memory_zones:
1058          type: array
1059          items:
1060            type: string
1061        sgx_epc_sections:
1062          type: array
1063          items:
1064            type: string
1065
1066    VmResize:
1067      type: object
1068      properties:
1069        desired_vcpus:
1070          minimum: 1
1071          type: integer
1072        desired_ram:
1073          description: desired memory ram in bytes
1074          type: integer
1075          format: int64
1076        desired_balloon:
1077          description: desired balloon size in bytes
1078          type: integer
1079          format: int64
1080
1081    VmResizeZone:
1082      type: object
1083      properties:
1084        id:
1085          type: string
1086        desired_ram:
1087          description: desired memory zone size in bytes
1088          type: integer
1089          format: int64
1090
1091    VmRemoveDevice:
1092      type: object
1093      properties:
1094        id:
1095          type: string
1096
1097    VmSnapshotConfig:
1098      type: object
1099      properties:
1100        destination_url:
1101          type: string
1102
1103    VmCoredumpData:
1104      type: object
1105      properties:
1106        destination_url:
1107          type: string
1108
1109    RestoreConfig:
1110      required:
1111        - source_url
1112      type: object
1113      properties:
1114        source_url:
1115          type: string
1116        prefault:
1117          type: boolean
1118
1119    ReceiveMigrationData:
1120      required:
1121        - receiver_url
1122      type: object
1123      properties:
1124        receiver_url:
1125          type: string
1126
1127    SendMigrationData:
1128      required:
1129        - destination_url
1130      type: object
1131      properties:
1132        destination_url:
1133          type: string
1134        local:
1135          type: boolean
1136