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/VmAddDevice" 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 kernel: 506 type: string 507 cmdline: 508 type: string 509 initramfs: 510 type: string 511 description: Payloads to boot in guest 512 513 VmConfig: 514 required: 515 - payload 516 type: object 517 properties: 518 cpus: 519 $ref: "#/components/schemas/CpusConfig" 520 memory: 521 $ref: "#/components/schemas/MemoryConfig" 522 payload: 523 $ref: "#/components/schemas/PayloadConfig" 524 disks: 525 type: array 526 items: 527 $ref: "#/components/schemas/DiskConfig" 528 net: 529 type: array 530 items: 531 $ref: "#/components/schemas/NetConfig" 532 rng: 533 $ref: "#/components/schemas/RngConfig" 534 balloon: 535 $ref: "#/components/schemas/BalloonConfig" 536 fs: 537 type: array 538 items: 539 $ref: "#/components/schemas/FsConfig" 540 pmem: 541 type: array 542 items: 543 $ref: "#/components/schemas/PmemConfig" 544 serial: 545 $ref: "#/components/schemas/ConsoleConfig" 546 console: 547 $ref: "#/components/schemas/ConsoleConfig" 548 devices: 549 type: array 550 items: 551 $ref: "#/components/schemas/DeviceConfig" 552 vdpa: 553 type: array 554 items: 555 $ref: "#/components/schemas/VdpaConfig" 556 vsock: 557 $ref: "#/components/schemas/VsockConfig" 558 sgx_epc: 559 type: array 560 items: 561 $ref: "#/components/schemas/SgxEpcConfig" 562 numa: 563 type: array 564 items: 565 $ref: "#/components/schemas/NumaConfig" 566 iommu: 567 type: boolean 568 default: false 569 watchdog: 570 type: boolean 571 default: false 572 platform: 573 $ref: "#/components/schemas/PlatformConfig" 574 description: Virtual machine configuration 575 576 CpuAffinity: 577 type: object 578 properties: 579 vcpu: 580 type: integer 581 host_cpus: 582 type: array 583 items: 584 type: integer 585 586 CpuFeatures: 587 type: object 588 properties: 589 amx: 590 type: boolean 591 592 CpuTopology: 593 type: object 594 properties: 595 threads_per_core: 596 type: integer 597 cores_per_die: 598 type: integer 599 dies_per_package: 600 type: integer 601 packages: 602 type: integer 603 604 CpusConfig: 605 required: 606 - boot_vcpus 607 - max_vcpus 608 type: object 609 properties: 610 boot_vcpus: 611 minimum: 1 612 default: 1 613 type: integer 614 max_vcpus: 615 minimum: 1 616 default: 1 617 type: integer 618 topology: 619 $ref: "#/components/schemas/CpuTopology" 620 kvm_hyperv: 621 type: boolean 622 default: false 623 max_phys_bits: 624 type: integer 625 affinity: 626 type: array 627 items: 628 $ref: "#/components/schemas/CpuAffinity" 629 features: 630 $ref: "#/components/schemas/CpuFeatures" 631 632 PlatformConfig: 633 type: object 634 properties: 635 num_pci_segments: 636 type: integer 637 format: int16 638 iommu_segments: 639 type: array 640 items: 641 type: integer 642 format: int16 643 serial_number: 644 type: string 645 uuid: 646 type: string 647 oem_strings: 648 type: array 649 items: 650 type: string 651 tdx: 652 type: boolean 653 default: false 654 655 MemoryZoneConfig: 656 required: 657 - id 658 - size 659 type: object 660 properties: 661 id: 662 type: string 663 size: 664 type: integer 665 format: int64 666 default: 512 MB 667 file: 668 type: string 669 mergeable: 670 type: boolean 671 default: false 672 shared: 673 type: boolean 674 default: false 675 hugepages: 676 type: boolean 677 default: false 678 hugepage_size: 679 type: integer 680 format: int64 681 host_numa_node: 682 type: integer 683 format: int32 684 hotplug_size: 685 type: integer 686 format: int64 687 hotplugged_size: 688 type: integer 689 format: int64 690 prefault: 691 type: boolean 692 default: false 693 694 MemoryConfig: 695 required: 696 - size 697 type: object 698 properties: 699 size: 700 type: integer 701 format: int64 702 default: 512 MB 703 hotplug_size: 704 type: integer 705 format: int64 706 hotplugged_size: 707 type: integer 708 format: int64 709 mergeable: 710 type: boolean 711 default: false 712 hotplug_method: 713 type: string 714 default: "Acpi" 715 shared: 716 type: boolean 717 default: false 718 hugepages: 719 type: boolean 720 default: false 721 hugepage_size: 722 type: integer 723 format: int64 724 prefault: 725 type: boolean 726 default: false 727 zones: 728 type: array 729 items: 730 $ref: "#/components/schemas/MemoryZoneConfig" 731 732 TokenBucket: 733 required: 734 - size 735 - refill_time 736 type: object 737 properties: 738 size: 739 type: integer 740 format: int64 741 minimum: 0 742 description: The total number of tokens this bucket can hold. 743 one_time_burst: 744 type: integer 745 format: int64 746 minimum: 0 747 description: The initial size of a token bucket. 748 refill_time: 749 type: integer 750 format: int64 751 minimum: 0 752 description: The amount of milliseconds it takes for the bucket to refill. 753 description: 754 Defines a token bucket with a maximum capacity (_size_), an initial burst size 755 (_one_time_burst_) and an interval for refilling purposes (_refill_time_). 756 The refill-rate is derived from _size_ and _refill_time_, and it is the constant 757 rate at which the tokens replenish. The refill process only starts happening after 758 the initial burst budget is consumed. 759 Consumption from the token bucket is unbounded in speed which allows for bursts 760 bound in size by the amount of tokens available. 761 Once the token bucket is empty, consumption speed is bound by the refill-rate. 762 763 RateLimiterConfig: 764 type: object 765 properties: 766 bandwidth: 767 $ref: "#/components/schemas/TokenBucket" 768 ops: 769 $ref: "#/components/schemas/TokenBucket" 770 description: 771 Defines an IO rate limiter with independent bytes/s and ops/s limits. 772 Limits are defined by configuring each of the _bandwidth_ and _ops_ token buckets. 773 774 DiskConfig: 775 required: 776 - path 777 type: object 778 properties: 779 path: 780 type: string 781 readonly: 782 type: boolean 783 default: false 784 direct: 785 type: boolean 786 default: false 787 iommu: 788 type: boolean 789 default: false 790 num_queues: 791 type: integer 792 default: 1 793 queue_size: 794 type: integer 795 default: 128 796 vhost_user: 797 type: boolean 798 default: false 799 vhost_socket: 800 type: string 801 rate_limiter_config: 802 $ref: "#/components/schemas/RateLimiterConfig" 803 pci_segment: 804 type: integer 805 format: int16 806 id: 807 type: string 808 809 NetConfig: 810 type: object 811 properties: 812 tap: 813 type: string 814 ip: 815 type: string 816 default: "192.168.249.1" 817 mask: 818 type: string 819 default: "255.255.255.0" 820 mac: 821 type: string 822 host_mac: 823 type: string 824 mtu: 825 type: integer 826 iommu: 827 type: boolean 828 default: false 829 num_queues: 830 type: integer 831 default: 2 832 queue_size: 833 type: integer 834 default: 256 835 vhost_user: 836 type: boolean 837 default: false 838 vhost_socket: 839 type: string 840 vhost_mode: 841 type: string 842 default: "Client" 843 id: 844 type: string 845 pci_segment: 846 type: integer 847 format: int16 848 rate_limiter_config: 849 $ref: "#/components/schemas/RateLimiterConfig" 850 851 RngConfig: 852 required: 853 - src 854 type: object 855 properties: 856 src: 857 type: string 858 default: "/dev/urandom" 859 iommu: 860 type: boolean 861 default: false 862 863 BalloonConfig: 864 required: 865 - size 866 type: object 867 properties: 868 size: 869 type: integer 870 format: int64 871 deflate_on_oom: 872 type: boolean 873 default: false 874 description: Deflate balloon when the guest is under memory pressure. 875 free_page_reporting: 876 type: boolean 877 default: false 878 description: Enable guest to report free pages. 879 880 FsConfig: 881 required: 882 - num_queues 883 - queue_size 884 - socket 885 - tag 886 type: object 887 properties: 888 tag: 889 type: string 890 socket: 891 type: string 892 num_queues: 893 type: integer 894 default: 1 895 queue_size: 896 type: integer 897 default: 1024 898 pci_segment: 899 type: integer 900 format: int16 901 id: 902 type: string 903 904 PmemConfig: 905 required: 906 - file 907 type: object 908 properties: 909 file: 910 type: string 911 size: 912 type: integer 913 format: int64 914 iommu: 915 type: boolean 916 default: false 917 discard_writes: 918 type: boolean 919 default: false 920 pci_segment: 921 type: integer 922 format: int16 923 id: 924 type: string 925 926 ConsoleConfig: 927 required: 928 - mode 929 type: object 930 properties: 931 file: 932 type: string 933 mode: 934 type: string 935 enum: [Off, Pty, Tty, File, Null] 936 iommu: 937 type: boolean 938 default: false 939 940 DeviceConfig: 941 required: 942 - path 943 type: object 944 properties: 945 path: 946 type: string 947 iommu: 948 type: boolean 949 default: false 950 pci_segment: 951 type: integer 952 format: int16 953 id: 954 type: string 955 956 VdpaConfig: 957 required: 958 - path 959 - num_queues 960 type: object 961 properties: 962 path: 963 type: string 964 num_queues: 965 type: integer 966 default: 1 967 iommu: 968 type: boolean 969 default: false 970 pci_segment: 971 type: integer 972 format: int16 973 id: 974 type: string 975 976 VsockConfig: 977 required: 978 - cid 979 - socket 980 type: object 981 properties: 982 cid: 983 type: integer 984 format: int64 985 minimum: 3 986 description: Guest Vsock CID 987 socket: 988 type: string 989 description: Path to UNIX domain socket, used to proxy vsock connections. 990 iommu: 991 type: boolean 992 default: false 993 pci_segment: 994 type: integer 995 format: int16 996 id: 997 type: string 998 999 SgxEpcConfig: 1000 required: 1001 - id 1002 - size 1003 type: object 1004 properties: 1005 id: 1006 type: string 1007 size: 1008 type: integer 1009 format: int64 1010 prefault: 1011 type: boolean 1012 default: false 1013 1014 NumaDistance: 1015 required: 1016 - destination 1017 - distance 1018 type: object 1019 properties: 1020 destination: 1021 type: integer 1022 format: int32 1023 distance: 1024 type: integer 1025 format: int32 1026 1027 NumaConfig: 1028 required: 1029 - guest_numa_id 1030 type: object 1031 properties: 1032 guest_numa_id: 1033 type: integer 1034 format: int32 1035 cpus: 1036 type: array 1037 items: 1038 type: integer 1039 format: int32 1040 distances: 1041 type: array 1042 items: 1043 $ref: "#/components/schemas/NumaDistance" 1044 memory_zones: 1045 type: array 1046 items: 1047 type: string 1048 sgx_epc_sections: 1049 type: array 1050 items: 1051 type: string 1052 1053 VmResize: 1054 type: object 1055 properties: 1056 desired_vcpus: 1057 minimum: 1 1058 type: integer 1059 desired_ram: 1060 description: desired memory ram in bytes 1061 type: integer 1062 format: int64 1063 desired_balloon: 1064 description: desired balloon size in bytes 1065 type: integer 1066 format: int64 1067 1068 VmResizeZone: 1069 type: object 1070 properties: 1071 id: 1072 type: string 1073 desired_ram: 1074 description: desired memory zone size in bytes 1075 type: integer 1076 format: int64 1077 1078 VmAddDevice: 1079 type: object 1080 properties: 1081 path: 1082 type: string 1083 iommu: 1084 type: boolean 1085 default: false 1086 id: 1087 type: string 1088 1089 VmRemoveDevice: 1090 type: object 1091 properties: 1092 id: 1093 type: string 1094 1095 VmSnapshotConfig: 1096 type: object 1097 properties: 1098 destination_url: 1099 type: string 1100 1101 VmCoredumpData: 1102 type: object 1103 properties: 1104 destination_url: 1105 type: string 1106 1107 RestoreConfig: 1108 required: 1109 - source_url 1110 type: object 1111 properties: 1112 source_url: 1113 type: string 1114 prefault: 1115 type: boolean 1116 1117 ReceiveMigrationData: 1118 required: 1119 - receiver_url 1120 type: object 1121 properties: 1122 receiver_url: 1123 type: string 1124 1125 SendMigrationData: 1126 required: 1127 - destination_url 1128 type: object 1129 properties: 1130 destination_url: 1131 type: string 1132 local: 1133 type: boolean 1134