Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
QEMU-STORAGE-DAEMON-QMP-REF(7)	     QEMU	QEMU-STORAGE-DAEMON-QMP-REF(7)

NAME
       qemu-storage-daemon-qmp-ref - QEMU Storage Daemon QMP Reference Manual

        Introduction

        Common	data types

        Socket	data types

        Cryptography

        Background jobs

        Block devices

	  Block core (VM unrelated)

	  Block device	exports

        Character devices

        User authorization

        Transactions

        QMP monitor control

        QMP introspection

        QEMU Object Model (QOM)

INTRODUCTION
       This  manual  describes	the  commands and events supported by the QEMU
       storage daemon QMP.

       For locating a particular item, please see the QSD Index.

       The following notation is used in examples:

	  Example:

	      -> ... text sent by client (commands) ...
	      <- ... text sent by server (command responses and	events)	...

       Example text is formatted for readability.  However, in	real  protocol
       usage, its commonly emitted as a	single line.

       Please refer to the QEMU	Machine	Protocol Specification for the general
       format of commands, responses, and events.

COMMON DATA TYPES
       Enum IoOperationType (Since: 2.1)
	      An enumeration of	the I/O	operation types

	      Values

		      read -- read operation

		      write --	write operation

       Enum OnOffAuto (Since: 2.2)
	      An enumeration of	three options: on, off,	and auto

	      Values

		      auto -- QEMU selects the	value between on and off

		      on -- Enabled

		      off -- Disabled

       Enum OnOffSplit (Since: 2.6)
	      An enumeration of	three values: on, off, and split

	      Values

		      on -- Enabled

		      off -- Disabled

		      split --	Mixed

       Alternate StrOrNull (Since: 2.10)
	      This  is	a  string value	or the explicit	lack of	a string (null
	      pointer in C).  Intended for cases when  'optional  absent'  al-
	      ready has	a different meaning.

	      Alternatives

		      s (string) -- the string	value

		      n (null)	-- no string value

       Enum OffAutoPCIBAR (Since: 2.12)
	      An enumeration of	options	for specifying a PCI BAR

	      Values

		      off -- The specified feature is disabled

		      auto  --	 The  PCI BAR for the feature is automatically
		       selected

		      bar0 -- PCI BAR0	is used	for the	feature

		      bar1 -- PCI BAR1	is used	for the	feature

		      bar2 -- PCI BAR2	is used	for the	feature

		      bar3 -- PCI BAR3	is used	for the	feature

		      bar4 -- PCI BAR4	is used	for the	feature

		      bar5 -- PCI BAR5	is used	for the	feature

       Enum PCIELinkSpeed (Since: 4.0)
	      An enumeration of	PCIe link speeds in units of GT/s

	      Values

		      2_5 -- 2.5GT/s

		      5 -- 5.0GT/s

		      8 -- 8.0GT/s

		      16 -- 16.0GT/s

		      32 -- 32.0GT/s (since 9.0)

		      64 -- 64.0GT/s (since 9.0)

       Enum PCIELinkWidth (Since: 4.0)
	      An enumeration of	PCIe link width

	      Values

		      1 -- x1

		      2 -- x2

		      4 -- x4

		      8 -- x8

		      12 -- x12

		      16 -- x16

		      32 -- x32

       Enum HostMemPolicy (Since: 2.1)
	      Host memory policy types

	      Values

		      default -- restore default policy,  remove  any	nonde-
		       fault policy

		      preferred  --  set the preferred	host nodes for alloca-
		       tion

		      bind -- a strict	policy that restricts  memory  alloca-
		       tion to the host	nodes specified

		      interleave -- memory allocations	are interleaved	across
		       the set of host nodes specified

       Enum NetFilterDirection (Since: 2.5)
	      Indicates	whether	a netfilter is attached	to a netdev's transmit
	      queue or receive queue or	both.

	      Values

		      all  --	the filter is attached both to the receive and
		       the transmit queue of the netdev	(default).

		      rx -- the filter	is attached to the  receive  queue  of
		       the  netdev,  where it will receive packets sent	to the
		       netdev.

		      tx -- the filter	is attached to the transmit  queue  of
		       the  netdev,  where it will receive packets sent	by the
		       netdev.

       Enum GrabToggleKeys (Since: 4.0)
	      Key combinations to toggle input-linux between host and guest.

	      Values

		      ctrl-ctrl -- left and right control key

		      alt-alt -- left and right alt key

		      shift-shift -- left and right shift key

		      meta-meta -- left and right meta	key

		      scrolllock -- scroll lock key

		      ctrl-scrolllock -- either control key and  scroll  lock
		       key

       Object HumanReadableText	(Since:	6.2)

	      Members

		      human-readable-text  (string)  --  Formatted output in-
		       tended for humans.

       Enum EndianMode (Since: 10.0)

	      Values

		      unspecified -- Endianness not specified

		      little -- Little	endianness

		      big -- Big endianness

SOCKET DATA TYPES
       Enum NetworkAddressFamily (Since: 2.1)
	      The network address family

	      Values

		      ipv4 -- IPV4 family

		      ipv6 -- IPV6 family

		      unix -- unix socket

		      vsock --	vsock family (since 2.8)

		      unknown -- otherwise

       Object InetSocketAddressBase

	      Members

		      host (string) --	host part of the address

		      port (string) --	port part of the address

       Object InetSocketAddress	(Since:	1.3)
	      Captures a socket	address	or address range in the	Internet name-
	      space.

	      Members

		      numeric (boolean, optional) -- true  if	the  host/port
		       are  guaranteed to be numeric, false if name resolution
		       should be attempted.  Defaults to false.	 (Since	2.9)

		      to (int,	optional) -- If	present, this is range of pos-
		       sible addresses,	with port between port and to.

		      ipv4 (boolean, optional)	-- whether to accept IPv4  ad-
		       dresses,	default	try both IPv4 and IPv6

		      ipv6  (boolean, optional) -- whether to accept IPv6 ad-
		       dresses,	default	try both IPv4 and IPv6

		      keep-alive (boolean,  optional)	--  enable  keep-alive
		       when  connecting	 to/listening  on this socket.	(Since
		       4.2, not	supported for listening	sockets	until 10.1)

		      keep-alive-count	  (int,	  optional)   --   number   of
		       keep-alive   packets  sent  before  the	connection  is
		       closed.	Only supported	for  TCP  sockets  on  systems
		       where  TCP_KEEPCNT  socket  option is defined (this in-
		       cludes  Linux,  Windows,	 macOS,	  FreeBSD,   but   not
		       OpenBSD).   When	 set  to  0,  system  setting is used.
		       (Since 10.1)

		      keep-alive-idle (int, optional) -- time in seconds  the
		       connection  needs to be idle before sending a keepalive
		       packet.	Only supported	for  TCP  sockets  on  systems
		       where  TCP_KEEPIDLE  socket option is defined (this in-
		       cludes  Linux,  Windows,	 macOS,	  FreeBSD,   but   not
		       OpenBSD).   When	 set  to  0,  system  setting is used.
		       (Since 10.1)

		      keep-alive-interval (int, optional) -- time in  seconds
		       between	keep-alive  packets.   Only  supported for TCP
		       sockets on systems where	TCP_KEEPINTVL is defined (this
		       includes	 Linux,	 Windows,  macOS,  FreeBSD,  but   not
		       OpenBSD).   When	 set  to  0,  system  setting is used.
		       (Since 10.1)

		      mptcp (boolean, optional)  --  enable  multi-path  TCP.
		       (Since 6.1)

		      The members of InetSocketAddressBase.

       Object UnixSocketAddress	(Since:	1.3)
	      Captures	a  socket  address  in the local ("Unix	socket") name-
	      space.

	      Members

		      path (string) --	filesystem path	to use

		      abstract	(boolean, optional) --	if  true,  this	 is  a
		       Linux  abstract	socket address.	 path will be prefixed
		       by a null byte, and optionally padded with null	bytes.
		       Defaults	to false.  (Since 5.1)

		      tight  (boolean,	optional) -- if	false, pad an abstract
		       socket address with enough null bytes to	make  it  fill
		       struct  sockaddr_un member sun_path.  Defaults to true.
		       (Since 5.1)

       Object VsockSocketAddress (Since: 2.8)
	      Captures a socket	address	in the vsock namespace.

	      Members

		      cid (string) -- unique host identifier

		      port (string) --	port

	      NOTE:
		 String	types are used to allow	for possible  future  hostname
		 or service resolution support.

       Object FdSocketAddress (Since: 1.2)
	      A	file descriptor	name or	number.

	      Members

		      str  (string) --	decimal	is for file descriptor number,
		       otherwise it's a	file descriptor	name.  Named file  de-
		       scriptors  are permitted	in monitor commands, in	combi-
		       nation with the getfd command.  Decimal	file  descrip-
		       tors  are  permitted at startup or other	contexts where
		       no monitor context is active.

       Object InetSocketAddressWrapper (Since: 1.3)

	      Members

		      data (InetSocketAddress)	-- internet domain socket  ad-
		       dress

       Object UnixSocketAddressWrapper (Since: 1.3)

	      Members

		      data (UnixSocketAddress)	-- UNIX	domain socket address

       Object VsockSocketAddressWrapper	(Since:	2.8)

	      Members

		      data  (VsockSocketAddress)  --  VSOCK domain socket ad-
		       dress

       Object FdSocketAddressWrapper (Since: 1.3)

	      Members

		      data (FdSocketAddress) -- file descriptor name or  num-
		       ber

       Object SocketAddressLegacy (Since: 1.3)
	      Captures	the  address  of a socket, which could also be a named
	      file descriptor

	      Members

		      type (SocketAddressType)	-- Transport type

		      When    type    is     inet:	The	members	    of
		       InetSocketAddressWrapper.

		      When	type	 is	unix:	  The	 members    of
		       UnixSocketAddressWrapper.

		      When    type    is    vsock:	The	members	    of
		       VsockSocketAddressWrapper.

		      When type is fd:	The members of FdSocketAddressWrapper.

       Enum SocketAddressType (Since: 2.9)
	      Available	SocketAddress types

	      Values

		      inet -- Internet	address

		      unix -- Unix domain socket

		      vsock --	VMCI address

		      fd -- Socket file descriptor

       Object SocketAddress (Since: 2.9)
	      Captures	the  address of	a socket, which	could also be a	socket
	      file descriptor

	      Members

		      type (SocketAddressType)	-- Transport type

		      When type is inet: The members of InetSocketAddress.

		      When type is unix: The members of UnixSocketAddress.

		      When type is vsock: The members of VsockSocketAddress.

		      When type is fd:	The members of FdSocketAddress.

CRYPTOGRAPHY
       Enum QCryptoTLSCredsEndpoint (Since: 2.5)
	      The type of network endpoint that	will be	using the credentials.
	      Most types of credential require different  setup	 /  structures
	      depending	 on  whether  they  will  be used in a server versus a
	      client.

	      Values

		      client -- the network endpoint is acting	as the client

		      server -- the network endpoint is acting	as the server

       Enum QCryptoSecretFormat	(Since:	2.6)
	      The data format that the secret is provided in

	      Values

		      raw -- raw bytes.  When	encoded	 in  JSON  only	 valid
		       UTF-8 sequences can be used

		      base64 -- arbitrary base64 encoded binary data

       Enum QCryptoHashAlgo (Since: 2.6)
	      The supported algorithms for computing content digests

	      Values

		      md5 -- MD5.  Should not be used in any new code,	legacy
		       compat only

		      sha1  --	 SHA-1.	  Should  not be used in any new code,
		       legacy compat only

		      sha224 -- SHA-224.  (since 2.7)

		      sha256 -- SHA-256.  Current recommended strong hash.

		      sha384 -- SHA-384.  (since 2.7)

		      sha512 -- SHA-512.  (since 2.7)

		      ripemd160 -- RIPEMD-160.	 (since	2.7)

		      sm3 -- SM3.  (since 9.2.0)

       Enum QCryptoCipherAlgo (Since: 2.6)
	      The supported algorithms for content encryption ciphers

	      Values

		      aes-128 -- AES with 128 bit / 16	byte keys

		      aes-192 -- AES with 192 bit / 24	byte keys

		      aes-256 -- AES with 256 bit / 32	byte keys

		      des -- DES with 56 bit /	8 byte keys.  Do not  use  ex-
		       cept in VNC.  (since 6.1)

		      3des  --	 3DES(EDE)  with 192 bit / 24 byte keys	(since
		       2.9)

		      cast5-128 -- Cast5 with 128 bit / 16 byte keys

		      serpent-128 -- Serpent with 128 bit / 16	byte keys

		      serpent-192 -- Serpent with 192 bit / 24	byte keys

		      serpent-256 -- Serpent with 256 bit / 32	byte keys

		      twofish-128 -- Twofish with 128 bit / 16	byte keys

		      twofish-192 -- Twofish with 192 bit / 24	byte keys

		      twofish-256 -- Twofish with 256 bit / 32	byte keys

		      sm4 -- SM4 with 128 bit / 16 byte keys (since 9.0)

       Enum QCryptoCipherMode (Since: 2.6)
	      The supported modes for content encryption ciphers

	      Values

		      ecb -- Electronic Code Book

		      cbc -- Cipher Block Chaining

		      xts -- XEX with tweaked code book and ciphertext	steal-
		       ing

		      ctr -- Counter (Since 2.8)

       Enum QCryptoIVGenAlgo (Since: 2.6)
	      The supported algorithms for generating  initialization  vectors
	      for  full	 disk encryption.  The 'plain' generator should	not be
	      used for disks with sector  numbers  larger  than	 2^32,	except
	      where  compatibility with	pre-existing Linux dm-crypt volumes is
	      required.

	      Values

		      plain --	64-bit sector number truncated to 32-bits

		      plain64 -- 64-bit sector	number

		      essiv --	64-bit sector number encrypted with a hash  of
		       the encryption key

       Enum QCryptoBlockFormat (Since: 2.6)
	      The supported full disk encryption formats

	      Values

		      qcow  --	 QCow/QCow2  built-in AES-CBC encryption.  Use
		       only for	liberating data	from old images.

		      luks -- LUKS encryption format.	 Recommended  for  new
		       images

       Object QCryptoBlockOptionsBase (Since: 2.6)
	      The  common  options that	apply to all full disk encryption for-
	      mats

	      Members

		      format (QCryptoBlockFormat) -- the encryption format

       Object QCryptoBlockOptionsQCow (Since: 2.6)
	      The options that apply to	QCow/QCow2 AES-CBC encryption format

	      Members

		      key-secret (string, optional) --	the ID of a QCryptoSe-
		       cret object providing the  decryption  key.   Mandatory
		       except when probing image for metadata only.

       Object QCryptoBlockOptionsLUKS (Since: 2.6)
	      The options that apply to	LUKS encryption	format

	      Members

		      key-secret (string, optional) --	the ID of a QCryptoSe-
		       cret  object  providing	the decryption key.  Mandatory
		       except when probing image for metadata only.

       Object QCryptoBlockCreateOptionsLUKS (Since: 2.6)
	      The options that apply to	LUKS encryption	format initialization

	      Members

		      cipher-alg (QCryptoCipherAlgo, optional)	-- the	cipher
		       algorithm  for  data encryption.	 Currently defaults to
		       'aes-256'.

		      cipher-mode (QCryptoCipherMode, optional) -- the	cipher
		       mode for	data encryption.  Currently defaults to	'xts'

		      ivgen-alg (QCryptoIVGenAlgo, optional) -- the  initial-
		       ization	 vector	  generator.   Currently  defaults  to
		       'plain64'

		      ivgen-hash-alg (QCryptoHashAlgo,	optional) -- the  ini-
		       tialization  vector generator hash.  Currently defaults
		       to 'sha256'

		      hash-alg	(QCryptoHashAlgo, optional) -- the master  key
		       hash algorithm.	Currently defaults to 'sha256'

		      iter-time  (int,	optional) -- number of milliseconds to
		       spend in	PBKDF passphrase  processing.	Currently  de-
		       faults to 2000.	(since 2.8)

		      The members of QCryptoBlockOptionsLUKS.

       Object QCryptoBlockOpenOptions (Since: 2.6)
	      The  options  that are available for all encryption formats when
	      opening an existing volume

	      Members

		      The members of QCryptoBlockOptionsBase.

		      When    format	 is    qcow:	The	members	    of
		       QCryptoBlockOptionsQCow.

		      When	format	   is	 luks:	  The	 members    of
		       QCryptoBlockOptionsLUKS.

       Object QCryptoBlockCreateOptions	(Since:	2.6)
	      The options that are available for all encryption	 formats  when
	      initializing a new volume

	      Members

		      The members of QCryptoBlockOptionsBase.

		      When	format	   is	 qcow:	  The	 members    of
		       QCryptoBlockOptionsQCow.

		      When    format	 is    luks:	The	members	    of
		       QCryptoBlockCreateOptionsLUKS.

       Object QCryptoBlockInfoBase (Since: 2.7)
	      The  common information that applies to all full disk encryption
	      formats

	      Members

		      format (QCryptoBlockFormat) -- the encryption format

       Object QCryptoBlockInfoLUKSSlot (Since: 2.7)
	      Information about	the LUKS block encryption key slot options

	      Members

		      active (boolean)	-- whether the key slot	 is  currently
		       in use

		      key-offset (int)	-- offset to the key material in bytes

		      iters  (int,  optional)	-- number of PBKDF2 iterations
		       for key material

		      stripes (int, optional) -- number of stripes for	split-
		       ting key	material

       Object QCryptoBlockInfoLUKS (Since: 2.7)
	      Information about	the LUKS block encryption options

	      Members

		      cipher-alg (QCryptoCipherAlgo) -- the cipher  algorithm
		       for data	encryption

		      cipher-mode  (QCryptoCipherMode)	-- the cipher mode for
		       data encryption

		      ivgen-alg (QCryptoIVGenAlgo) -- the initialization vec-
		       tor generator

		      ivgen-hash-alg (QCryptoHashAlgo,	optional) -- the  ini-
		       tialization vector generator hash

		      hash-alg	(QCryptoHashAlgo) -- the master	key hash algo-
		       rithm

		      detached-header (boolean) -- whether the	LUKS header is
		       detached	(Since 9.0)

		      payload-offset  (int)  -- offset	to the payload data in
		       bytes

		      master-key-iters	(int) -- number	of  PBKDF2  iterations
		       for key material

		      uuid (string) --	unique identifier for the volume

		      slots ([QCryptoBlockInfoLUKSSlot]) -- information about
		       each key	slot

       Object QCryptoBlockInfo (Since: 2.7)
	      Information about	the block encryption options

	      Members

		      The members of QCryptoBlockInfoBase.

		      When	format	   is	 luks:	  The	 members    of
		       QCryptoBlockInfoLUKS.

       Enum QCryptoBlockLUKSKeyslotState (Since: 5.1)
	      Defines state of keyslots	that are affected by the update

	      Values

		      active -- The slots  contain  the  given	 password  and
		       marked as active

		      inactive	 -- The	slots are erased (contain garbage) and
		       marked as inactive

       Object QCryptoBlockAmendOptionsLUKS (Since: 5.1)
	      This struct defines the update parameters	that activate/de-acti-
	      vate set of keyslots

	      Members

		      state  (QCryptoBlockLUKSKeyslotState)  --  the  desired
		       state of	the keyslots

		      new-secret (string, optional) --	The ID of a QCryptoSe-
		       cret  object  providing the password to be written into
		       added active keyslots

		      old-secret (string, optional) --	Optional (for  deacti-
		       vation  only).	If  given will deactivate all keyslots
		       that match password located in QCryptoSecret with  this
		       ID

		      iter-time  (int,	 optional) -- Optional (for activation
		       only).	Number	of  milliseconds  to  spend  in	 PBKDF
		       passphrase  processing for the newly activated keyslot.
		       Currently defaults to 2000.

		      keyslot (int, optional) --

		       Optional.  ID of	the  keyslot  to  activate/deactivate.
		       For  keyslot  activation,  keyslot should not be	active
		       already (this is	unsafe to update an  active  keyslot),
		       but possible if 'force' parameter is given.  If keyslot
		       is not given, first free	keyslot	will be	written.

		       For  keyslot deactivation, this parameter specifies the
		       exact keyslot to	deactivate

		      secret (string, optional) -- Optional.	The  ID	 of  a
		       QCryptoSecret  object  providing	the password to	use to
		       retrieve	current	master key.  Defaults to the same  se-
		       cret that was used to open the image

       Object QCryptoBlockAmendOptions (Since: 5.1)
	      The  options  that are available for all encryption formats when
	      amending encryption settings

	      Members

		      The members of QCryptoBlockOptionsBase.

		      When    format	 is    luks:	The	members	    of
		       QCryptoBlockAmendOptionsLUKS.

       Object SecretCommonProperties (Since: 2.6)
	      Properties for objects of	classes	derived	from secret-common.

	      Members

		      format (QCryptoSecretFormat, optional) -- the data for-
		       mat that	the secret is provided in (default: raw)

		      keyid  (string, optional) -- the	name of	another	secret
		       that should be used to decrypt the provided  data.   If
		       not present, the	data is	assumed	to be unencrypted.

		      iv (string, optional) --	the random initialization vec-
		       tor  used  for  encryption  of  this particular secret.
		       Should be a base64 encrypted string of the 16-byte  IV.
		       Mandatory  if  keyid is given.  Ignored if keyid	is ab-
		       sent.

       Object SecretProperties (Since: 2.6)
	      Properties for secret objects.

	      Either data or file must be provided, but	not both.

	      Members

		      data (string, optional) -- the associated with the  se-
		       cret from

		      file  (string,  optional)  --  the filename to load the
		       data associated with the	secret from

		      The members of SecretCommonProperties.

       Object SecretKeyringProperties (Since: 5.1)
	      Availability: CONFIG_SECRET_KEYRING

	      Properties for secret_keyring objects.

	      Members

		      serial (int) -- serial number that identifies a key  to
		       get from	the kernel

		      The members of SecretCommonProperties.

       Object TlsCredsProperties (Since: 2.5)
	      Properties for objects of	classes	derived	from tls-creds.

	      Members

		      verify-peer  (boolean,  optional)  --  if true the peer
		       credentials will	be verified once the handshake is com-
		       pleted.	This is	a  no-op  for  anonymous  credentials.
		       (default: true)

		      dir  (string,  optional)	 --  the path of the directory
		       that contains the credential files

		      endpoint	(QCryptoTLSCredsEndpoint, optional) -- whether
		       the QEMU	network	backend	that uses the credentials will
		       be acting as a client or	as a server (default: client)

		      priority	(string, optional) -- a	gnutls priority	string
		       as		      described			    at
		       https://gnutls.org/manual/html_node/Priority-Strings.html

       Object TlsCredsAnonProperties (Since: 2.5)
	      Properties for tls-creds-anon objects.

	      Members

		      The members of TlsCredsProperties.

       Object TlsCredsPskProperties (Since: 3.0)
	      Properties for tls-creds-psk objects.

	      Members

		      username	 (string, optional) -- the username which will
		       be sent to the server.  For clients only.   If  absent,
		       "qemu"  is  sent	 and the property will read back as an
		       empty string.

		      The members of TlsCredsProperties.

       Object TlsCredsX509Properties (Since: 2.5)
	      Properties for tls-creds-x509 objects.

	      Members

		      sanity-check (boolean, optional)	--  if	true,  perform
		       some  sanity  checks  before using the credentials (de-
		       fault: true)

		      passwordid (string, optional) --	For the	server-key.pem
		       and client-key.pem files	which contain  sensitive  pri-
		       vate  keys,  it is possible to use an encrypted version
		       by providing the	passwordid parameter.	This  provides
		       the ID of a previously created secret object containing
		       the password for	decryption.

		      The members of TlsCredsProperties.

       Enum QCryptoAkCipherAlgo	(Since:	7.1)
	      The supported algorithms for asymmetric encryption ciphers

	      Values

		      rsa -- RSA algorithm

       Enum QCryptoAkCipherKeyType (Since: 7.1)
	      The type of asymmetric keys.

	      Values

		      public -- public	key

		      private -- private key

       Enum QCryptoRSAPaddingAlgo (Since: 7.1)
	      The padding algorithm for	RSA.

	      Values

		      raw -- no padding used

		      pkcs1 --	pkcs1#v1.5

       Object QCryptoAkCipherOptionsRSA	(Since:	7.1)
	      Specific parameters for RSA algorithm.

	      Members

		      hash-alg	(QCryptoHashAlgo) -- QCryptoHashAlgo

		      padding-alg	    (QCryptoRSAPaddingAlgo)	    --
		       QCryptoRSAPaddingAlgo

       Object QCryptoAkCipherOptions (Since: 7.1)
	      The options that are available for all asymmetric	key algorithms
	      when creating a new QCryptoAkCipher.

	      Members

		      alg (QCryptoAkCipherAlgo) --  encryption	 cipher	 algo-
		       rithm

		      When	alg	is     rsa:	The	members	    of
		       QCryptoAkCipherOptionsRSA.

BACKGROUND JOBS
       Enum JobType (Since: 1.7)
	      Type of a	background job.

	      Values

		      commit -- block commit job type,	see block-commit

		      stream -- block stream job type,	see block-stream

		      mirror -- drive mirror job type,	see drive-mirror

		      backup -- drive backup job type,	see drive-backup

		      create -- image creation	job type, see  blockdev-create
		       (since 3.0)

		      amend   --   image   options   amend   job   type,  see
		       x-blockdev-amend	(since 5.1)

		      snapshot-load  --   snapshot   load   job   type,   see
		       snapshot-load (since 6.0)

		      snapshot-save   --   snapshot   save   job   type,  see
		       snapshot-save (since 6.0)

		      snapshot-delete	--  snapshot  delete  job  type,   see
		       snapshot-delete (since 6.0)

       Enum JobStatus (Since: 2.12)
	      Indicates	the present state of a given job in its	lifetime.

	      Values

		      undefined -- Erroneous, default state.  Should not ever
		       be visible.

		      created	--  The	 job  has  been	 created,  but not yet
		       started.

		      running -- The job is currently running.

		      paused -- The job is running, but  paused.   The	 pause
		       may  be requested by either the QMP user	or by internal
		       processes.

		      ready --	The job	is running, but	is ready for the  user
		       to  signal  completion.	 This is used for long-running
		       jobs like mirror	that are designed to run indefinitely.

		      standby -- The job  is  ready,  but  paused.   This  is
		       nearly  identical  to  paused.	The  job may return to
		       ready or	otherwise be canceled.

		      waiting -- The job is waiting for  other	 jobs  in  the
		       transaction  to	converge  to  the waiting state.  This
		       status will likely not be visible for the last job in a
		       transaction.

		      pending -- The job has finished its work, but  has  fi-
		       nalization  steps  that	it needs to make prior to com-
		       pleting.	 These changes will require  manual  interven-
		       tion  via  job-finalize	if  auto-finalize  was	set to
		       false.  These pending changes may still fail.

		      aborting	-- The job is in the process of	being aborted,
		       and will	finish with an error.  The job will afterwards
		       report that it is concluded.  This status  may  not  be
		       visible to the management process.

		      concluded  --  The  job	has  finished  all  work.   If
		       auto-dismiss was	set to false, the job will  remain  in
		       this state until	it is dismissed	via job-dismiss.

		      null  --	The job	is in the process of being dismantled.
		       This state should not ever be visible externally.

       Enum JobVerb (Since: 2.12)
	      Represents command verbs that can	be applied to a	job.

	      Values

		      cancel -- see job-cancel

		      pause --	see job-pause

		      resume -- see job-resume

		      set-speed -- see	block-job-set-speed

		      complete	-- see job-complete

		      dismiss -- see job-dismiss

		      finalize	-- see job-finalize

		      change -- see block-job-change (since 8.2)

       Event JOB_STATUS_CHANGE (Since: 3.0)
	      Emitted when a job transitions to	a different status.

	      Members

		      id (string) -- The job identifier

		      status (JobStatus) -- The new job status

       Command job-pause (Since: 3.0)
	      Pause an active job.

	      This command returns immediately after marking  the  active  job
	      for pausing.  Pausing an already paused job is an	error.

	      The  job will pause as soon as possible, which means transition-
	      ing into the PAUSED state	if it was RUNNING, or into STANDBY  if
	      it was READY.  The corresponding JOB_STATUS_CHANGE event will be
	      emitted.

	      Cancelling a paused job automatically resumes it.

	      Arguments

		      id (string) -- The job identifier.

       Command job-resume (Since: 3.0)
	      Resume a paused job.

	      This  command  returns  immediately after	resuming a paused job.
	      Resuming an already running job is an error.

	      This  command  also  clears  the	error  status  for  block-jobs
	      (stream, commit, mirror, backup).

	      Arguments

		      id (string) -- The job identifier.

       Command job-cancel (Since: 3.0)
	      Instruct an active background job	to cancel at the next opportu-
	      nity.  This command returns immediately after marking the	active
	      job for cancellation.

	      The  job	will  cancel  as  soon	as  possible  and  then	emit a
	      JOB_STATUS_CHANGE	event.	Usually, the  status  will  change  to
	      ABORTING,	 but  it is possible that a job	successfully completes
	      (e.g.  because it	was almost done	and there was  no  opportunity
	      to  cancel  earlier  than	completing the job) and	transitions to
	      PENDING instead.

	      Arguments

		      id (string) -- The job identifier.

       Command job-complete (Since: 3.0)
	      Manually trigger completion of an	active job  in	the  READY  or
	      STANDBY  state.  Completing the job in any other state is	an er-
	      ror.

	      This is supported	 only  for  drive  mirroring,  where  it  also
	      switches the device to write to the target path only.  Note that
	      drive   mirroring	 includes  drive-mirror,  blockdev-mirror  and
	      block-commit job (only in	case of	"active	commit", when the node
	      being commited is	used by	the guest).  The ability  to  complete
	      is signaled with a BLOCK_JOB_READY event.

	      This command completes an	active background block	operation syn-
	      chronously.   The	 ordering  of  this  command's return with the
	      BLOCK_JOB_COMPLETED event	is not defined.	 Note that if  an  I/O
	      error  occurs during the processing of this command: 1) the com-
	      mand itself will fail; 2)	the error will be processed  according
	      to the rerror/werror arguments that were specified when starting
	      the operation.

	      Arguments

		      id (string) -- The job identifier.

       Command job-dismiss (Since: 3.0)
	      Deletes a	job that is in the CONCLUDED state.  This command only
	      needs  to	 be  run explicitly for	jobs that don't	have automatic
	      dismiss enabled.	In turn, automatic dismiss may be enabled only
	      for jobs that have auto-dismiss option, which are	 drive-backup,
	      blockdev-backup, drive-mirror, blockdev-mirror, block-commit and
	      block-stream.   auto-dismiss  is	enabled	 by  default for these
	      jobs.

	      This command will	refuse to operate on any job that has not  yet
	      reached  its  terminal state, CONCLUDED.	For jobs that make use
	      of the JOB_READY event, job-cancel or  job-complete  will	 still
	      need to be used as appropriate.

	      Arguments

		      id (string) -- The job identifier.

       Command job-finalize (Since: 3.0)
	      Instructs	 all  jobs  in a transaction (or a single job if it is
	      not part of any transaction) to finalize any graph  changes  and
	      do  any  necessary  cleanup.  This command requires that all in-
	      volved jobs are in the PENDING state.

	      For jobs in a transaction, instructing one job to	finalize  will
	      force  ALL  jobs	in  the	transaction to finalize, so it is only
	      necessary	to instruct a single member job	to finalize.

	      The command is applicable	only to	jobs which have	 auto-finalize
	      option and only when this	option is set to false.

	      Arguments

		      id  (string) -- The identifier of any job in the	trans-
		       action, or of a job that	is not part  of	 any  transac-
		       tion.

       Object JobInfo (Since: 3.0)
	      Information about	a job.

	      Members

		      id (string) -- The job identifier

		      type  (JobType)	--  The	kind of	job that is being per-
		       formed

		      status (JobStatus) -- Current job state/status

		      current-progress	(int) -- Progress made until now.  The
		       unit is arbitrary and the value can  only  meaningfully
		       be  used	 for  the  ratio  of  current-progress	to to-
		       tal-progress.  The value	is monotonically increasing.

		      total-progress  (int)  --  Estimated   current-progress
		       value at	the completion of the job.  This value can ar-
		       bitrarily  change while the job is running, in both di-
		       rections.

		      error (string, optional)	--

		       If this field is	present, the  job  failed;  if	it  is
		       still  missing  in  the CONCLUDED state,	this indicates
		       successful completion.

		       The value is a human-readable error message to describe
		       the reason for the  job	failure.   It  should  not  be
		       parsed by applications.

       Command query-jobs (Since: 3.0)
	      Return information about jobs.

	      Return [JobInfo] -- a list with info for each active job

