1d34bda71SBenoît Canet# -*- Mode: Python -*- 2d3a48372SMarc-André Lureau 3d3a48372SMarc-André Lureau## 4d3a48372SMarc-André Lureau# = QAPI common definitions 5d3a48372SMarc-André Lureau## 6d34bda71SBenoît Canet 7d34bda71SBenoît Canet## 85072f7b3SMarc-André Lureau# @QapiErrorClass: 9d34bda71SBenoît Canet# 10d34bda71SBenoît Canet# QEMU error classes 11d34bda71SBenoît Canet# 12d34bda71SBenoît Canet# @GenericError: this is used for errors that don't require a specific error 13d34bda71SBenoît Canet# class. This should be the default case for most errors 14d34bda71SBenoît Canet# 15d34bda71SBenoît Canet# @CommandNotFound: the requested command has not been found 16d34bda71SBenoît Canet# 17d34bda71SBenoît Canet# @DeviceEncrypted: the requested operation can't be fulfilled because the 18d34bda71SBenoît Canet# selected device is encrypted 19d34bda71SBenoît Canet# 20d34bda71SBenoît Canet# @DeviceNotActive: a device has failed to be become active 21d34bda71SBenoît Canet# 22d34bda71SBenoît Canet# @DeviceNotFound: the requested device has not been found 23d34bda71SBenoît Canet# 24d34bda71SBenoît Canet# @KVMMissingCap: the requested operation can't be fulfilled because a 25d34bda71SBenoît Canet# required KVM capability is missing 26d34bda71SBenoît Canet# 27d34bda71SBenoît Canet# Since: 1.2 28d34bda71SBenoît Canet## 29f22a28b8SEric Blake{ 'enum': 'QapiErrorClass', 30f22a28b8SEric Blake # Keep this in sync with ErrorClass in error.h 31d34bda71SBenoît Canet 'data': [ 'GenericError', 'CommandNotFound', 'DeviceEncrypted', 32d34bda71SBenoît Canet 'DeviceNotActive', 'DeviceNotFound', 'KVMMissingCap' ] } 33d34bda71SBenoît Canet 34d34bda71SBenoît Canet## 355072f7b3SMarc-André Lureau# @VersionTriple: 364752cdbbSEric Blake# 374752cdbbSEric Blake# A three-part version number. 384752cdbbSEric Blake# 394d5c8bc4SMarc-André Lureau# @major: The major version number. 404752cdbbSEric Blake# 414d5c8bc4SMarc-André Lureau# @minor: The minor version number. 424752cdbbSEric Blake# 434d5c8bc4SMarc-André Lureau# @micro: The micro version number. 444752cdbbSEric Blake# 454752cdbbSEric Blake# Since: 2.4 464752cdbbSEric Blake## 474752cdbbSEric Blake{ 'struct': 'VersionTriple', 484752cdbbSEric Blake 'data': {'major': 'int', 'minor': 'int', 'micro': 'int'} } 494752cdbbSEric Blake 504752cdbbSEric Blake 514752cdbbSEric Blake## 52d34bda71SBenoît Canet# @VersionInfo: 53d34bda71SBenoît Canet# 54d34bda71SBenoît Canet# A description of QEMU's version. 55d34bda71SBenoît Canet# 564752cdbbSEric Blake# @qemu: The version of QEMU. By current convention, a micro 57d34bda71SBenoît Canet# version of 50 signifies a development branch. A micro version 58d34bda71SBenoît Canet# greater than or equal to 90 signifies a release candidate for 59d34bda71SBenoît Canet# the next minor version. A micro version of less than 50 60d34bda71SBenoît Canet# signifies a stable release. 61d34bda71SBenoît Canet# 62d34bda71SBenoît Canet# @package: QEMU will always set this field to an empty string. Downstream 63d34bda71SBenoît Canet# versions of QEMU should set this to a non-empty string. The 64d34bda71SBenoît Canet# exact format depends on the downstream however it highly 65d34bda71SBenoît Canet# recommended that a unique name is used. 66d34bda71SBenoît Canet# 67d34bda71SBenoît Canet# Since: 0.14.0 68d34bda71SBenoît Canet## 69895a2a80SEric Blake{ 'struct': 'VersionInfo', 704752cdbbSEric Blake 'data': {'qemu': 'VersionTriple', 'package': 'str'} } 71d34bda71SBenoît Canet 72d34bda71SBenoît Canet## 73d34bda71SBenoît Canet# @query-version: 74d34bda71SBenoît Canet# 75d34bda71SBenoît Canet# Returns the current version of QEMU. 76d34bda71SBenoît Canet# 77d34bda71SBenoît Canet# Returns: A @VersionInfo object describing the current version of QEMU. 78d34bda71SBenoît Canet# 79d34bda71SBenoît Canet# Since: 0.14.0 80dd746afbSMarc-André Lureau# 81dd746afbSMarc-André Lureau# Example: 82dd746afbSMarc-André Lureau# 83dd746afbSMarc-André Lureau# -> { "execute": "query-version" } 84dd746afbSMarc-André Lureau# <- { 85dd746afbSMarc-André Lureau# "return":{ 86dd746afbSMarc-André Lureau# "qemu":{ 87dd746afbSMarc-André Lureau# "major":0, 88dd746afbSMarc-André Lureau# "minor":11, 89dd746afbSMarc-André Lureau# "micro":5 90dd746afbSMarc-André Lureau# }, 91dd746afbSMarc-André Lureau# "package":"" 92dd746afbSMarc-André Lureau# } 93dd746afbSMarc-André Lureau# } 94dd746afbSMarc-André Lureau# 95d34bda71SBenoît Canet## 96d34bda71SBenoît Canet{ 'command': 'query-version', 'returns': 'VersionInfo' } 97d34bda71SBenoît Canet 98d34bda71SBenoît Canet## 99d34bda71SBenoît Canet# @CommandInfo: 100d34bda71SBenoît Canet# 101d34bda71SBenoît Canet# Information about a QMP command 102d34bda71SBenoît Canet# 103d34bda71SBenoît Canet# @name: The command name 104d34bda71SBenoît Canet# 105d34bda71SBenoît Canet# Since: 0.14.0 106d34bda71SBenoît Canet## 107895a2a80SEric Blake{ 'struct': 'CommandInfo', 'data': {'name': 'str'} } 108d34bda71SBenoît Canet 109d34bda71SBenoît Canet## 110d34bda71SBenoît Canet# @query-commands: 111d34bda71SBenoît Canet# 112d34bda71SBenoît Canet# Return a list of supported QMP commands by this server 113d34bda71SBenoît Canet# 114d34bda71SBenoît Canet# Returns: A list of @CommandInfo for all supported commands 115d34bda71SBenoît Canet# 116d34bda71SBenoît Canet# Since: 0.14.0 117*8b0ffce4SMarc-André Lureau# 118*8b0ffce4SMarc-André Lureau# Example: 119*8b0ffce4SMarc-André Lureau# 120*8b0ffce4SMarc-André Lureau# -> { "execute": "query-commands" } 121*8b0ffce4SMarc-André Lureau# <- { 122*8b0ffce4SMarc-André Lureau# "return":[ 123*8b0ffce4SMarc-André Lureau# { 124*8b0ffce4SMarc-André Lureau# "name":"query-balloon" 125*8b0ffce4SMarc-André Lureau# }, 126*8b0ffce4SMarc-André Lureau# { 127*8b0ffce4SMarc-André Lureau# "name":"system_powerdown" 128*8b0ffce4SMarc-André Lureau# } 129*8b0ffce4SMarc-André Lureau# ] 130*8b0ffce4SMarc-André Lureau# } 131*8b0ffce4SMarc-André Lureau# 132*8b0ffce4SMarc-André Lureau# Note: This example has been shortened as the real response is too long. 133*8b0ffce4SMarc-André Lureau# 134d34bda71SBenoît Canet## 135d34bda71SBenoît Canet{ 'command': 'query-commands', 'returns': ['CommandInfo'] } 136d34bda71SBenoît Canet 137d1048befSDon Slutz## 1385072f7b3SMarc-André Lureau# @OnOffAuto: 139d1048befSDon Slutz# 140d1048befSDon Slutz# An enumeration of three options: on, off, and auto 141d1048befSDon Slutz# 142d1048befSDon Slutz# @auto: QEMU selects the value between on and off 143d1048befSDon Slutz# 144d1048befSDon Slutz# @on: Enabled 145d1048befSDon Slutz# 146d1048befSDon Slutz# @off: Disabled 147d1048befSDon Slutz# 148d1048befSDon Slutz# Since: 2.2 149d1048befSDon Slutz## 150d1048befSDon Slutz{ 'enum': 'OnOffAuto', 151d1048befSDon Slutz 'data': [ 'auto', 'on', 'off' ] } 15232c18a2dSMatt Gingell 15332c18a2dSMatt Gingell## 1545072f7b3SMarc-André Lureau# @OnOffSplit: 15532c18a2dSMatt Gingell# 15632c18a2dSMatt Gingell# An enumeration of three values: on, off, and split 15732c18a2dSMatt Gingell# 15832c18a2dSMatt Gingell# @on: Enabled 15932c18a2dSMatt Gingell# 16032c18a2dSMatt Gingell# @off: Disabled 16132c18a2dSMatt Gingell# 16232c18a2dSMatt Gingell# @split: Mixed 16332c18a2dSMatt Gingell# 16432c18a2dSMatt Gingell# Since: 2.6 16532c18a2dSMatt Gingell## 16632c18a2dSMatt Gingell{ 'enum': 'OnOffSplit', 16732c18a2dSMatt Gingell 'data': [ 'on', 'off', 'split' ] } 168