                   QEMU Monitor Protocol Events
                   ============================

BLOCK_IO_ERROR
--------------

Emitted when a disk I/O error occurs.

Data:

- "device": device name (json-string)
- "operation": I/O operation (json-string, "read" or "write")
- "action": action that has been taken, it's one of the following (json-string):
    "ignore": error has been ignored
    "report": error has been reported to the device
    "stop": error caused VM to be stopped

Example:

{ "event": "BLOCK_IO_ERROR",
    "data": { "device": "ide0-hd1",
              "operation": "write",
              "action": "stop" },
    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }

Note: If action is "stop", a STOP event will eventually follow the
BLOCK_IO_ERROR event.

RESET
-----

Emitted when the Virtual Machine is reseted.

Data: None.

Example:

{ "event": "RESET",
    "timestamp": { "seconds": 1267041653, "microseconds": 9518 } }

RESUME
------

Emitted when the Virtual Machine resumes execution.

Data: None.

Example:

{ "event": "RESUME",
    "timestamp": { "seconds": 1271770767, "microseconds": 582542 } }

RTC_CHANGE
----------

Emitted when the guest changes the RTC time.

Data:

- "offset": delta against the host UTC in seconds (json-number)

Example:

{ "event": "RTC_CHANGE",
    "data": { "offset": 78 },
    "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }

SHUTDOWN
--------

Emitted when the Virtual Machine is powered down.

Data: None.

Example:

{ "event": "SHUTDOWN",
    "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }

Note: If the command-line option "-no-shutdown" has been specified, a STOP
event will eventually follow the SHUTDOWN event.

STOP
----

Emitted when the Virtual Machine is stopped.

Data: None.

Example:

{ "event": "STOP",
    "timestamp": { "seconds": 1267041730, "microseconds": 281295 } }

VNC_CONNECTED
-------------

Emitted when a VNC client establishes a connection.

Data:

- "server": Server information (json-object)
  - "host": IP address (json-string)
  - "service": port number (json-string)
  - "family": address family (json-string, "ipv4" or "ipv6")
  - "auth": authentication method (json-string, optional)
- "client": Client information (json-object)
  - "host": IP address (json-string)
  - "service": port number (json-string)
  - "family": address family (json-string, "ipv4" or "ipv6")

Example:

{ "event": "VNC_CONNECTED",
    "data": {
        "server": { "auth": "sasl", "family": "ipv4",
                    "service": "5901", "host": "0.0.0.0" },
        "client": { "family": "ipv4", "service": "58425",
                    "host": "127.0.0.1" } },
    "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }


Note: This event is emitted before any authentication takes place, thus
the authentication ID is not provided.

VNC_DISCONNECTED
----------------

Emitted when the connection is closed.

Data:

- "server": Server information (json-object)
  - "host": IP address (json-string)
  - "service": port number (json-string)
  - "family": address family (json-string, "ipv4" or "ipv6")
  - "auth": authentication method (json-string, optional)
- "client": Client information (json-object)
  - "host": IP address (json-string)
  - "service": port number (json-string)
  - "family": address family (json-string, "ipv4" or "ipv6")
  - "x509_dname": TLS dname (json-string, optional)
  - "sasl_username": SASL username (json-string, optional)

Example:

{ "event": "VNC_DISCONNECTED",
    "data": {
        "server": { "auth": "sasl", "family": "ipv4",
                    "service": "5901", "host": "0.0.0.0" },
        "client": { "family": "ipv4", "service": "58425",
                    "host": "127.0.0.1", "sasl_username": "luiz" } },
    "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }

VNC_INITIALIZED
---------------

Emitted after authentication takes place (if any) and the VNC session is
made active.

Data:

- "server": Server information (json-object)
  - "host": IP address (json-string)
  - "service": port number (json-string)
  - "family": address family (json-string, "ipv4" or "ipv6")
  - "auth": authentication method (json-string, optional)
- "client": Client information (json-object)
  - "host": IP address (json-string)
  - "service": port number (json-string)
  - "family": address family (json-string, "ipv4" or "ipv6")
  - "x509_dname": TLS dname (json-string, optional)
  - "sasl_username": SASL username (json-string, optional)

Example:

{ "event": "VNC_INITIALIZED",
    "data": {
        "server": { "auth": "sasl", "family": "ipv4",
                    "service": "5901", "host": "0.0.0.0"},
        "client": { "family": "ipv4", "service": "46089",
                    "host": "127.0.0.1", "sasl_username": "luiz" } },
        "timestamp": { "seconds": 1263475302, "microseconds": 150772 } }

SPICE_CONNECTED, SPICE_DISCONNECTED
-----------------------------------

Emitted when a SPICE client connects or disconnects.

Data:

- "server": Server information (json-object)
  - "host": IP address (json-string)
  - "port": port number (json-string)
  - "family": address family (json-string, "ipv4" or "ipv6")
- "client": Client information (json-object)
  - "host": IP address (json-string)
  - "port": port number (json-string)
  - "family": address family (json-string, "ipv4" or "ipv6")

Example:

{ "timestamp": {"seconds": 1290688046, "microseconds": 388707},
  "event": "SPICE_CONNECTED",
  "data": {
    "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
    "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
}}


SPICE_INITIALIZED
-----------------

Emitted after initial handshake and authentication takes place (if any)
and the SPICE channel is up'n'running

Data:

- "server": Server information (json-object)
  - "host": IP address (json-string)
  - "port": port number (json-string)
  - "family": address family (json-string, "ipv4" or "ipv6")
  - "auth": authentication method (json-string, optional)
- "client": Client information (json-object)
  - "host": IP address (json-string)
  - "port": port number (json-string)
  - "family": address family (json-string, "ipv4" or "ipv6")
  - "connection-id": spice connection id.  All channels with the same id
                     belong to the same spice session (json-int)
  - "channel-type": channel type.  "1" is the main control channel, filter for
                    this one if you want track spice sessions only (json-int)
  - "channel-id": channel id.  Usually "0", might be different needed when
                  multiple channels of the same type exist, such as multiple
                  display channels in a multihead setup (json-int)
  - "tls": whevener the channel is encrypted (json-bool)

Example:

{ "timestamp": {"seconds": 1290688046, "microseconds": 417172},
  "event": "SPICE_INITIALIZED",
  "data": {"server": {"auth": "spice", "port": "5921",
                      "family": "ipv4", "host": "127.0.0.1"},
           "client": {"port": "49004", "family": "ipv4", "channel-type": 3,
                      "connection-id": 1804289383, "host": "127.0.0.1",
                      "channel-id": 0, "tls": true}
}}


WATCHDOG
--------

Emitted when the watchdog device's timer is expired.

Data:

- "action": Action that has been taken, it's one of the following (json-string):
            "reset", "shutdown", "poweroff", "pause", "debug", or "none"

Example:

{ "event": "WATCHDOG",
     "data": { "action": "reset" },
     "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }

Note: If action is "reset", "shutdown", or "pause" the WATCHDOG event is
followed respectively by the RESET, SHUTDOWN, or STOP events.