BLOCK DEVICES
   Block core (VM unrelated)
       Object SnapshotInfo (Since: 1.3)

	      Members

		      id (string) -- unique snapshot id

		      name (string) --	user chosen name

		      vm-state-size (int) -- size of the VM state

		      date-sec	(int) -- UTC date of the snapshot in seconds

		      date-nsec  (int)	 -- fractional part in nano seconds to
		       be used with date-sec

		      vm-clock-sec (int) -- VM	clock relative to boot in sec-
		       onds

		      vm-clock-nsec (int) -- fractional part in nano  seconds
		       to be used with vm-clock-sec

		      icount  (int,  optional)	 -- Current instruction	count.
		       Appears when execution record/replay is enabled.	  Used
		       for   "time-traveling"  to  match  the  moment  in  the
		       recorded	execution with the  snapshots.	 This  counter
		       may  be	obtained  through  query-replay	command	(since
		       5.2)

       Object ImageInfoSpecificQCow2EncryptionBase (Since: 2.10)

	      Members

		      format (BlockdevQcow2EncryptionFormat) --  The  encryp-
		       tion format

       Object ImageInfoSpecificQCow2Encryption (Since: 2.10)

	      Members

		      The members of ImageInfoSpecificQCow2EncryptionBase.

		      When	format	   is	 luks:	  The	 members    of
		       QCryptoBlockInfoLUKS.

       Object ImageInfoSpecificQCow2 (Since: 1.7)

	      Members

		      compat (string) -- compatibility	level

		      data-file (string, optional) -- the filename of the ex-
		       ternal data file	that is	stored in the image  and  used
		       as a default for	opening	the image (since: 4.0)

		      data-file-raw (boolean, optional) -- True if the	exter-
		       nal   data   file  must	stay  valid  as	 a  standalone
		       (read-only) raw image without looking at	qcow2 metadata
		       (since: 4.0)

		      extended-l2 (boolean, optional) -- true	if  the	 image
		       has  extended  L2 entries; only valid for compat	>= 1.1
		       (since 5.2)

		      lazy-refcounts (boolean,	optional) -- on	or  off;  only
		       valid for compat	>= 1.1

		      corrupt	(boolean,  optional)  -- true if the image has
		       been marked corrupt;  only  valid  for  compat  >=  1.1
		       (since 2.2)

		      refcount-bits  (int)  --	 width	of a refcount entry in
		       bits (since 2.3)

		      encrypt (ImageInfoSpecificQCow2Encryption, optional) --
		       details about encryption	parameters; only set if	 image
		       is encrypted (since 2.10)

		      bitmaps	([Qcow2BitmapInfo],  optional)	--  A  list of
		       qcow2 bitmap details (since 4.0)

		      compression-type	(Qcow2CompressionType)	--  the	 image
		       cluster compression method (since 5.1)

       Object ImageInfoSpecificVmdk (Since: 1.7)

	      Members

		      create-type (string) -- The create type of VMDK image

		      cid (int) -- Content id of image

		      parent-cid (int)	-- Parent VMDK image's cid

		      extents ([VmdkExtentInfo]) -- List of extent files

       Object VmdkExtentInfo (Since: 8.0)
	      Information about	a VMDK extent file

	      Members

		      filename	(string) -- Name of the	extent file

		      format (string) -- Extent type (e.g. FLAT or SPARSE)

		      virtual-size  (int)  -- Number of bytes covered by this
		       extent

		      cluster-size (int, optional) -- Cluster size  in	 bytes
		       (for non-flat extents)

		      compressed  (boolean,  optional)	-- Whether this	extent
		       contains	compressed data

       Object ImageInfoSpecificRbd (Since: 6.1)

	      Members

		      encryption-format (RbdImageEncryptionFormat,  optional)
		       --  Image  encryption format.  If encryption is enabled
		       for the image (see encrypted in BlockNodeInfo), this is
		       the actual format in which the image is	accessed.   If
		       encryption  is not enabled, this	is the result of prob-
		       ing when	the image was opened,  to  give	 a  suggestion
		       which  encryption  format  could	be enabled.  Note that
		       probing results can be changed by the guest by  writing
		       a  (possibly  partial)  encryption format header	to the
		       image, so don't treat this information  as  trusted  if
		       the guest is not	trusted.

       Object ImageInfoSpecificFile (Since: 8.0)

	      Members

		      extent-size-hint	 (int,	optional)  -- Extent size hint
		       (if available)

       Enum ImageInfoSpecificKind (Since: 1.7)

	      Values

		      luks -- Since 2.7

		      rbd -- Since 6.1

		      file -- Since 8.0

		      qcow2 --	Not documented

		      vmdk -- Not documented

       Object ImageInfoSpecificQCow2Wrapper (Since: 1.7)

	      Members

		      data (ImageInfoSpecificQCow2) --	image information spe-
		       cific to	QCOW2

       Object ImageInfoSpecificVmdkWrapper (Since: 6.1)

	      Members

		      data (ImageInfoSpecificVmdk) -- image information  spe-
		       cific to	VMDK

       Object ImageInfoSpecificLUKSWrapper (Since: 2.7)

	      Members

		      data  (QCryptoBlockInfoLUKS)  --	image information spe-
		       cific to	LUKS

       Object ImageInfoSpecificRbdWrapper (Since: 6.1)

	      Members

		      data (ImageInfoSpecificRbd) -- image  information  spe-
		       cific to	RBD

       Object ImageInfoSpecificFileWrapper (Since: 8.0)

	      Members

		      data  (ImageInfoSpecificFile) --	image information spe-
		       cific to	files

       Object ImageInfoSpecific	(Since:	1.7)
	      A	discriminated record  of  image	 format	 specific  information
	      structures.

	      Members

		      type (ImageInfoSpecificKind) -- block driver name

		      When	type	 is	qcow2:	  The	 members    of
		       ImageInfoSpecificQCow2Wrapper.

		      When    type    is     vmdk:	The	members	    of
		       ImageInfoSpecificVmdkWrapper.

		      When	type	 is	luks:	  The	 members    of
		       ImageInfoSpecificLUKSWrapper.

		      When    type	is     rbd:	The	members	    of
		       ImageInfoSpecificRbdWrapper.

		      When	type	 is	file:	  The	 members    of
		       ImageInfoSpecificFileWrapper.

       Object BlockLimitsInfo

	      Members

		      request-alignment (int) --  Alignment  requirement,  in
		       bytes, for offset/length	of I/O requests.

		      max-discard  (int, optional) -- Maximum number of bytes
		       that can	be discarded at	once.  If not  present,	 there
		       is no specific maximum.

		      discard-alignment  (int,	optional) -- Optimal alignment
		       for discard requests in bytes.  Note that this  doesn't
		       have  to	 be  a power of	two.  If not present, discards
		       don't have a alignment requirement different  from  re-
		       quest-alignment.

		      max-write-zeroes	 (int,	optional) -- Maximum number of
		       bytes that can be zeroed	out at once.  If not  present,
		       there is	no specific maximum.

		      write-zeroes-alignment	(int,	optional)  --  Optimal
		       alignment for write zeroes  requests  in	 bytes.	  Note
		       that  this  doesn't  have to be a power of two.	If not
		       present,	write_zeroes doesn't have a alignment require-
		       ment different from request-alignment.

		      opt-transfer (int, optional) -- Optimal transfer	length
		       in bytes.  If not present, there	is no preferred	size.

		      max-transfer (int, optional) -- Maximal transfer	length
		       in bytes.  If not present, there	is no  specific	 maxi-
		       mum.

		      max-hw-transfer	(int,  optional)  --  Maximal hardware
		       transfer	length in bytes.  Applies  whenever  transfers
		       to  the device bypass the kernel	I/O scheduler, for ex-
		       ample with SG_IO.  If not present, there	is no specific
		       maximum.

		      max-iov (int) --	Maximum	number of scatter/gather  ele-
		       ments

		      max-hw-iov  (int,  optional) -- Maximum number of scat-
		       ter/gather elements allowed by the  hardware.   Applies
		       whenever	 transfers to the device bypass	the kernel I/O
		       scheduler, for example with SG_IO.  If not present, the
		       hardware	limits is unknown and max-iov is always	used.

		      min-mem-alignment  (int)	 --  Minimal  required	memory
		       alignment  in  bytes for	zero-copy I/O to succeed.  For
		       unaligned requests, a bounce buffer will	be used.

		      opt-mem-alignment (int) -- Optimal memory alignment  in
		       bytes.  This is the alignment used for any buffer allo-
		       cations QEMU performs internally.

       Object BlockNodeInfo (Since: 8.0)
	      Information about	a QEMU image file

	      Members

		      filename	(string) -- name of the	image file

		      format (string) -- format of the	image file

		      virtual-size  (int) -- maximum capacity in bytes	of the
		       image

		      actual-size (int, optional) -- actual size on  disk  in
		       bytes of	the image

		      dirty-flag  (boolean, optional) -- true if image	is not
		       cleanly closed

		      cluster-size (int, optional) -- size of	a  cluster  in
		       bytes

		      encrypted  (boolean,  optional) -- true if the image is
		       encrypted

		      compressed (boolean, optional) -- true if the image  is
		       compressed (Since 1.7)

		      backing-filename	 (string,  optional)  --  name	of the
		       backing file

		      full-backing-filename (string, optional)	--  full  path
		       of the backing file

		      backing-filename-format	(string, optional) -- the for-
		       mat of the backing file

		      snapshots ([SnapshotInfo],  optional)  --  list	of  VM
		       snapshots

		      limits (BlockLimitsInfo,	optional) -- block limits that
		       are used	for I/O	on the node (Since 10.2)

		      format-specific (ImageInfoSpecific, optional) --	struc-
		       ture  supplying	additional format-specific information
		       (since 1.7)

       Object ImageInfo	(Since:	1.3)
	      Information about	a QEMU image file, and potentially its backing
	      image

	      Members

		      backing-image (ImageInfo,  optional)  --	 info  of  the
		       backing image

		      The members of BlockNodeInfo.

       Object BlockChildInfo (Since: 8.0)
	      Information  about all nodes in the block	graph starting at some
	      node, annotated with information about that node in relation  to
	      its parent.

	      Members

		      name  (string)  --  Child  name of the root node	in the
		       BlockGraphInfo struct, in its role as the child of some
		       undescribed parent node

		      info (BlockGraphInfo) --	Block graph information	start-
		       ing at this node

       Object BlockGraphInfo (Since: 8.0)
	      Information about	all nodes in a block (sub)graph	in the form of
	      BlockNodeInfo data.  The base BlockNodeInfo struct contains  the
	      information for the (sub)graph's root node.

	      Members

		      children	 ([BlockChildInfo])  --	Array of links to this
		       node's child nodes' information

		      The members of BlockNodeInfo.

       Object ImageCheck (Since: 1.4)
	      Information about	a QEMU image file check

	      Members

		      filename	(string) -- name of the	image file checked

		      format (string) -- format of the	image file checked

		      check-errors (int) -- number of unexpected  errors  oc-
		       curred during check

		      image-end-offset	 (int,	optional) -- offset (in	bytes)
		       where the image ends, this field	is present if the dri-
		       ver for the image format	supports it

		      corruptions (int, optional) --  number  of  corruptions
		       found during the	check if any

		      leaks  (int,  optional) -- number of leaks found	during
		       the check if any

		      corruptions-fixed (int, optional) -- number of  corrup-
		       tions fixed during the check if any

		      leaks-fixed  (int,  optional)  -- number	of leaks fixed
		       during the check	if any

		      total-clusters (int, optional) -- total number of clus-
		       ters, this field	is present if the driver for the image
		       format supports it

		      allocated-clusters (int,	optional) -- total  number  of
		       allocated clusters, this	field is present if the	driver
		       for the image format supports it

		      fragmented-clusters  (int, optional) -- total number of
		       fragmented clusters, this field is present if the  dri-
		       ver for the image format	supports it

		      compressed-clusters  (int, optional) -- total number of
		       compressed clusters, this field is present if the  dri-
		       ver for the image format	supports it

       Object MapEntry (Since: 2.6)
	      Mapping  information  from  a virtual block range	to a host file
	      range

	      Members

		      start (int) -- virtual (guest) offset of	the first byte
		       described by this entry

		      length (int) -- the number of bytes of the mapped  vir-
		       tual range

		      data  (boolean) -- reading the image will actually read
		       data from a file	(in particular,	if offset  is  present
		       this  means  that  the  sectors are not simply preallo-
		       cated, but contain actual data in raw format)

		      zero (boolean) -- whether the virtual  blocks  read  as
		       zeroes

		      compressed (boolean) -- true if the data	is stored com-
		       pressed (since 8.2)

		      depth (int) -- number of	layers (0 = top	image, 1 = top
		       image's	backing	file, ..., n - 1 = bottom image	(where
		       n is the	number of images in the	chain))	before	reach-
		       ing one for which the range is allocated

		      present	(boolean)  --  true if this layer provides the
		       data, false if adding a backing layer could impact this
		       region (since 6.1)

		      offset (int, optional) -- if present,  the  image  file
		       stores  the  data  for  this range in raw format	at the
		       given (host) offset

		      filename	(string, optional) --  filename	 that  is  re-
		       ferred to by offset

       Object BlockdevCacheInfo	(Since:	2.3)
	      Cache mode information for a block device

	      Members

		      writeback  (boolean)  --	 true if writeback mode	is en-
		       abled

		      direct (boolean)	-- true	if the host page cache is  by-
		       passed (O_DIRECT)

		      no-flush	 (boolean)  --	true if	flush requests are ig-
		       nored for the device

       Object BlockdevChild (Since: 10.1)

	      Members

		      child (string) -- The name of the  child,  for  example
		       'file' or 'backing'.

		      node-name  (string)  --	The  name of the child's block
		       driver node.

       Object BlockDeviceInfo (Since: 0.14)
	      Information about	the backing device for a block device.

	      Members

		      file (string) --	the filename of	the backing device

		      node-name (string) -- the name of the block driver node
		       (Since 2.0)

		      ro (boolean) -- true if the  backing  device  was  open
		       read-only

		      drv  (string)  --  the name of the block	format used to
		       open the	backing	device.	  As  of  0.14	this  can  be:
		       'blkdebug',  'bochs',  'cloop',	'cow',	'dmg', 'file',
		       'file',	'ftp',	'ftps',	 'host_cdrom',	'host_device',
		       'http',	'https',  'luks',  'nbd', 'parallels', 'qcow',
		       'qcow2',	'raw',	'vdi',	'vmdk',	 'vpc',	 'vvfat'  2.2:
		       'archipelago'  added,  'cow' dropped 2.3: 'host_floppy'
		       deprecated 2.5: 'host_floppy' dropped 2.6: 'luks' added
		       2.8: 'replication' added, 'tftp'	dropped	 2.9:  'archi-
		       pelago' dropped

		      backing_file  (string,  optional)  --  the  name	of the
		       backing file (for copy-on-write)

		      backing_file_depth (int)	--  number  of	files  in  the
		       backing file chain (since: 1.2)

		      children	 ([BlockdevChild])  -- Information about child
		       block nodes.  (since: 10.1)

		      active (boolean)	-- true	if the backend is active; typ-
		       ical cases for inactive backends	are on	the  migration
		       source  instance	 after	migration completes and	on the
		       destination before it completes.	 (since: 10.0)

		      encrypted (boolean) -- true if the  backing  device  is
		       encrypted

		      detect_zeroes  (BlockdevDetectZeroesOptions)  --	detect
		       and optimize zero writes	(Since 2.1)

		      bps (int) -- total throughput limit in bytes per	second
		       is specified

		      bps_rd (int) -- read throughput limit in	bytes per sec-
		       ond is specified

		      bps_wr (int) -- write throughput	 limit	in  bytes  per
		       second is specified

		      iops (int) -- total I/O operations per second is	speci-
		       fied

		      iops_rd	(int)  --  read	 I/O  operations per second is
		       specified

		      iops_wr (int) --	write I/O  operations  per  second  is
		       specified

		      image  (ImageInfo)  --  the  info of image used (since:
		       1.6)

		      bps_max (int, optional) -- total	throughput limit  dur-
		       ing bursts, in bytes (Since 1.7)

		      bps_rd_max  (int,  optional)  --	 read throughput limit
		       during bursts, in bytes (Since 1.7)

		      bps_wr_max (int,	optional) --  write  throughput	 limit
		       during bursts, in bytes (Since 1.7)

		      iops_max	 (int,	optional)  -- total I/O	operations per
		       second during bursts, in	bytes (Since 1.7)

		      iops_rd_max (int, optional) -- read I/O operations  per
		       second during bursts, in	bytes (Since 1.7)

		      iops_wr_max (int, optional) -- write I/O	operations per
		       second during bursts, in	bytes (Since 1.7)

		      bps_max_length (int, optional) -- maximum length	of the
		       bps_max burst period, in	seconds.  (Since 2.6)

		      bps_rd_max_length  (int,	optional) -- maximum length of
		       the bps_rd_max burst period, in seconds.	 (Since	2.6)

		      bps_wr_max_length (int, optional) -- maximum length  of
		       the bps_wr_max burst period, in seconds.	 (Since	2.6)

		      iops_max_length	(int,  optional)  -- maximum length of
		       the iops	burst period, in seconds.  (Since 2.6)

		      iops_rd_max_length (int,	optional) -- maximum length of
		       the iops_rd_max burst period, in	seconds.  (Since 2.6)

		      iops_wr_max_length (int,	optional) -- maximum length of
		       the iops_wr_max burst period, in	seconds.  (Since 2.6)

		      iops_size (int, optional)  --  an  I/O  size  in	 bytes
		       (Since 1.7)

		      group  (string, optional) -- throttle group name	(Since
		       2.4)

		      cache (BlockdevCacheInfo) -- the	cache  mode  used  for
		       the block device	(since:	2.3)

		      write_threshold (int) --	configured write threshold for
		       the device.  0 if disabled.  (Since 2.3)

		      dirty-bitmaps  ([BlockDirtyInfo],  optional)  --	 dirty
		       bitmaps information (only present if node  has  one  or
		       more dirty bitmaps) (Since 4.2)

       Enum BlockDeviceIoStatus	(Since:	1.0)
	      An enumeration of	block device I/O status.

	      Values

		      ok -- The last I/O operation has	succeeded

		      failed -- The last I/O operation	has failed

		      nospace	--  The	last I/O operation has failed due to a
		       no-space	condition

       Object BlockDirtyInfo (Since: 1.3)
	      Block dirty bitmap information.

	      Members

		      name (string, optional) -- the name of the dirty	bitmap
		       (Since 2.4)

		      count (int) -- number of	dirty bytes according  to  the
		       dirty bitmap

		      granularity (int) -- granularity	of the dirty bitmap in
		       bytes (since 1.4)

		      recording  (boolean) -- true if the bitmap is recording
		       new writes from the guest.  (since 4.0)

		      busy (boolean) -- true if the bitmap is in-use by  some
		       operation  (NBD or jobs)	and cannot be modified via QMP
		       or used by another operation.  (since 4.0)

		      persistent (boolean) -- true if the bitmap  was	stored
		       on  disk,  is  scheduled	to be stored on	disk, or both.
		       (since 4.0)

		      inconsistent (boolean, optional)	-- true	if this	 is  a
		       persistent  bitmap that was improperly stored.  Implies
		       persistent to be	true; recording	and busy to be	false.
		       This   bitmap  cannot  be  used.	  To  remove  it,  use
		       block-dirty-bitmap-remove.  (Since 4.0)

       Enum Qcow2BitmapInfoFlags (Since: 4.0)
	      An enumeration of	flags that a bitmap can	report to the user.

	      Values

		      in-use -- This flag is set by any process actively mod-
		       ifying the qcow2	file, and  cleared  when  the  updated
		       bitmap  is flushed to the qcow2 image.  The presence of
		       this flag in an offline image means that	the bitmap was
		       not saved correctly after its last usage, and may  con-
		       tain inconsistent data.

		      auto -- The bitmap must reflect all changes of the vir-
		       tual  disk  by any application that would write to this
		       qcow2 file.

       Object Qcow2BitmapInfo (Since: 4.0)
	      Qcow2 bitmap information.

	      Members

		      name (string) --	the name of the	bitmap

		      granularity (int) -- granularity	of the bitmap in bytes

		      flags ([Qcow2BitmapInfoFlags]) -- flags of the bitmap

       Object BlockLatencyHistogramInfo	(Since:	4.0)
	      Block latency histogram.

	      Members

		      boundaries ([int]) -- list of interval boundary	values
		       in  nanoseconds,	all greater than zero and in ascending
		       order.  For example, the	list [10,  50,	100]  produces
		       the  following  histogram intervals: [0,	10), [10, 50),
		       [50, 100), [100,	+inf).

		      bins ([int]) --

		       list of io request counts  corresponding	 to  histogram
		       intervals,  one	more element than boundaries has.  For
		       the example above, bins may be something	like [3, 1, 5,
		       2], and corresponding histogram looks like:

			  5|	       *
			  4|	       *
			  3| *	       *
			  2| *	       *    *
			  1| *	  *    *    *
			   +------------------
			       10   50	 100

       Object BlockInfo	(Since:	0.14)
	      Block device information.	 This structure	 describes  a  virtual
	      device and the backing device associated with it.

	      Members

		      device  (string)	-- The device name associated with the
		       virtual device.

		      qdev (string, optional) -- The qdev ID, or if no	ID  is
		       assigned,  the  QOM  path  of the block device.	(since
		       2.10)

		      type (string) --	This field is returned only  for  com-
		       patibility  reasons,  it	should not be used (always re-
		       turns 'unknown')

		      removable (boolean) -- True if the device supports  re-
		       movable media.

		      locked  (boolean)  -- True if the guest has locked this
		       device from having its media removed

		      tray_open (boolean, optional) --	True if	 the  device's
		       tray is open (only present if it	has a tray)

		      io-status     (BlockDeviceIoStatus,     optional)    --
		       BlockDeviceIoStatus.  Only present if the  device  sup-
		       ports  it  and  the  VM is configured to	stop on	errors
		       (supported device models: virtio-blk, IDE, SCSI	except
		       scsi-generic)

		      inserted	(BlockDeviceInfo, optional) -- BlockDeviceInfo
		       describing the device if	media is present

       Object BlockMeasureInfo (Since: 2.10)
	      Image  file  size	 calculation  information.  This structure de-
	      scribes the size requirements for	creating a new image file.

	      The size requirements depend on the new image file format.  File
	      size always equals virtual disk size for the 'raw' format,  even
	      for  sparse POSIX	files.	Compact	formats	such as	'qcow2'	repre-
	      sent unallocated and zero	regions	efficiently so file  size  may
	      be smaller than virtual disk size.

	      The  values  are upper bounds that are guaranteed	to fit the new
	      image file.  Subsequent modification, such as internal  snapshot
	      or  further bitmap creation, may require additional space	and is
	      not covered here.

	      Members

		      required	(int) -- Size required for a new  image	 file,
		       in  bytes,  when	 copying  just allocated guest-visible
		       contents.

		      fully-allocated (int) --	Image  file  size,  in	bytes,
		       once data has been written to all sectors, when copying
		       just guest-visible contents.

		      bitmaps	(int, optional)	-- Additional size required if
		       all the top-level bitmap	metadata in the	 source	 image
		       were to be copied to the	destination, present only when
		       source and destination both support persistent bitmaps.
		       (since 5.1)

       Command query-block (Since: 0.14)
	      Get a list of BlockInfo for all virtual block devices.

	      Return [BlockInfo]  --  a	list describing	each virtual block de-
		     vice.  Filter nodes  that	were  created  implicitly  are
		     skipped over.

		 Example:

		     ->	{ "execute": "query-block" }
		     <-	{
			   "return":[
			      {
				 "io-status": "ok",
				 "device":"ide0-hd0",
				 "locked":false,
				 "removable":false,
				 "inserted":{
				    "ro":false,
				    "drv":"qcow2",
				    "encrypted":false,
				    "file":"disks/test.qcow2",
				    "backing_file_depth":1,
				    "bps":1000000,
				    "bps_rd":0,
				    "bps_wr":0,
				    "iops":1000000,
				    "iops_rd":0,
				    "iops_wr":0,
				    "bps_max": 8000000,
				    "bps_rd_max": 0,
				    "bps_wr_max": 0,
				    "iops_max":	0,
				    "iops_rd_max": 0,
				    "iops_wr_max": 0,
				    "iops_size": 0,
				    "detect_zeroes": "on",
				    "write_threshold": 0,
				    "image":{
				       "filename":"disks/test.qcow2",
				       "format":"qcow2",
				       "virtual-size":2048000,
				       "backing_file":"base.qcow2",
				       "full-backing-filename":"disks/base.qcow2",
				       "backing-filename-format":"qcow2",
				       "snapshots":[
					  {
					     "id": "1",
					     "name": "snapshot1",
					     "vm-state-size": 0,
					     "date-sec": 10000200,
					     "date-nsec": 12,
					     "vm-clock-sec": 206,
					     "vm-clock-nsec": 30
					  }
				       ],
				       "backing-image":{
					   "filename":"disks/base.qcow2",
					   "format":"qcow2",
					   "virtual-size":2048000
				       }
				    }
				 },
				 "qdev": "ide_disk",
				 "type":"unknown"
			      },
			      {
				 "io-status": "ok",
				 "device":"ide1-cd0",
				 "locked":false,
				 "removable":true,
				 "qdev": "/machine/unattached/device[23]",
				 "tray_open": false,
				 "type":"unknown"
			      },
			      {
				 "device":"floppy0",
				 "locked":false,
				 "removable":true,
				 "qdev": "/machine/unattached/device[20]",
				 "type":"unknown"
			      },
			      {
				 "device":"sd0",
				 "locked":false,
				 "removable":true,
				 "type":"unknown"
			      }
			   ]
			}

       Object BlockDeviceTimedStats (Since: 2.5)
	      Statistics of a block device during a given interval of time.

	      Members

		      interval_length	(int) -- Interval used for calculating
		       the statistics, in seconds.

		      min_rd_latency_ns (int) -- Minimum latency of read  op-
		       erations	in the defined interval, in nanoseconds.

		      min_wr_latency_ns (int) -- Minimum latency of write op-
		       erations	in the defined interval, in nanoseconds.

		      min_zone_append_latency_ns  (int) -- Minimum latency of
		       zone append operations  in  the	defined	 interval,  in
		       nanoseconds (since 8.1)

		      min_flush_latency_ns  (int) -- Minimum latency of flush
		       operations in the defined interval, in nanoseconds.

		      max_rd_latency_ns (int) -- Maximum latency of read  op-
		       erations	in the defined interval, in nanoseconds.

		      max_wr_latency_ns (int) -- Maximum latency of write op-
		       erations	in the defined interval, in nanoseconds.

		      max_zone_append_latency_ns  (int) -- Maximum latency of
		       zone append operations  in  the	defined	 interval,  in
		       nanoseconds (since 8.1)

		      max_flush_latency_ns  (int) -- Maximum latency of flush
		       operations in the defined interval, in nanoseconds.

		      avg_rd_latency_ns (int) -- Average latency of read  op-
		       erations	in the defined interval, in nanoseconds.

		      avg_wr_latency_ns (int) -- Average latency of write op-
		       erations	in the defined interval, in nanoseconds.

		      avg_zone_append_latency_ns  (int) -- Average latency of
		       zone append operations  in  the	defined	 interval,  in
		       nanoseconds (since 8.1)

		      avg_flush_latency_ns  (int) -- Average latency of flush
		       operations in the defined interval, in nanoseconds.

		      avg_rd_queue_depth (number) -- Average number of	 pend-
		       ing read	operations in the defined interval.

		      avg_wr_queue_depth  (number) -- Average number of pend-
		       ing write operations in the defined interval.

		      avg_zone_append_queue_depth (number) -- Average	number
		       of pending zone append operations in the	defined	inter-
		       val (since 8.1).

       Object BlockDeviceStats (Since: 0.14)
	      Statistics of a virtual block device or a	block backing device.

	      Members

		      rd_bytes	 (int)	-- The number of bytes read by the de-
		       vice.

		      wr_bytes	(int) -- The number of bytes  written  by  the
		       device.

		      zone_append_bytes (int) -- The number of	bytes appended
		       by the zoned devices (since 8.1)

		      unmap_bytes  (int)  --  The number of bytes unmapped by
		       the device (Since 4.2)

		      rd_operations (int) -- The number  of  read  operations
		       performed by the	device.

		      wr_operations  (int)  --	The number of write operations
		       performed by the	device.

		      zone_append_operations (int) -- The number of zone  ap-
		       pend  operations	 performed by the zoned	devices	(since
		       8.1)

		      flush_operations	(int) -- The number of cache flush op-
		       erations	performed by the device	(since 0.15)

		      unmap_operations	(int) -- The number  of	 unmap	opera-
		       tions performed by the device (Since 4.2)

		      rd_total_time_ns	 (int) -- Total	time spent on reads in
		       nanoseconds (since 0.15)

		      wr_total_time_ns	(int) -- Total time spent on writes in
		       nanoseconds (since 0.15)

		      zone_append_total_time_ns (int) -- Total	time spent  on
		       zone append writes in nanoseconds (since	8.1)

		      flush_total_time_ns  (int) -- Total time	spent on cache
		       flushes in nanoseconds (since 0.15).

		      unmap_total_time_ns (int) -- Total time spent on	 unmap
		       operations in nanoseconds (Since	4.2)

		      wr_highest_offset  (int)	-- The offset after the	great-
		       est byte	written	to the device.	The  intended  use  of
		       this  information  is  for  growable sparse files (like
		       qcow2) that are used on top of a	physical device.

		      rd_merged (int) -- Number of read  requests  that  have
		       been merged into	another	request	(Since 2.3).

		      wr_merged  (int)	 -- Number of write requests that have
		       been merged into	another	request	(Since 2.3).

		      zone_append_merged (int)	-- Number of zone  append  re-
		       quests  that  have  been	 merged	 into  another request
		       (since 8.1)

		      unmap_merged (int) -- Number  of	 unmap	requests  that
		       have been merged	into another request (Since 4.2)

		      idle_time_ns (int, optional) -- Time since the last I/O
		       operation,  in  nanoseconds.  If	the field is absent it
		       means that there	haven't	been any operations yet	(Since
		       2.5).

		      failed_rd_operations (int) -- The number	of failed read
		       operations performed by the device (Since 2.5)

		      failed_wr_operations (int)  --  The  number  of	failed
		       write operations	performed by the device	(Since 2.5)

		      failed_zone_append_operations  (int)  --	 The number of
		       failed zone append write	operations  performed  by  the
		       zoned devices (since 8.1)

		      failed_flush_operations	(int)  -- The number of	failed
		       flush operations	performed by the device	(Since 2.5)

		      failed_unmap_operations (int) --	The number  of	failed
		       unmap operations	performed by the device	(Since 4.2)

		      invalid_rd_operations  (int)  --	 The number of invalid
		       read operations performed by the	device (Since 2.5)

		      invalid_wr_operations (int) -- The  number  of  invalid
		       write operations	performed by the device	(Since 2.5)

		      invalid_zone_append_operations  (int)  -- The number of
		       invalid zone append operations performed	by  the	 zoned
		       device (since 8.1)

		      invalid_flush_operations	(int) -- The number of invalid
		       flush operations	performed by the device	(Since 2.5)

		      invalid_unmap_operations	(int) -- The number of invalid
		       unmap operations	performed by the device	(Since 4.2)

		      account_invalid (boolean) -- Whether invalid operations
		       are included in the last	access statistics (Since 2.5)

		      account_failed  (boolean)  -- Whether failed operations
		       are included in the latency and last access  statistics
		       (Since 2.5)

		      timed_stats   ([BlockDeviceTimedStats])	--  Statistics
		       specific	to the set of previously defined intervals  of
		       time (Since 2.5)

		      rd_latency_histogram   (BlockLatencyHistogramInfo,  op-
		       tional) -- BlockLatencyHistogramInfo.  (Since 4.0)

		      wr_latency_histogram  (BlockLatencyHistogramInfo,   op-
		       tional) -- BlockLatencyHistogramInfo.  (Since 4.0)

		      zone_append_latency_histogram			    (-
		       BlockLatencyHistogramInfo,	  optional)	    --
		       BlockLatencyHistogramInfo.  (since 8.1)

		      flush_latency_histogram (BlockLatencyHistogramInfo, op-
		       tional) -- BlockLatencyHistogramInfo.  (Since 4.0)

       Object BlockStatsSpecificFile (Since: 4.2)
	      File driver statistics

	      Members

		      discard-nb-ok (int) -- The number of successful discard
		       operations performed by the driver.

		      discard-nb-failed (int) -- The number of	failed discard
		       operations performed by the driver.

		      discard-bytes-ok	(int) -- The number of bytes discarded
		       by the driver.

       Object BlockStatsSpecificNvme (Since: 5.2)
	      NVMe driver statistics

	      Members

		      completion-errors (int) -- The number of	completion er-
		       rors.

		      aligned-accesses	 (int)	--  The	 number	of aligned ac-
		       cesses performed	by the driver.

		      unaligned-accesses (int)	-- The number of unaligned ac-
		       cesses performed	by the driver.

       Object BlockStatsSpecific (Since: 4.2)
	      Block driver specific statistics

	      Members

		      driver (BlockdevDriver) -- block	driver name

		      When    driver	 is    file:	The	members	    of
		       BlockStatsSpecificFile.

		      When    driver	is   host_device:   The	  members   of
		       BlockStatsSpecificFile.

		      When    driver	 is    nvme:	The	members	    of
		       BlockStatsSpecificNvme.

       Object BlockStats (Since: 0.14)
	      Statistics of a virtual block device or a	block backing device.

	      Members

		      device  (string,	 optional)  --	If the stats are for a
		       virtual block device, the  name	corresponding  to  the
		       virtual block device.

		      node-name  (string,  optional)  -- The node name	of the
		       device.	(Since 2.3)

		      qdev (string, optional) -- The qdev ID, or if no	ID  is
		       assigned,  the  QOM  path  of the block device.	(since
		       3.0)

		      stats (BlockDeviceStats)	-- A BlockDeviceStats for  the
		       device.

		      driver-specific	(BlockStatsSpecific,  optional)	-- Op-
		       tional driver-specific stats.  (Since 4.2)

		      parent (BlockStats, optional)  --  This	describes  the
		       file  block device if it	has one.  Contains recursively
		       the statistics of the  underlying  protocol  (e.g.  the
		       host  file for a	qcow2 image).  If there	is no underly-
		       ing protocol, this field	is omitted

		      backing (BlockStats, optional) --  This	describes  the
		       backing block device if it has one.  (Since 2.0)

       Command query-blockstats	(Since:	0.14)
	      Query the	BlockStats for all virtual block devices.

	      Arguments

		      query-nodes (boolean, optional) -- If true, the command
		       will  query  all	the block nodes	that have a node name,
		       in a list which will include "parent" information,  but
		       not "backing".  If false	or omitted, the	behavior is as
		       before -	query all the device backends, recursively in-
		       cluding	their  "parent"	 and  "backing".  Filter nodes
		       that were created implicitly are	skipped	over  in  this
		       mode.  (Since 2.3)

	      Return [BlockStats]  --  A  list	of statistics for each virtual
		     block device.

		 Example:

		     ->	{ "execute": "query-blockstats"	}
		     <-	{
			   "return":[
			      {
				 "device":"ide0-hd0",
				 "parent":{
				    "stats":{
				       "wr_highest_offset":3686448128,
				       "wr_bytes":9786368,
				       "wr_operations":751,
				       "rd_bytes":122567168,
				       "rd_operations":36772
				       "wr_total_times_ns":313253456
				       "rd_total_times_ns":3465673657
				       "flush_total_times_ns":49653
				       "flush_operations":61,
				       "rd_merged":0,
				       "wr_merged":0,
				       "idle_time_ns":2953431879,
				       "account_invalid":true,
				       "account_failed":false
				    }
				 },
				 "stats":{
				    "wr_highest_offset":2821110784,
				    "wr_bytes":9786368,
				    "wr_operations":692,
				    "rd_bytes":122739200,
				    "rd_operations":36604
				    "flush_operations":51,
				    "wr_total_times_ns":313253456
				    "rd_total_times_ns":3465673657
				    "flush_total_times_ns":49653,
				    "rd_merged":0,
				    "wr_merged":0,
				    "idle_time_ns":2953431879,
				    "account_invalid":true,
				    "account_failed":false
				 },
				 "qdev": "/machine/unattached/device[23]"
			      },
			      {
				 "device":"ide1-cd0",
				 "stats":{
				    "wr_highest_offset":0,
				    "wr_bytes":0,
				    "wr_operations":0,
				    "rd_bytes":0,
				    "rd_operations":0
				    "flush_operations":0,
				    "wr_total_times_ns":0
				    "rd_total_times_ns":0
				    "flush_total_times_ns":0,
				    "rd_merged":0,
				    "wr_merged":0,
				    "account_invalid":false,
				    "account_failed":false
				 },
				 "qdev": "/machine/unattached/device[24]"
			      },
			      {
				 "device":"floppy0",
				 "stats":{
				    "wr_highest_offset":0,
				    "wr_bytes":0,
				    "wr_operations":0,
				    "rd_bytes":0,
				    "rd_operations":0
				    "flush_operations":0,
				    "wr_total_times_ns":0
				    "rd_total_times_ns":0
				    "flush_total_times_ns":0,
				    "rd_merged":0,
				    "wr_merged":0,
				    "account_invalid":false,
				    "account_failed":false
				 },
				 "qdev": "/machine/unattached/device[16]"
			      },
			      {
				 "device":"sd0",
				 "stats":{
				    "wr_highest_offset":0,
				    "wr_bytes":0,
				    "wr_operations":0,
				    "rd_bytes":0,
				    "rd_operations":0
				    "flush_operations":0,
				    "wr_total_times_ns":0
				    "rd_total_times_ns":0
				    "flush_total_times_ns":0,
				    "rd_merged":0,
				    "wr_merged":0,
				    "account_invalid":false,
				    "account_failed":false
				 }
			      }
			   ]
			}

       Enum BlockdevOnError (Since: 1.3)
	      An enumeration of	possible behaviors for errors  on  I/O	opera-
	      tions.   The exact meaning depends on whether the	I/O was	initi-
	      ated by a	guest or by a block job

	      Values

		      report -- for guest operations, report the error	to the
		       guest; for jobs,	cancel the job

		      ignore -- ignore	the error, only	report a QMP event  (-
		       BLOCK_IO_ERROR or BLOCK_JOB_ERROR).  The	backup,	mirror
		       and  commit  block jobs retry the failing request later
		       and may still complete successfully.  The stream	 block
		       job  continues  to stream and will complete with	an er-
		       ror.

		      enospc -- same as stop on ENOSPC, same as report	other-
		       wise.

		      stop -- for guest operations, stop the virtual machine;
		       for jobs, pause the job

		      auto -- inherit the error handling policy of the	 back-
		       end (since: 2.7)

       Enum MirrorSyncMode (Since: 1.3)
	      An  enumeration  of  possible behaviors for the initial synchro-
	      nization phase of	storage	mirroring.

	      Values

		      top -- copies data in the topmost image to the destina-
		       tion

		      full -- copies data from	all images to the destination

		      none -- only copy data written from now on

		      incremental -- only copy	data described	by  the	 dirty
		       bitmap.	(since:	2.4)

		      bitmap -- only copy data	described by the dirty bitmap.
		       Behavior	  on   completion   is	 determined   by   the
		       BitmapSyncMode.	(since:	4.2)

       Enum BitmapSyncMode (Since: 4.2)
	      An enumeration of	possible behaviors for the synchronization  of
	      a	bitmap when used for data copy operations.

	      Values

		      on-success -- The bitmap	is only	synced when the	opera-
		       tion  is	 successful.  This is the behavior always used
		       for incremental backups.

		      never --	The bitmap is never synchronized with the  op-
		       eration,	 and is	treated	solely as a read-only manifest
		       of blocks to copy.

		      always -- The bitmap is always  synchronized  with  the
		       operation,  regardless  of whether or not the operation
		       was successful.

       Enum MirrorCopyMode (Since: 3.0)
	      An enumeration whose values tell the mirror block	 job  when  to
	      trigger writes to	the target.

	      Values

		      background -- copy data in background only.

		      write-blocking  --  when	data is	written	to the source,
		       write it	(synchronously)	to the target as well.	In ad-
		       dition, data is copied in background just like in back-
		       ground mode.

       Object BlockJobInfoMirror (Since: 8.2)
	      Information specific to mirror block jobs.

	      Members

		      actively-synced (boolean) -- Whether the	source is  ac-
		       tively  synced  to  the	target,	i.e. same data and new
		       writes are done synchronously to	both.

       Object BlockJobInfo (Since: 1.1)
	      Information about	a long-running block device operation.

	      Members

		      type (JobType) -- the  job  type	 ('stream'  for	 image
		       streaming)

		      device  (string)	-- The job identifier.	Originally the
		       device name but other values are	allowed	since QEMU 2.7

		      len (int) -- Estimated offset value at  the  completion
		       of  the	job.   This value can arbitrarily change while
		       the job is running, in both directions.

		      offset (int) -- Progress	made until now.	 The  unit  is
		       arbitrary  and  the value can only meaningfully be used
		       for the ratio of	offset to len.	The value is monotoni-
		       cally increasing.

		      busy (boolean) -- false if the job is known to be in  a
		       quiescent state,	with no	pending	I/O.  (Since 1.3)

		      paused  (boolean)  --  whether the job is paused	or, if
		       busy is true, will pause	itself as  soon	 as  possible.
		       (Since 1.3)

		      speed (int) -- the rate limit, bytes per	second

		      io-status  (BlockDeviceIoStatus)	 --  the status	of the
		       job (since 1.3)

		      ready (boolean) -- true if the  job  may	 be  completed
		       (since 2.2)

		      status  (JobStatus)  -- Current job state/status	(since
		       2.12)

		      auto-finalize (boolean) --  Job	will  finalize	itself
		       when  PENDING,  moving  to the CONCLUDED	state.	(since
		       2.12)

		      auto-dismiss (boolean) -- Job will dismiss itself  when
		       CONCLUDED, and disappear.  (since 2.12)

		      error  (string,	optional)  -- Error information	if the
		       job did not complete successfully.  Not set if the  job
		       completed successfully.	(since 2.12.1)

		      When type is mirror: The	members	of BlockJobInfoMirror.

       Command query-block-jobs	(Since:	1.1)
	      Return information about long-running block device operations.

	      Return [BlockJobInfo]  --	 a  list  of  job info for each	active
		     block job

       Command block_resize (Since: 0.14)
	      Resize a block image while a guest is running.

	      Either device or node-name must be set but not both.

	      Arguments

		      device (string, optional) -- the	name of	the device  to
		       get the image resized

		      node-name  (string, optional) --	graph node name	to get
		       the image resized (Since	2.0)

		      size (int) -- new image size in bytes

	      Errors

		      If device is not	a valid	block device, DeviceNotFound

		 Example:

		     ->	{ "execute": "block_resize",
			  "arguments": { "device": "scratch", "size": 1073741824 } }
		     <-	{ "return": {} }

       Enum NewImageMode (Since: 1.1)
	      An enumeration that tells	QEMU how to set	the backing file  path
	      in a new image file.

	      Values

		      existing	 --  QEMU  should  look	 for an	existing image
		       file.

		      absolute-paths -- QEMU should create a new  image  with
		       absolute	 paths	for  the backing file.	If there is no
		       backing file available,	the  new  image	 will  not  be
		       backed either.

       Object BlockdevSnapshotSync
	      Either device or node-name must be set but not both.

	      Members

		      device  (string,	optional) -- the name of the device to
		       take a snapshot of.

		      node-name (string, optional) -- graph node name to gen-
		       erate the snapshot from (Since 2.0)

		      snapshot-file (string) -- the target of the new overlay
		       image.  If the file exists, or if it is a  device,  the
		       overlay	will  be  created in the existing file/device.
		       Otherwise, a new	file will be created.

		      snapshot-node-name (string, optional) --	the graph node
		       name of the new image (Since 2.0)

		      format (string, optional) -- the	format of the  overlay
		       image, default is 'qcow2'.

		      mode  (NewImageMode,  optional) -- whether and how QEMU
		       should create a new image, default is 'absolute-paths'.

       Object BlockdevSnapshot (Since: 2.5)

	      Members

		      node (string) --	device or node name that will  have  a
		       snapshot	taken.

		      overlay (string)	-- reference to	the existing block de-
		       vice  that  will	become the overlay of node, as part of
		       taking the snapshot.  It	must not have a	current	 back-
		       ing  file  (this	 can be	achieved by passing "backing":
		       null to blockdev-add).

       Object BackupPerf (Since: 6.0)
	      Optional parameters for backup.  These parameters	 don't	affect
	      functionality, but may significantly affect performance.

	      Members

		      use-copy-range (boolean,	optional) -- Use copy offload-
		       ing.  Default false.

		      max-workers (int, optional) -- Maximum number of	paral-
		       lel  requests  for  the	sustained  background  copying
		       process.	 Doesn't  influence  copy-before-write	opera-
		       tions.  Default 64.

		      max-chunk (int, optional) -- Maximum request length for
		       the  sustained background copying process.  Doesn't in-
		       fluence copy-before-write operations.  0	 means	unlim-
		       ited.   If  max-chunk is	non-zero then it should	not be
		       less than job cluster size which	is calculated as maxi-
		       mum of target image cluster size	and 64k.  Default 0.

		      min-cluster-size	(int, optional)	 --  Minimum  size  of
		       blocks  used  by	 copy-before-write and background copy
		       operations.  Has	to be a	power  of  2.	No  effect  if
		       smaller	than  the maximum of the target's cluster size
		       and 64 KiB.  Default 0.	(Since 9.2)

       Object BackupCommon (Since: 4.2)

	      Members

		      job-id  (string,	 optional)  --	identifier   for   the
		       newly-created  block  job.  If omitted, the device name
		       will be used.  (Since 2.7)

		      device (string) -- the device name or  node-name	 of  a
		       root node which should be copied.

		      sync  (MirrorSyncMode)  -- what parts of	the disk image
		       should be copied	to the destination (all	the disk, only
		       the sectors allocated in	 the  topmost  image,  from  a
		       dirty bitmap, or	only new I/O).

		      speed  (int,  optional)	-- the maximum speed, in bytes
		       per second.  The	default	is 0, for unlimited.

		      bitmap (string, optional) -- The	name of	a dirty	bitmap
		       to use.	Must be	present	if sync	is "bitmap" or "incre-
		       mental".	 Can be	present	if sync	is  "full"  or	"top".
		       Must   not   be	 present  otherwise.   (Since  2.4  (-
		       drive-backup), 3.1 (blockdev-backup))

		      bitmap-mode (BitmapSyncMode, optional) -- Specifies the
		       type of data the	bitmap should contain after the	opera-
		       tion concludes.	Must be	present	if a bitmap  was  pro-
		       vided, must not be present otherwise.  (Since 4.2)

		      compress	 (boolean, optional) --	true to	compress data,
		       if the target format  supports  it.   (default:	false)
		       (since 2.8)

		      on-source-error	(BlockdevOnError, optional) -- the ac-
		       tion to take on an error	on the	source,	 default  're-
		       port'.	'stop'	and  'enospc'  can only	be used	if the
		       block device supports io-status (see BlockInfo).

		      on-target-error (BlockdevOnError, optional) -- the  ac-
		       tion  to	 take  on an error on the target, default 're-
		       port' (no limitations, since this applies to a  differ-
		       ent block device	than device).

		      on-cbw-error  (OnCbwError, optional) -- policy defining
		       behavior	on I/O errors in copy-before-write  jobs;  de-
		       faults to break-guest-write.  (Since 10.1)

		      auto-finalize  (boolean,	 optional) -- When false, this
		       job will	wait in	a PENDING state	after it has  finished
		       its  work,  waiting  for	job-finalize before making any
		       block graph changes.  When true,	this job will automat-
		       ically perform its abort	or commit  actions.   Defaults
		       to true.	 (Since	2.12)

		      auto-dismiss  (boolean,	optional)  -- When false, this
		       job will	wait in	a CONCLUDED state after	 it  has  com-
		       pletely	ceased all work, and awaits job-dismiss.  When
		       true, this job  will  automatically  disappear  without
		       user intervention.  Defaults to true.  (Since 2.12)

		      filter-node-name	 (string,  optional)  -- the node name
		       that should be assigned to the filter driver  that  the
		       backup  job inserts into	the graph above	node specified
		       by drive.  If this option is not	given, a node name  is
		       autogenerated.  (Since: 4.2)

		      discard-source (boolean,	optional) -- Discard blocks on
		       source  which  have  already been copied	to the target.
		       (Since 9.1)

		      x-perf (BackupPerf, optional) --	 Performance  options.
		       (Since 6.0)

	      Features

		      unstable	-- Member x-perf is experimental.

	      NOTE:
		 on-source-error  and  on-target-error	only affect background
		 I/O.  If an error occurs during a guest  write	 request,  the
		 device's rerror/werror	actions	will be	used.

       Object DriveBackup (Since: 1.6)

	      Members

		      target (string) -- the target of	the new	image.	If the
		       file  exists,  or  if  it  is  a	 device,  the existing
		       file/device will	be used	as the new destination.	 If it
		       does not	exist, a new file will be created.

		      format (string, optional) -- the	format of the new des-
		       tination, default is to probe if	 mode  is  'existing',
		       else the	format of the source

		      mode  (NewImageMode,  optional) -- whether and how QEMU
		       should create a new image, default is 'absolute-paths'.

		      The members of BackupCommon.

       Object BlockdevBackup (Since: 2.3)

	      Members

		      target (string) -- the device name or node-name of  the
		       backup target node.

		      The members of BackupCommon.

       Command blockdev-snapshot-sync (Since: 0.14)
	      Takes a synchronous snapshot of a	block device.

	      Arguments

		      The members of BlockdevSnapshotSync.

	      Errors

		      If device is not	a valid	block device, DeviceNotFound

		 Example:

		     ->	{ "execute": "blockdev-snapshot-sync",
			  "arguments": { "device": "ide-hd0",
					 "snapshot-file":
					 "/some/place/my-image",
					 "format": "qcow2" } }
		     <-	{ "return": {} }

       Command blockdev-snapshot (Since: 2.5)
	      Takes a snapshot of a block device.

	      Take  a  snapshot,  by installing	'node' as the backing image of
	      'overlay'.  Additionally,	if 'node' is associated	with  a	 block
	      device,  the  block device changes to using 'overlay' as its new
	      active image.

	      Arguments

		      The members of BlockdevSnapshot.

	      Features

		      allow-write-only-overlay	 --  If	 present,  the	 check
		       whether	this  operation	is safe	was relaxed so that it
		       can be used to change backing file of a destination  of
		       a blockdev-mirror.  (since 5.0)

		 Example:

		     ->	{ "execute": "blockdev-add",
			  "arguments": { "driver": "qcow2",
					 "node-name": "node1534",
					 "file": { "driver": "file",
						   "filename": "hd1.qcow2" },
					 "backing": null } }

		     <-	{ "return": {} }

		     ->	{ "execute": "blockdev-snapshot",
			  "arguments": { "node": "ide-hd0",
					 "overlay": "node1534" } }
		     <-	{ "return": {} }

       Command change-backing-file (Since: 2.1)
	      Change  the  backing file	in the image file metadata.  This does
	      not cause	QEMU to	reopen the image file to reparse  the  backing
	      filename	(it  may,  however, perform a reopen to	change permis-
	      sions from r/o ->	r/w -> r/o, if needed).	 The new backing  file
	      string is	written	into the image file metadata, and the QEMU in-
	      ternal strings are updated.

	      Arguments

		      image-node-name	(string) -- The	name of	the block dri-
		       ver state node of the image to  modify.	 The  "device"
		       argument	 is used to verify "image-node-name" is	in the
		       chain described by "device".

		      device (string) -- The device name or node-name of  the
		       root node that owns image-node-name.

		      backing-file  (string)  --  The	string to write	as the
		       backing file.  This string is not  validated,  so  care
		       should be taken when specifying the string or the image
		       chain may not be	able to	be reopened again.

	      Errors

		      If "device" does	not exist or cannot be determined, De-
		       viceNotFound

       Command block-commit (Since: 1.3)
	      Live  commit of data from	overlay	image nodes into backing nodes
	      -	i.e., writes data between 'top'	and 'base' into	'base'.

	      If top ==	base, that is an error.	 If top	has no overlays	on top
	      of it, or	if it is in use	by a writer, the job will not be  com-
	      pleted  by  itself.  The user needs to complete the job with the
	      job-complete command after getting the ready event.  (Since 2.0)

	      If the base image	is smaller than	top, then the base image  will
	      be  resized  to be the same size as top.	If top is smaller than
	      the base image, the base will not	be truncated.  If you want the
	      base image size to match the size	of the smaller	top,  you  can
	      safely  truncate	it yourself once the commit operation success-
	      fully completes.

	      Arguments

		      job-id  (string,	 optional)  --	identifier   for   the
		       newly-created  block  job.  If omitted, the device name
		       will be used.  (Since 2.7)

		      device (string) -- the device name or  node-name	 of  a
		       root node

		      base-node  (string,  optional)  -- The node name	of the
		       backing image to	write data into.   If  not  specified,
		       this is the deepest backing image.  (since: 3.1)

		      base  (string,  optional)  -- Same as base-node,	except
		       that it is a file name rather than a node  name.	  This
		       must be the exact filename string that was used to open
		       the  node;  other  strings, even	if addressing the same
		       file, are not accepted

		      top-node	(string, optional) -- The  node	 name  of  the
		       backing image within the	image chain which contains the
		       topmost	data  to be committed down.  If	not specified,
		       this is the active layer.  (since: 3.1)

		      top (string, optional) -- Same as top-node, except that
		       it is a file name rather	than a node name.   This  must
		       be  the exact filename string that was used to open the
		       node; other strings, even if addressing the same	 file,
		       are not accepted

		      backing-file (string, optional) --

		       The backing file	string to write	into the overlay image
		       of  'top'.  If 'top' does not have an overlay image, or
		       if 'top'	is in use by a writer,	specifying  a  backing
		       file string is an error.

		       This  filename  is not validated.  If a pathname	string
		       is such that it cannot be resolved by QEMU, that	 means
		       that subsequent QMP or HMP commands must	use node-names
		       for  the	 image in question, as filename	lookup methods
		       will fail.

		       If not specified, QEMU will automatically determine the
		       backing file string to use, or error out	if there is no
		       obvious choice.	Care should be taken  when  specifying
		       the  string,  to	 specify a valid filename or protocol.
		       (Since 2.1)

		      backing-mask-protocol (boolean, optional) --  If	 true,
		       replace	any  protocol  mentioned  in the 'backing file
		       format' with 'raw', rather than	storing	 the  protocol
		       name  as	 the backing format.  Can be used even when no
		       image header will  be  updated  (default	 false;	 since
		       9.0).

		      speed  (int,  optional)	-- the maximum speed, in bytes
		       per second

		      on-error	(BlockdevOnError, optional) -- the  action  to
		       take  on	 an  error.   'ignore'	means that the request
		       should be retried.  (default: report; since: 5.0)

		      filter-node-name	(string, optional) --  the  node  name
		       that  should  be	assigned to the	filter driver that the
		       commit job inserts into the graph above top.   If  this
		       option  is  not	given,	a  node	name is	autogenerated.
		       (Since: 2.9)

		      auto-finalize (boolean, optional) -- When  false,  this
		       job  will wait in a PENDING state after it has finished
		       its work, waiting for job-finalize  before  making  any
		       block graph changes.  When true,	this job will automat-
		       ically  perform	its abort or commit actions.  Defaults
		       to true.	 (Since	3.1)

		      auto-dismiss (boolean, optional)	--  When  false,  this
		       job  will  wait	in a CONCLUDED state after it has com-
		       pletely ceased all work,	and awaits job-dismiss.	  When
		       true,  this  job	 will  automatically disappear without
		       user intervention.  Defaults to true.  (Since 3.1)

	      Features

		      deprecated -- Members base and top are deprecated.  Use
		       base-node and top-node instead.

	      Errors

		      If device does not exist, DeviceNotFound

		 Example:

		     ->	{ "execute": "block-commit",
			  "arguments": { "device": "virtio0",
					 "top":	"/tmp/snap1.qcow2" } }
		     <-	{ "return": {} }

       Command drive-backup (Since: 1.6)
	      This command is deprecated.

	      Start a point-in-time copy of a block device to a	 new  destina-
	      tion.   The  status  of  ongoing	drive-backup operations	can be
	      checked with query-block-jobs where the BlockJobInfo.type	 field
	      has  the value 'backup'.	The operation can be stopped before it
	      has completed using the job-cancel or block-job-cancel command.

	      Arguments

		      The members of DriveBackup.

	      Features

		      deprecated  --  This  command   is   deprecated.	   Use
		       blockdev-backup instead.

	      Errors

		      If device is not	a valid	block device, GenericError

		 Example:

		     ->	{ "execute": "drive-backup",
			  "arguments": { "device": "drive0",
					 "sync": "full",
					 "target": "backup.img"	} }
		     <-	{ "return": {} }

       Command blockdev-backup (Since: 2.3)
	      Start  a	point-in-time copy of a	block device to	a new destina-
	      tion.  The status	of ongoing blockdev-backup operations  can  be
	      checked  with query-block-jobs where the BlockJobInfo.type field
	      has the value 'backup'.  The operation can be stopped before  it
	      has completed using the job-cancel or block-job-cancel command.

	      Arguments

		      The members of BlockdevBackup.

	      Errors

		      If device is not	a valid	block device, DeviceNotFound

		 Example:

		     ->	{ "execute": "blockdev-backup",
			  "arguments": { "device": "src-id",
					 "sync": "full",
					 "target": "tgt-id" } }
		     <-	{ "return": {} }

       Command query-named-block-nodes (Since: 2.0)
	      Get the named block driver list

	      Arguments

		      flat  (boolean, optional) -- Omit the nested data about
		       backing image ("backing-image" key) if  true.   Default
		       is false	(Since 5.0)

	      Return [BlockDeviceInfo]

		 Example:

		     ->	{ "execute": "query-named-block-nodes" }
		     <-	{ "return": [ {	"ro":false,
					"drv":"qcow2",
					"encrypted":false,
					"file":"disks/test.qcow2",
					"node-name": "my-node",
					"backing_file_depth":1,
					"detect_zeroes":"off",
					"bps":1000000,
					"bps_rd":0,
					"bps_wr":0,
					"iops":1000000,
					"iops_rd":0,
					"iops_wr":0,
					"bps_max": 8000000,
					"bps_rd_max": 0,
					"bps_wr_max": 0,
					"iops_max": 0,
					"iops_rd_max": 0,
					"iops_wr_max": 0,
					"iops_size": 0,
					"write_threshold": 0,
					"image":{
					   "filename":"disks/test.qcow2",
					   "format":"qcow2",
					   "virtual-size":2048000,
					   "backing_file":"base.qcow2",
					   "full-backing-filename":"disks/base.qcow2",
					   "backing-filename-format":"qcow2",
					   "snapshots":[
					      {
						 "id": "1",
						 "name": "snapshot1",
						 "vm-state-size": 0,
						 "date-sec": 10000200,
						 "date-nsec": 12,
						 "vm-clock-sec": 206,
						 "vm-clock-nsec": 30
					      }
					   ],
					   "backing-image":{
					       "filename":"disks/base.qcow2",
					       "format":"qcow2",
					       "virtual-size":2048000
					   }
					} } ] }

       Enum XDbgBlockGraphNodeType (Since: 4.0)

	      Values

		      block-backend --	corresponds to BlockBackend

		      block-job -- corresponds	to BlockJob

		      block-driver -- corresponds to BlockDriverState

       Object XDbgBlockGraphNode (Since: 4.0)

	      Members

		      id  (int)  --  Block graph node identifier.  This id is
		       generated only for x-debug-query-block-graph  and  does
		       not relate to any other identifiers in QEMU.

		      type  (XDbgBlockGraphNodeType)  --  Type	of graph node.
		       Can be one of block-backend,  block-job	or  block-dri-
		       ver-state.

		      name (string) --	Human readable name of the node.  Cor-
		       responds	 to node-name for block-driver-state nodes; is
		       not guaranteed to be unique in the  whole  graph	 (with
		       block-jobs and block-backends).

       Enum BlockPermission (Since: 4.0)
	      Enum of base block permissions.

	      Values

		      consistent-read	-- A user that has the "permission" of
		       consistent reads	is guaranteed that their view  of  the
		       contents	 of the	block device is	complete and self-con-
		       sistent,	representing the contents of a disk at a  spe-
		       cific  point.   For most	block devices (including their
		       backing files) this is true, but	the property cannot be
		       maintained in a few situations  like  for  intermediate
		       nodes of	a commit block job.

		      write --	This permission	is required to change the vis-
		       ible disk contents.

		      write-unchanged	--  This  permission  (which is	weaker
		       than BLK_PERM_WRITE) is both enough  and	 required  for
		       writes  to the block node when the caller promises that
		       the  visible  disk  content  doesn't  change.   As  the
		       BLK_PERM_WRITE  permission is strictly stronger,	either
		       is sufficient to	perform	an unchanging write.

		      resize -- This permission is  required  to  change  the
		       size of a block node.

       Object XDbgBlockGraphEdge (Since: 4.0)
	      Block Graph edge description for x-debug-query-block-graph.

	      Members

		      parent (int) -- parent id

		      child (int) -- child id

		      name  (string)  --  name	 of the	relation (examples are
		       'file' and 'backing')

		      perm ([BlockPermission])	-- granted permissions for the
		       parent operating	on the child

		      shared-perm ([BlockPermission]) -- permissions that can
		       still be	granted	to other users of the child  while  it
		       is still	attached to this parent

       Object XDbgBlockGraph (Since: 4.0)
	      Block Graph - list of nodes and list of edges.

	      Members

		      nodes ([XDbgBlockGraphNode]) -- Not documented

		      edges ([XDbgBlockGraphEdge]) -- Not documented

       Command x-debug-query-block-graph (Since: 4.0)
	      This command is unstable/experimental.

	      Get the block graph.

	      Return XDbgBlockGraph

	      Features

		      unstable	-- This	command	is meant for debugging.

       Command drive-mirror (Since: 1.3)
	      Start  mirroring	a  block device's writes to a new destination.
	      target specifies the target of the new image.  If	the  file  ex-
	      ists,  or	if it is a device, it will be used as the new destina-
	      tion for writes.	If it does not exist, a	new file will be  cre-
	      ated.   format specifies the format of the mirror	image, default
	      is to probe if mode='existing', else the format of the source.

	      Arguments

		      The members of DriveMirror.

	      Errors

		      If device is not	a valid	block device, GenericError

		 Example:

		     ->	{ "execute": "drive-mirror",
			  "arguments": { "device": "ide-hd0",
					 "target": "/some/place/my-image",
					 "sync": "full",
					 "format": "qcow2" } }
		     <-	{ "return": {} }

       Object DriveMirror (Since: 1.3)
	      A	set of parameters describing drive mirror setup.

	      Members

		      job-id  (string,	 optional)  --	identifier   for   the
		       newly-created  block  job.  If omitted, the device name
		       will be used.  (Since 2.7)

		      device (string) -- the device name or  node-name	 of  a
		       root node whose writes should be	mirrored.

		      target (string) -- the target of	the new	image.	If the
		       file  exists,  or  if  it  is  a	 device,  the existing
		       file/device will	be used	as the new destination.	 If it
		       does not	exist, a new file will be created.

		      format (string, optional) -- the	format of the new des-
		       tination, default is to probe if	 mode  is  'existing',
		       else the	format of the source

		      node-name  (string,  optional)  -- the new block	driver
		       state node name in the graph (Since 2.1)

		      replaces	(string, optional)  --	with  sync=full	 graph
		       node  name to be	replaced by the	new image when a whole
		       image copy is done.  This can be	used to	repair	broken
		       Quorum files.  By default, device is replaced, although
		       implicitly created filters on it	are kept.  (Since 2.1)

		      mode  (NewImageMode,  optional) -- whether and how QEMU
		       should create a new image, default is 'absolute-paths'.

		      speed (int, optional) --	the maximum  speed,  in	 bytes
		       per second

		      sync  (MirrorSyncMode)  -- what parts of	the disk image
		       should be copied	to the destination (all	the disk, only
		       the sectors allocated in	the topmost image, or only new
		       I/O).

		      granularity (int, optional) -- granularity of the dirty
		       bitmap, default is 64K if the image format doesn't have
		       clusters, 4K if the clusters  are  smaller  than	 that,
		       else  the  cluster  size.  Must be a power of 2 between
		       512 and 64M (since 1.4).

		      buf-size	(int, optional)	-- maximum amount of  data  in
		       flight from source to target (since 1.4).

		      on-source-error	(BlockdevOnError, optional) -- the ac-
		       tion to take on an error	on the	source,	 default  're-
		       port'.	'stop'	and  'enospc'  can only	be used	if the
		       block device supports io-status (see BlockInfo).

		      on-target-error (BlockdevOnError, optional) -- the  ac-
		       tion  to	 take  on an error on the target, default 're-
		       port' (no limitations, since this applies to a  differ-
		       ent block device	than device).

		      unmap  (boolean,	 optional)  -- Whether to try to unmap
		       target sectors where source has only  zero.   If	 true,
		       and  target unallocated sectors will read as zero, tar-
		       get image sectors will be unmapped;  otherwise,	zeroes
		       will  be	 written.   Both will result in	identical con-
		       tents.  Default is true.	 (Since	2.4)

		      copy-mode (MirrorCopyMode, optional) --	when  to  copy
		       data  to	 the  destination;  defaults  to  'background'
		       (Since: 3.0)

		      auto-finalize (boolean, optional) -- When  false,  this
		       job  will wait in a PENDING state after it has finished
		       its work, waiting for job-finalize  before  making  any
		       block graph changes.  When true,	this job will automat-
		       ically  perform	its abort or commit actions.  Defaults
		       to true.	 (Since	3.1)

		      auto-dismiss (boolean, optional)	--  When  false,  this
		       job  will  wait	in a CONCLUDED state after it has com-
		       pletely ceased all work,	and awaits job-dismiss.	  When
		       true,  this  job	 will  automatically disappear without
		       user intervention.  Defaults to true.  (Since 3.1)

       Object BlockDirtyBitmap (Since: 2.4)

	      Members

		      node (string) --	name of	device/node which  the	bitmap
		       is tracking

		      name (string) --	name of	the dirty bitmap

       Object BlockDirtyBitmapAdd (Since: 2.4)

	      Members

		      node  (string)  -- name of device/node which the	bitmap
		       is tracking

		      name (string) --	name of	the dirty bitmap (must be less
		       than 1024 bytes)

		      granularity (int, optional) -- the bitmap  granularity,
		       default is 64k for block-dirty-bitmap-add

		      persistent (boolean, optional) -- the bitmap is persis-
		       tent,  i.e. it will be saved to the corresponding block
		       device image file on its	close.	 For  now  only	 Qcow2
		       disks support persistent	bitmaps.  Default is false for
		       block-dirty-bitmap-add.	(Since:	2.10)

		      disabled	 (boolean,  optional) -- the bitmap is created
		       in the disabled state, which means  that	 it  will  not
		       track  drive  changes.	The bitmap may be enabled with
		       block-dirty-bitmap-enable.  Default is false.   (Since:
		       4.0)

       Alternate BlockDirtyBitmapOrStr (Since: 4.1)

	      Alternatives

		      local  (string)	-- name	of the bitmap, attached	to the
		       same node as target bitmap.

		      external	(BlockDirtyBitmap) --  bitmap  with  specified
		       node

       Object BlockDirtyBitmapMerge (Since: 4.0)

	      Members

		      node  (string)  -- name of device/node which the	target
		       bitmap is tracking

		      target (string) -- name of the destination dirty	bitmap

		      bitmaps ([BlockDirtyBitmapOrStr])  --  name(s)  of  the
		       source  dirty  bitmap(s)	at node	and/or fully specified
		       BlockDirtyBitmap	elements.  The	latter	are  supported
		       since 4.1.

       Command block-dirty-bitmap-add (Since: 2.4)
	      Create  a	dirty bitmap with a name on the	node, and start	track-
	      ing the writes.

	      Arguments

		      The members of BlockDirtyBitmapAdd.

	      Errors

		      If node is not a	valid block device or node, DeviceNot-
		       Found

		      If name is already taken, GenericError

		 Example:

		     ->	{ "execute": "block-dirty-bitmap-add",
			  "arguments": { "node": "drive0", "name": "bitmap0" } }
		     <-	{ "return": {} }

       Command block-dirty-bitmap-remove (Since: 2.4)
	      Stop write tracking and remove the dirty bitmap that was created
	      with block-dirty-bitmap-add.  If the bitmap is  persistent,  re-
	      move it from its storage too.

	      Arguments

		      The members of BlockDirtyBitmap.

	      Errors

		      If node is not a	valid block device or node, DeviceNot-
		       Found

		      If name is not found, GenericError

		      if name is frozen by an operation, GenericError

		 Example:

		     ->	{ "execute": "block-dirty-bitmap-remove",
			  "arguments": { "node": "drive0", "name": "bitmap0" } }
		     <-	{ "return": {} }

       Command block-dirty-bitmap-clear	(Since:	2.4)
	      Clear (reset) a dirty bitmap on the device, so that an incremen-
	      tal  backup  from	 this  point  in time forward will only	backup
	      clusters modified	after this clear operation.

	      Arguments

		      The members of BlockDirtyBitmap.

	      Errors

		      If node is not a	valid block device, DeviceNotFound

		      If name is not found, GenericError

		 Example:

		     ->	{ "execute": "block-dirty-bitmap-clear",
			  "arguments": { "node": "drive0", "name": "bitmap0" } }
		     <-	{ "return": {} }

       Command block-dirty-bitmap-enable (Since: 4.0)
	      Enables a	dirty bitmap so	 that  it  will	 begin	tracking  disk
	      changes.

	      Arguments

		      The members of BlockDirtyBitmap.

	      Errors

		      If node is not a	valid block device, DeviceNotFound

		      If name is not found, GenericError

		 Example:

		     ->	{ "execute": "block-dirty-bitmap-enable",
			  "arguments": { "node": "drive0", "name": "bitmap0" } }
		     <-	{ "return": {} }

       Command block-dirty-bitmap-disable (Since: 4.0)
	      Disables	a  dirty  bitmap  so  that  it will stop tracking disk
	      changes.

	      Arguments

		      The members of BlockDirtyBitmap.

	      Errors

		      If node is not a	valid block device, DeviceNotFound

		      If name is not found, GenericError

		 Example:

		     ->	{ "execute": "block-dirty-bitmap-disable",
			  "arguments": { "node": "drive0", "name": "bitmap0" } }
		     <-	{ "return": {} }

       Command block-dirty-bitmap-merge	(Since:	4.0)
	      Merge dirty bitmaps  listed  in  bitmaps	to  the	 target	 dirty
	      bitmap.	Dirty  bitmaps in bitmaps will be unchanged, except if
	      it also appears as the target bitmap.  Any bits already  set  in
	      target  will  still be set after the merge, i.e.,	this operation
	      does not clear the target.  On error, target is unchanged.

	      The resulting bitmap will	count as dirty any clusters that  were
	      dirty in any of the source bitmaps.  This	can be used to achieve
	      backup checkpoints, or in	simpler	usages,	to copy	bitmaps.

	      Arguments

		      The members of BlockDirtyBitmapMerge.

	      Errors

		      If node is not a	valid block device, DeviceNotFound

		      If any bitmap in	bitmaps	or target is not found,	Gener-
		       icError

		      If any of the bitmaps have different sizes or granular-
		       ities, GenericError

		 Example:

		     ->	{ "execute": "block-dirty-bitmap-merge",
			  "arguments": { "node": "drive0", "target": "bitmap0",
					 "bitmaps": ["bitmap1"]	} }
		     <-	{ "return": {} }

       Object BlockDirtyBitmapSha256 (Since: 2.10)
	      SHA256 hash of dirty bitmap data

	      Members

		      sha256  (string)	 --  ASCII  representation  of	SHA256
		       bitmap hash

       Command x-debug-block-dirty-bitmap-sha256 (Since: 2.10)
	      This command is unstable/experimental.

	      Get bitmap SHA256.

	      Arguments

		      The members of BlockDirtyBitmap.

	      Features

		      unstable	-- This	command	is meant for debugging.

	      Return BlockDirtyBitmapSha256

	      Errors

		      If node is not a	valid block device, DeviceNotFound

		      If name is not found or if hashing has  failed,	Gener-
		       icError

       Command blockdev-mirror (Since: 2.6)
	      Start mirroring a	block device's writes to a new destination.

	      Arguments

		      job-id	(string,   optional)  --  identifier  for  the
		       newly-created block job.	 If omitted, the  device  name
		       will be used.  (Since 2.7)

		      device  (string)	 --  The device	name or	node-name of a
		       root node whose writes should be	mirrored.

		      target (string) -- the id or node-name of the block de-
		       vice to mirror to.  This	mustn't	be attached to guest.

		      replaces	(string, optional)  --	with  sync=full	 graph
		       node  name to be	replaced by the	new image when a whole
		       image copy is done.  This can be	used to	repair	broken
		       Quorum files.  By default, device is replaced, although
		       implicitly created filters on it	are kept.

		      speed  (int,  optional)	-- the maximum speed, in bytes
		       per second

		      sync (MirrorSyncMode) --	what parts of the  disk	 image
		       should be copied	to the destination (all	the disk, only
		       the sectors allocated in	the topmost image, or only new
		       I/O).

		      granularity (int, optional) -- granularity of the dirty
		       bitmap, default is 64K if the image format doesn't have
		       clusters,  4K  if  the  clusters	are smaller than that,
		       else the	cluster	size.  Must be a power	of  2  between
		       512 and 64M

		      buf-size	 (int,	optional) -- maximum amount of data in
		       flight from source to target

		      on-source-error (BlockdevOnError, optional) -- the  ac-
		       tion  to	 take  on an error on the source, default 're-
		       port'.  'stop' and 'enospc' can only  be	 used  if  the
		       block device supports io-status (see BlockInfo).

		      on-target-error	(BlockdevOnError, optional) -- the ac-
		       tion to take on an error	on the	target,	 default  're-
		       port'  (no limitations, since this applies to a differ-
		       ent block device	than device).

		      filter-node-name	(string, optional) --  the  node  name
		       that  should  be	assigned to the	filter driver that the
		       mirror job inserts into the  graph  above  device.   If
		       this option is not given, a node	name is	autogenerated.
		       (Since: 2.9)

		      copy-mode  (MirrorCopyMode,  optional)  -- when to copy
		       data  to	 the  destination;  defaults  to  'background'
		       (Since: 3.0)

		      auto-finalize  (boolean,	 optional) -- When false, this
		       job will	wait in	a PENDING state	after it has  finished
		       its  work,  waiting  for	job-finalize before making any
		       block graph changes.  When true,	this job will automat-
		       ically perform its abort	or commit  actions.   Defaults
		       to true.	 (Since	3.1)

		      auto-dismiss  (boolean,	optional)  -- When false, this
		       job will	wait in	a CONCLUDED state after	 it  has  com-
		       pletely	ceased all work, and awaits job-dismiss.  When
		       true, this job  will  automatically  disappear  without
		       user intervention.  Defaults to true.  (Since 3.1)

		      target-is-zero (boolean,	optional) -- Assume the	desti-
		       nation  reads  as all zeroes before the mirror started.
		       Setting this to true can	speed up the mirror.   Setting
		       this  to	 true when the destination is not actually all
		       zero can	corrupt	the destination.  (Since 10.1)

		 Example:

		     ->	{ "execute": "blockdev-mirror",
			  "arguments": { "device": "ide-hd0",
					 "target": "target0",
					 "sync": "full"	} }
		     <-	{ "return": {} }

       Object BlockIOThrottle (Since: 1.1)
	      A	set of parameters describing block throttling.

	      Members

		      device (string, optional) -- Block device name

		      id (string, optional) --	The name or QOM	 path  of  the
		       guest device (since: 2.8)

		      bps (int) -- total throughput limit in bytes per	second

		      bps_rd (int) -- read throughput limit in	bytes per sec-
		       ond

		      bps_wr  (int)  --  write	 throughput limit in bytes per
		       second

		      iops (int) -- total I/O operations per second

		      iops_rd (int) --	read I/O operations per	second

		      iops_wr (int) --	write I/O operations per second

		      bps_max (int, optional) -- total	throughput limit  dur-
		       ing bursts, in bytes (Since 1.7)

		      bps_rd_max  (int,  optional)  --	 read throughput limit
		       during bursts, in bytes (Since 1.7)

		      bps_wr_max (int,	optional) --  write  throughput	 limit
		       during bursts, in bytes (Since 1.7)

		      iops_max	 (int,	optional)  -- total I/O	operations per
		       second during bursts, in	bytes (Since 1.7)

		      iops_rd_max (int, optional) -- read I/O operations  per
		       second during bursts, in	bytes (Since 1.7)

		      iops_wr_max (int, optional) -- write I/O	operations per
		       second during bursts, in	bytes (Since 1.7)

		      bps_max_length (int, optional) -- maximum length	of the
		       bps_max	burst period, in seconds.  It must only	be set
		       if bps_max is set as well.  Defaults to 1.  (Since 2.6)

		      bps_rd_max_length (int, optional) -- maximum length  of
		       the  bps_rd_max burst period, in	seconds.  It must only
		       be set if bps_rd_max is set as well.   Defaults	to  1.
		       (Since 2.6)

		      bps_wr_max_length  (int,	optional) -- maximum length of
		       the bps_wr_max burst period, in seconds.	 It must  only
		       be  set	if  bps_wr_max is set as well.	Defaults to 1.
		       (Since 2.6)

		      iops_max_length (int, optional) --  maximum  length  of
		       the iops	burst period, in seconds.  It must only	be set
		       if  iops_max  is	 set  as well.	Defaults to 1.	(Since
		       2.6)

		      iops_rd_max_length (int,	optional) -- maximum length of
		       the iops_rd_max burst period, in	seconds.  It must only
		       be set if iops_rd_max is	set as well.  Defaults	to  1.
		       (Since 2.6)

		      iops_wr_max_length (int,	optional) -- maximum length of
		       the iops_wr_max burst period, in	seconds.  It must only
		       be  set	if iops_wr_max is set as well.	Defaults to 1.
		       (Since 2.6)

		      iops_size (int, optional)  --  an  I/O  size  in	 bytes
		       (Since 1.7)

		      group  (string, optional) -- throttle group name	(Since
		       2.4)

	      Features

		      deprecated -- Member device is deprecated.  Use id  in-
		       stead.

       Object ThrottleLimits (Since: 2.11)
	      Limit  parameters	for throttling.	 Since some limit combinations
	      are illegal, limits should always	be  set	 in  one  transaction.
	      All  fields  are	optional.   When setting limits, if a field is
	      missing the current value	is not changed.

	      Members

		      iops-total (int,	optional) -- limit  total  I/O	opera-
		       tions per second

		      iops-total-max (int, optional) -- I/O operations	burst

		      iops-total-max-length  (int, optional) -- length	of the
		       iops-total-max burst period, in seconds.	 It must  only
		       be set if iops-total-max	is set as well.

		      iops-read  (int,	optional) -- limit read	operations per
		       second

		      iops-read-max (int, optional) --	 I/O  operations  read
		       burst

		      iops-read-max-length  (int,  optional) -- length	of the
		       iops-read-max burst period, in seconds.	It  must  only
		       be set if iops-read-max is set as well.

		      iops-write  (int,  optional)  --	limit write operations
		       per second

		      iops-write-max (int, optional) -- I/O operations	 write
		       burst

		      iops-write-max-length  (int, optional) -- length	of the
		       iops-write-max burst period, in seconds.	 It must  only
		       be set if iops-write-max	is set as well.

		      bps-total (int, optional) -- limit total	bytes per sec-
		       ond

		      bps-total-max (int, optional) --	total bytes burst

		      bps-total-max-length  (int,  optional) -- length	of the
		       bps-total-max burst period, in seconds.	It  must  only
		       be set if bps-total-max is set as well.

		      bps-read	(int, optional)	-- limit read bytes per	second

		      bps-read-max (int, optional) -- total bytes read	burst

		      bps-read-max-length  (int,  optional)  -- length	of the
		       bps-read-max burst period, in seconds.  It must only be
		       set if bps-read-max is set as well.

		      bps-write (int, optional) -- limit write	bytes per sec-
		       ond

		      bps-write-max (int,  optional)  --  total  bytes	 write
		       burst

		      bps-write-max-length  (int,  optional) -- length	of the
		       bps-write-max burst period, in seconds.	It  must  only
		       be set if bps-write-max is set as well.

		      iops-size  (int,	optional) -- when limiting by iops max
		       size of an I/O in bytes

       Object ThrottleGroupProperties (Since: 2.11)
	      Properties for throttle-group objects.

	      Members

		      limits (ThrottleLimits, optional) --  limits  to	 apply
		       for this	throttle group

		      x-iops-total (int, optional) -- Not documented

		      x-iops-total-max	(int, optional)	-- Not documented

		      x-iops-total-max-length	(int,  optional)  -- Not docu-
		       mented

		      x-iops-read (int, optional) -- Not documented

		      x-iops-read-max (int, optional) -- Not documented

		      x-iops-read-max-length (int,  optional)	--  Not	 docu-
		       mented

		      x-iops-write (int, optional) -- Not documented

		      x-iops-write-max	(int, optional)	-- Not documented

		      x-iops-write-max-length	(int,  optional)  -- Not docu-
		       mented

		      x-bps-total (int, optional) -- Not documented

		      x-bps-total-max (int, optional) -- Not documented

		      x-bps-total-max-length (int,  optional)	--  Not	 docu-
		       mented

		      x-bps-read (int,	optional) -- Not documented

		      x-bps-read-max (int, optional) -- Not documented

		      x-bps-read-max-length (int, optional) --	Not documented

		      x-bps-write (int, optional) -- Not documented

		      x-bps-write-max (int, optional) -- Not documented

		      x-bps-write-max-length  (int,  optional)	 --  Not docu-
		       mented

		      x-iops-size (int, optional) -- Not documented

	      Features

		      unstable	-- All members starting	with  x-  are  aliases
		       for the same key	without	x- in the limits object.  This
		       is not a	stable interface and may be removed or changed
		       incompatibly in the future.  Use	limits for a supported
		       stable interface.

       Command block-stream (Since: 1.1)
	      Copy data	from a backing file into a block device.

	      The block	streaming operation is performed in the	background un-
	      til  the	entire backing file has	been copied.  This command re-
	      turns immediately	once streaming has started.  The status	of on-
	      going  block  streaming	operations   can   be	checked	  with
	      query-block-jobs.	  The  operation  can be stopped before	it has
	      completed	using the job-cancel or	block-job-cancel command.

	      The node that receives the data is called	the top	image, can  be
	      located  in any part of the chain	(but always above the base im-
	      age; see below) and can be specified using its  device  or  node
	      name.   Earlier  QEMU versions only allowed 'device' to name the
	      top level	node; presence of the 'base-node' parameter during in-
	      trospection can be used as a witness of the  enhanced  semantics
	      of 'device'.

	      If  a  base  file	 is specified then sectors are not copied from
	      that base	file and its backing  chain.   This  can  be  used  to
	      stream  a	subset of the backing file chain instead of flattening
	      the entire image.	 When streaming	completes the image file  will
	      have  the	 base  file  as	its backing file, unless that node was
	      changed while the	job was	running.  In that  case,  base's  par-
	      ent's  backing (or filtered, whichever exists) child (i.e., base
	      at the beginning of the job) will	be the new backing file.

	      On successful completion the image file is updated to  drop  the
	      backing file and the BLOCK_JOB_COMPLETED event is	emitted.

	      In case device is	a filter node, block-stream modifies the first
	      non-filter  overlay  node	 below	it to point to the new backing
	      node instead of modifying	device itself.

	      Arguments

		      job-id  (string,	 optional)  --	identifier   for   the
		       newly-created  block  job.  If omitted, the device name
		       will be used.  (Since 2.7)

		      device (string) -- the device or	node name of  the  top
		       image

		      base  (string,  optional)  --  the  common backing file
		       name.  It cannot	be set if base-node or bottom is  also
		       set.

		      base-node  (string,  optional)  -- the node name	of the
		       backing file.  It cannot	be set if base	or  bottom  is
		       also set.  (Since 2.8)

		      bottom (string, optional) -- the	last node in the chain
		       that  should be streamed	into top.  It cannot be	set if
		       base or base-node is also set.	It  cannot  be	filter
		       node.  (Since 6.0)

		      backing-file (string, optional) --

		       The  backing  file  string to write into	the top	image.
		       This filename is	not validated.

		       If a pathname string is such that it cannot be resolved
		       by QEMU,	that means that	subsequent QMP or HMP commands
		       must use	node-names for the image in question, as file-
		       name lookup methods will	fail.

		       If not specified, QEMU will automatically determine the
		       backing file string to use, or error out	if there is no
		       obvious choice.	Care should be taken  when  specifying
		       the  string,  to	 specify a valid filename or protocol.
		       (Since 2.1)

		      backing-mask-protocol (boolean, optional) --  If	 true,
		       replace	any  protocol  mentioned  in the 'backing file
		       format' with 'raw', rather than	storing	 the  protocol
		       name  as	 the backing format.  Can be used even when no
		       image header will  be  updated  (default	 false;	 since
		       9.0).

		      speed  (int,  optional)	-- the maximum speed, in bytes
		       per second

		      on-error	(BlockdevOnError, optional) -- the  action  to
		       take on an error	(default report).  'stop' and 'enospc'
		       can only	be used	if the block device supports io-status
		       (see BlockInfo).	 (Since	1.3)

		      filter-node-name	 (string,  optional)  -- the node name
		       that should be assigned to the filter driver  that  the
		       stream  job  inserts  into  the graph above device.  If
		       this option is not given, a node	name is	autogenerated.
		       (Since: 6.0)

		      auto-finalize (boolean, optional) -- When  false,  this
		       job  will wait in a PENDING state after it has finished
		       its work, waiting for job-finalize  before  making  any
		       block graph changes.  When true,	this job will automat-
		       ically  perform	its abort or commit actions.  Defaults
		       to true.	 (Since	3.1)

		      auto-dismiss (boolean, optional)	--  When  false,  this
		       job  will  wait	in a CONCLUDED state after it has com-
		       pletely ceased all work,	and awaits job-dismiss.	  When
		       true,  this  job	 will  automatically disappear without
		       user intervention.  Defaults to true.  (Since 3.1)

	      Errors

		      If device does not exist, DeviceNotFound.

		 Example:

		     ->	{ "execute": "block-stream",
			  "arguments": { "device": "virtio0",
					 "base": "/tmp/master.qcow2" } }
		     <-	{ "return": {} }

       Command block-job-set-speed (Since: 1.1)
	      Set maximum speed	for a background block operation.

	      This command can only be issued when there is  an	 active	 block
	      job.

	      Throttling can be	disabled by setting the	speed to 0.

	      Arguments

		      device (string) -- The job identifier.  This used to be
		       a  device  name	(hence the name	of the parameter), but
		       since QEMU 2.7 it can have other	values.

		      speed (int) -- the maximum speed, in bytes per  second,
		       or 0 for	unlimited.  Defaults to	0.

	      Errors

		      If  no  background  operation is	active on this device,
		       DeviceNotActive

       Command block-job-cancel	(Since:	1.1)
	      Stop an active background	block operation.

	      This command returns immediately after marking the active	 back-
	      ground block operation for cancellation.	It is an error to call
	      this command if no operation is in progress.

	      The  operation will cancel as soon as possible and then emit the
	      BLOCK_JOB_CANCELLED event.  Before that happens the job is still
	      visible when enumerated using query-block-jobs.

	      Note that	if you issue block-job-cancel after  drive-mirror  has
	      indicated	 (via  the  event BLOCK_JOB_READY) that	the source and
	      destination are synchronized, then the event triggered  by  this
	      command  changes	to  BLOCK_JOB_COMPLETED,  to indicate that the
	      mirroring	has ended and the destination now has a	 point-in-time
	      copy tied	to the time of the cancellation.

	      For  streaming,  the  image file retains its backing file	unless
	      the streaming operation happens to complete just as it is	 being
	      cancelled.   A new streaming operation can be started at a later
	      time to finish copying all data from the backing file.

	      Arguments

		      device (string) -- The job identifier.  This used to be
		       a device	name (hence the	name of	 the  parameter),  but
		       since QEMU 2.7 it can have other	values.

		      force  (boolean,	 optional) -- If true, and the job has
		       already emitted the event BLOCK_JOB_READY, abandon  the
		       job immediately (even if	it is paused) instead of wait-
		       ing  for	the destination	to complete its	final synchro-
		       nization	(since 1.3)

	      Errors

		      If no background	operation is active  on	 this  device,
		       DeviceNotActive

       Command block-job-pause (Since: 1.3)
	      This command is deprecated.

	      Pause an active background block operation.

	      This  command  returns  immediately after	marking	the active job
	      for pausing.  Pausing an already paused job is an	error.

	      The job will pause as soon as possible, which means  transition-
	      ing  into	the PAUSED state if it was RUNNING, or into STANDBY if
	      it was READY.  The corresponding JOB_STATUS_CHANGE event will be
	      emitted.

	      Cancelling a paused job automatically resumes it.

	      Arguments

		      device (string) -- The job identifier.  This used to be
		       a device	name (hence the	name of	 the  parameter),  but
		       since QEMU 2.7 it can have other	values.

	      Features

		      deprecated   --	 This	command	 is  deprecated.   Use
		       job-pause instead.

	      Errors

		      If no background	operation is active  on	 this  device,
		       DeviceNotActive

       Command block-job-resume	(Since:	1.3)
	      This command is deprecated.

	      Resume an	active background block	operation.

	      This  command  returns  immediately after	resuming a paused job.
	      Resuming an already running job is an error.

	      This command also	clears the error status	of the job.

	      Arguments

		      device (string) -- The job identifier.  This used to be
		       a device	name (hence the	name of	 the  parameter),  but
		       since QEMU 2.7 it can have other	values.

	      Features

		      deprecated   --	 This	command	 is  deprecated.   Use
		       job-resume instead.

	      Errors

		      If no background	operation is active  on	 this  device,
		       DeviceNotActive

       Command block-job-complete (Since: 1.3)
	      This command is deprecated.

	      Manually	trigger	 completion  of	 an active job in the READY or
	      STANDBY state.  Completing the job in any	other state is an  er-
	      ror.

	      This  is	supported  only	 for  drive  mirroring,	 where it also
	      switches the device to write to the target path only.  Note that
	      drive  mirroring	includes  drive-mirror,	 blockdev-mirror   and
	      block-commit job (only in	case of	"active	commit", when the node
	      being  commited  is used by the guest).  The ability to complete
	      is signaled with a BLOCK_JOB_READY event.

	      This command completes an	active background block	operation syn-
	      chronously.  The ordering	of  this  command's  return  with  the
	      BLOCK_JOB_COMPLETED  event  is not defined.  Note	that if	an I/O
	      error occurs during the processing of this command: 1) the  com-
	      mand  itself will	fail; 2) the error will	be processed according
	      to the rerror/werror arguments that were specified when starting
	      the operation.

	      Arguments

		      device (string) -- The job identifier.  This used to be
		       a device	name (hence the	name of	 the  parameter),  but
		       since QEMU 2.7 it can have other	values.

	      Features

		      deprecated   --	 This	command	 is  deprecated.   Use
		       job-complete instead.

	      Errors

		      If no background	operation is active  on	 this  device,
		       DeviceNotActive

       Command block-job-dismiss (Since: 2.12)
	      This command is deprecated.

	      Deletes a	job that is in the CONCLUDED state.  This command only
	      needs  to	 be  run explicitly for	jobs that don't	have automatic
	      dismiss enabled.	In turn, automatic dismiss may be enabled only
	      for jobs that have auto-dismiss option, which are	 drive-backup,
	      blockdev-backup, drive-mirror, blockdev-mirror, block-commit and
	      block-stream.   auto-dismiss  is	enabled	 by  default for these
	      jobs.

	      This command will	refuse to operate on any job that has not  yet
	      reached  its  terminal state, CONCLUDED.	For jobs that make use
	      of the BLOCK_JOB_READY event,  job-cancel,  block-job-cancel  or
	      job-complete will	still need to be used as appropriate.

	      Arguments

		      id (string) -- The job identifier.

	      Features

		      deprecated   --	 This	command	 is  deprecated.   Use
		       job-dismiss instead.

       Command block-job-finalize (Since: 2.12)
	      This command is deprecated.

	      Instructs	all jobs in a transaction (or a	single job  if	it  is
	      not  part	 of any	transaction) to	finalize any graph changes and
	      do any necessary cleanup.	 This command requires	that  all  in-
	      volved jobs are in the PENDING state.

	      For  jobs	in a transaction, instructing one job to finalize will
	      force ALL	jobs in	the transaction	to finalize,  so  it  is  only
	      necessary	to instruct a single member job	to finalize.

	      The  command is applicable only to jobs which have auto-finalize
	      option and only when this	option is set to false.

	      Arguments

		      id (string) -- The job identifier.

	      Features

		      deprecated  --  This  command   is   deprecated.	   Use
		       job-finalize instead.

       Object BlockJobChangeOptionsMirror (Since: 8.2)

	      Members

		      copy-mode (MirrorCopyMode) -- Switch to this copy mode.
		       Currently,   only   the	switch	from  'background'  to
		       'write-blocking'	is implemented.

       Object BlockJobChangeOptions (Since: 8.2)
	      Block job	options	that can be changed after job creation.

	      Members

		      id (string) -- The job identifier

		      type (JobType) -- The job type

		      When    type    is    mirror:	The	members	    of
		       BlockJobChangeOptionsMirror.

       Command block-job-change	(Since:	8.2)
	      Change the block job's options.

	      Arguments

		      The members of BlockJobChangeOptions.

       Enum BlockdevDiscardOptions (Since: 2.9)
	      Determines how to	handle discard requests.

	      Values

		      ignore -- Ignore	the request

		      unmap --	Forward	as an unmap request

       Enum BlockdevDetectZeroesOptions	(Since:	2.1)
	      Describes	 the  operation	 mode  for the automatic conversion of
	      plain zero writes	by the OS to driver  specific  optimized  zero
	      write commands.

	      Values

		      off -- Disabled (default)

		      on -- Enabled

		      unmap --	Enabled	and even try to	unmap blocks if	possi-
		       ble.  This requires also	that BlockdevDiscardOptions is
		       set to unmap for	this device.

       Enum BlockdevAioOptions (Since: 2.9)
	      Selects the AIO backend to handle	I/O requests

	      Values

		      threads -- Use QEMU's thread pool

		      native  --  Use native AIO backend (only	Linux and Win-
		       dows)

		      io_uring	-- Use linux io_uring (since 5.0)

       Object BlockdevCacheOptions (Since: 2.9)
	      Includes cache-related options for block devices

	      Members

		      direct (boolean,	optional) -- enables use  of  O_DIRECT
		       (bypass the host	page cache; default: false)

		      no-flush	 (boolean,  optional)  -- ignore any flush re-
		       quests for the device (default: false)

       Enum BlockdevDriver (Since: 2.9)
	      Drivers that are supported in block device operations.

	      Values

		      throttle	-- Since 2.11

		      nvme -- Since 2.12

		      copy-on-read -- Since 3.0

		      blklogwrites -- Since 3.0

		      blkreplay -- Since 4.2

		      compress	-- Since 5.0

		      copy-before-write -- Since 6.2

		      snapshot-access -- Since	7.0

		      blkdebug	-- Not documented

		      blkverify -- Not	documented

		      bochs --	Not documented

		      cloop --	Not documented

		      dmg -- Not documented

		      file -- Not documented

		      ftp -- Not documented

		      ftps -- Not documented

		      gluster -- Not documented

		      host_cdrom -- Not documented

		      host_device -- Not documented

		      http -- Not documented

		      https --	Not documented

		      io_uring	-- Not documented

		      iscsi --	Not documented

		      luks -- Not documented

		      nbd -- Not documented

		      nfs -- Not documented

		      null-aio	-- Not documented

		      null-co -- Not documented

		      nvme-io_uring --	Not documented

		      parallels -- Not	documented

		      preallocate -- Not documented

		      qcow -- Not documented

		      qcow2 --	Not documented

		      qed -- Not documented

		      quorum -- Not documented

		      raw -- Not documented

		      rbd -- Not documented

		      replication -- Not documented

		      ssh -- Not documented

		      vdi -- Not documented

		      vhdx -- Not documented

		      virtio-blk-vfio-pci -- Not documented

		      virtio-blk-vhost-user --	Not documented

		      virtio-blk-vhost-vdpa --	Not documented

		      vmdk -- Not documented

		      vpc -- Not documented

		      vvfat --	Not documented

	      Features

		      deprecated --  Member  gluster  is  deprecated  because
		       GlusterFS development ceased.

       Object BlockdevOptionsFile (Since: 2.9)
	      Driver specific block device options for the file	backend.

	      Members

		      filename	(string) -- path to the	image file

		      pr-manager  (string, optional) -- the id	for the	object
		       that will handle	persistent reservations	for  this  de-
		       vice  (default:	none,  forward the commands via	SG_IO;
		       since 2.11)

		      aio (BlockdevAioOptions,	optional) -- AIO backend  (de-
		       fault: threads) (since: 2.8)

		      aio-max-batch  (int, optional) -- maximum number	of re-
		       quests to batch together	into a	single	submission  in
		       the  AIO	 backend.  The smallest	value between this and
		       the aio-max-batch value of the IOThread object is  cho-
		       sen.  0 means that the AIO backend will handle it auto-
		       matically.  (default: 0,	since 6.2)

		      locking (OnOffAuto, optional) --	whether	to enable file
		       locking.	  If set to 'auto', only enable	when Open File
		       Descriptor (OFD)	locking	 API  is  available  (default:
		       auto, since 2.10)

		      drop-cache (boolean, optional) -- invalidate page cache
		       during live migration.  This prevents stale data	on the
		       migration destination with cache.direct=off.  Currently
		       only  supported	on  Linux hosts.  (default: on,	since:
		       4.0)

		      x-check-cache-dropped (boolean, optional) -- whether to
		       check that page cache was dropped  on  live  migration.
		       May cause noticeable delays if the image	file is	large,
		       do not use in production.  (default: off) (since: 3.0)

	      Features

		      dynamic-auto-read-only	 --    If   present,   enabled
		       auto-read-only means that the driver will open the  im-
		       age  read-only  at  first, dynamically reopen the image
		       file read-write when the	first writer  is  attached  to
		       the  node  and reopen read-only when the	last writer is
		       detached.  This allows giving  QEMU  write  permissions
		       only  on	 demand	when an	operation actually needs write
		       access.

		      unstable	-- Member x-check-cache-dropped	is  meant  for
		       debugging.

       Object BlockdevOptionsNull (Since: 2.9)
	      Driver specific block device options for the null	backend.

	      Members

		      size (int, optional) -- size of the device in bytes.

		      latency-ns  (int,  optional)  --	 emulated  latency (in
		       nanoseconds) in processing requests.  Default  to  zero
		       which completes requests	immediately.  (Since 2.4)

		      read-zeroes  (boolean, optional)	-- if true, reads from
		       the device produce zeroes; if false, the	buffer is left
		       unchanged.  (default: false; since: 4.1)

       Object BlockdevOptionsNVMe (Since: 2.12)
	      Driver specific block device options for the NVMe	backend.

	      Members

		      device (string) -- PCI controller address of  the  NVMe
		       device in format	hhhh:bb:ss.f (host:bus:slot.function)

		      namespace  (int)	 --  namespace	number	of the device,
		       starting	from 1.

	      Note that	the PCI	device must have been unbound  from  any  host
	      kernel driver before instructing QEMU to add the blockdev.

       Object BlockdevOptionsVVFAT (Since: 2.9)
	      Driver specific block device options for the vvfat protocol.

	      Members

		      dir (string) -- directory to be exported	as FAT image

		      fat-type	(int, optional)	-- FAT type: 12, 16 or 32

		      floppy  (boolean,  optional)  --	 whether  to  export a
		       floppy image (true) or partitioned  hard	 disk  (false;
		       default)

		      label  (string, optional) -- set	the volume label, lim-
		       ited to 11 bytes.  FAT16	and FAT32  traditionally  have
		       some  restrictions on labels, which are ignored by most
		       operating systems.  Defaults to "QEMU  VVFAT".	(since
		       2.4)

		      rw (boolean, optional) -- whether to allow write	opera-
		       tions (default: false)

       Object BlockdevOptionsGenericFormat (Since: 2.9)
	      Driver  specific block device options for	image format that have
	      no option	besides	their data source.

	      Members

		      file (BlockdevRef) -- reference to or definition	of the
		       data source block device

       Object BlockdevOptionsLUKS (Since: 2.9)
	      Driver specific block device options for LUKS.

	      Members

		      key-secret (string, optional) --	the ID of a QCryptoSe-
		       cret object providing the  decryption  key.   Mandatory
		       except  when  doing a metadata-only probe of the	image.
		       (since 2.6)

		      header (BlockdevRef, optional) -- block device  holding
		       a detached LUKS header.	(since 9.0)

		      The members of BlockdevOptionsGenericFormat.

       Object BlockdevOptionsGenericCOWFormat (Since: 2.9)
	      Driver  specific block device options for	image format that have
	      no option	besides	their data  source  and	 an  optional  backing
	      file.

	      Members

		      backing	(BlockdevRefOrNull,  optional) -- reference to
		       or definition of	the backing file  block	 device,  null
		       disables	 the  backing  file entirely.  Defaults	to the
		       backing file stored the image file.

		      The members of BlockdevOptionsGenericFormat.

       Enum Qcow2OverlapCheckMode (Since: 2.9)
	      General overlap check modes.

	      Values

		      none -- Do not perform any checks

		      constant	-- Perform only	checks which can  be  done  in
		       constant	time and without reading anything from disk

		      cached -- Perform only checks which can be done without
		       reading anything	from disk

		      all -- Perform all available overlap checks

       Object Qcow2OverlapCheckFlags (Since: 2.9)
	      Structure	of flags for each metadata structure.  Setting a field
	      to  'true'  makes	QEMU guard that	Qcow2 format structure against
	      unintended overwriting.  See Qcow2 format	specification for  de-
	      tailed  information  on  these structures.  The default value is
	      chosen according to the template given.

	      Members

		      template	(Qcow2OverlapCheckMode,	optional) -- Specifies
		       a template mode which can be adjusted using  the	 other
		       flags, defaults to 'cached'

		      main-header (boolean, optional) -- Qcow2	format header

		      active-l1 (boolean, optional) --	Qcow2 active L1	table

		      active-l2 (boolean, optional) --	Qcow2 active L2	table

		      refcount-table  (boolean,  optional)  --	Qcow2 refcount
		       table

		      refcount-block (boolean,	optional)  --  Qcow2  refcount
		       blocks

		      snapshot-table  (boolean,  optional)  --	Qcow2 snapshot
		       table

		      inactive-l1 (boolean, optional) --  Qcow2  inactive  L1
		       tables

		      inactive-l2  (boolean,  optional)  -- Qcow2 inactive L2
		       tables

		      bitmap-directory	(boolean, optional)  --	 Qcow2	bitmap
		       directory (since	3.0)

       Alternate Qcow2OverlapChecks (Since: 2.9)
	      Specifies	 which	metadata  structures should be guarded against
	      unintended overwriting.

	      Alternatives

		      flags (Qcow2OverlapCheckFlags) -- set of	flags for sep-
		       arate specification of each metadata structure type

		      mode  (Qcow2OverlapCheckMode)  --  named	  mode	 which
		       chooses a specific set of flags

       Enum BlockdevQcowEncryptionFormat (Since: 2.10)

	      Values

		      aes -- AES-CBC with plain64 initialization vectors

       Object BlockdevQcowEncryption (Since: 2.10)

	      Members

		      format	(BlockdevQcowEncryptionFormat)	--  encryption
		       format

		      When    format	 is    aes:	The	members	    of
		       QCryptoBlockOptionsQCow.

       Object BlockdevOptionsQcow (Since: 2.10)
	      Driver specific block device options for qcow.

	      Members

		      encrypt (BlockdevQcowEncryption,	optional) -- Image de-
		       cryption	 options.  Mandatory for encrypted images, ex-
		       cept when doing a metadata-only probe of	the image.

		      The members of BlockdevOptionsGenericCOWFormat.

       Enum BlockdevQcow2EncryptionFormat (Since: 2.10)

	      Values

		      aes -- AES-CBC with plain64 initialization vectors

		      luks -- Not documented

       Object BlockdevQcow2Encryption (Since: 2.10)

	      Members

		      format  (BlockdevQcow2EncryptionFormat)	--  encryption
		       format

		      When	format	   is	  aes:	  The	 members    of
		       QCryptoBlockOptionsQCow.

		      When    format	 is    luks:	The	members	    of
		       QCryptoBlockOptionsLUKS.

       Object BlockdevOptionsPreallocate (Since: 6.0)
	      Filter  driver intended to be inserted between format and	proto-
	      col node and do preallocation in protocol	node on	write.

	      Members

		      prealloc-align (int,  optional)	--  on	preallocation,
		       align file length to this number, default 1048576 (1M)

		      prealloc-size  (int,  optional) -- how much to preallo-
		       cate, default 134217728 (128M)

		      The members of BlockdevOptionsGenericFormat.

       Object BlockdevOptionsQcow2 (Since: 2.9)
	      Driver specific block device options for qcow2.

	      Members

		      lazy-refcounts (boolean,	optional) -- whether to	enable
		       the lazy	refcounts feature (default is taken  from  the
		       image file)

		      pass-discard-request  (boolean,	optional)  --  whether
		       discard requests	to the qcow2  device  should  be  for-
		       warded to the data source

		      pass-discard-snapshot  (boolean,	 optional)  -- whether
		       discard requests	for the	data source should  be	issued
		       when  a	snapshot  operation (e.g. deleting a snapshot)
		       frees clusters in the qcow2 file

		      pass-discard-other (boolean, optional) -- whether  dis-
		       card  requests  for the data source should be issued on
		       other occasions where a cluster gets freed

		      discard-no-unref	(boolean, optional) --	when  enabled,
		       data clusters will remain preallocated when they	are no
		       longer  used,  e.g.  because they are discarded or con-
		       verted to zero clusters.	 As  usual,  whether  the  old
		       data  is	 discarded or kept on the protocol level (i.e.
		       in the image  file)  depends  on	 the  setting  of  the
		       pass-discard-request option.  Keeping the clusters pre-
		       allocated  prevents qcow2 fragmentation that would oth-
		       erwise be caused	 by  freeing  and  re-allocating  them
		       later.  Besides potential performance degradation, such
		       fragmentation can lead to increased allocation of clus-
		       ters past the end of the	image file, resulting in image
		       files whose file	length can grow	much larger than their
		       guest disk size would suggest.  If image	file length is
		       of  concern (e.g. when storing qcow2 images directly on
		       block devices), you should consider enabling  this  op-
		       tion.  (since 8.1)

		      overlap-check  (Qcow2OverlapChecks,  optional) -- which
		       overlap checks to perform for writes to the image,  de-
		       faults to 'cached' (since 2.2)

		      cache-size (int,	optional) -- the maximum total size of
		       the  L2 table and refcount block	caches in bytes	(since
		       2.2)

		      l2-cache-size (int, optional) --	the  maximum  size  of
		       the L2 table cache in bytes (since 2.2)

		      l2-cache-entry-size (int, optional) -- the size of each
		       entry  in the L2	cache in bytes.	 It must be a power of
		       two between 512 and  the	 cluster  size.	  The  default
		       value is	the cluster size (since	2.12)

		      refcount-cache-size (int, optional) -- the maximum size
		       of the refcount block cache in bytes (since 2.2)

		      cache-clean-interval  (int,  optional)  -- clean	unused
		       entries in the L2 and refcount caches.  The interval is
		       in seconds.  The	default	value  is  600	on  supporting
		       platforms,  and	0 on other platforms.  0 disables this
		       feature.	 (since	2.5)

		      encrypt (BlockdevQcow2Encryption,  optional)  --	 Image
		       decryption  options.   Mandatory	 for encrypted images,
		       except when doing a metadata-only probe of  the	image.
		       (since 2.10)

		      data-file  (BlockdevRef,	 optional)  -- reference to or
		       definition of the external data file.  This may only be
		       specified for images  that  require  an	external  data
		       file.   If  it  is not specified	for such an image, the
		       data file name is loaded	from the image	file.	(since
		       4.0)

		      The members of BlockdevOptionsGenericCOWFormat.

       Enum SshHostKeyCheckMode	(Since:	2.12)

	      Values

		      none -- Don't check the host key	at all

		      hash -- Compare the host	key with a given hash

		      known_hosts   --	  Check	  the  host  key  against  the
		       known_hosts file

       Enum SshHostKeyCheckHashType (Since: 2.12)

	      Values

		      md5 -- The given	hash is	an md5 hash

		      sha1 -- The given hash is an sha1 hash

		      sha256 -- The given hash	is an sha256 hash

       Object SshHostKeyHash (Since: 2.12)

	      Members

		      type (SshHostKeyCheckHashType) --  The  hash  algorithm
		       used for	the hash

		      hash (string) --	The expected hash value

       Object SshHostKeyCheck (Since: 2.12)

	      Members

		      mode (SshHostKeyCheckMode) -- How to check the host key

		      When mode is hash: The members of SshHostKeyHash.

       Object BlockdevOptionsSsh (Since: 2.9)

	      Members

		      server (InetSocketAddress) -- host address

		      path (string) --	path to	the image on the host

		      user  (string,  optional)  -- user as which to connect,
		       defaults	to current local user name

		      host-key-check (SshHostKeyCheck,	optional)  --  Defines
		       how  and	 what  to check	the host key against (default:
		       known_hosts)

       Enum BlkdebugEvent (Since: 2.9)
	      Trigger events supported by blkdebug.

	      Values

		      l1_shrink_write_table --	write zeros to the l1 table to
		       shrink image.  (since 2.11)

		      l1_shrink_free_l2_clusters -- discard  the  l2  tables.
		       (since 2.11)

		      cor_write -- a write due	to copy-on-read	(since 2.11)

		      cluster_alloc_space  -- an allocation of	file space for
		       a cluster (since	4.1)

		      none -- triggers	once at	creation of the	blkdebug  node
		       (since 4.1)

		      l1_update -- Not	documented

		      l1_grow_alloc_table -- Not documented

		      l1_grow_write_table -- Not documented

		      l1_grow_activate_table -- Not documented

		      l2_load -- Not documented

		      l2_update -- Not	documented

		      l2_update_compressed -- Not documented

		      l2_alloc_cow_read -- Not	documented

		      l2_alloc_write -- Not documented

		      read_aio	-- Not documented

		      read_backing_aio	-- Not documented

		      read_compressed -- Not documented

		      write_aio -- Not	documented

		      write_compressed	-- Not documented

		      vmstate_load -- Not documented

		      vmstate_save -- Not documented

		      cow_read	-- Not documented

		      cow_write -- Not	documented

		      reftable_load --	Not documented

		      reftable_grow --	Not documented

		      reftable_update -- Not documented

		      refblock_load --	Not documented

		      refblock_update -- Not documented

		      refblock_update_part -- Not documented

		      refblock_alloc -- Not documented

		      refblock_alloc_hookup --	Not documented

		      refblock_alloc_write -- Not documented

		      refblock_alloc_write_blocks -- Not documented

		      refblock_alloc_write_table -- Not documented

		      refblock_alloc_switch_table -- Not documented

		      cluster_alloc --	Not documented

		      cluster_alloc_bytes -- Not documented

		      cluster_free -- Not documented

		      flush_to_os -- Not documented

		      flush_to_disk --	Not documented

		      pwritev_rmw_head	-- Not documented

		      pwritev_rmw_after_head -- Not documented

		      pwritev_rmw_tail	-- Not documented

		      pwritev_rmw_after_tail -- Not documented

		      pwritev -- Not documented

		      pwritev_zero -- Not documented

		      pwritev_done -- Not documented

		      empty_image_prepare -- Not documented

       Enum BlkdebugIOType (Since: 4.1)
	      Kinds of I/O that	blkdebug can inject errors in.

	      Values

		      read -- .bdrv_co_preadv()

		      write --	.bdrv_co_pwritev()

		      write-zeroes -- .bdrv_co_pwrite_zeroes()

		      discard -- .bdrv_co_pdiscard()

		      flush --	.bdrv_co_flush_to_disk()

		      block-status -- .bdrv_co_block_status()

       Object BlkdebugInjectErrorOptions (Since: 2.9)
	      Describes	a single error injection for blkdebug.

	      Members

		      event (BlkdebugEvent) --	trigger	event

		      state  (int, optional) -- the state identifier blkdebug
		       needs to	be in to actually trigger the event;  defaults
		       to "any"

		      iotype  (BlkdebugIOType,	 optional)  -- the type	of I/O
		       operations on which this	error should be	injected;  de-
		       faults  to "all read, write, write-zeroes, discard, and
		       flush operations" (since: 4.1)

		      errno (int, optional) --	error identifier (errno) to be
		       returned; defaults to EIO

		      sector (int, optional) -- specifies  the	 sector	 index
		       which  has  to be affected in order to actually trigger
		       the event; defaults to "any sector"

		      once (boolean, optional)	-- disables further events af-
		       ter this	one has	been triggered;	defaults to false

		      immediately (boolean, optional)	--  fail  immediately;
		       defaults	to false

       Object BlkdebugSetStateOptions (Since: 2.9)
	      Describes	a single state-change event for	blkdebug.

	      Members

		      event (BlkdebugEvent) --	trigger	event

		      state  (int,  optional) -- the current state identifier
		       blkdebug	needs to be in;	defaults to "any"

		      new_state (int) -- the  state  identifier  blkdebug  is
		       supposed	to assume if this event	is triggered

       Object BlockdevOptionsBlkdebug (Since: 2.9)
	      Driver specific block device options for blkdebug.

	      Members

		      image  (BlockdevRef) -- underlying raw block device (or
		       image file)

		      config (string, optional) -- filename of	the configura-
		       tion file

		      align (int, optional) --	 required  alignment  for  re-
		       quests  in bytes, must be positive power	of 2, or 0 for
		       default

		      max-transfer (int, optional) -- maximum	size  for  I/O
		       transfers  in bytes, must be positive multiple of align
		       and of the underlying  file's  request  alignment  (but
		       need  not  be  a	 power	of 2), or 0 for	default	(since
		       2.10)

		      opt-write-zero (int, optional) --  preferred  alignment
		       for write zero requests in bytes, must be positive mul-
		       tiple  of  align	 and  of the underlying	file's request
		       alignment (but need not be a power of 2), or 0 for  de-
		       fault (since 2.10)

		      max-write-zero  (int,  optional)	 --  maximum  size for
		       write zero requests in bytes, must be positive multiple
		       of align, of  opt-write-zero,  and  of  the  underlying
		       file's  request	alignment  (but	need not be a power of
		       2), or 0	for default (since 2.10)

		      opt-discard (int, optional) -- preferred	alignment  for
		       discard requests	in bytes, must be positive multiple of
		       align  and  of  the underlying file's request alignment
		       (but need not be	a power	of 2), or 0 for	default	(since
		       2.10)

		      max-discard (int, optional) -- maximum size for discard
		       requests	in bytes, must be positive multiple of	align,
		       of  opt-discard,	 and  of the underlying	file's request
		       alignment (but need not be a power of 2), or 0 for  de-
		       fault (since 2.10)

		      inject-error  ([BlkdebugInjectErrorOptions],  optional)
		       -- array	of error injection descriptions

		      set-state ([BlkdebugSetStateOptions], optional) --  ar-
		       ray of state-change descriptions

		      take-child-perms	 ([BlockPermission], optional) -- Per-
		       missions	to take	on image in addition to	what is	neces-
		       sary anyway (which depends on how the blkdebug node  is
		       used).  Defaults	to none.  (since 5.0)

		      unshare-child-perms  ([BlockPermission],	 optional)  --
		       Permissions not to share	on image in addition  to  what
		       cannot  be  shared  anyway  (which  depends  on how the
		       blkdebug	node is	used).	Defaults to none.  (since 5.0)

       Object BlockdevOptionsBlklogwrites (Since: 3.0)
	      Driver specific block device options for blklogwrites.

	      Members

		      file (BlockdevRef) -- block device

		      log (BlockdevRef) -- block device used to log writes to
		       file

		      log-sector-size (int, optional) -- sector size used  in
		       logging	writes to file,	determines granularity of off-
		       sets and	sizes of writes	(default: 512)

		      log-append (boolean, optional) -- append	to an existing
		       log (default: false)

		      log-super-update-interval (int, optional)  --  interval
		       of  write  requests  after which	the log	super block is
		       updated to disk (default: 4096)

       Object BlockdevOptionsBlkverify (Since: 2.9)
	      Driver specific block device options for blkverify.

	      Members

		      test (BlockdevRef) -- block device to be	tested

		      raw (BlockdevRef) -- raw	image used for verification

       Object BlockdevOptionsBlkreplay (Since: 4.2)
	      Driver specific block device options for blkreplay.

	      Members

		      image (BlockdevRef) -- disk image which should be  con-
		       trolled with blkreplay

       Enum QuorumReadPattern (Since: 2.9)
	      An enumeration of	quorum read patterns.

	      Values

		      quorum -- read all the children and do a	quorum vote on
		       reads

		      fifo  --	 read  only  from the first child that has not
		       failed

       Object BlockdevOptionsQuorum (Since: 2.9)
	      Driver specific block device options for Quorum

	      Members

		      blkverify (boolean, optional) --	 true  if  the	driver
		       must print content mismatch set to false	by default

		      children	 ([BlockdevRef]) -- the	children block devices
		       to use

		      vote-threshold (int) -- the vote	limit  under  which  a
		       read will fail

		      rewrite-corrupted  (boolean,  optional) -- rewrite cor-
		       rupted data when	quorum is reached (Since 2.1)

		      read-pattern (QuorumReadPattern,	 optional)  --	choose
		       read pattern and	set to quorum by default (Since	2.2)

       Object BlockdevOptionsGluster (Since: 2.9)
	      Driver specific block device options for Gluster

	      Members

		      volume  (string)	-- name	of gluster volume where	VM im-
		       age resides

		      path (string) --	absolute path to image file in gluster
		       volume

		      server ([SocketAddress])	-- gluster servers description

		      debug (int, optional) --	libgfapi  log  level  (default
		       '4' which is Error) (Since 2.8)

		      logfile	(string,  optional)  --	libgfapi log file (de-
		       fault /dev/stderr) (Since 2.8)

       Object BlockdevOptionsIoUring (Since: 7.2)
	      Availability: CONFIG_BLKIO

	      Driver specific block device options for the io_uring backend.

	      Members

		      filename	(string) -- path to the	image file

       Object BlockdevOptionsNvmeIoUring (Since: 7.2)
	      Availability: CONFIG_BLKIO

	      Driver specific block device options for the nvme-io_uring back-
	      end.

	      Members

		      path (string) --	path to	the NVMe namespace's character
		       device (e.g.  /dev/ng0n1).

       Object BlockdevOptionsVirtioBlkVfioPci (Since: 7.2)
	      Availability: CONFIG_BLKIO

	      Driver specific block device options for the virtio-blk-vfio-pci
	      backend.

	      Members

		      path (string) --	path to	the PCI	device's sysfs	direc-
		       tory (e.g.  /sys/bus/pci/devices/0000:00:01.0).

       Object BlockdevOptionsVirtioBlkVhostUser	(Since:	7.2)
	      Availability: CONFIG_BLKIO

	      Driver	specific   block   device   options   for   the	  vir-
	      tio-blk-vhost-user backend.

	      Members

		      path (string) --	path to	 the  vhost-user  UNIX	domain
		       socket.

       Object BlockdevOptionsVirtioBlkVhostVdpa	(Since:	7.2)
	      Availability: CONFIG_BLKIO

	      Driver	specific   block   device   options   for   the	  vir-
	      tio-blk-vhost-vdpa backend.

	      Members

		      path (string) --	path to	the vhost-vdpa	character  de-
		       vice.

	      Features

		      fdset  --  Member  path	supports the special "/dev/fd-
		       set/N" path (since 8.1)

       Enum IscsiTransport (Since: 2.9)
	      An enumeration of	libiscsi transport types

	      Values

		      tcp -- Not documented

		      iser -- Not documented

       Enum IscsiHeaderDigest (Since: 2.9)
	      An enumeration of	header digests supported by libiscsi

	      Values

		      crc32c -- Not documented

		      none -- Not documented

		      crc32c-none -- Not documented

		      none-crc32c -- Not documented

       Object BlockdevOptionsIscsi (Since: 2.9)
	      Driver specific block device options for iscsi

	      Members

		      transport (IscsiTransport) -- The iscsi transport type

		      portal (string) -- The address of the iscsi portal

		      target (string) -- The target iqn name

		      lun (int, optional) -- LUN to connect to.  Defaults  to
		       0.

		      user  (string,  optional)  -- User name to log in with.
		       If omitted, no CHAP authentication is performed.

		      password-secret (string,	 optional)  --	The  ID	 of  a
		       QCryptoSecret object providing the password for the lo-
		       gin.  This option is required if	user is	specified.

		      initiator-name  (string,	 optional)  -- The iqn name we
		       want to identify	to the target as.  If this  option  is
		       not specified, an initiator name	is generated automati-
		       cally.

		      header-digest  (IscsiHeaderDigest, optional) -- The de-
		       sired header digest.  Defaults to none-crc32c.

		      timeout (int, optional) --  Timeout  in	seconds	 after
		       which  a	 request will timeout.	0 means	no timeout and
		       is the default.

       Enum RbdAuthMode	(Since:	3.0)

	      Values

		      cephx --	Not documented

		      none -- Not documented

       Enum RbdImageEncryptionFormat (Since: 6.1)

	      Values

		      luks-any	-- Used	 for  opening  either  luks  or	 luks2
		       (Since 8.0)

		      luks -- Not documented

		      luks2 --	Not documented

       Object RbdEncryptionOptionsLUKSBase (Since: 6.1)

	      Members

		      key-secret  (string)  --	 ID  of	a QCryptoSecret	object
		       providing a passphrase for unlocking the	encryption

       Object RbdEncryptionCreateOptionsLUKSBase (Since: 6.1)

	      Members

		      cipher-alg (QCryptoCipherAlgo, optional)	-- The encryp-
		       tion algorithm

		      The members of RbdEncryptionOptionsLUKSBase.

       Object RbdEncryptionOptionsLUKS (Since: 6.1)

	      Members

		      The members of RbdEncryptionOptionsLUKSBase.

       Object RbdEncryptionOptionsLUKS2	(Since:	6.1)

	      Members

		      The members of RbdEncryptionOptionsLUKSBase.

       Object RbdEncryptionOptionsLUKSAny (Since: 8.0)

	      Members

		      The members of RbdEncryptionOptionsLUKSBase.

       Object RbdEncryptionCreateOptionsLUKS (Since: 6.1)

	      Members

		      The members of RbdEncryptionCreateOptionsLUKSBase.

       Object RbdEncryptionCreateOptionsLUKS2 (Since: 6.1)

	      Members

		      The members of RbdEncryptionCreateOptionsLUKSBase.

       Object RbdEncryptionOptions (Since: 6.1)

	      Members

		      format (RbdImageEncryptionFormat) -- Encryption format.

		      parent (RbdEncryptionOptions, optional) -- Parent image
		       encryption options (for cloned images).	 Can  be  left
		       unspecified if this cloned image	is encrypted using the
		       same  format  and  secret as its	parent image (i.e. not
		       explicitly formatted) or	if its parent image is not en-
		       crypted.	 (Since	8.0)

		      When    format	 is    luks:	The	members	    of
		       RbdEncryptionOptionsLUKS.

		      When	format	  is	luks2:	  The	 members    of
		       RbdEncryptionOptionsLUKS2.

		      When   format   is    luks-any:	  The	 members    of
		       RbdEncryptionOptionsLUKSAny.

       Object RbdEncryptionCreateOptions (Since: 6.1)

	      Members

		      format (RbdImageEncryptionFormat) -- Encryption format.

		      When	format	   is	 luks:	  The	 members    of
		       RbdEncryptionCreateOptionsLUKS.

		      When    format	 is    luks2:	 The	members	    of
		       RbdEncryptionCreateOptionsLUKS2.

       Object BlockdevOptionsRbd (Since: 2.9)

	      Members

		      pool (string) --	Ceph pool name.

		      namespace (string, optional) -- Rados namespace name in
		       the Ceph	pool.  (Since 5.0)

		      image (string) -- Image name in the Ceph	pool.

		      conf  (string,  optional) -- path to Ceph configuration
		       file.  Values in	the configuration file will  be	 over-
		       ridden by options specified via QAPI.

		      snapshot	(string, optional) -- Ceph snapshot name.

		      encrypt	(RbdEncryptionOptions,	optional) -- Image en-
		       cryption	options.  (Since 6.1)

		      user (string, optional) -- Ceph id name.

		      auth-client-required ([RbdAuthMode], optional)  --  Ac-
		       ceptable	 authentication	modes.	This maps to Ceph con-
		       figuration option "auth_client_required".  (Since 3.0)

		      key-secret (string, optional) --	ID of a	 QCryptoSecret
		       object  providing a key for cephx authentication.  This
		       maps to Ceph configuration option "key".	 (Since	3.0)

		      server ([InetSocketAddressBase],	optional)  --  Monitor
		       host  address  and  port.   This	maps to	the "mon_host"
		       Ceph option.

       Enum ReplicationMode (Since: 2.9)
	      Availability: CONFIG_REPLICATION

	      An enumeration of	replication modes.

	      Values

		      primary -- Primary mode,	the vm's state will be sent to
		       secondary QEMU.

		      secondary -- Secondary mode,  receive  the  vm's	 state
		       from primary QEMU.

       Object BlockdevOptionsReplication (Since: 2.9)
	      Availability: CONFIG_REPLICATION

	      Driver specific block device options for replication

	      Members

		      mode (ReplicationMode) -- the replication mode

		      top-id  (string,	 optional)  -- In secondary mode, node
		       name or device ID of the	root node who owns the	repli-
		       cation node chain.  Must	not be given in	primary	mode.

		      The members of BlockdevOptionsGenericFormat.

       Enum NFSTransport (Since: 2.9)
	      An enumeration of	NFS transport types

	      Values

		      inet -- TCP transport

       Object NFSServer	(Since:	2.9)
	      Captures the address of the socket

	      Members

		      type  (NFSTransport)  --	 transport  type  used for NFS
		       (only TCP supported)

		      host (string) --	host address for NFS server

       Object BlockdevOptionsNfs (Since: 2.9)
	      Driver specific block device option for NFS

	      Members

		      server (NFSServer) -- host address

		      path (string) --	path of	the image on the host

		      user (int, optional) -- UID value to use	 when  talking
		       to  the	server	(defaults  to 65534 on Windows and ge-
		       tuid() on unix)

		      group (int, optional) --	GID value to use when  talking
		       to  the	server	(defaults to 65534 on Windows and get-
		       gid() in	unix)

		      tcp-syn-count (int, optional) --	number of SYNs	during
		       the session establishment (defaults to libnfs default)

		      readahead-size  (int,  optional)	 --  set the readahead
		       size in bytes (defaults to libnfs default)

		      page-cache-size (int, optional) --  set	the  pagecache
		       size in bytes (defaults to libnfs default)

		      debug  (int,  optional) -- set the NFS debug level (max
		       2) (defaults to libnfs default)

       Object BlockdevOptionsCurlBase (Since: 2.9)
	      Driver specific block device options  shared  by	all  protocols
	      supported	by the curl backend.

	      Members

		      url (string) -- URL of the image	file

		      readahead  (int,	 optional)  --	Size of	the read-ahead
		       cache; must be a	multiple of 512	(defaults to 256 kB)

		      timeout (int, optional) -- Timeout for connections,  in
		       seconds (defaults to 5)

		      username	(string, optional) -- Username for authentica-
		       tion (defaults to none)

		      password-secret	(string,  optional)  --	ID of a	QCryp-
		       toSecret	object providing a password for	authentication
		       (defaults to no password)

		      proxy-username (string, optional) -- Username for proxy
		       authentication (defaults	to none)

		      proxy-password-secret (string, optional)	 --  ID	 of  a
		       QCryptoSecret object providing a	password for proxy au-
		       thentication (defaults to no password)

       Object BlockdevOptionsCurlHttp (Since: 2.9)
	      Driver  specific	block device options for HTTP connections over
	      the curl backend.	 URLs must start with "http://".

	      Members

		      cookie (string, optional) -- List of  cookies  to  set;
		       format  is  "name1=content1;  name2=content2;"  as  ex-
		       plained by CURLOPT_COOKIE(3).  Defaults to no cookies.

		      cookie-secret (string, optional)	-- ID of a  QCryptoSe-
		       cret  object providing the cookie data in a secure way.
		       See cookie for the format.  (since 2.10)

		      The members of BlockdevOptionsCurlBase.

       Object BlockdevOptionsCurlHttps (Since: 2.9)
	      Driver specific block device options for HTTPS connections  over
	      the curl backend.	 URLs must start with "https://".

	      Members

		      cookie  (string,	 optional)  -- List of cookies to set;
		       format  is  "name1=content1;  name2=content2;"  as  ex-
		       plained by CURLOPT_COOKIE(3).  Defaults to no cookies.

		      sslverify  (boolean, optional) -- Whether to verify the
		       SSL certificate's validity (defaults to true)

		      cookie-secret (string, optional)	-- ID of a  QCryptoSe-
		       cret  object providing the cookie data in a secure way.
		       See cookie for the format.  (since 2.10)

		      The members of BlockdevOptionsCurlBase.

       Object BlockdevOptionsCurlFtp (Since: 2.9)
	      Driver specific block device options for	FTP  connections  over
	      the curl backend.	 URLs must start with "ftp://".

	      Members

		      The members of BlockdevOptionsCurlBase.

       Object BlockdevOptionsCurlFtps (Since: 2.9)
	      Driver  specific	block device options for FTPS connections over
	      the curl backend.	 URLs must start with "ftps://".

	      Members

		      sslverify (boolean, optional) --	Whether	to verify  the
		       SSL certificate's validity (defaults to true)

		      The members of BlockdevOptionsCurlBase.

       Object BlockdevOptionsNbd (Since: 2.9)
	      Driver specific block device options for NBD.

	      Members

		      server (SocketAddress) -- NBD server address

		      export (string, optional) -- export name

		      tls-creds (string, optional) -- TLS credentials ID

		      tls-hostname  (string,  optional) -- TLS	hostname over-
		       ride for	certificate validation (Since 7.0)

		      x-dirty-bitmap (string, optional) -- A metadata context
		       name such as "qemu:dirty-bitmap:NAME" or	 "qemu:alloca-
		       tion-depth"  to	query  in  place  of  the  traditional
		       "base:allocation"       block	    status	  (see
		       NBD_OPT_LIST_META_CONTEXT in the	NBD protocol; and yes,
		       naming  this  option  x-context	would  have  made more
		       sense) (since 3.0)

		      reconnect-delay (int, optional)	--  On	an  unexpected
		       disconnect, the nbd client tries	to connect again until
		       succeeding or encountering a serious error.  During the
		       first  reconnect-delay seconds, all requests are	paused
		       and will	be rerun on  a	successful  reconnect.	 After
		       that time, any delayed requests and all future requests
		       before  a  successful  reconnect	will immediately fail.
		       Default 0 (Since	4.2)

		      open-timeout (int, optional) -- In seconds.   If	 zero,
		       the  nbd	 driver	 tries	the  connection	only once, and
		       fails to	open if	the connection	fails.	 If  non-zero,
		       the  nbd	 driver	 will repeat connection	attempts until
		       successful or until open-timeout	seconds	have  elapsed.
		       Default 0 (Since	7.0)

	      Features

		      unstable	-- Member x-dirty-bitmap is experimental.

       Object BlockdevOptionsRaw (Since: 2.9)
	      Driver specific block device options for the raw driver.

	      Members

		      offset  (int, optional) -- position where the block de-
		       vice starts

		      size (int, optional) -- the assumed size	of the device

		      The members of BlockdevOptionsGenericFormat.

       Object BlockdevOptionsThrottle (Since: 2.11)
	      Driver specific block device options for the throttle driver

	      Members

		      throttle-group (string)	--  the	 name  of  the	throt-
		       tle-group object	to use.	 It must already exist.

		      file (BlockdevRef) -- reference to or definition	of the
		       data source block device

       Object BlockdevOptionsCor (Since: 6.0)
	      Driver  specific	block device options for the copy-on-read dri-
	      ver.

	      Members

		      bottom (string, optional) -- The	name of	 a  non-filter
		       node (allocation-bearing	layer) that limits the COR op-
		       erations	 in  the backing chain (inclusive), so that no
		       data below this node will be copied by this filter.  If
		       option is absent, the limit is  not  applied,  so  that
		       data from all backing layers may	be copied.

		      The members of BlockdevOptionsGenericFormat.

       Enum OnCbwError (Since: 7.1)
	      An enumeration of	possible behaviors for copy-before-write oper-
	      ation failures.

	      Values

		      break-guest-write  --  report  the  error to the	guest.
		       This way, the guest will	not be able to overwrite areas
		       that cannot be backed up, so the	backup process remains
		       valid.

		      break-snapshot -- continue guest	write.	Doing so  will
		       make the	provided snapshot state	invalid	and any	backup
		       or export process based on it will finally fail.

       Object BlockdevOptionsCbw (Since: 6.2)
	      Driver  specific	block device options for the copy-before-write
	      driver, which does so called copy-before-write operations:  when
	      data  is	written	 to  the filter, the filter first reads	corre-
	      sponding blocks from its file child and copies  them  to	target
	      child.   After successfully copying, the write request is	propa-
	      gated to file child.  If copying fails, the original  write  re-
	      quest is failed too and no data is written to file child.

	      Members

		      target	(BlockdevRef)	--  The	 target	 for  copy-be-
		       fore-write operations.

		      bitmap (BlockDirtyBitmap, optional)  --	If  specified,
		       copy-before-write  filter will do copy-before-write op-
		       erations	only for dirty regions of the bitmap.	Bitmap
		       size  must  be equal to length of file and target child
		       of the filter.  Note also, that bitmap is used only  to
		       initialize  internal  bitmap of the process, so further
		       modifications (or removing) of specified	bitmap doesn't
		       influence the filter.  (Since 7.0)

		      on-cbw-error  (OnCbwError,  optional)  --  Behavior  on
		       failure	of  copy-before-write  operation.   Default is
		       break-guest-write.  (Since 7.1)

		      cbw-timeout (int, optional) --  Zero  means  no	limit.
		       Non-zero	 sets  the  timeout  in	 seconds  for copy-be-
		       fore-write operation.  When a timeout occurs,  the  re-
		       spective	copy-before-write operation will fail, and the
		       on-cbw-error  parameter will decide how this failure is
		       handled.	 Default 0.  (Since 7.1)

		      min-cluster-size	(int, optional)	 --  Minimum  size  of
		       blocks used by copy-before-write	operations.  Has to be
		       a power of 2.  No effect	if smaller than	the maximum of
		       the  target's  cluster  size  and  64  KiB.  Default 0.
		       (Since 9.2)

		      The members of BlockdevOptionsGenericFormat.

       Object BlockdevOptions (Since: 2.9)
	      Options for creating a block device.  Many options are available
	      for all block devices, independent of the	block driver:

	      Members

		      driver (BlockdevDriver) -- block	driver name

		      node-name (string, optional) -- the node	 name  of  the
		       new  node.  This	option is required on the top level of
		       blockdev-add.  Valid node names start  with  an	alpha-
		       betic character and may contain only alphanumeric char-
		       acters,	'-',  '.' and '_'.  Their maximum length is 31
		       characters.  (Since 2.0)

		      discard	(BlockdevDiscardOptions,  optional)  --	  dis-
		       card-related options (default: ignore)

		      cache (BlockdevCacheOptions, optional) -- cache-related
		       options

		      active  (boolean,  optional)  --	whether	the block node
		       should be activated (default: true).   Having  inactive
		       block  nodes  is	useful primarily for migration because
		       it allows opening an image on the destination while the
		       source is still holding locks for it.  (Since 10.0)

		      read-only (boolean, optional) --	whether	the block  de-
		       vice  should  be	read-only (default: false).  Note that
		       some block drivers support only read-only  access,  ei-
		       ther  generally	or in certain configurations.  In this
		       case, the default value does not	work  and  the	option
		       must be specified explicitly.

		      auto-read-only  (boolean,  optional)  --	 if  true  and
		       read-only is false, QEMU	may automatically  decide  not
		       to  open	 the  image  read-write	as requested, but fall
		       back to read-only instead (and switch between the modes
		       later), e.g. depending on whether  the  image  file  is
		       writable	 or  whether a writing user is attached	to the
		       node (default: false, since 3.1)

		      detect-zeroes  (BlockdevDetectZeroesOptions,  optional)
		       --  detect  and	optimize  zero writes (Since 2.1) (de-
		       fault: off)

		      force-share (boolean, optional) -- force	share all per-
		       mission	on  added  nodes.   Requires   read-only=true.
		       (Since 2.10)

		      When    driver	 is    blkdebug:    The	  members   of
		       BlockdevOptionsBlkdebug.

		      When   driver   is   blklogwrites:   The	  members   of
		       BlockdevOptionsBlklogwrites.

		      When    driver	 is    blkverify:   The	  members   of
		       BlockdevOptionsBlkverify.

		      When   driver   is   blkreplay:	  The	 members    of
		       BlockdevOptionsBlkreplay.

		      When	driver	  is	bochs:	  The	 members    of
		       BlockdevOptionsGenericFormat.

		      When    driver	 is    cloop:	 The	members	    of
		       BlockdevOptionsGenericFormat.

		      When    driver	 is    compress:    The	  members   of
		       BlockdevOptionsGenericFormat.

		      When  driver  is	 copy-before-write:  The  members   of
		       BlockdevOptionsCbw.

		      When   driver   is   copy-on-read:   The	  members   of
		       BlockdevOptionsCor.

		      When    driver	 is    dmg:	The	members	    of
		       BlockdevOptionsGenericFormat.

		      When	driver	   is	 file:	  The	 members    of
		       BlockdevOptionsFile.

		      When    driver	 is    ftp:	The	members	    of
		       BlockdevOptionsCurlFtp.

		      When	driver	   is	 ftps:	  The	 members    of
		       BlockdevOptionsCurlFtps.

		      When   driver	is    gluster:	  The	 members    of
		       BlockdevOptionsGluster.

		      When    driver	 is   host_cdrom:   The	  members   of
		       BlockdevOptionsFile.

		      When   driver   is   host_device:   The	 members    of
		       BlockdevOptionsFile.

		      When	driver	   is	 http:	  The	 members    of
		       BlockdevOptionsCurlHttp.

		      When    driver	 is    https:	 The	members	    of
		       BlockdevOptionsCurlHttps.

		      When    driver	 is    io_uring:    The	  members   of
		       BlockdevOptionsIoUring.

		      When    driver	 is    iscsi:	 The	members	    of
		       BlockdevOptionsIscsi.

		      When	driver	   is	 luks:	  The	 members    of
		       BlockdevOptionsLUKS.

		      When driver is nbd: The members of BlockdevOptionsNbd.

		      When driver is nfs: The members of BlockdevOptionsNfs.

		      When   driver   is    null-aio:	  The	 members    of
		       BlockdevOptionsNull.

		      When    driver	 is    null-co:	   The	  members   of
		       BlockdevOptionsNull.

		      When    driver	 is    nvme:	The	members	    of
		       BlockdevOptionsNVMe.

		      When   driver   is   nvme-io_uring:   The   members  of
		       BlockdevOptionsNvmeIoUring.

		      When   driver   is   parallels:	  The	 members    of
		       BlockdevOptionsGenericFormat.

		      When    driver	is   preallocate:   The	  members   of
		       BlockdevOptionsPreallocate.

		      When    driver	 is    qcow2:	 The	members	    of
		       BlockdevOptionsQcow2.

		      When	driver	   is	 qcow:	  The	 members    of
		       BlockdevOptionsQcow.

		      When    driver	 is    qed:	The	members	    of
		       BlockdevOptionsGenericCOWFormat.

		      When    driver	 is    quorum:	  The	 members    of
		       BlockdevOptionsQuorum.

		      When driver is raw: The members of BlockdevOptionsRaw.

		      When driver is rbd: The members of BlockdevOptionsRbd.

		      When   driver   is   replication:   The	 members    of
		       BlockdevOptionsReplication.

		      When   driver   is   snapshot-access:  The  members  of
		       BlockdevOptionsGenericFormat.

		      When driver is ssh: The members of BlockdevOptionsSsh.

		      When   driver   is    throttle:	  The	 members    of
		       BlockdevOptionsThrottle.

		      When	driver	   is	  vdi:	  The	 members    of
		       BlockdevOptionsGenericFormat.

		      When    driver	 is    vhdx:	The	members	    of
		       BlockdevOptionsGenericFormat.

		      When  driver  is	 virtio-blk-vfio-pci:  The  members of
		       BlockdevOptionsVirtioBlkVfioPci.

		      When driver is virtio-blk-vhost-user:  The  members  of
		       BlockdevOptionsVirtioBlkVhostUser.

		      When  driver  is	 virtio-blk-vhost-vdpa:	The members of
		       BlockdevOptionsVirtioBlkVhostVdpa.

		      When    driver	 is    vmdk:	The	members	    of
		       BlockdevOptionsGenericCOWFormat.

		      When	driver	   is	  vpc:	  The	 members    of
		       BlockdevOptionsGenericFormat.

		      When    driver	 is    vvfat:	 The	members	    of
		       BlockdevOptionsVVFAT.

       Alternate BlockdevRef (Since: 2.9)
	      Reference	to a block device.

	      Alternatives

		      definition (BlockdevOptions) -- defines a new block de-
		       vice inline

		      reference  (string) -- references the ID	of an existing
		       block device

       Alternate BlockdevRefOrNull (Since: 2.9)
	      Reference	to a block device.

	      Alternatives

		      definition (BlockdevOptions) -- defines a new block de-
		       vice inline

		      reference (string) -- references	the ID of an  existing
		       block  device.  An empty	string means that no block de-
		       vice should be referenced.  Deprecated;	use  null  in-
		       stead.

		      null  (null)  --	 No  block device should be referenced
		       (since 2.10)

       Command blockdev-add (Since: 2.9)
	      Creates a	new block device.

	      Arguments

		      The members of BlockdevOptions.

		 Example:

		     ->	{ "execute": "blockdev-add",
			  "arguments": {
			       "driver": "qcow2",
			       "node-name": "test1",
			       "file": {
				   "driver": "file",
				   "filename": "test.qcow2"
				}
			   }
			 }
		     <-	{ "return": {} }

		 Example:

		     ->	{ "execute": "blockdev-add",
			  "arguments": {
			       "driver": "qcow2",
			       "node-name": "node0",
			       "discard": "unmap",
			       "cache":	{
				  "direct": true
				},
				"file":	{
				  "driver": "file",
				  "filename": "/tmp/test.qcow2"
				},
				"backing": {
				   "driver": "raw",
				   "file": {
				      "driver":	"file",
				      "filename": "/dev/fdset/4"
				    }
				}
			    }
			  }

		     <-	{ "return": {} }

       Command blockdev-reopen (Since: 6.1)
	      Reopens one or more block	devices	using the  given  set  of  op-
	      tions.   Any  option  not	specified will be reset	to its default
	      value regardless of its previous status.	If an option cannot be
	      changed or a particular driver does not support  reopening  then
	      the  command  will return	an error.  All devices in the list are
	      reopened in one transaction, so if one of	them  fails  then  the
	      whole transaction	is cancelled.

	      The  command  receives  a	 list of block devices to reopen.  For
	      each  one	 of  them,  the	 top-level  node-name	option	 (from
	      BlockdevOptions)	must  be  specified  and is used to select the
	      block device to be reopened.  Other node-name  options  must  be
	      either  omitted  or  set	to the current name of the appropriate
	      node.  This command won't	change any node	name and  any  attempt
	      to do it will result in an error.

	      In  the  case of options that refer to child nodes, the behavior
	      of this command depends on the value:

		 1. A set of options (BlockdevOptions):	the child is  reopened
		    with the specified set of options.

		 2. A  reference  to  the current child: the child is reopened
		    using its existing set of options.

		 3. A reference	to a different node: the current child is  re-
		    placed with	the specified one.

		 4. null: the current child (if	any) is	detached.

	      Options  (1)  and	(2) are	supported in all cases.	 Option	(3) is
	      supported	for file and backing, and option (4) for backing only.

	      Unlike with blockdev-add,	the  backing  option  must  always  be
	      present  unless  the node	being reopened does not	have a backing
	      file and its image does not have a default backing file name  as
	      part of its metadata.

	      Arguments

		      options ([BlockdevOptions]) -- Not documented

       Command blockdev-del (Since: 2.9)
	      Deletes  a  block	device that has	been added using blockdev-add.
	      The command will fail if the node	is attached to a device	or  is
	      otherwise	being used.

	      Arguments

		      node-name (string) -- Name of the graph node to delete.

		 Example:

		     ->	{ "execute": "blockdev-add",
			  "arguments": {
			       "driver": "qcow2",
			       "node-name": "node0",
			       "file": {
				   "driver": "file",
				   "filename": "test.qcow2"
			       }
			  }
			}
		     <-	{ "return": {} }

		     ->	{ "execute": "blockdev-del",
			  "arguments": { "node-name": "node0" }
			}
		     <-	{ "return": {} }

       Command blockdev-set-active (Since: 10.0)
	      Activate	or  inactivate a block device.	Use this to manage the
	      handover of block	devices	on migration with qemu-storage-daemon.

	      Activating a node	automatically activates	all of its child nodes
	      first.  Inactivating a node automatically	inactivates any	of its
	      child nodes that are not in use by a still active	node.

	      Arguments

		      node-name (string, optional) -- Name of the graph  node
		       to  activate  or	inactivate.  By	default, all nodes are
		       affected	by the operation.

		      active (boolean)	-- true	if the nodes should be	active
		       when  the command returns success, false	if they	should
		       be inactive.

		 Example:

		     ->	{ "execute": "blockdev-set-active",
			  "arguments": {
			       "node-name": "node0",
			       "active": false
			  }
			}
		     <-	{ "return": {} }

       Object BlockdevCreateOptionsFile	(Since:	2.12)
	      Driver specific image creation options for file.

	      Members

		      filename	(string) -- Filename for the new image file

		      size (int) -- Size of the virtual disk in bytes

		      preallocation (PreallocMode, optional) -- Preallocation
		       mode for	the new	image (default:	off;  allowed  values:
		       off,  falloc (if	CONFIG_POSIX_FALLOCATE), full (if CON-
		       FIG_POSIX))

		      nocow (boolean, optional)  --  Turn  off	 copy-on-write
		       (valid only on btrfs; default: off)

		      extent-size-hint	(int, optional)	-- Extent size hint to
		       add  to the image file; 0 for not adding	an extent size
		       hint (default: 1	MB, since 5.1)

       Object BlockdevCreateOptionsGluster (Since: 2.12)
	      Driver specific image creation options for gluster.

	      Members

		      location	(BlockdevOptionsGluster) -- Where to store the
		       new image file

		      size (int) -- Size of the virtual disk in bytes

		      preallocation (PreallocMode, optional) -- Preallocation
		       mode for	the new	image (default:	off;  allowed  values:
		       off,  falloc  (if CONFIG_GLUSTERFS_FALLOCATE), full (if
		       CONFIG_GLUSTERFS_ZEROFILL))

       Object BlockdevCreateOptionsLUKS	(Since:	2.12)
	      Driver specific image creation options for LUKS.

	      Members

		      file (BlockdevRef, optional) -- Node to create the  im-
		       age format on, mandatory	except when 'preallocation' is
		       not requested

		      header  (BlockdevRef, optional) -- Block	device holding
		       a detached LUKS header.	(since 9.0)

		      size (int) -- Size of the virtual disk in bytes

		      preallocation (PreallocMode, optional) -- Preallocation
		       mode for	the new	image (since: 4.2) (default: off;  al-
		       lowed values: off, metadata, falloc, full)

		      The members of QCryptoBlockCreateOptionsLUKS.

       Object BlockdevCreateOptionsNfs (Since: 2.12)
	      Driver specific image creation options for NFS.

	      Members

		      location	(BlockdevOptionsNfs) --	Where to store the new
		       image file

		      size (int) -- Size of the virtual disk in bytes

       Object BlockdevCreateOptionsParallels (Since: 2.12)
	      Driver specific image creation options for parallels.

	      Members

		      file  (BlockdevRef)  -- Node to create the image	format
		       on

		      size (int) -- Size of the virtual disk in bytes

		      cluster-size (int, optional) -- Cluster size  in	 bytes
		       (default: 1 MB)

       Object BlockdevCreateOptionsQcow	(Since:	2.12)
	      Driver specific image creation options for qcow.

	      Members

		      file  (BlockdevRef)  -- Node to create the image	format
		       on

		      size (int) -- Size of the virtual disk in bytes

		      backing-file (string, optional) --  File	 name  of  the
		       backing file if a backing file should be	used

		      encrypt	(QCryptoBlockCreateOptions,  optional)	-- En-
		       cryption	options	if the image should be encrypted

       Enum BlockdevQcow2Version (Since: 2.12)

	      Values

		      v2 -- The original QCOW2	format as introduced  in  QEMU
		       0.10 (version 2)

		      v3  --  The extended QCOW2 format as introduced in QEMU
		       1.1 (version 3)

       Enum Qcow2CompressionType (Since: 5.1)
	      Compression type used in qcow2 image file

	      Values

		      zlib -- zlib compression, see <http://zlib.net/>

		      zstd	--     zstd	 compression,	   see	    <-
		       http://github.com/facebook/zstd>

       Object BlockdevCreateOptionsQcow2 (Since: 2.12)
	      Driver specific image creation options for qcow2.

	      Members

		      file  (BlockdevRef)  -- Node to create the image	format
		       on

		      data-file (BlockdevRef, optional) -- Node to use	as  an
		       external	data file in which all guest data is stored so
		       that  only  metadata  remains in	the qcow2 file (since:
		       4.0)

		      data-file-raw (boolean, optional) -- True if the	exter-
		       nal  data  file	must  stay  valid  as	a   standalone
		       (read-only) raw image without looking at	qcow2 metadata
		       (default: false;	since: 4.0)

		      extended-l2 (boolean, optional) -- True to make the im-
		       age  have  extended  L2	entries	(default: false; since
		       5.2)

		      size (int) -- Size of the virtual disk in bytes

		      version (BlockdevQcow2Version, optional)	-- Compatibil-
		       ity level (default: v3)

		      backing-file (string, optional) --  File	 name  of  the
		       backing file if a backing file should be	used

		      backing-fmt  (BlockdevDriver,  optional)	-- Name	of the
		       block driver to use for the backing file

		      encrypt (QCryptoBlockCreateOptions,  optional)  --  En-
		       cryption	options	if the image should be encrypted

		      cluster-size  (int,  optional) -- qcow2 cluster size in
		       bytes (default: 65536)

		      preallocation (PreallocMode, optional) -- Preallocation
		       mode for	the new	image (default:	off;  allowed  values:
		       off, falloc, full, metadata)

		      lazy-refcounts (boolean,	optional) -- True if refcounts
		       may be updated lazily (default: off)

		      refcount-bits  (int,  optional)	--  Width of reference
		       counts in bits (default:	16)

		      compression-type	 (Qcow2CompressionType,	 optional)  --
		       The  image  cluster  compression	method (default: zlib,
		       since 5.1)

       Object BlockdevCreateOptionsQed (Since: 2.12)
	      Driver specific image creation options for qed.

	      Members

		      file (BlockdevRef) -- Node to create the	 image	format
		       on

		      size (int) -- Size of the virtual disk in bytes

		      backing-file  (string,  optional)  --  File name	of the
		       backing file if a backing file should be	used

		      backing-fmt (BlockdevDriver, optional) -- Name  of  the
		       block driver to use for the backing file

		      cluster-size  (int,  optional) -- Cluster size in bytes
		       (default: 65536)

		      table-size (int,	optional)  --  L1/L2  table  size  (in
		       clusters)

       Object BlockdevCreateOptionsRbd (Since: 2.12)
	      Driver specific image creation options for rbd/Ceph.

	      Members

		      location	(BlockdevOptionsRbd) --	Where to store the new
		       image file.  This location cannot point to a snapshot.

		      size (int) -- Size of the virtual disk in bytes

		      cluster-size (int, optional) -- RBD object size

		      encrypt (RbdEncryptionCreateOptions, optional) -- Image
		       encryption options.  (Since 6.1)

       Enum BlockdevVmdkSubformat (Since: 4.0)
	      Subformat	options	for VMDK images

	      Values

		      monolithicSparse	-- Single file image with sparse clus-
		       ter allocation

		      monolithicFlat -- Single	flat data image	and a descrip-
		       tor file

		      twoGbMaxExtentSparse  --	 Data  is  split into 2GB (per
		       virtual LBA) sparse extent files, in addition to	a  de-
		       scriptor	file

		      twoGbMaxExtentFlat  -- Data is split into 2GB (per vir-
		       tual LBA) flat extent files, in addition	to a  descrip-
		       tor file

		      streamOptimized -- Single file image sparse cluster al-
		       location, optimized for streaming over network.

       Enum BlockdevVmdkAdapterType (Since: 4.0)
	      Adapter type info	for VMDK images

	      Values

		      ide -- Not documented

		      buslogic	-- Not documented

		      lsilogic	-- Not documented

		      legacyESX -- Not	documented

       Object BlockdevCreateOptionsVmdk	(Since:	4.0)
	      Driver specific image creation options for VMDK.

	      Members

		      file  (BlockdevRef)  --	Where  to  store the new image
		       file.  This refers to the  image	 file  for  monolithc-
		       Sparse  and  streamOptimized  format, or	the descriptor
		       file for	other formats.

		      size (int) -- Size of the virtual disk in bytes

		      extents ([BlockdevRef], optional) -- Where to store the
		       data extents.  Required for monolithcFlat,  twoGbMaxEx-
		       tentSparse  and	twoGbMaxExtentFlat formats.  For mono-
		       lithicFlat, only	one entry is required; for twoGbMaxEx-
		       tent* formats, the number of entries required is	calcu-
		       lated as	extent_number =	virtual_size / 2GB.  Providing
		       more extents than will be used is an error.

		      subformat (BlockdevVmdkSubformat, optional) -- The sub-
		       format of the VMDK image.  Default: "monolithicSparse".

		      backing-file (string, optional) -- The path of  backing
		       file.  Default: no backing file is used.

		      adapter-type (BlockdevVmdkAdapterType, optional)	-- The
		       adapter	type used to fill in the descriptor.  Default:
		       ide.

		      hwversion (string, optional) -- Hardware	version.   The
		       meaningful options are "4" or "6".  Default: "4".

		      toolsversion  (string,  optional) -- VMware guest tools
		       version.	 Default: "2147483647" (Since 6.2)

		      zeroed-grain (boolean, optional)	-- Whether  to	enable
		       zeroed-grain  feature  for sparse subformats.  Default:
		       false.

       Object BlockdevCreateOptionsSsh (Since: 2.12)
	      Driver specific image creation options for SSH.

	      Members

		      location	(BlockdevOptionsSsh) --	Where to store the new
		       image file

		      size (int) -- Size of the virtual disk in bytes

       Object BlockdevCreateOptionsVdi (Since: 2.12)
	      Driver specific image creation options for VDI.

	      Members

		      file (BlockdevRef) -- Node to create the	 image	format
		       on

		      size (int) -- Size of the virtual disk in bytes

		      preallocation (PreallocMode, optional) -- Preallocation
		       mode  for  the new image	(default: off; allowed values:
		       off, metadata)

       Enum BlockdevVhdxSubformat (Since: 2.12)

	      Values

		      dynamic -- Growing image	file

		      fixed --	Preallocated fixed-size	image file

       Object BlockdevCreateOptionsVhdx	(Since:	2.12)
	      Driver specific image creation options for vhdx.

	      Members

		      file (BlockdevRef) -- Node to create the	 image	format
		       on

		      size (int) -- Size of the virtual disk in bytes

		      log-size	 (int, optional) -- Log	size in	bytes, must be
		       a multiple of 1 MB (default: 1 MB)

		      block-size (int,	optional) -- Block size	in bytes, must
		       be a multiple of	1 MB and not larger than 256  MB  (de-
		       fault:  automatically  choose a block size depending on
		       the image size)

		      subformat  (BlockdevVhdxSubformat,  optional)  --  vhdx
		       subformat (default: dynamic)

		      block-state-zero	 (boolean,  optional)  -- Force	use of
		       payload blocks of type 'ZERO'.  Non-standard,  but  de-
		       fault.	Do  not	set to 'off' when using	'qemu-img con-
		       vert' with subformat=dynamic.

       Enum BlockdevVpcSubformat (Since: 2.12)

	      Values

		      dynamic -- Growing image	file

		      fixed --	Preallocated fixed-size	image file

       Object BlockdevCreateOptionsVpc (Since: 2.12)
	      Driver specific image creation options for vpc (VHD).

	      Members

		      file (BlockdevRef) -- Node to create the	 image	format
		       on

		      size (int) -- Size of the virtual disk in bytes

		      subformat (BlockdevVpcSubformat,	optional) -- vhdx sub-
		       format (default:	dynamic)

		      force-size  (boolean, optional) -- Force	use of the ex-
		       act byte	size instead of	rounding to the	next size that
		       can be represented in CHS geometry (default: false)

       Object BlockdevCreateOptions (Since: 2.12)
	      Options for creating an image format on a	given node.

	      Members

		      driver (BlockdevDriver) -- block	driver to  create  the
		       image format

		      When	driver	   is	 file:	  The	 members    of
		       BlockdevCreateOptionsFile.

		      When   driver	is    gluster:	  The	 members    of
		       BlockdevCreateOptionsGluster.

		      When	driver	   is	 luks:	  The	 members    of
		       BlockdevCreateOptionsLUKS.

		      When    driver	 is    nfs:	The	members	    of
		       BlockdevCreateOptionsNfs.

		      When    driver	 is    parallels:   The	  members   of
		       BlockdevCreateOptionsParallels.

		      When    driver	 is    qcow:	The	members	    of
		       BlockdevCreateOptionsQcow.

		      When	driver	  is	qcow2:	  The	 members    of
		       BlockdevCreateOptionsQcow2.

		      When    driver	 is    qed:	The	members	    of
		       BlockdevCreateOptionsQed.

		      When	driver	   is	  rbd:	  The	 members    of
		       BlockdevCreateOptionsRbd.

		      When    driver	 is    ssh:	The	members	    of
		       BlockdevCreateOptionsSsh.

		      When	driver	   is	  vdi:	  The	 members    of
		       BlockdevCreateOptionsVdi.

		      When    driver	 is    vhdx:	The	members	    of
		       BlockdevCreateOptionsVhdx.

		      When	driver	   is	 vmdk:	  The	 members    of
		       BlockdevCreateOptionsVmdk.

		      When    driver	 is    vpc:	The	members	    of
		       BlockdevCreateOptionsVpc.

       Command blockdev-create (Since: 3.0)
	      Starts a job to create an	image format on	a given	node.  The job
	      is  automatically	 finalized,  but  a  manual job-dismiss	is re-
	      quired.

	      Arguments

		      job-id (string) -- Identifier  for  the	newly  created
		       job.

		      options	(BlockdevCreateOptions)	-- Options for the im-
		       age creation.

       Object BlockdevAmendOptionsLUKS (Since: 5.1)
	      Driver specific image amend options for LUKS.

	      Members

		      The members of QCryptoBlockAmendOptionsLUKS.

       Object BlockdevAmendOptionsQcow2	(Since:	5.1)
	      Driver specific image amend options for qcow2.   For  now,  only
	      encryption options can be	amended

	      Members

		      encrypt (QCryptoBlockAmendOptions, optional) -- Encryp-
		       tion options to be amended

       Object BlockdevAmendOptions (Since: 5.1)
	      Options for amending an image format

	      Members

		      driver  (BlockdevDriver)	-- Block driver	of the node to
		       amend.

		      When    driver	 is    luks:	The	members	    of
		       BlockdevAmendOptionsLUKS.

		      When	driver	  is	qcow2:	  The	 members    of
		       BlockdevAmendOptionsQcow2.

       Command x-blockdev-amend	(Since:	5.1)
	      This command is unstable/experimental.

	      Starts a job to amend format specific  options  of  an  existing
	      open  block  device.   The job is	automatically finalized, but a
	      manual job-dismiss is required.

	      Arguments

		      job-id (string) -- Identifier  for  the	newly  created
		       job.

		      node-name (string) -- Name of the block node to work on

		      options	(BlockdevAmendOptions) -- Options (driver spe-
		       cific)

		      force (boolean, optional) -- Allow  unsafe  operations,
		       format  specific.   For	luks  that allows erase	of the
		       last active keyslot (permanent loss of data),  and  re-
		       placement  of  an active	keyslot	(possible loss of data
		       if IO error happens)

	      Features

		      unstable	-- This	command	is experimental.

       Enum BlockErrorAction (Since: 2.1)
	      An enumeration of	action that has	been taken when	a DISK I/O oc-
	      curs

	      Values

		      ignore -- error has been	ignored

		      report -- error has been	reported to the	device

		      stop -- error caused VM to be stopped

       Event BLOCK_IMAGE_CORRUPTED (Since: 1.7)
	      Emitted when a disk image	is being marked	 corrupt.   The	 image
	      can  be  identified  by  its  device or node name.  The 'device'
	      field is always present for compatibility	reasons, but it	can be
	      empty ("") if the	image does not have a device name associated.

	      Members

		      device (string) -- device name.	This is	always present
		       for compatibility reasons, but it can be	empty ("")  if
		       the image does not have a device	name associated.

		      node-name (string, optional) -- node name (Since: 2.4)

		      msg  (string) --	informative message for	human consump-
		       tion, such as the kind of  corruption  being  detected.
		       It should not be	parsed by machine as it	is not guaran-
		       teed to be stable

		      offset  (int,  optional)	 -- if the corruption resulted
		       from an image access, this is the host's	access	offset
		       into the	image

		      size (int, optional) -- if the corruption resulted from
		       an image	access,	this is	the access size

		      fatal  (boolean)	-- if set, the image is	marked corrupt
		       and therefore unusable after this event and must	be re-
		       paired (Since 2.2; before, every	 BLOCK_IMAGE_CORRUPTED
		       event was fatal)

	      NOTE:
		 If  action is "stop", a STOP event will eventually follow the
		 BLOCK_IO_ERROR	event.

		 Example:

		     <-	{ "event": "BLOCK_IMAGE_CORRUPTED",
			  "data": { "device": "", "node-name": "drive",	"fatal": false,
				    "msg": "L2 table offset 0x2a2a2a00 unaligned (L1 index: 0)"	},
			  "timestamp": { "seconds": 1648243240,	"microseconds":	906060 } }

       Event BLOCK_IO_ERROR (Since: 0.13)
	      Emitted when a disk I/O error occurs

	      Members

		      qom-path	(string) -- path to the	device object  in  the
		       QOM tree	(since 9.2)

		      device (string) -- device name.	This is	always present
		       for  compatibility reasons, but it can be empty ("") if
		       the image does not have a device	name associated.

		      node-name (string, optional) -- node name.   Note  that
		       errors  may  be	reported for the root node that	is di-
		       rectly attached to a guest device rather	than  for  the
		       node  where  the	 error occurred.  The node name	is not
		       present if the drive is empty.  (Since: 2.8)

		      operation (IoOperationType) -- I/O operation

		      action (BlockErrorAction) -- action that	has been taken

		      nospace (boolean, optional) -- true if  I/O  error  was
		       caused  due  to a no-space condition.  This key is only
		       present if query-block's	io-status is  present,	please
		       see  query-block	 documentation	for  more  information
		       (since: 2.2)

		      reason (string) -- human	readable string	describing the
		       error cause.  (This field is a debugging	 aid  for  hu-
		       mans,  it should	not be parsed by applications) (since:
		       2.2)

	      NOTE:
		 If action is "stop", a	STOP event will	eventually follow  the
		 BLOCK_IO_ERROR	event.

	      NOTE:
		 This event is rate-limited.

		 Example:

		     <-	{ "event": "BLOCK_IO_ERROR",
			  "data": { "qom-path":	"/machine/unattached/device[0]",
				    "device": "ide0-hd1",
				    "node-name": "#block212",
				    "operation": "write",
				    "action": "stop",
				    "reason": "No space	left on	device"	},
			  "timestamp": { "seconds": 1265044230,	"microseconds":	450486 } }

       Event BLOCK_JOB_COMPLETED (Since: 1.1)
	      Emitted when a block job has completed

	      Members

		      type (JobType) -- job type

		      device  (string)	-- The job identifier.	Originally the
		       device name but other values are	allowed	since QEMU 2.7

		      len (int) -- maximum progress value

		      offset (int) -- current	progress  value.   On  success
		       this is equal to	len.  On failure this is less than len

		      speed (int) -- rate limit, bytes	per second

		      error   (string,	 optional)  --	error  message.	  Only
		       present on failure.  This field contains	a  human-read-
		       able  error message.  There are no semantics other than
		       that streaming has failed and clients should not	try to
		       interpret the error string

		 Example:

		     <-	{ "event": "BLOCK_JOB_COMPLETED",
			  "data": { "type": "stream", "device":	"virtio-disk0",
				    "len": 10737418240,	"offset": 10737418240,
				    "speed": 0 },
			  "timestamp": { "seconds": 1267061043,	"microseconds":	959568 } }

       Event BLOCK_JOB_CANCELLED (Since: 1.1)
	      Emitted when a block job has been	cancelled

	      Members

		      type (JobType) -- job type

		      device (string) -- The job identifier.  Originally  the
		       device name but other values are	allowed	since QEMU 2.7

		      len (int) -- maximum progress value

		      offset  (int)  --  current  progress value.  On success
		       this is equal to	len.  On failure this is less than len

		      speed (int) -- rate limit, bytes	per second

		 Example:

		     <-	{ "event": "BLOCK_JOB_CANCELLED",
			  "data": { "type": "stream", "device":	"virtio-disk0",
				    "len": 10737418240,	"offset": 134217728,
				    "speed": 0 },
			  "timestamp": { "seconds": 1267061043,	"microseconds":	959568 } }

       Event BLOCK_JOB_ERROR (Since: 1.3)
	      Emitted when a block job encounters an error

	      Members

		      device (string) -- The job identifier.  Originally  the
		       device name but other values are	allowed	since QEMU 2.7

		      operation (IoOperationType) -- I/O operation

		      action (BlockErrorAction) -- action that	has been taken

		 Example:

		     <-	{ "event": "BLOCK_JOB_ERROR",
			  "data": { "device": "ide0-hd1",
				    "operation": "write",
				    "action": "stop" },
			  "timestamp": { "seconds": 1265044230,	"microseconds":	450486 } }

       Event BLOCK_JOB_READY (Since: 1.3)
	      Emitted when a block job is ready	to complete

	      Members

		      type (JobType) -- job type

		      device  (string)	-- The job identifier.	Originally the
		       device name but other values are	allowed	since QEMU 2.7

		      len (int) -- maximum progress value

		      offset (int) -- current	progress  value.   On  success
		       this is equal to	len.  On failure this is less than len

		      speed (int) -- rate limit, bytes	per second

	      NOTE:
		 The   "ready  to  complete"  status  is  always  reset	 by  a
		 BLOCK_JOB_ERROR event.

		 Example:

		     <-	{ "event": "BLOCK_JOB_READY",
			  "data": { "device": "drive0",	"type":	"mirror", "speed": 0,
				    "len": 2097152, "offset": 2097152 },
			  "timestamp": { "seconds": 1265044230,	"microseconds":	450486 } }

       Event BLOCK_JOB_PENDING (Since: 2.12)
	      Emitted when a block job is awaiting explicit  authorization  to
	      finalize graph changes via job-finalize.	If this	job is part of
	      a	transaction, it	will not emit this event until the transaction
	      has converged first.

	      Members

		      type (JobType) -- job type

		      id (string) -- The job identifier.

		 Example:

		     <-	{ "event": "BLOCK_JOB_PENDING",
			  "data": { "type": "mirror", "id": "backup_1" },
			  "timestamp": { "seconds": 1265044230,	"microseconds":	450486 } }

       Enum PreallocMode (Since: 2.2)
	      Preallocation mode of QEMU image file

	      Values

		      off -- no preallocation

		      metadata	-- preallocate only for	metadata

		      falloc  --  like	 full  preallocation but allocate disk
		       space by	posix_fallocate() rather than writing data.

		      full -- preallocate all data by writing it to  the  de-
		       vice  to	 ensure	 disk space is really available.  This
		       data may	or may not be zero,  depending	on  the	 image
		       format  and  storage.   full preallocation also sets up
		       metadata	correctly.

       Event BLOCK_WRITE_THRESHOLD (Since: 2.3)
	      Emitted when writes on block device reaches or exceeds the  con-
	      figured  write  threshold.   For	thin-provisioned devices, this
	      means the	device should be extended to avoid  pausing  for  disk
	      exhaustion.  The event is	one shot.  Once	triggered, it needs to
	      be re-registered with another block-set-write-threshold command.

	      Members

		      node-name  (string)  --	graph  node  name on which the
		       threshold was exceeded.

		      amount-exceeded (int) --	amount of data which  exceeded
		       the threshold, in bytes.

		      write-threshold	(int) -- last configured threshold, in
		       bytes.

       Command block-set-write-threshold (Since: 2.3)
	      Change the write threshold for a block drive.  An	event will  be
	      delivered	 if a write to this block drive	crosses	the configured
	      threshold.  The threshold	is an offset, thus must	 be  non-nega-
	      tive.   Default is no write threshold.  Setting the threshold to
	      zero disables it.

	      This is useful to	transparently resize  thin-provisioned	drives
	      without the guest	OS noticing.

	      Arguments

		      node-name  (string)  --	graph  node  name on which the
		       threshold must be set.

		      write-threshold (int) --	configured threshold  for  the
		       block device, bytes.  Use 0 to disable the threshold.

		 Example:

		     ->	{ "execute": "block-set-write-threshold",
			  "arguments": { "node-name": "mydev",
					 "write-threshold": 17179869184	} }
		     <-	{ "return": {} }

       Command x-blockdev-change (Since: 2.7)
	      This command is unstable/experimental.

	      Dynamically reconfigure the block	driver state graph.

	      Currently	 only supports adding and deleting quorum children.  A
	      child will be added at the end of	the  list  of  children.   Its
	      contents	must be	consistent with	the other childrens' contents.
	      Deleting a child that is not last	in the	list  of  children  is
	      problematic, because it "renumbers" the children following it.

	      Arguments

		      parent (string) -- the id or name of the	parent node.

		      child  (string,	optional) -- the name of a child to be
		       deleted.	 Mutually exclusive with node.

		      node (string, optional) -- the name of the node	to  be
		       added.  Mutually	exclusive with child.

	      Features

		      unstable	-- This	command	is experimental.

		 Example: Add a	new node to a quorum

		      -> { "execute": "blockdev-add",
			   "arguments":	{
			       "driver": "raw",
			       "node-name": "new_node",
			       "file": { "driver": "file",
					 "filename": "test.raw"	} } }
		      <- { "return": {}	}
		      -> { "execute": "x-blockdev-change",
			   "arguments":	{ "parent": "disk1",
					  "node": "new_node" } }
		      <- { "return": {}	}

		 Example: Delete a quorum's node

		      -> { "execute": "x-blockdev-change",
			   "arguments":	{ "parent": "disk1",
					  "child": "children.1"	} }
		      <- { "return": {}	}

       Command x-blockdev-set-iothread (Since: 2.12)
	      This command is unstable/experimental.

	      Move  node  and  its children into the iothread.	If iothread is
	      null then	move node and its children into	the main loop.

	      The node must not	be attached to a BlockBackend.

	      Arguments

		      node-name (string) -- the name of the block driver node

		      iothread	(StrOrNull) -- the name	of the IOThread	object
		       or null for the main loop

		      force (boolean, optional) -- true if the	node  and  its
		       children	should be moved	when a BlockBackend is already
		       attached

	      Features

		      unstable	 --  This command is experimental and intended
		       for test	cases that need	control	over IOThreads only.

		 Example: Move a node into an IOThread

		      -> { "execute": "x-blockdev-set-iothread",
			   "arguments":	{ "node-name": "disk1",
					  "iothread": "iothread0" } }
		      <- { "return": {}	}

		 Example: Move a node into the main loop

		      -> { "execute": "x-blockdev-set-iothread",
			   "arguments":	{ "node-name": "disk1",
					  "iothread": null } }
		      <- { "return": {}	}

       Enum QuorumOpType (Since: 2.6)
	      An enumeration of	the quorum operation types

	      Values

		      read -- read operation

		      write --	write operation

		      flush --	flush operation

       Event QUORUM_FAILURE (Since: 2.0)
	      Emitted by the Quorum block driver if it fails  to  establish  a
	      quorum

	      Members

		      reference  (string) -- device name if defined else node
		       name

		      sector-num (int)	-- number of the first sector  of  the
		       failed read operation

		      sectors-count  (int)  --	 failed	 read operation	sector
		       count

	      NOTE:
		 This event is rate-limited.

		 Example:

		     <-	{ "event": "QUORUM_FAILURE",
			  "data": { "reference": "usr1", "sector-num": 345435, "sectors-count":	5 },
			  "timestamp": { "seconds": 1344522075,	"microseconds":	745528 } }

       Event QUORUM_REPORT_BAD (Since: 2.0)
	      Emitted to report	a corruption of	a Quorum file

	      Members

		      type (QuorumOpType) --  quorum  operation  type	(Since
		       2.6)

		      error   (string,	 optional)  --	error  message.	  Only
		       present on failure.  This field contains	a  human-read-
		       able  error message.  There are no semantics other than
		       that the	block layer  reported  an  error  and  clients
		       should not try to interpret the error string.

		      node-name  (string) -- the graph	node name of the block
		       driver state

		      sector-num (int)	-- number of the first sector  of  the
		       failed read operation

		      sectors-count  (int)  --	 failed	 read operation	sector
		       count

	      NOTE:
		 This event is rate-limited.

		 Example: Read operation

		      <- { "event": "QUORUM_REPORT_BAD",
			   "data": { "node-name": "node0", "sector-num": 345435, "sectors-count": 5,
				     "type": "read" },
			   "timestamp":	{ "seconds": 1344522075, "microseconds": 745528	} }

		 Example: Flush	operation

		      <- { "event": "QUORUM_REPORT_BAD",
			   "data": { "node-name": "node0", "sector-num": 0, "sectors-count": 2097120,
				     "type": "flush", "error": "Broken pipe" },
			   "timestamp":	{ "seconds": 1456406829, "microseconds": 291763	} }

       Object BlockdevSnapshotInternal (Since: 1.7)

	      Members

		      device (string) -- the device name or  node-name	 of  a
		       root node to generate the snapshot from

		      name  (string)  -- the name of the internal snapshot to
		       be created

       Command blockdev-snapshot-internal-sync (Since: 1.7)
	      Synchronously take an internal snapshot of a block device,  when
	      the  format  of  the  image used supports	it.  If	the name is an
	      empty string, or a snapshot with name already exists, the	opera-
	      tion will	fail.

	      Arguments

		      The members of BlockdevSnapshotInternal.

	      Errors

		      If device is not	a valid	block device, GenericError

		      If any snapshot matching	name exists, or	name is	empty,
		       GenericError

		      If the format of	the image used does  not  support  it,
		       GenericError

	      NOTE:
		 Only  some image formats such as qcow2	and rbd	support	inter-
		 nal snapshots.

		 Example:

		     ->	{ "execute": "blockdev-snapshot-internal-sync",
			  "arguments": { "device": "ide-hd0",
					 "name": "snapshot0" }
			}
		     <-	{ "return": {} }

       Command blockdev-snapshot-delete-internal-sync (Since: 1.7)
	      Synchronously delete an internal snapshot	 of  a	block  device,
	      when  the	 format	of the image used support it.  The snapshot is
	      identified by name or id or both.	 One of	the name or id is  re-
	      quired.	Return SnapshotInfo for	the successfully deleted snap-
	      shot.

	      Arguments

		      device (string) -- the device name or  node-name	 of  a
		       root node to delete the snapshot	from

		      id  (string, optional) -- optional the snapshot's ID to
		       be deleted

		      name (string, optional) -- optional the snapshot's name
		       to be deleted

	      Return SnapshotInfo

	      Errors

		      If device is not	a valid	block device, GenericError

		      If snapshot not found, GenericError

		      If the format of	the image used does  not  support  it,
		       GenericError

		      If id and name are both not specified, GenericError

		 Example:

		     ->	{ "execute": "blockdev-snapshot-delete-internal-sync",
			  "arguments": { "device": "ide-hd0",
					 "name": "snapshot0" }
			}
		     <-	{ "return": {
					"id": "1",
					"name":	"snapshot0",
					"vm-state-size": 0,
					"date-sec": 1000012,
					"date-nsec": 10,
					"vm-clock-sec":	100,
					"vm-clock-nsec": 20,
					"icount": 220414
			  }
			}

       Object DummyBlockCoreForceArrays	(Since:	8.0)
	      Not  used	 by  QMP; hack to let us use BlockGraphInfoList	inter-
	      nally

	      Members

		      unused-block-graph-info ([BlockGraphInfo]) -- Not docu-
		       mented

   Block device	exports
       Object NbdServerOptionsBase

	      Members

		      handshake-max-seconds (int, optional) --	Time limit, in
		       seconds,	at which a client that has not	completed  the
		       negotiation handshake will be disconnected, or 0	for no
		       limit (since 10.0; default: 10).

		      tls-creds  (string,  optional) -- ID of the TLS creden-
		       tials object (since 2.6).

		      tls-authz (string, optional) -- ID of the QAuthZ	autho-
		       rization	object used to validate	the client's x509 dis-
		       tinguished name.	 This object is	is  only  resolved  at
		       time of use, so can be deleted and recreated on the fly
		       while  the  NBD	server is active.  If missing, it will
		       default to denying access (since	4.0).

		      max-connections (int, optional) -- The  maximum	number
		       of  connections to allow	at the same time, 0 for	unlim-
		       ited.  Setting this to 1	also stops the server from ad-
		       vertising multiple client support (since	5.2;  default:
		       100).

       Object NbdServerOptions
	      Keep  this type consistent with the NbdServerOptionsLegacy type.
	      The only intended	difference is using SocketAddress  instead  of
	      SocketAddressLegacy.

	      Members

		      addr  (SocketAddress)  --  Address  on  which to	listen
		       (since 4.2).

		      The members of NbdServerOptionsBase.

       Object NbdServerOptionsLegacy
	      Keep this	type consistent	with the NbdServerOptions  type.   The
	      only intended difference is using	SocketAddressLegacy instead of
	      SocketAddress.

	      Members

		      addr  (SocketAddressLegacy) -- Address on which to lis-
		       ten (since 1.3).

		      The members of NbdServerOptionsBase.

       Command nbd-server-start	(Since:	1.3)
	      Start an NBD server listening on the given host and port.	 Block
	      devices can then be  exported  using  nbd-server-add.   The  NBD
	      server  will present them	as named exports; for example, another
	      QEMU instance could  refer  to  them  as	"nbd:HOST:PORT:export-
	      name=NAME".

	      Arguments

		      The members of NbdServerOptionsLegacy.

	      Errors

		      if the server is	already	running

       Object BlockExportOptionsNbdBase	(Since:	5.0)
	      An   NBD	 block	 export	  (common   options   shared   between
	      nbd-server-add and the NBD branch	of block-export-add).

	      Members

		      name (string, optional) -- Export  name.	  If  unspeci-
		       fied,  the device parameter is used as the export name.
		       (Since 2.12)

		      description (string, optional) -- Free-form description
		       of the export, up to 4096 bytes.	 (Since	5.0)

       Object BlockExportOptionsNbd (Since: 5.2)
	      An NBD block export (distinct options used in the	NBD branch  of
	      block-export-add).

	      Members

		      bitmaps ([BlockDirtyBitmapOrStr], optional) -- Also ex-
		       port each of the	named dirty bitmaps reachable from de-
		       vice,  so  the NBD client can use NBD_OPT_SET_META_CON-
		       TEXT	with	 the	 metadata     context	  name
		       "qemu:dirty-bitmap:BITMAP"   to	inspect	 each  bitmap.
		       Since 7.1 bitmap	may be specified by node/name pair.

		      allocation-depth	(boolean, optional) -- Also export the
		       allocation depth	map for	device,	so the NBD client  can
		       use  NBD_OPT_SET_META_CONTEXT with the metadata context
		       name "qemu:allocation-depth" to inspect allocation  de-
		       tails.  (since 5.2)

		      The members of BlockExportOptionsNbdBase.

       Object BlockExportOptionsVhostUserBlk (Since: 5.2)
	      A	vhost-user-blk block export.

	      Members

		      addr  (SocketAddress) --	The vhost-user socket on which
		       to listen.  Both	'unix' and  'fd'  SocketAddress	 types
		       are supported.  Passed fds must be UNIX domain sockets.

		      logical-block-size  (int,  optional)  --	 Logical block
		       size in bytes.  Defaults	to 512 bytes.

		      num-queues  (int,  optional)  --	 Number	  of   request
		       virtqueues.  Must be greater than 0.  Defaults to 1.

       Enum FuseExportAllowOther (Since: 6.1)
	      Possible allow_other modes for FUSE exports.

	      Values

		      off -- Do not pass allow_other as a mount option.

		      on -- Pass allow_other as a mount option.

		      auto  --	 Try  mounting	with allow_other first,	and if
		       that fails, retry without allow_other.

       Object BlockExportOptionsFuse (Since: 6.0)
	      Availability: CONFIG_FUSE

	      Options for exporting a block graph node on some	(file)	mount-
	      point as a raw image.

	      Members

		      mountpoint  (string)  --	 Path  on  which to export the
		       block device via	FUSE.  This must point to an  existing
		       regular file.

		      growable	 (boolean,  optional) -- Whether writes	beyond
		       the EOF should grow the block node  accordingly.	  (de-
		       fault: false)

		      allow-other (FuseExportAllowOther, optional) -- If this
		       is  off,	only QEMU's user is allowed access to this ex-
		       port.  That cannot be changed even with chmod or	chown.
		       Enabling	this option will allow other users  access  to
		       the  export  with  the FUSE mount option	"allow_other".
		       Note that using allow_other as a	non-root user requires
		       user_allow_other	to be enabled in the global  fuse.conf
		       configuration  file.   In  auto mode (the default), the
		       FUSE export driver will first attempt to	mount the  ex-
		       port  with  allow_other,	 and  if that fails, try again
		       without.	 (since	6.1; default: auto)

       Object BlockExportOptionsVduseBlk (Since: 7.1)
	      A	vduse-blk block	export.

	      Members

		      name (string) --	the name  of  VDUSE  device  (must  be
		       unique across the host).

		      num-queues (int,	optional) -- the number	of virtqueues.
		       Defaults	to 1.

		      queue-size  (int,  optional)  --	the size of virtqueue.
		       Defaults	to 256.

		      logical-block-size (int,	 optional)  --	Logical	 block
		       size  in	 bytes.	  Range	 [512,	PAGE_SIZE] and must be
		       power of	2.  Defaults to	512 bytes.

		      serial (string, optional) -- the	serial number of  vir-
		       tio block device.  Defaults to empty string.

       Object NbdServerAddOptions (Since: 5.0)
	      An NBD block export, per legacy nbd-server-add command.

	      Members

		      device  (string)	-- The device name or node name	of the
		       node to be exported

		      writable	(boolean, optional) -- Whether clients	should
		       be  able	 to write to the device	via the	NBD connection
		       (default	false).

		      bitmap (string, optional) -- Also export	a single dirty
		       bitmap reachable	from device, so	the NBD	client can use
		       NBD_OPT_SET_META_CONTEXT	with the metadata context name
		       "qemu:dirty-bitmap:BITMAP" to inspect the bitmap	(since
		       4.0).

		      The members of BlockExportOptionsNbdBase.

       Command nbd-server-add (Since: 1.3)
	      This command is deprecated.

	      Export a block node to QEMU's embedded NBD server.

	      The export name will be used as the id for the  resulting	 block
	      export.

	      Arguments

		      The members of NbdServerAddOptions.

	      Features

		      deprecated   --	 This	command	 is  deprecated.   Use
		       block-export-add	instead.

	      Errors

		      if the server is	not running

		      if an export with the same name already exists

       Enum BlockExportRemoveMode (Since: 2.12)
	      Mode for removing	a block	export.

	      Values

		      safe -- Remove export if	there are no existing  connec-
		       tions, fail otherwise.

		      hard -- Drop all	connections immediately	and remove ex-
		       port.

       Command nbd-server-remove (Since: 2.12)
	      This command is deprecated.

	      Remove NBD export	by name.

	      Arguments

		      name (string) --	Block export id.

		      mode  (BlockExportRemoveMode, optional) -- Mode of com-
		       mand operation.	See BlockExportRemoveMode description.
		       Default is 'safe'.

	      Features

		      deprecated  --  This  command   is   deprecated.	   Use
		       block-export-del	instead.

	      Errors

		      if the server is	not running

		      if export is not	found

		      if mode is 'safe' and there are existing	connections

       Command nbd-server-stop (Since: 1.3)
	      Stop QEMU's embedded NBD server, and unregister all devices pre-
	      viously added via	nbd-server-add.

       Enum BlockExportType (Since: 4.2)
	      An enumeration of	block export types

	      Values

		      nbd -- NBD export

		      vhost-user-blk -- vhost-user-blk	export (since 5.2)

		      fuse -- FUSE export (since: 6.0)

		      vduse-blk -- vduse-blk export (since 7.1)

       Object BlockExportOptions (Since: 4.2)
	      Describes	 a  block  export,  i.e. how single node should	be ex-
	      ported on	an external interface.

	      Members

		      type (BlockExportType) -- Block export type

		      id (string) -- A	unique identifier for the block	export
		       (across all export types)

		      node-name (string) -- The node name of the  block  node
		       to be exported (since: 5.2)

		      writable	 (boolean, optional) --	True if	clients	should
		       be able to write	to the export (default false)

		      writethrough (boolean, optional)	-- If true, caches are
		       flushed after every write request to the	export	before
		       completion is signalled.	 (since: 5.2; default: false)

		      iothread	(string, optional) -- The name of the iothread
		       object  where  the  export will run.  The default is to
		       use the thread  currently  associated  with  the	 block
		       node.  (since: 5.2)

		      fixed-iothread (boolean,	optional) -- True prevents the
		       block node from being moved to another thread while the
		       export  is  active.  If true and	iothread is given, ex-
		       port creation fails if the block	node cannot  be	 moved
		       to the iothread.	 The default is	false.	(since:	5.2)

		      allow-inactive  (boolean, optional) -- If true, the ex-
		       port allows the exported	node to	be inactive.  If it is
		       created for an inactive block node,  the	 node  remains
		       inactive.   If  the export type doesn't support running
		       on an inactive node, an error is	returned.   If	false,
		       inactive	block nodes are	automatically activated	before
		       creating	the export and trying to inactivate them later
		       fails.  (since: 10.0; default: false)

		      When type is nbd: The members of	BlockExportOptionsNbd.

		      When   type   is	  vhost-user-blk:   The	  members   of
		       BlockExportOptionsVhostUserBlk.

		      When    type    is     fuse:	The	members	    of
		       BlockExportOptionsFuse.

		      When    type    is    vduse-blk:	   The	  members   of
		       BlockExportOptionsVduseBlk.

       Command block-export-add	(Since:	5.2)
	      Creates a	new block export.

	      Arguments

		      The members of BlockExportOptions.

       Command block-export-del	(Since:	5.2)
	      Request to remove	a block	export.	 This drops the	user's	refer-
	      ence  to	the export, but	the export may still stay around after
	      this command returns until the shutdown of the export  has  com-
	      pleted.

	      Arguments

		      id (string) -- Block export id.

		      mode  (BlockExportRemoveMode, optional) -- Mode of com-
		       mand operation.	See BlockExportRemoveMode description.
		       Default is 'safe'.

	      Errors

		      if the export is	not found

		      if mode is 'safe' and the export	is still in use	 (e.g.
		       by existing client connections)

       Event BLOCK_EXPORT_DELETED (Since: 5.2)
	      Emitted when a block export is removed and its id	can be reused.

	      Members

		      id (string) -- Block export id.

       Object BlockExportInfo (Since: 5.2)
	      Information about	a single block export.

	      Members

		      id  (string) -- The unique identifier for the block ex-
		       port

		      type (BlockExportType) -- The block export type

		      node-name (string) -- The node name of the  block  node
		       that is exported

		      shutting-down  (boolean)	-- True	if the export is shut-
		       ting down (e.g. after a block-export-del	 command,  but
		       before the shutdown has completed)

       Command query-block-exports (Since: 5.2)

	      Return [BlockExportInfo] -- A list describing all	block exports

