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 file: 672 type: string 673 mergeable: 674 type: boolean 675 default: false 676 shared: 677 type: boolean 678 default: false 679 hugepages: 680 type: boolean 681 default: false 682 hugepage_size: 683 type: integer 684 format: int64 685 host_numa_node: 686 type: integer 687 format: int32 688 hotplug_size: 689 type: integer 690 format: int64 691 hotplugged_size: 692 type: integer 693 format: int64 694 prefault: 695 type: boolean 696 default: false 697 698 MemoryConfig: 699 required: 700 - size 701 type: object 702 properties: 703 size: 704 type: integer 705 format: int64 706 default: 512 MB 707 hotplug_size: 708 type: integer 709 format: int64 710 hotplugged_size: 711 type: integer 712 format: int64 713 mergeable: 714 type: boolean 715 default: false 716 hotplug_method: 717 type: string 718 default: "Acpi" 719 shared: 720 type: boolean 721 default: false 722 hugepages: 723 type: boolean 724 default: false 725 hugepage_size: 726 type: integer 727 format: int64 728 prefault: 729 type: boolean 730 default: false 731 thp: 732 type: boolean 733 default: true 734 zones: 735 type: array 736 items: 737 $ref: "#/components/schemas/MemoryZoneConfig" 738 739 TokenBucket: 740 required: 741 - size 742 - refill_time 743 type: object 744 properties: 745 size: 746 type: integer 747 format: int64 748 minimum: 0 749 description: The total number of tokens this bucket can hold. 750 one_time_burst: 751 type: integer 752 format: int64 753 minimum: 0 754 description: The initial size of a token bucket. 755 refill_time: 756 type: integer 757 format: int64 758 minimum: 0 759 description: The amount of milliseconds it takes for the bucket to refill. 760 description: 761 Defines a token bucket with a maximum capacity (_size_), an initial burst size 762 (_one_time_burst_) and an interval for refilling purposes (_refill_time_). 763 The refill-rate is derived from _size_ and _refill_time_, and it is the constant 764 rate at which the tokens replenish. The refill process only starts happening after 765 the initial burst budget is consumed. 766 Consumption from the token bucket is unbounded in speed which allows for bursts 767 bound in size by the amount of tokens available. 768 Once the token bucket is empty, consumption speed is bound by the refill-rate. 769 770 RateLimiterConfig: 771 type: object 772 properties: 773 bandwidth: 774 $ref: "#/components/schemas/TokenBucket" 775 ops: 776 $ref: "#/components/schemas/TokenBucket" 777 description: 778 Defines an IO rate limiter with independent bytes/s and ops/s limits. 779 Limits are defined by configuring each of the _bandwidth_ and _ops_ token buckets. 780 781 DiskConfig: 782 required: 783 - path 784 type: object 785 properties: 786 path: 787 type: string 788 readonly: 789 type: boolean 790 default: false 791 direct: 792 type: boolean 793 default: false 794 iommu: 795 type: boolean 796 default: false 797 num_queues: 798 type: integer 799 default: 1 800 queue_size: 801 type: integer 802 default: 128 803 vhost_user: 804 type: boolean 805 default: false 806 vhost_socket: 807 type: string 808 rate_limiter_config: 809 $ref: "#/components/schemas/RateLimiterConfig" 810 pci_segment: 811 type: integer 812 format: int16 813 id: 814 type: string 815 816 NetConfig: 817 type: object 818 properties: 819 tap: 820 type: string 821 ip: 822 type: string 823 default: "192.168.249.1" 824 mask: 825 type: string 826 default: "255.255.255.0" 827 mac: 828 type: string 829 host_mac: 830 type: string 831 mtu: 832 type: integer 833 iommu: 834 type: boolean 835 default: false 836 num_queues: 837 type: integer 838 default: 2 839 queue_size: 840 type: integer 841 default: 256 842 vhost_user: 843 type: boolean 844 default: false 845 vhost_socket: 846 type: string 847 vhost_mode: 848 type: string 849 default: "Client" 850 id: 851 type: string 852 pci_segment: 853 type: integer 854 format: int16 855 rate_limiter_config: 856 $ref: "#/components/schemas/RateLimiterConfig" 857 858 RngConfig: 859 required: 860 - src 861 type: object 862 properties: 863 src: 864 type: string 865 default: "/dev/urandom" 866 iommu: 867 type: boolean 868 default: false 869 870 BalloonConfig: 871 required: 872 - size 873 type: object 874 properties: 875 size: 876 type: integer 877 format: int64 878 deflate_on_oom: 879 type: boolean 880 default: false 881 description: Deflate balloon when the guest is under memory pressure. 882 free_page_reporting: 883 type: boolean 884 default: false 885 description: Enable guest to report free pages. 886 887 FsConfig: 888 required: 889 - num_queues 890 - queue_size 891 - socket 892 - tag 893 type: object 894 properties: 895 tag: 896 type: string 897 socket: 898 type: string 899 num_queues: 900 type: integer 901 default: 1 902 queue_size: 903 type: integer 904 default: 1024 905 pci_segment: 906 type: integer 907 format: int16 908 id: 909 type: string 910 911 PmemConfig: 912 required: 913 - file 914 type: object 915 properties: 916 file: 917 type: string 918 size: 919 type: integer 920 format: int64 921 iommu: 922 type: boolean 923 default: false 924 discard_writes: 925 type: boolean 926 default: false 927 pci_segment: 928 type: integer 929 format: int16 930 id: 931 type: string 932 933 ConsoleConfig: 934 required: 935 - mode 936 type: object 937 properties: 938 file: 939 type: string 940 mode: 941 type: string 942 enum: [Off, Pty, Tty, File, Null] 943 iommu: 944 type: boolean 945 default: false 946 947 DeviceConfig: 948 required: 949 - path 950 type: object 951 properties: 952 path: 953 type: string 954 iommu: 955 type: boolean 956 default: false 957 pci_segment: 958 type: integer 959 format: int16 960 id: 961 type: string 962 963 TpmConfig: 964 required: 965 - socket 966 type: object 967 properties: 968 socket: 969 type: string 970 971 VdpaConfig: 972 required: 973 - path 974 - num_queues 975 type: object 976 properties: 977 path: 978 type: string 979 num_queues: 980 type: integer 981 default: 1 982 iommu: 983 type: boolean 984 default: false 985 pci_segment: 986 type: integer 987 format: int16 988 id: 989 type: string 990 991 VsockConfig: 992 required: 993 - cid 994 - socket 995 type: object 996 properties: 997 cid: 998 type: integer 999 format: int64 1000 minimum: 3 1001 description: Guest Vsock CID 1002 socket: 1003 type: string 1004 description: Path to UNIX domain socket, used to proxy vsock connections. 1005 iommu: 1006 type: boolean 1007 default: false 1008 pci_segment: 1009 type: integer 1010 format: int16 1011 id: 1012 type: string 1013 1014 SgxEpcConfig: 1015 required: 1016 - id 1017 - size 1018 type: object 1019 properties: 1020 id: 1021 type: string 1022 size: 1023 type: integer 1024 format: int64 1025 prefault: 1026 type: boolean 1027 default: false 1028 1029 NumaDistance: 1030 required: 1031 - destination 1032 - distance 1033 type: object 1034 properties: 1035 destination: 1036 type: integer 1037 format: int32 1038 distance: 1039 type: integer 1040 format: int32 1041 1042 NumaConfig: 1043 required: 1044 - guest_numa_id 1045 type: object 1046 properties: 1047 guest_numa_id: 1048 type: integer 1049 format: int32 1050 cpus: 1051 type: array 1052 items: 1053 type: integer 1054 format: int32 1055 distances: 1056 type: array 1057 items: 1058 $ref: "#/components/schemas/NumaDistance" 1059 memory_zones: 1060 type: array 1061 items: 1062 type: string 1063 sgx_epc_sections: 1064 type: array 1065 items: 1066 type: string 1067 1068 VmResize: 1069 type: object 1070 properties: 1071 desired_vcpus: 1072 minimum: 1 1073 type: integer 1074 desired_ram: 1075 description: desired memory ram in bytes 1076 type: integer 1077 format: int64 1078 desired_balloon: 1079 description: desired balloon size in bytes 1080 type: integer 1081 format: int64 1082 1083 VmResizeZone: 1084 type: object 1085 properties: 1086 id: 1087 type: string 1088 desired_ram: 1089 description: desired memory zone size in bytes 1090 type: integer 1091 format: int64 1092 1093 VmRemoveDevice: 1094 type: object 1095 properties: 1096 id: 1097 type: string 1098 1099 VmSnapshotConfig: 1100 type: object 1101 properties: 1102 destination_url: 1103 type: string 1104 1105 VmCoredumpData: 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