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# @DeviceNotActive: a device has failed to be become active 18d34bda71SBenoît Canet# 19d34bda71SBenoît Canet# @DeviceNotFound: the requested device has not been found 20d34bda71SBenoît Canet# 21d34bda71SBenoît Canet# @KVMMissingCap: the requested operation can't be fulfilled because a 22d34bda71SBenoît Canet# required KVM capability is missing 23d34bda71SBenoît Canet# 24d34bda71SBenoît Canet# Since: 1.2 25d34bda71SBenoît Canet## 26f22a28b8SEric Blake{ 'enum': 'QapiErrorClass', 27f22a28b8SEric Blake # Keep this in sync with ErrorClass in error.h 28c01c214bSDaniel P. Berrange 'data': [ 'GenericError', 'CommandNotFound', 29d34bda71SBenoît Canet 'DeviceNotActive', 'DeviceNotFound', 'KVMMissingCap' ] } 30d34bda71SBenoît Canet 31d34bda71SBenoît Canet## 325072f7b3SMarc-André Lureau# @VersionTriple: 334752cdbbSEric Blake# 344752cdbbSEric Blake# A three-part version number. 354752cdbbSEric Blake# 364d5c8bc4SMarc-André Lureau# @major: The major version number. 374752cdbbSEric Blake# 384d5c8bc4SMarc-André Lureau# @minor: The minor version number. 394752cdbbSEric Blake# 404d5c8bc4SMarc-André Lureau# @micro: The micro version number. 414752cdbbSEric Blake# 424752cdbbSEric Blake# Since: 2.4 434752cdbbSEric Blake## 444752cdbbSEric Blake{ 'struct': 'VersionTriple', 454752cdbbSEric Blake 'data': {'major': 'int', 'minor': 'int', 'micro': 'int'} } 464752cdbbSEric Blake 474752cdbbSEric Blake 484752cdbbSEric Blake## 49d34bda71SBenoît Canet# @VersionInfo: 50d34bda71SBenoît Canet# 51d34bda71SBenoît Canet# A description of QEMU's version. 52d34bda71SBenoît Canet# 534752cdbbSEric Blake# @qemu: The version of QEMU. By current convention, a micro 54d34bda71SBenoît Canet# version of 50 signifies a development branch. A micro version 55d34bda71SBenoît Canet# greater than or equal to 90 signifies a release candidate for 56d34bda71SBenoît Canet# the next minor version. A micro version of less than 50 57d34bda71SBenoît Canet# signifies a stable release. 58d34bda71SBenoît Canet# 59d34bda71SBenoît Canet# @package: QEMU will always set this field to an empty string. Downstream 60d34bda71SBenoît Canet# versions of QEMU should set this to a non-empty string. The 61d34bda71SBenoît Canet# exact format depends on the downstream however it highly 62d34bda71SBenoît Canet# recommended that a unique name is used. 63d34bda71SBenoît Canet# 64d34bda71SBenoît Canet# Since: 0.14.0 65d34bda71SBenoît Canet## 66895a2a80SEric Blake{ 'struct': 'VersionInfo', 674752cdbbSEric Blake 'data': {'qemu': 'VersionTriple', 'package': 'str'} } 68d34bda71SBenoît Canet 69d34bda71SBenoît Canet## 70d34bda71SBenoît Canet# @query-version: 71d34bda71SBenoît Canet# 72d34bda71SBenoît Canet# Returns the current version of QEMU. 73d34bda71SBenoît Canet# 74d34bda71SBenoît Canet# Returns: A @VersionInfo object describing the current version of QEMU. 75d34bda71SBenoît Canet# 76d34bda71SBenoît Canet# Since: 0.14.0 77dd746afbSMarc-André Lureau# 78dd746afbSMarc-André Lureau# Example: 79dd746afbSMarc-André Lureau# 80dd746afbSMarc-André Lureau# -> { "execute": "query-version" } 81dd746afbSMarc-André Lureau# <- { 82dd746afbSMarc-André Lureau# "return":{ 83dd746afbSMarc-André Lureau# "qemu":{ 84dd746afbSMarc-André Lureau# "major":0, 85dd746afbSMarc-André Lureau# "minor":11, 86dd746afbSMarc-André Lureau# "micro":5 87dd746afbSMarc-André Lureau# }, 88dd746afbSMarc-André Lureau# "package":"" 89dd746afbSMarc-André Lureau# } 90dd746afbSMarc-André Lureau# } 91dd746afbSMarc-André Lureau# 92d34bda71SBenoît Canet## 93d34bda71SBenoît Canet{ 'command': 'query-version', 'returns': 'VersionInfo' } 94d34bda71SBenoît Canet 95d34bda71SBenoît Canet## 96d34bda71SBenoît Canet# @CommandInfo: 97d34bda71SBenoît Canet# 98d34bda71SBenoît Canet# Information about a QMP command 99d34bda71SBenoît Canet# 100d34bda71SBenoît Canet# @name: The command name 101d34bda71SBenoît Canet# 102d34bda71SBenoît Canet# Since: 0.14.0 103d34bda71SBenoît Canet## 104895a2a80SEric Blake{ 'struct': 'CommandInfo', 'data': {'name': 'str'} } 105d34bda71SBenoît Canet 106d34bda71SBenoît Canet## 107d34bda71SBenoît Canet# @query-commands: 108d34bda71SBenoît Canet# 109d34bda71SBenoît Canet# Return a list of supported QMP commands by this server 110d34bda71SBenoît Canet# 111d34bda71SBenoît Canet# Returns: A list of @CommandInfo for all supported commands 112d34bda71SBenoît Canet# 113d34bda71SBenoît Canet# Since: 0.14.0 1148b0ffce4SMarc-André Lureau# 1158b0ffce4SMarc-André Lureau# Example: 1168b0ffce4SMarc-André Lureau# 1178b0ffce4SMarc-André Lureau# -> { "execute": "query-commands" } 1188b0ffce4SMarc-André Lureau# <- { 1198b0ffce4SMarc-André Lureau# "return":[ 1208b0ffce4SMarc-André Lureau# { 1218b0ffce4SMarc-André Lureau# "name":"query-balloon" 1228b0ffce4SMarc-André Lureau# }, 1238b0ffce4SMarc-André Lureau# { 1248b0ffce4SMarc-André Lureau# "name":"system_powerdown" 1258b0ffce4SMarc-André Lureau# } 1268b0ffce4SMarc-André Lureau# ] 1278b0ffce4SMarc-André Lureau# } 1288b0ffce4SMarc-André Lureau# 1298b0ffce4SMarc-André Lureau# Note: This example has been shortened as the real response is too long. 1308b0ffce4SMarc-André Lureau# 131d34bda71SBenoît Canet## 132d34bda71SBenoît Canet{ 'command': 'query-commands', 'returns': ['CommandInfo'] } 133d34bda71SBenoît Canet 134d1048befSDon Slutz## 1355072f7b3SMarc-André Lureau# @OnOffAuto: 136d1048befSDon Slutz# 137d1048befSDon Slutz# An enumeration of three options: on, off, and auto 138d1048befSDon Slutz# 139d1048befSDon Slutz# @auto: QEMU selects the value between on and off 140d1048befSDon Slutz# 141d1048befSDon Slutz# @on: Enabled 142d1048befSDon Slutz# 143d1048befSDon Slutz# @off: Disabled 144d1048befSDon Slutz# 145d1048befSDon Slutz# Since: 2.2 146d1048befSDon Slutz## 147d1048befSDon Slutz{ 'enum': 'OnOffAuto', 148d1048befSDon Slutz 'data': [ 'auto', 'on', 'off' ] } 14932c18a2dSMatt Gingell 15032c18a2dSMatt Gingell## 1515072f7b3SMarc-André Lureau# @OnOffSplit: 15232c18a2dSMatt Gingell# 15332c18a2dSMatt Gingell# An enumeration of three values: on, off, and split 15432c18a2dSMatt Gingell# 15532c18a2dSMatt Gingell# @on: Enabled 15632c18a2dSMatt Gingell# 15732c18a2dSMatt Gingell# @off: Disabled 15832c18a2dSMatt Gingell# 15932c18a2dSMatt Gingell# @split: Mixed 16032c18a2dSMatt Gingell# 16132c18a2dSMatt Gingell# Since: 2.6 16232c18a2dSMatt Gingell## 16332c18a2dSMatt Gingell{ 'enum': 'OnOffSplit', 16432c18a2dSMatt Gingell 'data': [ 'on', 'off', 'split' ] } 165*a2ff5a48SMarkus Armbruster 166*a2ff5a48SMarkus Armbruster## 167*a2ff5a48SMarkus Armbruster# @String: 168*a2ff5a48SMarkus Armbruster# 169*a2ff5a48SMarkus Armbruster# A fat type wrapping 'str', to be embedded in lists. 170*a2ff5a48SMarkus Armbruster# 171*a2ff5a48SMarkus Armbruster# Since: 1.2 172*a2ff5a48SMarkus Armbruster## 173*a2ff5a48SMarkus Armbruster{ 'struct': 'String', 174*a2ff5a48SMarkus Armbruster 'data': { 175*a2ff5a48SMarkus Armbruster 'str': 'str' } } 176