CHARACTER DEVICES
       Object ChardevInfo (Since: 0.14)
	      Information about	a character device.

	      Members

		      label (string) -- the label of the character device

		      filename	 (string) -- the filename of the character de-
		       vice

		      frontend-open (boolean) -- shows	whether	 the  frontend
		       device	attached   to  this  backend  (e.g.  with  the
		       chardev=... option) is in open or closed	 state	(since
		       2.1)

	      NOTE:
		 filename is encoded using the QEMU command line character de-
		 vice encoding.	 See the QEMU man page for details.

       Command query-chardev (Since: 0.14)
	      Return information about current character devices.

	      Return [ChardevInfo]

		 Example:

		     ->	{ "execute": "query-chardev" }
		     <-	{
			   "return": [
			      {
				 "label": "charchannel0",
				 "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.agent,server=on",
				 "frontend-open": false
			      },
			      {
				 "label": "charmonitor",
				 "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.monitor,server=on",
				 "frontend-open": true
			      },
			      {
				 "label": "charserial0",
				 "filename": "pty:/dev/pts/2",
				 "frontend-open": true
			      }
			   ]
			}

       Object ChardevBackendInfo (Since: 2.0)
	      Information about	a character device backend

	      Members

		      name (string) --	The backend name

       Command query-chardev-backends (Since: 2.0)
	      Return information about character device	backends.

	      Return [ChardevBackendInfo]

		 Example:

		     ->	{ "execute": "query-chardev-backends" }
		     <-	{
			   "return":[
			      {
				 "name":"udp"
			      },
			      {
				 "name":"tcp"
			      },
			      {
				 "name":"unix"
			      },
			      {
				 "name":"spiceport"
			      }
			   ]
			}

       Enum DataFormat (Since: 1.4)
	      An enumeration of	data format.

	      Values

		      utf8 -- Data is a UTF-8 string (RFC 3629)

		      base64 -- Data is Base64	encoded	binary (RFC 3548)

       Command ringbuf-write (Since: 1.4)
	      Write to a ring buffer character device.

	      Arguments

		      device  (string)	 --  the  ring buffer character	device
		       name

		      data (string) --	data to	write

		      format (DataFormat, optional) --

		       data encoding (default 'utf8').

		        base64: data must be base64 encoded text.  Its	binary
			 decoding gets written.

		        utf8: data's UTF-8 encoding is	written

		        data itself is	always Unicode regardless  of  format,
			 like any other	string.

		 Example:

		     ->	{ "execute": "ringbuf-write",
			  "arguments": { "device": "foo",
					 "data": "abcdefgh",
					 "format": "utf8" } }
		     <-	{ "return": {} }

       Command ringbuf-read (Since: 1.4)
	      Read from	a ring buffer character	device.

	      Arguments

		      device  (string)	 --  the  ring buffer character	device
		       name

		      size (int) -- how many bytes to read at most

		      format (DataFormat, optional) --

		       data encoding (default 'utf8').

		        base64: the data read is returned in base64 encoding.

		        utf8: the data	read is	interpreted  as	 UTF-8.	  Bug:
			 can  screw  up	when the buffer	contains invalid UTF-8
			 sequences, NUL	characters, after the ring buffer lost
			 data, and when	reading	stops because the  size	 limit
			 is reached.

		        The return value is always Unicode regardless of for-
			 mat, like any other string.

	      Return string -- data read from the device

		 Example:

		     ->	{ "execute": "ringbuf-read",
			  "arguments": { "device": "foo",
					 "size": 1000,
					 "format": "utf8" } }
		     <-	{ "return": "abcdefgh" }

       Object ChardevCommon (Since: 2.6)
	      Configuration shared across all chardev backends

	      Members

		      logfile	(string, optional) -- The name of a logfile to
		       save output

		      logappend (boolean, optional) --	true to	append instead
		       of truncate (default to false to	truncate)

       Object ChardevFile (Since: 1.4)
	      Configuration info for file chardevs.

	      Members

		      in (string, optional) --	The name of the	input file

		      out (string) -- The name	of the output file

		      append (boolean,	optional) -- Open the file  in	append
		       mode (default false to truncate)	(Since 2.6)

		      The members of ChardevCommon.

       Object ChardevHostdev (Since: 1.4)
	      Configuration info for device and	pipe chardevs.

	      Members

		      device (string) -- The name of the special file for the
		       device, i.e.  /dev/ttyS0	on Unix	or COM1: on Windows

		      The members of ChardevCommon.

       Object ChardevSocket (Since: 1.4)
	      Configuration info for (stream) socket chardevs.

	      Members

		      addr  (SocketAddressLegacy) -- socket address to	listen
		       on (server=true)	or connect to (server=false)

		      tls-creds (string, optional) -- the ID of the TLS  cre-
		       dentials	object (since 2.6)

		      tls-authz  (string,  optional)  -- the ID of the	QAuthZ
		       authorization object against which  the	client's  x509
		       distinguished  name  will be validated.	This object is
		       only resolved at	time of	use, so	 can  be  deleted  and
		       recreated  on  the  fly while the chardev server	is ac-
		       tive.  If missing, it will default  to  denying	access
		       (since 4.0)

		      server (boolean,	optional) -- create server socket (de-
		       fault: true)

		      wait  (boolean,	optional) -- wait for incoming connec-
		       tion on server sockets (default:	false).	 Silently  ig-
		       nored with server: false.  This use is deprecated.

		      nodelay	(boolean,  optional) --	set TCP_NODELAY	socket
		       option (default:	false)

		      telnet (boolean,	optional) -- enable telnet protocol on
		       server sockets (default:	false)

		      tn3270 (boolean,	optional) -- enable tn3270 protocol on
		       server sockets (default:	false) (Since: 2.10)

		      websocket (boolean, optional) --	enable websocket  pro-
		       tocol on	server sockets (default: false)	(Since:	3.1)

		      reconnect-ms (int, optional) -- For a client socket, if
		       a  socket is disconnected, then attempt a reconnect af-
		       ter the given number of milliseconds.  Setting this  to
		       zero disables this function.  (default: 0) (Since: 9.2)

		      The members of ChardevCommon.

       Object ChardevUdp (Since: 1.5)
	      Configuration info for datagram socket chardevs.

	      Members

		      remote (SocketAddressLegacy) -- remote address

		      local (SocketAddressLegacy, optional) --	local address

		      The members of ChardevCommon.

       Object ChardevMux (Since: 1.5)
	      Configuration info for mux chardevs.

	      Members

		      chardev (string)	-- name	of the base chardev.

		      The members of ChardevCommon.

       Object ChardevHub (Since: 10.0)
	      Configuration info for hub chardevs.

	      Members

		      chardevs	 ([string])  --	 IDs  to  be added to this hub
		       (maximum	4 devices).

		      The members of ChardevCommon.

       Object ChardevStdio (Since: 1.5)
	      Configuration info for stdio chardevs.

	      Members

		      signal (boolean,	optional) -- Allow  signals  (such  as
		       SIGINT triggered	by ^C) be delivered to QEMU.  Default:
		       true.

		      The members of ChardevCommon.

       Object ChardevSpiceChannel (Since: 1.5)
	      Availability: CONFIG_SPICE

	      Configuration info for spice vm channel chardevs.

	      Members

		      type (string) --	kind of	channel	(for example vdagent).

		      The members of ChardevCommon.

       Object ChardevSpicePort (Since: 1.5)
	      Availability: CONFIG_SPICE

	      Configuration info for spice port	chardevs.

	      Members

		      fqdn   (string)	 --   name   of	  the	channel	  (see
		       docs/spice-port-fqdn.txt)

		      The members of ChardevCommon.

       Object ChardevDBus (Since: 7.0)
	      Availability: CONFIG_DBUS_DISPLAY

	      Configuration info for DBus chardevs.

	      Members

		      name  (string)  --  name	 of  the  channel   (following
		       docs/spice-port-fqdn.txt)

		      The members of ChardevCommon.

       Object ChardevVC	(Since:	1.5)
	      Configuration info for virtual console chardevs.

	      Members

		      width (int, optional) --	console	width, in pixels

		      height (int, optional) -- console height, in pixels

		      cols (int, optional) -- console width, in chars

		      rows (int, optional) -- console height, in chars

		      The members of ChardevCommon.

	      NOTE:
		 The  options are only effective when the VNC or SDL graphical
		 display backend is active.  They are ignored  with  the  GTK,
		 Spice,	VNC and	D-Bus display backends.

       Object ChardevRingbuf (Since: 1.5)
	      Configuration info for ring buffer chardevs.

	      Members

		      size (int, optional) -- ring buffer size, must be power
		       of two, default is 65536

		      The members of ChardevCommon.

       Object ChardevQemuVDAgent (Since: 6.1)
	      Availability: CONFIG_SPICE_PROTOCOL

	      Configuration info for QEMU vdagent implementation.

	      Members

		      mouse  (boolean,	optional) -- enable/disable mouse, de-
		       fault is	enabled.

		      clipboard (boolean, optional) --	 enable/disable	 clip-
		       board, default is disabled.

		      The members of ChardevCommon.

       Object ChardevPty (Since: 9.2)
	      Configuration info for pty implementation.

	      Members

		      path  (string,  optional)  -- optional path to create a
		       symbolic	link that points to the	allocated PTY

		      The members of ChardevCommon.

       Enum ChardevBackendKind (Since: 1.4)

	      Values

		      file -- regular files

		      serial -- serial	host device

		      parallel	-- parallel host device

		      pipe -- pipes (since 1.5)

		      socket -- stream	socket

		      udp -- datagram socket (since 1.5)

		      pty -- pseudo-terminal

		      null -- provides	no input, throws away output

		      mux -- (since 1.5)

		      hub -- (since 10.0)

		      msmouse -- emulated Microsoft serial mouse (since 1.5)

		      wctablet	-- emulated  Wacom  Penpartner	serial	tablet
		       (since 2.9)

		      braille -- Baum Braille device (since 1.5)

		      testdev -- device for test-suite	control	(since 2.2)

		      stdio --	standard I/O (since 1.5)

		      console -- Windows console (since 1.5)

		      spicevmc	-- spice vm channel (since 1.5)

		      spiceport -- Spice port channel (since 1.5)

		      qemu-vdagent -- Spice vdagent (since 6.1)

		      dbus -- D-Bus channel (since 7.0)

		      vc -- virtual console (since 1.5)

		      ringbuf -- memory ring buffer (since 1.6)

		      memory -- synonym for ringbuf (since 1.5)

	      Features

		      deprecated -- Member memory is deprecated.  Use ringbuf
		       instead.

       Object ChardevFileWrapper (Since: 1.4)

	      Members

		      data  (ChardevFile)  --	Configuration  info  for  file
		       chardevs

       Object ChardevHostdevWrapper (Since: 1.4)

	      Members

		      data (ChardevHostdev) --	Configuration info for	device
		       and pipe	chardevs

       Object ChardevSocketWrapper (Since: 1.4)

	      Members

		      data (ChardevSocket) -- Configuration info for (stream)
		       socket chardevs

       Object ChardevUdpWrapper	(Since:	1.5)

	      Members

		      data  (ChardevUdp)  --  Configuration info for datagram
		       socket chardevs

       Object ChardevCommonWrapper (Since: 2.6)

	      Members

		      data (ChardevCommon) -- Configuration shared across all
		       chardev backends

       Object ChardevMuxWrapper	(Since:	1.5)

	      Members

		      data (ChardevMux) -- Configuration info for mux	chard-
		       evs

       Object ChardevHubWrapper	(Since:	10.0)

	      Members

		      data  (ChardevHub) -- Configuration info	for hub	chard-
		       evs

       Object ChardevStdioWrapper (Since: 1.5)

	      Members

		      data (ChardevStdio) --  Configuration  info  for	 stdio
		       chardevs

       Object ChardevSpiceChannelWrapper (Since: 1.5)
	      Availability: CONFIG_SPICE.INDENT	7.0

       Members

	      	data  (ChardevSpiceChannel) -- Configuration info for spice vm
		channel	chardevs

       Object ChardevSpicePortWrapper (Since: 1.5)
	      Availability: CONFIG_SPICE.INDENT	7.0

       Members

	      	data (ChardevSpicePort)	-- Configuration info for  spice  port
		chardevs

       Object ChardevQemuVDAgentWrapper	(Since:	6.1)
	      Availability: CONFIG_SPICE_PROTOCOL.INDENT 7.0

       Members

	      	data  (ChardevQemuVDAgent) -- Configuration info for QEMU vda-
		gent implementation

       Object ChardevDBusWrapper (Since: 7.0)
	      Availability: CONFIG_DBUS_DISPLAY.INDENT 7.0

       Members

	      	data (ChardevDBus) -- Configuration info for DBus chardevs

       Object ChardevVCWrapper (Since: 1.5)

	      Members

		      data (ChardevVC)	-- Configuration info for virtual con-
		       sole chardevs

       Object ChardevRingbufWrapper (Since: 1.5)

	      Members

		      data (ChardevRingbuf) --	Configuration  info  for  ring
		       buffer chardevs

       Object ChardevPtyWrapper	(Since:	9.2)

	      Members

		      data  (ChardevPty) -- Configuration info	for pty	chard-
		       evs

       Object ChardevBackend (Since: 1.4)
	      Configuration info for the new chardev backend.

	      Members

		      type (ChardevBackendKind) -- backend type

		      When type is file: The members of ChardevFileWrapper.

		      When    type    is    serial:	The	members	    of
		       ChardevHostdevWrapper.

		      When    type    is    parallel:	  The	 members    of
		       ChardevHostdevWrapper.

		      When    type    is     pipe:	The	members	    of
		       ChardevHostdevWrapper.

		      When	type	 is    socket:	  The	 members    of
		       ChardevSocketWrapper.

		      When type is udp: The members of	ChardevUdpWrapper.

		      When type is pty: The members of	ChardevPtyWrapper.

		      When type is null: The members of ChardevCommonWrapper.

		      When type is mux: The members of	ChardevMuxWrapper.

		      When type is hub: The members of	ChardevHubWrapper.

		      When    type    is    msmouse:	 The	members	    of
		       ChardevCommonWrapper.

		      When    type    is    wctablet:	  The	 members    of
		       ChardevCommonWrapper.

		      When    type    is    braille:	 The	members	    of
		       ChardevCommonWrapper.

		      When	type	is    testdev:	  The	 members    of
		       ChardevCommonWrapper.

		      When type is stdio: The members of ChardevStdioWrapper.

		      When    type    is    console:	 The	members	    of
		       ChardevCommonWrapper.

		      When    type    is    spicevmc:	  The	 members    of
		       ChardevSpiceChannelWrapper.

		      When   type    is    spiceport:	  The	 members    of
		       ChardevSpicePortWrapper.

		      When    type    is   qemu-vdagent:   The	  members   of
		       ChardevQemuVDAgentWrapper.

		      When type is dbus: The members of ChardevDBusWrapper.

		      When type is vc:	The members of ChardevVCWrapper.

		      When    type    is    ringbuf:	 The	members	    of
		       ChardevRingbufWrapper.

		      When	type	 is    memory:	  The	 members    of
		       ChardevRingbufWrapper.

       Object ChardevReturn (Since: 1.4)
	      Return info about	the chardev backend just created.

	      Members

		      pty (string, optional) -- name of the slave  pseudoter-
		       minal  device, present if and only if a chardev of type
		       'pty' was created

       Command chardev-add (Since: 1.4)
	      Add a character device backend

	      Arguments

		      id (string) -- the chardev's ID,	must be	unique

		      backend (ChardevBackend)	-- backend type	and parameters

	      Return ChardevReturn

		 Example:

		     ->	{ "execute" : "chardev-add",
			  "arguments" :	{ "id" : "foo",
					  "backend" : {	"type" : "null", "data"	: {} } } }
		     <-	{ "return": {} }

		 Example:

		     ->	{ "execute" : "chardev-add",
			  "arguments" :	{ "id" : "bar",
					  "backend" : {	"type" : "file",
							"data" : { "out" : "/tmp/bar.log" } } }	}
		     <-	{ "return": {} }

		 Example:

		     ->	{ "execute" : "chardev-add",
			  "arguments" :	{ "id" : "baz",
					  "backend" : {	"type" : "pty",	"data" : {} } }	}
		     <-	{ "return": { "pty" : "/dev/pty/42" } }

       Command chardev-change (Since: 2.10)
	      Change a character device	backend

	      Arguments

		      id (string) -- the chardev's ID,	must exist

		      backend (ChardevBackend)	-- new backend type and	 para-
		       meters

	      Return ChardevReturn

		 Example:

		     ->	{ "execute" : "chardev-change",
			  "arguments" :	{ "id" : "baz",
					  "backend" : {	"type" : "pty",	"data" : {} } }	}
		     <-	{ "return": { "pty" : "/dev/pty/42" } }

		 Example:

		     ->	{"execute" : "chardev-change",
			 "arguments" : {
			     "id" : "charchannel2",
			     "backend" : {
				 "type"	: "socket",
				 "data"	: {
				     "addr" : {
					 "type"	: "unix" ,
					 "data"	: {
					     "path" : "/tmp/charchannel2.socket"
					 }
				      },
				      "server" : true,
				      "wait" : false }}}}
		     <-	{"return": {}}

       Command chardev-remove (Since: 1.4)
	      Remove a character device	backend

	      Arguments

		      id  (string) -- the chardev's ID, must exist and	not be
		       in use

		 Example:

		     ->	{ "execute": "chardev-remove", "arguments": { "id" : "foo" } }
		     <-	{ "return": {} }

       Command chardev-send-break (Since: 2.10)
	      Send a break to a	character device

	      Arguments

		      id (string) -- the chardev's ID,	must exist

		 Example:

		     ->	{ "execute": "chardev-send-break", "arguments":	{ "id" : "foo" } }
		     <-	{ "return": {} }

       Event VSERPORT_CHANGE (Since: 2.1)
	      Emitted when the guest opens or closes a virtio-serial port.

	      Members

		      id (string) -- device identifier	of  the	 virtio-serial
		       port

		      open (boolean) -- true if the guest has opened the vir-
		       tio-serial port

	      NOTE:
		 This event is rate-limited.

		 Example:

		     <-	{ "event": "VSERPORT_CHANGE",
			  "data": { "id": "channel0", "open": true },
			  "timestamp": { "seconds": 1401385907,	"microseconds":	422329 } }

