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