USER AUTHORIZATION
       Enum QAuthZListPolicy (Since: 4.0)
	      The authorization	policy result

	      Values

		      deny -- deny access

		      allow --	allow access

       Enum QAuthZListFormat (Since: 4.0)
	      The authorization	policy match format

	      Values

		      exact --	an exact string	match

		      glob -- string with ? and * shell wildcard support

       Object QAuthZListRule (Since: 4.0)
	      A	single authorization rule.

	      Members

		      match  (string)	-- a string or glob to match against a
		       user identity

		      policy (QAuthZListPolicy) -- the	result	to  return  if
		       match evaluates to true

		      format  (QAuthZListFormat,  optional)  -- the format of
		       the match rule (default 'exact')

       Object AuthZListProperties (Since: 4.0)
	      Properties for authz-list	objects.

	      Members

		      policy (QAuthZListPolicy, optional) --  Default	policy
		       to apply	when no	rule matches (default: deny)

		      rules  ([QAuthZListRule],  optional)  --	 Authorization
		       rules based on matching user

       Object AuthZListFileProperties (Since: 4.0)
	      Properties for authz-listfile objects.

	      Members

		      filename	(string) -- File name to load  the  configura-
		       tion  from.   The  file	must  contain  valid  JSON for
		       AuthZListProperties.

		      refresh (boolean, optional) -- If true, inotify is used
		       to monitor the file, automatically  reloading  changes.
		       If an error occurs during reloading, all	authorizations
		       will  fail  until the file is next successfully loaded.
		       (default: true if the binary was	built with CONFIG_INO-
		       TIFY1, false otherwise)

       Object AuthZPAMProperties (Since: 4.0)
	      Properties for authz-pam objects.

	      Members

		      service (string)	-- PAM service name to use for	autho-
		       rization

       Object AuthZSimpleProperties (Since: 4.0)
	      Properties for authz-simple objects.

	      Members

		      identity	 (string) -- Identifies	the allowed user.  Its
		       format depends on the network service  that  authoriza-
		       tion  object is associated with.	 For authorizing based
		       on TLS x509 certificates, the identity must be the x509
		       distinguished name.

TRANSACTIONS
       Object Abort (Since: 1.6)
	      This action can be used to test transaction failure.

       Enum ActionCompletionMode (Since: 2.5)
	      An enumeration of	transactional completion modes.

	      Values

		      individual -- Do	not attempt to cancel  any  other  Ac-
		       tions if	any Actions fail after the Transaction request
		       succeeds.   All	Actions	that can complete successfully
		       will do so without waiting on others.  This is the  de-
		       fault.

		      grouped	--  If	any Action fails after the Transaction
		       succeeds, cancel	all Actions.  Actions do not  complete
		       until  all  Actions  are	ready to complete.  May	be re-
		       jected by Actions that do not support  this  completion
		       mode.

       Enum TransactionActionKind (Since: 1.1)

	      Values

		      abort --	Since 1.6

		      block-dirty-bitmap-add -- Since 2.5

		      block-dirty-bitmap-remove -- Since 4.2

		      block-dirty-bitmap-clear	-- Since 2.5

		      block-dirty-bitmap-enable -- Since 4.0

		      block-dirty-bitmap-disable -- Since 4.0

		      block-dirty-bitmap-merge	-- Since 4.0

		      blockdev-backup -- Since	2.3

		      blockdev-snapshot -- Since 2.5

		      blockdev-snapshot-internal-sync -- Since	1.7

		      blockdev-snapshot-sync -- since 1.1

		      drive-backup -- Since 1.6

	      Features

		      deprecated  --  Member drive-backup is deprecated.  Use
		       member blockdev-backup instead.

       Object AbortWrapper (Since: 1.6)

	      Members

		      data (Abort) -- Not documented

       Object BlockDirtyBitmapAddWrapper (Since: 2.5)

	      Members

		      data (BlockDirtyBitmapAdd) -- Not documented

       Object BlockDirtyBitmapWrapper (Since: 2.5)

	      Members

		      data (BlockDirtyBitmap) -- Not documented

       Object BlockDirtyBitmapMergeWrapper (Since: 4.0)

	      Members

		      data (BlockDirtyBitmapMerge) -- Not documented

       Object BlockdevBackupWrapper (Since: 2.3)

	      Members

		      data (BlockdevBackup) --	Not documented

       Object BlockdevSnapshotWrapper (Since: 2.5)

	      Members

		      data (BlockdevSnapshot) -- Not documented

       Object BlockdevSnapshotInternalWrapper (Since: 1.7)

	      Members

		      data (BlockdevSnapshotInternal) -- Not documented

       Object BlockdevSnapshotSyncWrapper (Since: 1.1)

	      Members

		      data (BlockdevSnapshotSync) -- Not documented

       Object DriveBackupWrapper (Since: 1.6)

	      Members

		      data (DriveBackup) -- Not documented

       Object TransactionAction	(Since:	1.1)
	      A	discriminated record of	operations that	can be performed  with
	      transaction.

	      Members

		      type  (TransactionActionKind)  --  the  operation to be
		       performed

		      When type is abort: The members of AbortWrapper.

		      When type is  block-dirty-bitmap-add:  The  members  of
		       BlockDirtyBitmapAddWrapper.

		      When  type is block-dirty-bitmap-remove:	The members of
		       BlockDirtyBitmapWrapper.

		      When type is block-dirty-bitmap-clear: The  members  of
		       BlockDirtyBitmapWrapper.

		      When  type is block-dirty-bitmap-enable:	The members of
		       BlockDirtyBitmapWrapper.

		      When type is block-dirty-bitmap-disable:	The members of
		       BlockDirtyBitmapWrapper.

		      When type is block-dirty-bitmap-merge: The  members  of
		       BlockDirtyBitmapMergeWrapper.

		      When   type   is	  blockdev-backup:   The   members  of
		       BlockdevBackupWrapper.

		      When  type  is  blockdev-snapshot:   The	  members   of
		       BlockdevSnapshotWrapper.

		      When  type is blockdev-snapshot-internal-sync: The mem-
		       bers of BlockdevSnapshotInternalWrapper.

		      When type is  blockdev-snapshot-sync:  The  members  of
		       BlockdevSnapshotSyncWrapper.

		      When    type    is   drive-backup:   The	  members   of
		       DriveBackupWrapper.

       Object TransactionProperties (Since: 2.5)
	      Optional arguments to modify the behavior	of a Transaction.

	      Members

		      completion-mode	(ActionCompletionMode,	optional)   --
		       Controls	 how  jobs  launched asynchronously by Actions
		       will   complete	 or   fail   as	   a	group.	   See
		       ActionCompletionMode for	details.

       Command transaction (Since: 1.1)
	      Executes	a  number  of transactionable QMP commands atomically.
	      If any operation fails, then the entire set of actions  will  be
	      abandoned	and the	appropriate error returned.

	      For  external snapshots, the dictionary contains the device, the
	      file to use for the new snapshot,	and the	format.	  The  default
	      format, if not specified,	is qcow2.

	      Each  new	snapshot defaults to being created by QEMU (wiping any
	      contents if the file already exists), but	it is also possible to
	      reuse an externally-created  file.   In  the  latter  case,  you
	      should  ensure  that the new image file has the same contents as
	      the current one; QEMU cannot perform any meaningful check.  Typ-
	      ically this is achieved by using the current image file  as  the
	      backing file for the new image.

	      On  failure,  the	 original  disks  pre-snapshot attempt will be
	      used.

	      For internal snapshots, the dictionary contains the  device  and
	      the  snapshot's name.  If	an internal snapshot matching name al-
	      ready exists, the	request	will be	 rejected.   Only  some	 image
	      formats support it, for example, qcow2, and rbd,

	      On  failure,  QEMU  will	try  delete the	newly created internal
	      snapshot in the transaction.  When an I/O	 error	occurs	during
	      deletion,	 the user needs	to fix it later	with qemu-img or other
	      command.

	      Arguments

		      actions	  ([TransactionAction])	    --	   List	    of
		       TransactionAction;  information	needed for the respec-
		       tive operations.

		      properties (TransactionProperties, optional) --	struc-
		       ture  of	additional options to control the execution of
		       the transaction.	 See TransactionProperties  for	 addi-
		       tional detail.

	      Errors

		      Any errors from commands	in the transaction

	      NOTE:
		 The  transaction  aborts  on  the  first failure.  Therefore,
		 there will be information on only one	failed	operation  re-
		 turned	in an error condition, and subsequent actions will not
		 have been attempted.

		 Example:

		     ->	{ "execute": "transaction",
			  "arguments": { "actions": [
			      {	"type":	"blockdev-snapshot-sync", "data" : { "device": "ide-hd0",
							  "snapshot-file": "/some/place/my-image",
							  "format": "qcow2" } },
			      {	"type":	"blockdev-snapshot-sync", "data" : { "node-name": "myfile",
							  "snapshot-file": "/some/place/my-image2",
							  "snapshot-node-name":	"node3432",
							  "mode": "existing",
							  "format": "qcow2" } },
			      {	"type":	"blockdev-snapshot-sync", "data" : { "device": "ide-hd1",
							  "snapshot-file": "/some/place/my-image2",
							  "mode": "existing",
							  "format": "qcow2" } },
			      {	"type":	"blockdev-snapshot-internal-sync", "data" : {
							  "device": "ide-hd2",
							  "name": "snapshot0" }	} ] } }
		     <-	{ "return": {} }

QMP MONITOR CONTROL
       Command qmp_capabilities	(Since:	0.13)
	      Enable QMP capabilities.

	      Arguments

		      enable  ([QMPCapability], optional) -- An optional list
		       of QMPCapability	values to enable.  The client must not
		       enable any capability that is not mentioned in the  QMP
		       greeting	 message.   If	the  field is not provided, it
		       means no	QMP  capabilities  will	 be  enabled.	(since
		       2.12)

		 Example:

		     ->	{ "execute": "qmp_capabilities",
			  "arguments": { "enable": [ "oob" ] } }
		     <-	{ "return": {} }

	      NOTE:
		 This  command is valid	exactly	when first connecting: it must
		 be issued before any other command will be accepted, and will
		 fail once the monitor is accepting other commands.  (see QEMU
		 Machine Protocol Specification)

	      NOTE:
		 The QMP client	needs to explicitly enable  QMP	 capabilities,
		 otherwise  all	the QMP	capabilities will be turned off	by de-
		 fault.

       Enum QMPCapability (Since: 2.12)
	      Enumeration of capabilities  to  be  advertised  during  initial
	      client connection, used for agreeing on particular QMP extension
	      behaviors.

	      Values

		      oob  --	QMP  ability  to support out-of-band requests.
		       (Please refer to	qmp-spec.rst for more  information  on
		       OOB)

       Object VersionTriple (Since: 2.4)
	      A	three-part version number.

	      Members

		      major (int) -- The major	version	number.

		      minor (int) -- The minor	version	number.

		      micro (int) -- The micro	version	number.

       Object VersionInfo (Since: 0.14)
	      A	description of QEMU's version.

	      Members

		      qemu  (VersionTriple)  -- The version of	QEMU.  By cur-
		       rent convention,	a micro	version	of 50 signifies	a  de-
		       velopment  branch.   A  micro  version  greater than or
		       equal to	90 signifies a release candidate for the  next
		       minor  version.	A micro	version	of less	than 50	signi-
		       fies a stable release.

		      package (string)	-- QEMU	will always set	this field  to
		       an  empty  string.   Downstream versions	of QEMU	should
		       set this	to a non-empty string.	The exact  format  de-
		       pends  on  the downstream however it highly recommended
		       that a unique name is used.

       Command query-version (Since: 0.14)
	      Return the current version of QEMU.

	      Return VersionInfo -- An object describing the  current  version
		     of	QEMU.

		 Example:

		     ->	{ "execute": "query-version" }
		     <-	{
			   "return":{
			      "qemu":{
				 "major":0,
				 "minor":11,
				 "micro":5
			      },
			      "package":""
			   }
			}

       Object CommandInfo (Since: 0.14)
	      Information about	a QMP command

	      Members

		      name (string) --	The command name

       Command query-commands (Since: 0.14)
	      Return a list of supported QMP commands by this server

	      Return [CommandInfo] -- A	list of	all supported commands

		 Example:

		     ->	{ "execute": "query-commands" }
		     <-	{
			  "return":[
			     {
				"name":"query-balloon"
			     },
			     {
				"name":"system_powerdown"
			     },
			     ...
			  ]
			}

	      This  example  has  been	shortened  as the real response	is too
	      long.

       Command quit (Since: 0.14)
	      Request graceful QEMU process termination.

	      While every attempt is made to send the QMP response before ter-
	      minating,	this is	not guaranteed.	 When using this interface,  a
	      premature	EOF would not be unexpected.

		 Example:

		     ->	{ "execute": "quit" }
		     <-	{ "return": {} }

       Enum MonitorMode	(Since:	5.0)
	      An enumeration of	monitor	modes.

	      Values

		      readline	 --  HMP  monitor (human-oriented command line
		       interface)

		      control -- QMP monitor (JSON-based machine interface)

       Object MonitorOptions (Since: 5.0)
	      Options to be used for adding a new monitor.

	      Members

		      id (string, optional) --	Name of	the monitor

		      mode (MonitorMode, optional)  --	 Selects  the  monitor
		       mode (default: readline in the system emulator, control
		       in qemu-storage-daemon)

		      pretty  (boolean,  optional) -- Enables pretty printing
		       (QMP only)

		      chardev (string)	-- Name	of a character device  to  ex-
		       pose the	monitor	on

QMP INTROSPECTION
       Command query-qmp-schema	(Since:	2.5)
	      Command query-qmp-schema exposes the QMP wire ABI	as an array of
	      SchemaInfo.   This lets QMP clients figure out what commands and
	      events are available in this QEMU, and their parameters and  re-
	      sults.

	      However, the SchemaInfo can't reflect all	the rules and restric-
	      tions that apply to QMP.	It's interface introspection (figuring
	      out  what's there), not interface	specification.	The specifica-
	      tion is in the QAPI schema.

	      Furthermore, while we strive to keep the QMP wire	 format	 back-
	      wards-compatible	across QEMU versions, the introspection	output
	      is not guaranteed	to have	the same stability.  For example,  one
	      version  of  QEMU	 may  list  an	object	member	as an optional
	      non-variant, while another lists the same	 member	 only  through
	      the object's variants; or	the type of a member may change	from a
	      generic  string  into  a specific	enum or	from one specific type
	      into an alternate	that  includes	the  original  type  alongside
	      something	else.

	      Return [SchemaInfo] --

		     an	 array	where  each element describes an entity	in the
		     ABI: command, event, type,	...

		     The order of the various elements	is  unspecified;  how-
		     ever, all names are guaranteed to be unique (no name will
		     be	duplicated with	different meta-types).

	      NOTE:
		 The  QAPI  schema is also used	to help	define internal	inter-
		 faces,	by defining QAPI types.	 These are not part of the QMP
		 wire ABI, and therefore not returned by this command.

       Enum SchemaMetaType (Since: 2.5)
	      This is a	SchemaInfo's meta type,	i.e. the kind of entity	it de-
	      scribes.

	      Values

		      builtin -- a predefined type such as 'int' or 'bool'.

		      enum -- an enumeration type

		      array --	an array type

		      object -- an object type	(struct	or union)

		      alternate -- an alternate type

		      command -- a QMP	command

		      event --	a QMP event

       Object SchemaInfo (Since: 2.5)

	      Members

		      name (string) --	 the  entity's	name,  inherited  from
		       base.   The  SchemaInfo	is  always  referenced by this
		       name.  Commands and events have the name	defined	in the
		       QAPI schema.  Unlike  command  and  event  names,  type
		       names are not part of the wire ABI.  Consequently, type
		       names  are  meaningless strings here, although they are
		       still guaranteed	unique regardless of meta-type.

		      meta-type (SchemaMetaType) -- the entity's  meta	 type,
		       inherited from base.

		      features	 ([string], optional) -- names of features as-
		       sociated	with  the  entity,  in	no  particular	order.
		       (since  4.1 for object types, 4.2 for commands, 5.0 for
		       the rest)

		      When   meta-type	  is   builtin:	  The	 members    of
		       SchemaInfoBuiltin.

		      When meta-type is enum: The members of SchemaInfoEnum.

		      When    meta-type    is	  array:    The	  members   of
		       SchemaInfoArray.

		      When   meta-type	  is   object:	  The	 members    of
		       SchemaInfoObject.

		      When   meta-type	  is   alternate:   The	  members   of
		       SchemaInfoAlternate.

		      When   meta-type	  is   command:	  The	 members    of
		       SchemaInfoCommand.

		      When    meta-type    is	  event:    The	  members   of
		       SchemaInfoEvent.

       Object SchemaInfoBuiltin	(Since:	2.5)
	      Additional SchemaInfo members for	meta-type 'builtin'.

	      Members

		      json-type (JSONType) -- the JSON	 type  used  for  this
		       type on the wire.

       Enum JSONType (Since: 2.5)
	      The  four	 primitive  and	 two structured	types according	to RFC
	      8259 section 1, plus 'int' (split	off 'number'), plus the	 obvi-
	      ous top type 'value'.

	      Values

		      string -- JSON string

		      number -- JSON number

		      int -- JSON number that is an integer

		      boolean -- literal false	or true

		      null -- literal null

		      object -- JSON object

		      array --	JSON array

		      value --	any JSON value

       Object SchemaInfoEnum (Since: 2.5)
	      Additional SchemaInfo members for	meta-type 'enum'.

	      Members

		      members	([SchemaInfoEnumMember])  --  the  enum	type's
		       members,	in no particular order.	 (since	6.2)

		      values ([string])  --  the  enumeration	type's	member
		       names, in no particular order.  Redundant with members.
		       Just for	backward compatibility.

	      Features

		      deprecated -- Member values is deprecated.  Use members
		       instead.

	      Values of	this type are JSON string on the wire.

       Object SchemaInfoEnumMember (Since: 6.2)
	      An object	member.

	      Members

		      name  (string)  -- the member's name, as	defined	in the
		       QAPI schema.

		      features	([string], optional) --	names of features  as-
		       sociated	with the member, in no particular order.

       Object SchemaInfoArray (Since: 2.5)
	      Additional SchemaInfo members for	meta-type 'array'.

	      Members

		      element-type (string) --	the array type's element type.

	      Values of	this type are JSON array on the	wire.

       Object SchemaInfoObject (Since: 2.5)
	      Additional SchemaInfo members for	meta-type 'object'.

	      Members

		      members ([SchemaInfoObjectMember]) -- the object	type's
		       (non-variant) members, in no particular order.

		      tag  (string, optional) -- the name of the member serv-
		       ing as type tag.	 An element of members with this  name
		       must exist.

		      variants	([SchemaInfoObjectVariant], optional) -- vari-
		       ant members, i.e. additional members that depend	on the
		       type tag's value.  Present exactly when tag is present.
		       The  variants  are in no	particular order, and may even
		       differ from the order of	the values of the enum type of
		       the tag.

	      Values of	this type are JSON object on the wire.

       Object SchemaInfoObjectMember (Since: 2.5)
	      An object	member.

	      Members

		      name (string) --	the member's name, as defined  in  the
		       QAPI schema.

		      type (string) --	the name of the	member's type.

		      default	(value,	optional) -- default when used as com-
		       mand parameter.	If absent, the parameter is mandatory.
		       If present, the value must be null.  The	 parameter  is
		       optional,  and behavior when it's missing is not	speci-
		       fied here.  Future extension: if	present	and  non-null,
		       the parameter is	optional, and defaults to this value.

		      features	 ([string], optional) -- names of features as-
		       sociated	with  the  member,  in	no  particular	order.
		       (since 5.0)

       Object SchemaInfoObjectVariant (Since: 2.5)
	      The variant members for a	value of the type tag.

	      Members

		      case (string) --	a value	of the type tag.

		      type  (string) -- the name of the object	type that pro-
		       vides the variant members when the type tag  has	 value
		       case.

       Object SchemaInfoAlternate (Since: 2.5)
	      Additional SchemaInfo members for	meta-type 'alternate'.

	      Members

		      members	([SchemaInfoAlternateMember]) -- the alternate
		       type's members, in no particular	order.	 The  members'
		       wire encoding is	distinct, see How to use the QAPI code
		       generator section Alternate types.

	      On the wire, this	can be any of the members.

       Object SchemaInfoAlternateMember	(Since:	2.5)
	      An alternate member.

	      Members

		      type (string) --	the name of the	member's type.

       Object SchemaInfoCommand	(Since:	2.5)
	      Additional SchemaInfo members for	meta-type 'command'.

	      Members

		      arg-type	 (string)  -- the name of the object type that
		       provides	the command's parameters.

		      ret-type	(string) -- the	name of	the  command's	result
		       type.

		      allow-oob  (boolean,  optional)	-- whether the command
		       allows out-of-band execution, defaults to false (Since:
		       2.12)

       Object SchemaInfoEvent (Since: 2.5)
	      Additional SchemaInfo members for	meta-type 'event'.

	      Members

		      arg-type	(string) -- the	name of	the object  type  that
		       provides	the event's parameters.

QEMU OBJECT MODEL (QOM)
       Object ObjectPropertyInfo (Since: 1.2)

	      Members

		      name (string) --	the name of the	property

		      type (string) --

		       the  type of the	property.  This	will typically come in
		       one of four forms:

		       1. A primitive type such	as 'u8', 'u16',	'bool',	'str',
			  or 'double'.	These types are	mapped to  the	appro-
			  priate JSON type.

		       2. A child type in the form 'child<subtype>' where sub-
			  type	is  a qdev device type name.  Child properties
			  create the composition tree.

		       3. A link type in the form 'link<subtype>'  where  sub-
			  type	is  a  qdev device type	name.  Link properties
			  form the device model	graph.

		      description (string, optional) -- if specified, the de-
		       scription of the	property.

		      default-value (value, optional) -- the  default	value,
		       if any (since 5.0)

       Object ObjectPropertyValue

	      Members

		      name (string) --	the name of the	property.

		      type (string) --	the type of the	property, as described
		       in ObjectPropertyInfo.

		      value  (value,  optional) -- the	value of the property.
		       Absent when the property	cannot be read.

	      Since 10.1

       Object ObjectPropertiesValues

	      Members

		      properties ([ObjectPropertyValue]) -- a list of proper-
		       ties.

	      Since 10.1

       Command qom-list	(Since:	1.2)
	      List properties of a object given	a path in the object model.

	      Arguments

		      path (string) --	the path within	the object model.  See
		       qom-get for a description of this parameter.

	      Return [ObjectPropertyInfo] -- a list that describe the  proper-
		     ties of the object.

		 Example:

		     ->	{ "execute": "qom-list",
			  "arguments": { "path": "/chardevs" } }
		     <-	{ "return": [ {	"name":	"type",	"type":	"string" },
				      {	"name":	"parallel0", "type": "child<chardev-vc>" },
				      {	"name":	"serial0", "type": "child<chardev-vc>" },
				      {	"name":	"mon0",	"type":	"child<chardev-stdio>" } ] }

       Command qom-get (Since: 1.2)
	      Get a property value.

	      Arguments

		      path (string) --

		       The  path within	the object model.  There are two forms
		       of supported paths--absolute and	partial	paths.

		       Absolute	paths are derived from the root	object and can
		       follow child<> or link<>	properties.   Since  they  can
		       follow link<> properties, they can be arbitrarily long.
		       Absolute	 paths	look  like  absolute filenames and are
		       prefixed	with a leading slash.

		       Partial paths look like relative	 filenames.   They  do
		       not  begin  with	a prefix.  The matching	rules for par-
		       tial paths are subtle but designed to  make  specifying
		       objects	easy.	At each	level of the composition tree,
		       the partial path	is matched as an absolute  path.   The
		       first  match is not returned.  At least two matches are
		       searched	for.  A	successful result is only returned  if
		       only  one  match	 is  found.  If	more than one match is
		       found, a	flag is	return to indicate that	the match  was
		       ambiguous.

		      property	(string) -- The	property name to read

	      Return value  --	The  property  value.  The type	depends	on the
		     property type.  child<> and  link<>  properties  are  re-
		     turned  as	 #str  pathnames.   All	integer	property types
		     (u8, u16, etc) are	returned as #int.

		 Example: Use absolute path

		      -> { "execute": "qom-get",
			   "arguments":	{ "path": "/machine/unattached/device[0]",
					  "property": "hotplugged" } }
		      <- { "return": false }

		 Example: Use partial path

		      -> { "execute": "qom-get",
			   "arguments":	{ "path": "unattached/sysbus",
					  "property": "type" } }
		      <- { "return": "System" }

       Command qom-list-get
	      List properties and their	values for each	object path in the in-
	      put list.

	      Arguments

		      paths ([string])	-- The absolute	or  partial  path  for
		       each object, as described in qom-get.

	      Errors

		      If any path is not valid	or is ambiguous

	      Return [ObjectPropertiesValues]  -- A list where each element is
		     the result	for the	corresponding element of paths.

	      Since 10.1

       Command qom-set (Since: 1.2)
	      Set a property value.

	      Arguments

		      path (string) --	see qom-get for	a description of  this
		       parameter

		      property	(string) -- the	property name to set

		      value  (value) -- a value who's type is appropriate for
		       the property type.  See qom-get for  a  description  of
		       type mapping.

		 Example:

		     ->	{ "execute": "qom-set",
			  "arguments": { "path": "/machine",
					 "property": "graphics",
					 "value": false	} }
		     <-	{ "return": {} }

       Object ObjectTypeInfo (Since: 1.1)
	      This structure describes a search	result from qom-list-types

	      Members

		      name (string) --	the type name found in the search

		      abstract	 (boolean,  optional)  -- the type is abstract
		       and can't be directly instantiated.  Omitted if	false.
		       (since 2.10)

		      parent  (string,	 optional)  -- Name of parent type, if
		       any (since 2.10)

       Command qom-list-types (Since: 1.1)
	      Return a list of types given search parameters.

	      Arguments

		      implements (string, optional) --	if specified, only re-
		       turn types that implement this type name

		      abstract	(boolean, optional) -- if  true,  include  ab-
		       stract types in the results

	      Return [ObjectTypeInfo]  -- a list of types, or an empty list if
		     no	results	are found

       Command qom-list-properties (Since: 2.12)
	      List properties associated with a	QOM object.

	      Arguments

		      typename	(string) -- the	type name of an	object

	      NOTE:
		 Objects can create properties at runtime, for example to  de-
		 scribe	links between different	devices	and/or objects.	 These
		 properties are	not included in	the output of this command.

	      Return [ObjectPropertyInfo]  -- a	list describing	object proper-
		     ties

       Object CanHostSocketcanProperties (Since: 2.12)
	      Availability: CONFIG_LINUX

	      Properties for can-host-socketcan	objects.

	      Members

		      if (string) -- interface	name of	the  host  system  CAN
		       bus to connect to

		      canbus  (string)	 -- object ID of the can-bus object to
		       connect to the host interface

       Object ColoCompareProperties (Since: 2.8)
	      Properties for colo-compare objects.

	      Members

		      primary_in (string) -- name  of	the  character	device
		       backend	to use for the primary input (incoming packets
		       are redirected to outdev)

		      secondary_in (string) --	name of	the  character	device
		       backend	to  use	 for secondary input (incoming packets
		       are only	compared to the	input on primary_in  and  then
		       dropped)

		      outdev (string) -- name of the character	device backend
		       to use for output

		      iothread	(string) -- name of the	iothread to run	in

		      notify_dev  (string, optional) -- name of the character
		       device backend to be used to communicate	with  the  re-
		       mote colo-frame (only for Xen COLO)

		      compare_timeout	(int, optional)	-- the maximum time to
		       hold a packet from primary_in for  comparison  with  an
		       incoming	 packet	 on  secondary_in in milliseconds (de-
		       fault: 3000)

		      expired_scan_cycle (int,	optional) -- the  interval  at
		       which  colo-compare checks whether packets from primary
		       have timed out, in milliseconds (default: 3000)

		      max_queue_size (int, optional) -- the maximum number of
		       packets to keep in the queue for	comparing with	incom-
		       ing  packets  from  secondary_in.  If the queue is full
		       and additional packets  are  received,  the  additional
		       packets are dropped.  (default: 1024)

		      vnet_hdr_support	 (boolean,  optional) -- if true, vnet
		       header support is enabled (default: false)

       Object CryptodevBackendProperties (Since: 2.8)
	      Properties for cryptodev-backend	and  cryptodev-backend-builtin
	      objects.

	      Members

		      queues  (int, optional) -- the number of	queues for the
		       cryptodev backend.  Ignored for	cryptodev-backend  and
		       must be 1 for cryptodev-backend-builtin.	 (default: 1)

		      throttle-bps  (int,  optional) -- limit total bytes per
		       second (Since 8.0)

		      throttle-ops (int, optional) -- limit total  operations
		       per second (Since 8.0)

       Object CryptodevVhostUserProperties (Since: 2.12)
	      Availability: CONFIG_VHOST_CRYPTO

	      Properties for cryptodev-vhost-user objects.

	      Members

		      chardev	(string)  --  the name of a Unix domain	socket
		       character device	that connects to the vhost-user	server

		      The members of CryptodevBackendProperties.

       Object DBusVMStateProperties (Since: 5.0)
	      Properties for dbus-vmstate objects.

	      Members

		      addr (string) --	the name of the	DBus bus to connect to

		      id-list (string,	optional) -- a comma separated list of
		       DBus IDs	of helpers whose data should  be  included  in
		       the VM state on migration

       Enum NetfilterInsert (Since: 5.0)
	      Indicates	 where to insert a netfilter relative to a given other
	      filter.

	      Values

		      before -- insert	before the specified filter

		      behind -- insert	behind the specified filter

       Object NetfilterProperties (Since: 2.5)
	      Properties for objects of	classes	derived	from netfilter.

	      Members

		      netdev (string) -- id of	the network device backend  to
		       filter

		      queue (NetFilterDirection, optional) -- indicates which
		       queue(s)	to filter (default: all)

		      status (string, optional) -- indicates whether the fil-
		       ter  is	enabled	 ("on")	 or disabled ("off") (default:
		       "on")

		      position	(string, optional) -- specifies	where the fil-
		       ter should be inserted  in  the	filter	list.	"head"
		       means  the filter is inserted at	the head of the	filter
		       list, before any	existing filters.   "tail"  means  the
		       filter  is inserted at the tail of the filter list, be-
		       hind any	existing filters (default).   "id=<id>"	 means
		       the  filter  is	inserted  before  or behind the	filter
		       specified by <id>, depending on	the  insert  property.
		       (default: "tail")

		      insert  (NetfilterInsert,  optional) -- where to	insert
		       the filter relative to the filter  given	 in  position.
		       Ignored if position is "head" or	"tail".	 (default: be-
		       hind)

       Object FilterBufferProperties (Since: 2.5)
	      Properties for filter-buffer objects.

	      Members

		      interval	 (int) -- a non-zero interval in microseconds.
		       All packets arriving in the given interval are  delayed
		       until the end of	the interval.

		      The members of NetfilterProperties.

       Object FilterDumpProperties (Since: 2.5)
	      Properties for filter-dump objects.

	      Members

		      file  (string) -- the filename where the	dumped packets
		       should be stored

		      maxlen (int, optional) -- maximum number	of bytes in  a
		       packet that are stored (default:	65536)

		      The members of NetfilterProperties.

       Object FilterMirrorProperties (Since: 2.6)
	      Properties for filter-mirror objects.

	      Members

		      outdev (string) -- the name of a	character device back-
		       end to which all	incoming packets are mirrored

		      vnet_hdr_support	 (boolean,  optional) -- if true, vnet
		       header support is enabled (default: false)

		      The members of NetfilterProperties.

       Object FilterRedirectorProperties (Since: 2.6)
	      Properties for filter-redirector objects.

	      At least one of indev or outdev must be present.	 If  both  are
	      present,	they must not refer to the same	character device back-
	      end.

	      Members

		      indev (string, optional)	-- the name of a character de-
		       vice backend from which packets are received and	 redi-
		       rected to the filtered network device

		      outdev  (string,	 optional)  -- the name	of a character
		       device backend to which all incoming packets are	 redi-
		       rected

		      vnet_hdr_support	 (boolean,  optional) -- if true, vnet
		       header support is enabled (default: false)

		      The members of NetfilterProperties.

       Object FilterRewriterProperties (Since: 2.8)
	      Properties for filter-rewriter objects.

	      Members

		      vnet_hdr_support	(boolean, optional) -- if  true,  vnet
		       header support is enabled (default: false)

		      The members of NetfilterProperties.

       Object InputBarrierProperties (Since: 4.2)
	      Properties for input-barrier objects.

	      Members

		      name  (string)  --  the	screen name as declared	in the
		       screens section of barrier.conf

		      server (string, optional) -- hostname  of  the  Barrier
		       server (default:	"localhost")

		      port  (string,  optional)  --  TCP  port	of the Barrier
		       server (default:	"24800")

		      x-origin	(string, optional)  --	x  coordinate  of  the
		       leftmost	pixel on the guest screen (default: "0")

		      y-origin	(string, optional) -- y	coordinate of the top-
		       most pixel on the guest screen (default:	"0")

		      width  (string,	optional)  --  the  width of secondary
		       screen in pixels	(default: "1920")

		      height (string, optional) -- the	 height	 of  secondary
		       screen in pixels	(default: "1080")

       Object InputLinuxProperties (Since: 2.6)
	      Availability: CONFIG_LINUX

	      Properties for input-linux objects.

	      Members

		      evdev  (string) -- the path of the host evdev device to
		       use

		      grab_all	(boolean, optional) -- if true,	grab  is  tog-
		       gled for	all devices (e.g. both keyboard	and mouse) in-
		       stead of	just one device	(default: false)

		      repeat	(boolean,  optional)  --  enables  auto-repeat
		       events (default:	false)

		      grab-toggle (GrabToggleKeys, optional) --  the  key  or
		       key  combination	 that  toggles	device	grab (default:
		       ctrl-ctrl)

       Object EventLoopBaseProperties (Since: 7.1)
	      Common properties	for event loops

	      Members

		      aio-max-batch (int, optional) --	maximum	number of  re-
		       quests  in a batch for the AIO engine, 0	means that the
		       engine will use its default.  (default: 0)

		      thread-pool-min (int, optional) --  minimum  number  of
		       threads reserved	in the thread pool (default:0)

		      thread-pool-max	(int,  optional)  -- maximum number of
		       threads the thread pool can contain (default:64)

       Object IothreadProperties (Since: 2.0)
	      Properties for iothread objects.

	      Members

		      poll-max-ns (int, optional) -- the  maximum  number  of
		       nanoseconds  to	busy wait for events.  0 means polling
		       is disabled (default: 32768 on POSIX  hosts,  0	other-
		       wise)

		      poll-grow (int, optional) -- the	multiplier used	to in-
		       crease  the  polling time when the algorithm detects it
		       is missing events due to	not polling  long  enough.   0
		       selects a default behaviour (default: 0)

		      poll-shrink  (int, optional) -- the divisor used	to de-
		       crease the polling time when the	algorithm  detects  it
		       is  spending  too  long	polling	 without  encountering
		       events.	0 selects a default behaviour (default:	0)

		      The members of EventLoopBaseProperties.

	      The aio-max-batch	option is available since 6.1.

       Object MainLoopProperties (Since: 7.1)
	      Properties for the main-loop object.

	      Members

		      The members of EventLoopBaseProperties.

       Object MemoryBackendProperties (Since: 2.1)
	      Properties for objects of	classes	derived	from memory-backend.

	      Members

		      merge (boolean, optional) -- if true, mark  the	memory
		       as mergeable (default depends on	the machine type)

		      dump (boolean, optional)	-- if true, include the	memory
		       in core dumps (default depends on the machine type)

		      host-nodes  ([int],  optional) -- the list of NUMA host
		       nodes to	bind the memory	to

		      policy (HostMemPolicy, optional)	 --  the  NUMA	policy
		       (default: 'default')

		      prealloc	 (boolean,  optional)  -- if true, preallocate
		       memory (default:	false)

		      prealloc-threads	 (int,	optional)  --  number  of  CPU
		       threads to use for prealloc (default: 1)

		      prealloc-context	 (string,  optional) --	thread context
		       to use for creation of preallocation threads  (default:
		       none) (since 7.2)

		      share  (boolean,	 optional)  -- if false, the memory is
		       private to QEMU;	if true, it is shared  (default	 false
		       for   backends	memory-backend-file  and  memory-back-
		       end-ram,	true  for  backends  memory-backend-epc,  mem-
		       ory-backend-memfd, and memory-backend-shm)

		      reserve	(boolean,  optional)  -- if true, reserve swap
		       space (or huge pages)  if  applicable  (default:	 true)
		       (since 6.1)

		      size (int) -- size of the memory	region in bytes

		      x-use-canonical-path-for-ramblock-id    (boolean,   op-
		       tional) -- if true, the canonical path is used for ram-
		       block-id.  Disable this for 4.0 machine types or	 older
		       to allow	migration with newer QEMU versions.  (default:
		       false generally,	but true for machine types <= 4.0)

	      NOTE:
		 prealloc=true	and  reserve=false  cannot  be set at the same
		 time.	With reserve=true, the behavior	depends	on the operat-
		 ing system: for example, Linux	will not  reserve  swap	 space
		 for  shared  file mappings -- "not applicable".  In contrast,
		 reserve=false will bail out if	it cannot  be  configured  ac-
		 cordingly.

       Object MemoryBackendFileProperties (Since: 2.1)
	      Properties for memory-backend-file objects.

	      Members

		      align  (int,  optional)	--  the	base address alignment
		       when QEMU mmap(2)s mem-path.  Some backend stores spec-
		       ified by	mem-path require an alignment  different  than
		       the  default  one  used	by  QEMU,  e.g.	the device DAX
		       /dev/dax0.0 requires 2M alignment rather	than  4K.   In
		       such  cases,  users  can	specify	the required alignment
		       via this	option.	 0 selects a default  alignment	 (cur-
		       rently the page size).  (default: 0)

		      offset  (int,  optional)	 -- the	offset into the	target
		       file that the region starts at.	You can	use  this  op-
		       tion to back multiple regions with a single file.  Must
		       be  a  multiple	of the page size.  (default: 0)	(since
		       8.1)

		      discard-data (boolean, optional)	-- if true,  the  file
		       contents	can be destroyed when QEMU exits, to avoid un-
		       necessarily  flushing  data  to the backing file.  Note
		       that discard-data is only  an  optimization,  and  QEMU
		       might  not discard file contents	if it aborts unexpect-
		       edly or is terminated using SIGKILL.  (default: false)

		      mem-path	(string) -- the	path to	either a shared	memory
		       or huge page filesystem mount

		      pmem (boolean, optional)	-- specifies whether the back-
		       ing file	specified by mem-path is  in  host  persistent
		       memory that can be accessed using the SNIA NVM program-
		       ming model (e.g.	Intel NVDIMM).

		      readonly	 (boolean,  optional)  -- if true, the backing
		       file is	opened	read-only;  if	false,	it  is	opened
		       read-write.  (default: false)

		      rom  (OnOffAuto,	 optional)  --	whether	to create Read
		       Only Memory (ROM) that cannot be	modified  by  the  VM.
		       Any  write  attempts  to	such ROM will be denied.  Most
		       use cases want writable RAM instead of  ROM.   However,
		       selected	 use cases, like R/O NVDIMMs, can benefit from
		       ROM.  If	set to 'on', create ROM; if set	to 'off', cre-
		       ate writable RAM; if set	to 'auto', the	value  of  the
		       readonly	 property is used.  This property is primarily
		       helpful when we want to have proper RAM	in  configura-
		       tions  that  would traditionally	create ROM before this
		       property	was introduced:	VM templating, where  we  want
		       to open a file readonly (readonly set to	true) and mark
		       the memory to be	private	for QEMU (share	set to false).
		       For this	use case, we need writable RAM instead of ROM,
		       and  want  to  set  this	 property to 'off'.  (default:
		       auto, since 8.2)

		      The members of MemoryBackendProperties.

       Object MemoryBackendMemfdProperties (Since: 2.12)
	      Availability: CONFIG_LINUX

	      Properties for memory-backend-memfd objects.

	      Members

		      hugetlb (boolean, optional) -- if true, the file	to  be
		       created	resides	 in the	hugetlbfs filesystem (default:
		       false)

		      hugetlbsize (int, optional) -- the hugetlb page size on
		       systems that support multiple hugetlb  page  sizes  (it
		       must be a power of 2 value supported by the system).  0
		       selects a default page size.  This option is ignored if
		       hugetlb is false.  (default: 0)

		      seal   (boolean,	  optional)   --  if  true,  create  a
		       sealed-file, which will block further resizing  of  the
		       memory (default:	true)

		      The members of MemoryBackendProperties.

       Object MemoryBackendShmProperties (Since: 9.1)
	      Availability: CONFIG_POSIX

	      Properties for memory-backend-shm	objects.

	      This  memory  backend  supports only shared memory, which	is the
	      default.

	      Members

		      The members of MemoryBackendProperties.

       Object MemoryBackendEpcProperties (Since: 6.2)
	      Availability: CONFIG_LINUX

	      Properties for memory-backend-epc	objects.

	      The merge	boolean	option is false	by default with	epc

	      The dump boolean option is false by default with epc

	      Members

		      The members of MemoryBackendProperties.

       Object PrManagerHelperProperties	(Since:	2.11)
	      Availability: CONFIG_LINUX

	      Properties for pr-manager-helper objects.

	      Members

		      path (string) --	the path to a Unix domain  socket  for
		       connecting to the external helper

       Object QtestProperties (Since: 6.0)
	      Properties for qtest objects.

	      Members

		      chardev	(string)  -- the chardev to be used to receive
		       qtest commands on.

		      log (string, optional) -- the path to a log file

       Object RemoteObjectProperties (Since: 6.0)
	      Properties for x-remote-object objects.

	      Members

		      fd (string) -- file descriptor name  previously	passed
		       via getfd command

		      devid (string) -- the id	of the device to be associated
		       with the	file descriptor

       Object VfioUserServerProperties (Since: 7.1)
	      Properties for x-vfio-user-server	objects.

	      Members

		      socket (SocketAddress) -- socket	to be used by the lib-
		       vfio-user library

		      device  (string)	-- the ID of the device	to be emulated
		       at the server

       Object IOMMUFDProperties	(Since:	9.0)
	      Properties for iommufd objects.

	      Members

		      fd (string, optional) --	file  descriptor  name	previ-
		       ously  passed  via  getfd  command,  which represents a
		       pre-opened /dev/iommu.  This allows the iommufd	object
		       to  be  shared  across  several subsystems (VFIO, VDPA,
		       ...), and the file descriptor to	be shared  with	 other
		       process,	e.g. DPDK.  (default: QEMU opens /dev/iommu by
		       itself)

       Object AcpiGenericInitiatorProperties (Since: 9.0)
	      Properties for acpi-generic-initiator objects.

	      Members

		      pci-dev (string)	-- PCI device ID to be associated with
		       the node

		      node (int) -- NUMA node associated with the PCI device

       Object AcpiGenericPortProperties	(Since:	9.2)
	      Properties for acpi-generic-port objects.

	      Members

		      pci-bus	(string)  --  QOM  path	 of the	PCI bus	of the
		       hostbridge  associated  with  this  SRAT	 Generic  Port
		       Affinity	 Structure.  This is the same as the bus para-
		       meter for the root ports	attached to this host  bridge.
		       The resulting SRAT Generic Port Affinity	Structure will
		       refer  to  the  ACPI object in DSDT that	represents the
		       host bridge (e.g.  ACPI0016 for CXL host	bridges).  See
		       ACPI 6.5	Section	5.2.16.7 for more information.

		      node (int) -- Similar to	a NUMA node ID,	but instead of
		       providing a reference point used	for defining NUMA dis-
		       tances and access characteristics to memory or from  an
		       initiator  (e.g.	 CPU),	this node defines the boundary
		       point between non-discoverable system buses which  must
		       be described by firmware, and a discoverable bus.  NUMA
		       distances and access characteristics are	defined	to and
		       from that point.	 For system software to	establish full
		       initiator  to  target  characteristics this information
		       must be combined	with information  retrieved  from  the
		       discoverable  part  of  the path.  An example would use
		       CDAT (see UEFI.org) information read from  devices  and
		       switches	 in conjunction	with link characteristics read
		       from PCIe Configuration space.  To get  the  full  path
		       latency	from  CPU to CXL attached DRAM CXL device: Add
		       the latency from	CPU to Generic Port (from HMAT indexed
		       via the node ID in this SRAT structure) to that for CXL
		       bus links, the latency across intermediate switches and
		       from the	EP port	to the actual  memory.	 Bandwidth  is
		       more complex as there may be interleaving across	multi-
		       ple devices and shared links in the path.

       Object RngProperties (Since: 1.3)
	      Properties for objects of	classes	derived	from rng.

	      Members

		      opened  (boolean,  optional)  --	if true, the device is
		       opened immediately when applying	this option  and  will
		       probably	 fail  when processing the next	option.	 Don't
		       use; only provided for compatibility.  (default:	false)

	      Features

		      deprecated -- Member  opened  is	 deprecated.   Setting
		       true  doesn't  make sense, and false is already the de-
		       fault.

       Object RngEgdProperties (Since: 1.3)
	      Properties for rng-egd objects.

	      Members

		      chardev (string)	-- the	name  of  a  character	device
		       backend that provides the connection to the RNG daemon

		      The members of RngProperties.

       Object RngRandomProperties (Since: 1.3)
	      Availability: CONFIG_POSIX

	      Properties for rng-random	objects.

	      Members

		      filename	 (string, optional) -- the filename of the de-
		       vice on the  host  to  obtain  entropy  from  (default:
		       "/dev/urandom")

		      The members of RngProperties.

       Object IgvmCfgProperties	(Since:	10.1)
	      Availability: CONFIG_IGVM

	      Properties common	to objects that	handle IGVM files.

	      Members

		      file (string) --	IGVM file to use to configure guest

       Object SevCommonProperties (Since: 9.1)
	      Properties common	to objects that	are derivatives	of sev-common.

	      Members

		      sev-device (string, optional) --	SEV device to use (de-
		       fault: "/dev/sev")

		      cbitpos (int, optional) -- C-bit	location in page table
		       entry (default: 0)

		      reduced-phys-bits  (int)	 -- number of bits in physical
		       addresses that become unavailable when SEV is enabled

		      kernel-hashes  (boolean,	 optional)  --	if  true,  add
		       hashes  of  kernel/initrd/cmdline to a designated guest
		       firmware	page for measured boot with -kernel  (default:
		       false) (since 6.2)

       Object SevGuestProperties (Since: 2.12)
	      Properties for sev-guest objects.

	      Members

		      dh-cert-file (string, optional) -- guest	owners DH cer-
		       tificate	(encoded with base64)

		      session-file (string, optional) -- guest	owners session
		       parameters (encoded with	base64)

		      policy  (int,  optional)	 -- SEV	policy value (default:
		       0x1)

		      handle (int, optional) -- SEV firmware handle (default:
		       0)

		      legacy-vm-type  (OnOffAuto,  optional)  --  Use	legacy
		       KVM_SEV_INIT  KVM  interface  for creating the VM.  The
		       newer KVM_SEV_INIT2  interface,	from  Linux  >=	 6.10,
		       syncs  additional vCPU state when initializing the VMSA
		       structures, which will result in	a different guest mea-
		       surement.  Set this to 'on' to force compatibility with
		       older QEMU or  kernel  versions	that  rely  on	legacy
		       KVM_SEV_INIT  behavior.	'auto' will behave identically
		       to  'on',  but  will  automatically  switch  to	 using
		       KVM_SEV_INIT2  if the user specifies any	additional op-
		       tions that require it.  If set to 'off',	QEMU will  re-
		       quire  KVM_SEV_INIT2  unconditionally.	(default: off)
		       (since 9.1)

		      The members of SevCommonProperties.

       Object SevSnpGuestProperties (Since: 9.1)
	      Properties for sev-snp-guest objects.  Most of these are	direct
	      arguments	 for  the KVM_SNP_* interfaces documented in the Linux
	      kernel  source  under  Documentation/arch/x86/amd-memory-encryp-
	      tion.rst,	  which	  are	in   turn  closely  coupled  with  the
	      SNP_INIT/SNP_LAUNCH_*  firmware  commands	 documented   in   the
	      SEV-SNP Firmware ABI Specification (Rev 0.9).

	      More usage information is	also available in the QEMU source tree
	      under docs/amd-memory-encryption.

	      Members

		      policy (int, optional) -- the 'POLICY' parameter	to the
		       SNP_LAUNCH_START	 command,  as  defined	in the SEV-SNP
		       firmware	ABI (default: 0x30000)

		      guest-visible-workarounds   (string,    optional)    --
		       16-byte,	 base64-encoded	 blob to report	hypervisor-de-
		       fined workarounds, corresponding	to the 'GOSVW' parame-
		       ter of the  SNP_LAUNCH_START  command  defined  in  the
		       SEV-SNP firmware	ABI (default: all-zero)

		      id-block	 (string, optional) -- 96-byte,	base64-encoded
		       blob to	provide	 the  'ID  Block'  structure  for  the
		       SNP_LAUNCH_FINISH   command   defined  in  the  SEV-SNP
		       firmware	ABI (default: all-zero)

		      id-auth (string,	optional) -- 4096-byte,	base64-encoded
		       blob to	provide	 the  'ID  Authentication  Information
		       Structure' for the SNP_LAUNCH_FINISH command defined in
		       the SEV-SNP firmware ABI	(default: all-zero)

		      author-key-enabled   (boolean,  optional)  --  true  if
		       'id-auth' blob contains the 'AUTHOR_KEY'	field  defined
		       SEV-SNP firmware	ABI (default: false)

		      host-data  (string,  optional)  --  32-byte, base64-en-
		       coded, user-defined blob	to provide to  the  guest,  as
		       documented   for	  the  'HOST_DATA'  parameter  of  the
		       SNP_LAUNCH_FINISH command in the	SEV-SNP	 firmware  ABI
		       (default: all-zero)

		      vcek-disabled  (boolean,	optional) -- Guests are	by de-
		       fault allowed to	choose between VLEK (Versioned	Loaded
		       Endorsement  Key)  or  VCEK (Versioned Chip Endorsement
		       Key) when requesting attestation	reports	from firmware.
		       Set this	to true	to disable the use of VCEK.  (default:
		       false) (since: 9.1)

		      The members of SevCommonProperties.

       Object TdxGuestProperties (Since: 10.1)
	      Properties for tdx-guest objects.

	      Members

		      attributes (int,	optional) -- The 'attributes' of a  TD
		       guest that is passed to KVM_TDX_INIT_VM

		      sept-ve-disable (boolean, optional) -- toggle bit 28 of
		       TD  attributes  to  control  disabling of EPT violation
		       conversion to #VE on guest TD access of PENDING	pages.
		       Some  guest  OS (e.g., Linux TD guest) may require this
		       to be set, otherwise they refuse	to boot.

		      mrconfigid (string, optional) --	ID  for	 non-owner-de-
		       fined  configuration of the guest TD, e.g., run-time or
		       OS configuration	(base64	encoded	SHA384	digest).   De-
		       faults to all zeros.

		      mrowner	(string,  optional)  --	 ID  for the guest TDs
		       owner (base64 encoded SHA384 digest).  Defaults to  all
		       zeros.

		      mrownerconfig  (string,	optional)  -- ID for owner-de-
		       fined configuration of the guest	TD, e.g., specific  to
		       the workload rather than	the run-time or	OS (base64 en-
		       coded SHA384 digest).  Defaults to all zeros.

		      quote-generation-socket	(SocketAddress,	 optional)  --
		       socket address for Quote	Generation Service (QGS).  QGS
		       is a daemon running on the host.	 Without it, the guest
		       will not	be able	to get a TD quote for attestation.

       Object ThreadContextProperties (Since: 7.2)
	      Properties for thread context objects.

	      Members

		      cpu-affinity ([int], optional) -- the list of host  CPU
		       numbers used as CPU affinity for	all threads created in
		       the  thread  context  (default:	QEMU  main  thread CPU
		       affinity)

		      node-affinity ([int], optional) --  the	list  of  host
		       node  numbers  that  will be resolved to	a list of host
		       CPU numbers used	as CPU affinity.  This is  a  shortcut
		       for  specifying	the list of host CPU numbers belonging
		       to the host nodes  manually  by	setting	 cpu-affinity.
		       (default: QEMU main thread affinity)

       Enum ObjectType (Since: 6.0)

	      Values

		      acpi-generic-initiator -- Not documented

		      acpi-generic-port -- Not	documented

		      authz-list -- Not documented

		      authz-listfile -- Not documented

		      authz-pam -- Not	documented

		      authz-simple -- Not documented

		      can-bus -- Not documented

		      can-host-socketcan -- Not documented

		      colo-compare -- Not documented

		      cryptodev-backend -- Not	documented

		      cryptodev-backend-builtin -- Not	documented

		      cryptodev-backend-lkcf -- Not documented

		      cryptodev-vhost-user -- Not documented

		      dbus-vmstate -- Not documented

		      filter-buffer --	Not documented

		      filter-dump -- Not documented

		      filter-mirror --	Not documented

		      filter-redirector -- Not	documented

		      filter-replay --	Not documented

		      filter-rewriter -- Not documented

		      igvm-cfg	-- Not documented

		      input-barrier --	Not documented

		      input-linux -- Not documented

		      iommufd -- Not documented

		      iothread	-- Not documented

		      main-loop -- Not	documented

		      memory-backend-epc -- Not documented

		      memory-backend-file -- Not documented

		      memory-backend-memfd -- Not documented

		      memory-backend-ram -- Not documented

		      memory-backend-shm -- Not documented

		      pef-guest -- Not	documented

		      pr-manager-helper -- Not	documented

		      qtest --	Not documented

		      rng-builtin -- Not documented

		      rng-egd -- Not documented

		      rng-random -- Not documented

		      secret -- Not documented

		      secret_keyring -- Not documented

		      sev-guest -- Not	documented

		      sev-snp-guest --	Not documented

		      thread-context -- Not documented

		      s390-pv-guest --	Not documented

		      tdx-guest -- Not	documented

		      throttle-group -- Not documented

		      tls-creds-anon -- Not documented

		      tls-creds-psk --	Not documented

		      tls-creds-x509 -- Not documented

		      tls-cipher-suites -- Not	documented

		      x-remote-object -- Not documented

		      x-vfio-user-server -- Not documented

	      Features

		      unstable	    --	   Members     x-remote-object	   and
		       x-vfio-user-server are experimental.

       Object ObjectOptions (Since: 6.0)
	      Describes	the options of a user creatable	QOM object.

	      Members

		      qom-type	(ObjectType) --	the class name for the	object
		       to be created

		      id (string) -- the name of the new object

		      When qom-type is	acpi-generic-initiator:	The members of
		       AcpiGenericInitiatorProperties.

		      When  qom-type  is  acpi-generic-port:  The  members of
		       AcpiGenericPortProperties.

		      When   qom-type	 is   authz-list:   The	  members   of
		       AuthZListProperties.

		      When   qom-type	 is  authz-listfile:  The  members  of
		       AuthZListFileProperties.

		      When   qom-type	 is   authz-pam:   The	 members    of
		       AuthZPAMProperties.

		      When   qom-type	 is   authz-simple:   The  members  of
		       AuthZSimpleProperties.

		      When qom-type is	 can-host-socketcan:  The  members  of
		       CanHostSocketcanProperties.

		      When   qom-type	 is   colo-compare:   The  members  of
		       ColoCompareProperties.

		      When qom-type  is  cryptodev-backend:  The  members  of
		       CryptodevBackendProperties.

		      When qom-type is	cryptodev-backend-builtin: The members
		       of CryptodevBackendProperties.

		      When qom-type is	cryptodev-backend-lkcf:	The members of
		       CryptodevBackendProperties.

		      When  qom-type  is cryptodev-vhost-user:	The members of
		       CryptodevVhostUserProperties.

		      When  qom-type  is   dbus-vmstate:   The	  members   of
		       DBusVMStateProperties.

		      When   qom-type	 is   filter-buffer:  The  members  of
		       FilterBufferProperties.

		      When  qom-type	is   filter-dump:   The	  members   of
		       FilterDumpProperties.

		      When   qom-type	 is   filter-mirror:  The  members  of
		       FilterMirrorProperties.

		      When qom-type  is  filter-redirector:  The  members  of
		       FilterRedirectorProperties.

		      When   qom-type	 is   filter-replay:  The  members  of
		       NetfilterProperties.

		      When  qom-type  is  filter-rewriter:  The  members   of
		       FilterRewriterProperties.

		      When    qom-type	   is	igvm-cfg:   The	  members   of
		       IgvmCfgProperties.

		      When  qom-type  is  input-barrier:   The	  members   of
		       InputBarrierProperties.

		      When   qom-type	 is   input-linux:   The   members  of
		       InputLinuxProperties.

		      When   qom-type	 is   iommufd:	  The	 members    of
		       IOMMUFDProperties.

		      When    qom-type	   is	iothread:   The	  members   of
		       IothreadProperties.

		      When   qom-type	 is   main-loop:   The	 members    of
		       MainLoopProperties.

		      When  qom-type  is  memory-backend-epc:	The members of
		       MemoryBackendEpcProperties.

		      When qom-type is	memory-backend-file:  The  members  of
		       MemoryBackendFileProperties.

		      When  qom-type  is memory-backend-memfd:	The members of
		       MemoryBackendMemfdProperties.

		      When qom-type is	 memory-backend-ram:  The  members  of
		       MemoryBackendProperties.

		      When  qom-type  is  memory-backend-shm:	The members of
		       MemoryBackendShmProperties.

		      When qom-type  is  pr-manager-helper:  The  members  of
		       PrManagerHelperProperties.

		      When qom-type is	qtest: The members of QtestProperties.

		      When   qom-type	 is   rng-builtin:   The   members  of
		       RngProperties.

		      When   qom-type	 is   rng-egd:	  The	 members    of
		       RngEgdProperties.

		      When   qom-type	 is   rng-random:   The	  members   of
		       RngRandomProperties.

		      When   qom-type	 is    secret:	  The	 members    of
		       SecretProperties.

		      When   qom-type	 is  secret_keyring:  The  members  of
		       SecretKeyringProperties.

		      When   qom-type	 is   sev-guest:   The	 members    of
		       SevGuestProperties.

		      When   qom-type	 is   sev-snp-guest:  The  members  of
		       SevSnpGuestProperties.

		      When   qom-type	 is   tdx-guest:   The	 members    of
		       TdxGuestProperties.

		      When   qom-type	 is  thread-context:  The  members  of
		       ThreadContextProperties.

		      When  qom-type  is  throttle-group:  The	  members   of
		       ThrottleGroupProperties.

		      When   qom-type	 is  tls-creds-anon:  The  members  of
		       TlsCredsAnonProperties.

		      When  qom-type  is  tls-creds-psk:   The	  members   of
		       TlsCredsPskProperties.

		      When   qom-type	 is  tls-creds-x509:  The  members  of
		       TlsCredsX509Properties.

		      When qom-type  is  tls-cipher-suites:  The  members  of
		       TlsCredsProperties.

		      When   qom-type	is  x-remote-object:  The  members  of
		       RemoteObjectProperties.

		      When qom-type is	 x-vfio-user-server:  The  members  of
		       VfioUserServerProperties.

       Command object-add (Since: 2.0)
	      Create a QOM object.

	      Arguments

		      The members of ObjectOptions.

	      Errors

		      If qom-type is not a valid class	name

		 Example:

		     ->	{ "execute": "object-add",
			  "arguments": { "qom-type": "rng-random", "id": "rng1",
					 "filename": "/dev/hwrng" } }
		     <-	{ "return": {} }

       Command object-del (Since: 2.0)
	      Remove a QOM object.

	      Arguments

		      id (string) -- the name of the QOM object to remove

	      Errors

		      If id is	not a valid id for a QOM object

		 Example:

		     ->	{ "execute": "object-del", "arguments":	{ "id":	"rng1" } }
		     <-	{ "return": {} }

COPYRIGHT
       2025, The QEMU Project Developers

10.2.0				 Mar 01, 2026	QEMU-STORAGE-DAEMON-QMP-REF(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=qemu-storage-daemon-qmp-ref&sektion=7&manpath=FreeBSD+Ports+15.0.quarterly>

home | help