{
  "fts_flatcurve_expunge": {
    "root": "fts-flatcurve",
    "added": {
      "fts_flatcurve": false
    },
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "mailbox": {
        "text": "<p>The mailbox name</p>\n"
      },
      "uid": {
        "text": "<p>The UID that was expunged from FTS index</p>\n"
      }
    },
    "text": "<p><span class=\"VPBadge tip\">Added: 2.4.0</span>\nEmitted when a message is expunged from a mailbox.</p>\n"
  },
  "fts_flatcurve_index": {
    "added": {
      "fts_flatcurve": false
    },
    "root": "fts-flatcurve",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "mailbox": {
        "text": "<p>The mailbox name</p>\n"
      },
      "uid": {
        "text": "<p>The UID that was added to the FTS index</p>\n"
      }
    },
    "text": "<p><span class=\"VPBadge tip\">Added: 2.4.0</span>\nEmitted when a message is indexed.</p>\n"
  },
  "fts_flatcurve_last_uid": {
    "added": {
      "fts_flatcurve": false
    },
    "root": "fts-flatcurve",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "mailbox": {
        "text": "<p>The mailbox name</p>\n"
      },
      "uid": {
        "text": "<p>The last UID contained in the FTS index</p>\n"
      }
    },
    "text": "<p><span class=\"VPBadge tip\">Added: 2.4.0</span>\nEmitted when the system queries for the last UID indexed.</p>\n"
  },
  "fts_flatcurve_optimize": {
    "added": {
      "fts_flatcurve": false
    },
    "root": "fts-flatcurve",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "mailbox": {
        "text": "<p>The mailbox name</p>\n"
      }
    },
    "text": "<p><span class=\"VPBadge tip\">Added: 2.4.0</span>\nEmitted when a mailbox is optimized.</p>\n"
  },
  "fts_flatcurve_query": {
    "added": {
      "fts_flatcurve": false
    },
    "root": "fts-flatcurve",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "count": {
        "text": "<p>The number of messages matched</p>\n"
      },
      "mailbox": {
        "text": "<p>The mailbox name</p>\n"
      },
      "maybe": {
        "text": "<p>Are the results uncertain? [yes | no]</p>\n"
      },
      "query": {
        "text": "<p>The query text sent to Xapian</p>\n"
      },
      "uids": {
        "text": "<p>The list of UIDs returned by the query</p>\n"
      }
    },
    "text": "<p><span class=\"VPBadge tip\">Added: 2.4.0</span>\nEmitted when a query is completed.</p>\n"
  },
  "fts_flatcurve_rescan": {
    "added": {
      "fts_flatcurve": false
    },
    "root": "fts-flatcurve",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "expunged": {
        "text": "<p>The list of UIDs that were expunged during rescan</p>\n"
      },
      "mailbox": {
        "text": "<p>The mailbox name</p>\n"
      },
      "status": {
        "text": "<p>Status of the rescan [expunge_msgs | missing_msgs | ok]</p>\n"
      },
      "uids": {
        "text": "<p>The list of UIDs that triggered a non-ok status response</p>\n"
      }
    },
    "text": "<p><span class=\"VPBadge tip\">Added: 2.4.0</span>\nEmitted when a rescan is completed.</p>\n"
  },
  "fts_flatcurve_rotate": {
    "added": {
      "fts_flatcurve": false
    },
    "root": "fts-flatcurve",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "mailbox": {
        "text": "<p>The mailbox name</p>\n"
      }
    },
    "text": "<p><span class=\"VPBadge tip\">Added: 2.4.0</span>\nEmitted when a mailbox has its underlying Xapian DB rotated.</p>\n"
  },
  "auth_client_passdb_lookup_started": {
    "root": "auth-client",
    "inherit": "auth_client_lookup",
    "text": "<p>Authentication client starts a passdb lookup.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "user": {
        "text": "<p>Full username to lookup.</p>\n"
      },
      "error": {
        "text": "<p>Error string, if error occurred.</p>\n"
      },
      "mechanism": {
        "text": "<p>Name of used SASL mechanism (e.g. PLAIN).</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_auth_client_common_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Name of service. Examples: <code>imap</code>, <code>pop3</code>, <code>lmtp</code>, ...</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_auth_client_common_protocol_added": false
        }
      },
      "transport": {
        "text": "<p>Transport security indicator. Values:</p>\n<ul>\n<li><code>insecure</code></li>\n<li><code>secured</code>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span> Secure non-TLS connections (e.g. from localhost) are now <code>secured</code> rather than <code>trusted</code>.</li>\n</ul>\n</li>\n<li><code>TLS</code></li>\n</ul>\n"
      },
      "session": {
        "text": "<p>Session identifier.</p>\n"
      },
      "certificate_user": {
        "text": "<p>Username from certificate.</p>\n"
      },
      "client_id": {
        "text": "<p>Expands to client ID request as IMAP arglist. Needs <code><a href=\"/main/core/summaries/settings.html#imap_id_retain\">imap_id_retain = yes</a></code>.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP client connected to.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP of client.</p>\n"
      },
      "local_port": {
        "text": "<p>Local port client connected to.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port of client.</p>\n"
      },
      "real_local_ip": {
        "text": "<p>Real local IP as seen by the server.</p>\n"
      },
      "real_remote_ip": {
        "text": "<p>Real remote IP as seen by the server.</p>\n"
      },
      "real_local_port": {
        "text": "<p>Real local port as seen by the server.</p>\n"
      },
      "real_remote_port": {
        "text": "<p>Real remote port as seen by the server.</p>\n"
      },
      "tls_cipher": {
        "text": "<p>Cipher name used, e.g. <code>TLS_AES_256_GCM_SHA384</code>.</p>\n"
      },
      "tls_cipher_bits": {
        "text": "<p>Cipher bits, e.g. <code>256</code>.</p>\n"
      },
      "tls_pfs": {
        "text": "<p>Perfect forward-security mechanism, e.g. <code>KxANY</code>, <code>KxECDHE</code>.</p>\n"
      },
      "tls_protocol": {
        "text": "<p>TLS protocol name, e.g. <code>TLSv1.3</code>.</p>\n"
      }
    }
  },
  "auth_client_passdb_lookup_finished": {
    "root": "auth-client",
    "inherit": "auth_client_lookup",
    "text": "<p>Authentication client finishes a passdb lookup.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "user": {
        "text": "<p>Full username to lookup.</p>\n"
      },
      "error": {
        "text": "<p>Error string, if error occurred.</p>\n"
      },
      "mechanism": {
        "text": "<p>Name of used SASL mechanism (e.g. PLAIN).</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_auth_client_common_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Name of service. Examples: <code>imap</code>, <code>pop3</code>, <code>lmtp</code>, ...</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_auth_client_common_protocol_added": false
        }
      },
      "transport": {
        "text": "<p>Transport security indicator. Values:</p>\n<ul>\n<li><code>insecure</code></li>\n<li><code>secured</code>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span> Secure non-TLS connections (e.g. from localhost) are now <code>secured</code> rather than <code>trusted</code>.</li>\n</ul>\n</li>\n<li><code>TLS</code></li>\n</ul>\n"
      },
      "session": {
        "text": "<p>Session identifier.</p>\n"
      },
      "certificate_user": {
        "text": "<p>Username from certificate.</p>\n"
      },
      "client_id": {
        "text": "<p>Expands to client ID request as IMAP arglist. Needs <code><a href=\"/main/core/summaries/settings.html#imap_id_retain\">imap_id_retain = yes</a></code>.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP client connected to.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP of client.</p>\n"
      },
      "local_port": {
        "text": "<p>Local port client connected to.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port of client.</p>\n"
      },
      "real_local_ip": {
        "text": "<p>Real local IP as seen by the server.</p>\n"
      },
      "real_remote_ip": {
        "text": "<p>Real remote IP as seen by the server.</p>\n"
      },
      "real_local_port": {
        "text": "<p>Real local port as seen by the server.</p>\n"
      },
      "real_remote_port": {
        "text": "<p>Real remote port as seen by the server.</p>\n"
      },
      "tls_cipher": {
        "text": "<p>Cipher name used, e.g. <code>TLS_AES_256_GCM_SHA384</code>.</p>\n"
      },
      "tls_cipher_bits": {
        "text": "<p>Cipher bits, e.g. <code>256</code>.</p>\n"
      },
      "tls_pfs": {
        "text": "<p>Perfect forward-security mechanism, e.g. <code>KxANY</code>, <code>KxECDHE</code>.</p>\n"
      },
      "tls_protocol": {
        "text": "<p>TLS protocol name, e.g. <code>TLSv1.3</code>.</p>\n"
      }
    }
  },
  "auth_client_request_started": {
    "root": "auth-client",
    "inherit": "auth_client_request",
    "text": "<p>Authentication client starts authentication request.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "user": {
        "text": "<p>Username, if present.</p>\n"
      },
      "original_user": {
        "text": "<p>Original username, if present.</p>\n"
      },
      "auth_user": {
        "text": "<p>Auth username, if present.</p>\n"
      },
      "error": {
        "text": "<p>Error string, if error occurred.</p>\n"
      },
      "mechanism": {
        "text": "<p>Name of used SASL mechanism (e.g. PLAIN).</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_auth_client_common_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Name of service. Examples: <code>imap</code>, <code>pop3</code>, <code>lmtp</code>, ...</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_auth_client_common_protocol_added": false
        }
      },
      "transport": {
        "text": "<p>Transport security indicator. Values:</p>\n<ul>\n<li><code>insecure</code></li>\n<li><code>secured</code>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span> Secure non-TLS connections (e.g. from localhost) are now <code>secured</code> rather than <code>trusted</code>.</li>\n</ul>\n</li>\n<li><code>TLS</code></li>\n</ul>\n"
      },
      "session": {
        "text": "<p>Session identifier.</p>\n"
      },
      "certificate_user": {
        "text": "<p>Username from certificate.</p>\n"
      },
      "client_id": {
        "text": "<p>Expands to client ID request as IMAP arglist. Needs <code><a href=\"/main/core/summaries/settings.html#imap_id_retain\">imap_id_retain = yes</a></code>.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP client connected to.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP of client.</p>\n"
      },
      "local_port": {
        "text": "<p>Local port client connected to.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port of client.</p>\n"
      },
      "real_local_ip": {
        "text": "<p>Real local IP as seen by the server.</p>\n"
      },
      "real_remote_ip": {
        "text": "<p>Real remote IP as seen by the server.</p>\n"
      },
      "real_local_port": {
        "text": "<p>Real local port as seen by the server.</p>\n"
      },
      "real_remote_port": {
        "text": "<p>Real remote port as seen by the server.</p>\n"
      },
      "tls_cipher": {
        "text": "<p>Cipher name used, e.g. <code>TLS_AES_256_GCM_SHA384</code>.</p>\n"
      },
      "tls_cipher_bits": {
        "text": "<p>Cipher bits, e.g. <code>256</code>.</p>\n"
      },
      "tls_pfs": {
        "text": "<p>Perfect forward-security mechanism, e.g. <code>KxANY</code>, <code>KxECDHE</code>.</p>\n"
      },
      "tls_protocol": {
        "text": "<p>TLS protocol name, e.g. <code>TLSv1.3</code>.</p>\n"
      }
    }
  },
  "auth_client_request_challenged": {
    "root": "auth-client",
    "inherit": "auth_client_request",
    "text": "<p>Authentication client receives a request from server to continue SASL\nauthentication.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "user": {
        "text": "<p>Username, if present.</p>\n"
      },
      "original_user": {
        "text": "<p>Original username, if present.</p>\n"
      },
      "auth_user": {
        "text": "<p>Auth username, if present.</p>\n"
      },
      "error": {
        "text": "<p>Error string, if error occurred.</p>\n"
      },
      "mechanism": {
        "text": "<p>Name of used SASL mechanism (e.g. PLAIN).</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_auth_client_common_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Name of service. Examples: <code>imap</code>, <code>pop3</code>, <code>lmtp</code>, ...</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_auth_client_common_protocol_added": false
        }
      },
      "transport": {
        "text": "<p>Transport security indicator. Values:</p>\n<ul>\n<li><code>insecure</code></li>\n<li><code>secured</code>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span> Secure non-TLS connections (e.g. from localhost) are now <code>secured</code> rather than <code>trusted</code>.</li>\n</ul>\n</li>\n<li><code>TLS</code></li>\n</ul>\n"
      },
      "session": {
        "text": "<p>Session identifier.</p>\n"
      },
      "certificate_user": {
        "text": "<p>Username from certificate.</p>\n"
      },
      "client_id": {
        "text": "<p>Expands to client ID request as IMAP arglist. Needs <code><a href=\"/main/core/summaries/settings.html#imap_id_retain\">imap_id_retain = yes</a></code>.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP client connected to.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP of client.</p>\n"
      },
      "local_port": {
        "text": "<p>Local port client connected to.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port of client.</p>\n"
      },
      "real_local_ip": {
        "text": "<p>Real local IP as seen by the server.</p>\n"
      },
      "real_remote_ip": {
        "text": "<p>Real remote IP as seen by the server.</p>\n"
      },
      "real_local_port": {
        "text": "<p>Real local port as seen by the server.</p>\n"
      },
      "real_remote_port": {
        "text": "<p>Real remote port as seen by the server.</p>\n"
      },
      "tls_cipher": {
        "text": "<p>Cipher name used, e.g. <code>TLS_AES_256_GCM_SHA384</code>.</p>\n"
      },
      "tls_cipher_bits": {
        "text": "<p>Cipher bits, e.g. <code>256</code>.</p>\n"
      },
      "tls_pfs": {
        "text": "<p>Perfect forward-security mechanism, e.g. <code>KxANY</code>, <code>KxECDHE</code>.</p>\n"
      },
      "tls_protocol": {
        "text": "<p>TLS protocol name, e.g. <code>TLSv1.3</code>.</p>\n"
      }
    }
  },
  "auth_client_request_continued": {
    "root": "auth-client",
    "inherit": "auth_client_request",
    "text": "<p>Authentication client continues SASL authentication by sending a response\nto server request.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "user": {
        "text": "<p>Username, if present.</p>\n"
      },
      "original_user": {
        "text": "<p>Original username, if present.</p>\n"
      },
      "auth_user": {
        "text": "<p>Auth username, if present.</p>\n"
      },
      "error": {
        "text": "<p>Error string, if error occurred.</p>\n"
      },
      "mechanism": {
        "text": "<p>Name of used SASL mechanism (e.g. PLAIN).</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_auth_client_common_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Name of service. Examples: <code>imap</code>, <code>pop3</code>, <code>lmtp</code>, ...</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_auth_client_common_protocol_added": false
        }
      },
      "transport": {
        "text": "<p>Transport security indicator. Values:</p>\n<ul>\n<li><code>insecure</code></li>\n<li><code>secured</code>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span> Secure non-TLS connections (e.g. from localhost) are now <code>secured</code> rather than <code>trusted</code>.</li>\n</ul>\n</li>\n<li><code>TLS</code></li>\n</ul>\n"
      },
      "session": {
        "text": "<p>Session identifier.</p>\n"
      },
      "certificate_user": {
        "text": "<p>Username from certificate.</p>\n"
      },
      "client_id": {
        "text": "<p>Expands to client ID request as IMAP arglist. Needs <code><a href=\"/main/core/summaries/settings.html#imap_id_retain\">imap_id_retain = yes</a></code>.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP client connected to.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP of client.</p>\n"
      },
      "local_port": {
        "text": "<p>Local port client connected to.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port of client.</p>\n"
      },
      "real_local_ip": {
        "text": "<p>Real local IP as seen by the server.</p>\n"
      },
      "real_remote_ip": {
        "text": "<p>Real remote IP as seen by the server.</p>\n"
      },
      "real_local_port": {
        "text": "<p>Real local port as seen by the server.</p>\n"
      },
      "real_remote_port": {
        "text": "<p>Real remote port as seen by the server.</p>\n"
      },
      "tls_cipher": {
        "text": "<p>Cipher name used, e.g. <code>TLS_AES_256_GCM_SHA384</code>.</p>\n"
      },
      "tls_cipher_bits": {
        "text": "<p>Cipher bits, e.g. <code>256</code>.</p>\n"
      },
      "tls_pfs": {
        "text": "<p>Perfect forward-security mechanism, e.g. <code>KxANY</code>, <code>KxECDHE</code>.</p>\n"
      },
      "tls_protocol": {
        "text": "<p>TLS protocol name, e.g. <code>TLSv1.3</code>.</p>\n"
      }
    }
  },
  "auth_client_request_finished": {
    "root": "auth-client",
    "inherit": "auth_client_request",
    "text": "<p>Authentication client receives response from server that authentication is\nfinished, either success or failure.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "user": {
        "text": "<p>Username, if present.</p>\n"
      },
      "original_user": {
        "text": "<p>Original username, if present.</p>\n"
      },
      "auth_user": {
        "text": "<p>Auth username, if present.</p>\n"
      },
      "error": {
        "text": "<p>Error string, if error occurred.</p>\n"
      },
      "mechanism": {
        "text": "<p>Name of used SASL mechanism (e.g. PLAIN).</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_auth_client_common_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Name of service. Examples: <code>imap</code>, <code>pop3</code>, <code>lmtp</code>, ...</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_auth_client_common_protocol_added": false
        }
      },
      "transport": {
        "text": "<p>Transport security indicator. Values:</p>\n<ul>\n<li><code>insecure</code></li>\n<li><code>secured</code>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span> Secure non-TLS connections (e.g. from localhost) are now <code>secured</code> rather than <code>trusted</code>.</li>\n</ul>\n</li>\n<li><code>TLS</code></li>\n</ul>\n"
      },
      "session": {
        "text": "<p>Session identifier.</p>\n"
      },
      "certificate_user": {
        "text": "<p>Username from certificate.</p>\n"
      },
      "client_id": {
        "text": "<p>Expands to client ID request as IMAP arglist. Needs <code><a href=\"/main/core/summaries/settings.html#imap_id_retain\">imap_id_retain = yes</a></code>.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP client connected to.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP of client.</p>\n"
      },
      "local_port": {
        "text": "<p>Local port client connected to.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port of client.</p>\n"
      },
      "real_local_ip": {
        "text": "<p>Real local IP as seen by the server.</p>\n"
      },
      "real_remote_ip": {
        "text": "<p>Real remote IP as seen by the server.</p>\n"
      },
      "real_local_port": {
        "text": "<p>Real local port as seen by the server.</p>\n"
      },
      "real_remote_port": {
        "text": "<p>Real remote port as seen by the server.</p>\n"
      },
      "tls_cipher": {
        "text": "<p>Cipher name used, e.g. <code>TLS_AES_256_GCM_SHA384</code>.</p>\n"
      },
      "tls_cipher_bits": {
        "text": "<p>Cipher bits, e.g. <code>256</code>.</p>\n"
      },
      "tls_pfs": {
        "text": "<p>Perfect forward-security mechanism, e.g. <code>KxANY</code>, <code>KxECDHE</code>.</p>\n"
      },
      "tls_protocol": {
        "text": "<p>TLS protocol name, e.g. <code>TLSv1.3</code>.</p>\n"
      }
    }
  },
  "auth_client_userdb_list_started": {
    "root": "auth-client",
    "inherit": "auth_client_common",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "user_mask": {
        "text": "<p>User mask to list.</p>\n"
      },
      "mechanism": {
        "text": "<p>Name of used SASL mechanism (e.g. PLAIN).</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_auth_client_common_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Name of service. Examples: <code>imap</code>, <code>pop3</code>, <code>lmtp</code>, ...</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_auth_client_common_protocol_added": false
        }
      },
      "transport": {
        "text": "<p>Transport security indicator. Values:</p>\n<ul>\n<li><code>insecure</code></li>\n<li><code>secured</code>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span> Secure non-TLS connections (e.g. from localhost) are now <code>secured</code> rather than <code>trusted</code>.</li>\n</ul>\n</li>\n<li><code>TLS</code></li>\n</ul>\n"
      },
      "session": {
        "text": "<p>Session identifier.</p>\n"
      },
      "certificate_user": {
        "text": "<p>Username from certificate.</p>\n"
      },
      "client_id": {
        "text": "<p>Expands to client ID request as IMAP arglist. Needs <code><a href=\"/main/core/summaries/settings.html#imap_id_retain\">imap_id_retain = yes</a></code>.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP client connected to.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP of client.</p>\n"
      },
      "local_port": {
        "text": "<p>Local port client connected to.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port of client.</p>\n"
      },
      "real_local_ip": {
        "text": "<p>Real local IP as seen by the server.</p>\n"
      },
      "real_remote_ip": {
        "text": "<p>Real remote IP as seen by the server.</p>\n"
      },
      "real_local_port": {
        "text": "<p>Real local port as seen by the server.</p>\n"
      },
      "real_remote_port": {
        "text": "<p>Real remote port as seen by the server.</p>\n"
      },
      "tls_cipher": {
        "text": "<p>Cipher name used, e.g. <code>TLS_AES_256_GCM_SHA384</code>.</p>\n"
      },
      "tls_cipher_bits": {
        "text": "<p>Cipher bits, e.g. <code>256</code>.</p>\n"
      },
      "tls_pfs": {
        "text": "<p>Perfect forward-security mechanism, e.g. <code>KxANY</code>, <code>KxECDHE</code>.</p>\n"
      },
      "tls_protocol": {
        "text": "<p>TLS protocol name, e.g. <code>TLSv1.3</code>.</p>\n"
      }
    },
    "text": "<p>Authentication client starts userdb iteration.</p>\n"
  },
  "auth_client_userdb_list_finished": {
    "root": "auth-client",
    "inherit": "auth_client_common",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "user_mask": {
        "text": "<p>User mask to list.</p>\n"
      },
      "error": {
        "text": "<p>Error string, if error occurred.</p>\n"
      },
      "mechanism": {
        "text": "<p>Name of used SASL mechanism (e.g. PLAIN).</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_auth_client_common_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Name of service. Examples: <code>imap</code>, <code>pop3</code>, <code>lmtp</code>, ...</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_auth_client_common_protocol_added": false
        }
      },
      "transport": {
        "text": "<p>Transport security indicator. Values:</p>\n<ul>\n<li><code>insecure</code></li>\n<li><code>secured</code>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span> Secure non-TLS connections (e.g. from localhost) are now <code>secured</code> rather than <code>trusted</code>.</li>\n</ul>\n</li>\n<li><code>TLS</code></li>\n</ul>\n"
      },
      "session": {
        "text": "<p>Session identifier.</p>\n"
      },
      "certificate_user": {
        "text": "<p>Username from certificate.</p>\n"
      },
      "client_id": {
        "text": "<p>Expands to client ID request as IMAP arglist. Needs <code><a href=\"/main/core/summaries/settings.html#imap_id_retain\">imap_id_retain = yes</a></code>.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP client connected to.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP of client.</p>\n"
      },
      "local_port": {
        "text": "<p>Local port client connected to.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port of client.</p>\n"
      },
      "real_local_ip": {
        "text": "<p>Real local IP as seen by the server.</p>\n"
      },
      "real_remote_ip": {
        "text": "<p>Real remote IP as seen by the server.</p>\n"
      },
      "real_local_port": {
        "text": "<p>Real local port as seen by the server.</p>\n"
      },
      "real_remote_port": {
        "text": "<p>Real remote port as seen by the server.</p>\n"
      },
      "tls_cipher": {
        "text": "<p>Cipher name used, e.g. <code>TLS_AES_256_GCM_SHA384</code>.</p>\n"
      },
      "tls_cipher_bits": {
        "text": "<p>Cipher bits, e.g. <code>256</code>.</p>\n"
      },
      "tls_pfs": {
        "text": "<p>Perfect forward-security mechanism, e.g. <code>KxANY</code>, <code>KxECDHE</code>.</p>\n"
      },
      "tls_protocol": {
        "text": "<p>TLS protocol name, e.g. <code>TLSv1.3</code>.</p>\n"
      }
    },
    "text": "<p>Authentication client finishes userdb iteration.</p>\n"
  },
  "auth_client_userdb_lookup_started": {
    "root": "auth-client",
    "inherit": "auth_client_lookup",
    "text": "<p>Authentication client starts a userdb lookup.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "user": {
        "text": "<p>Full username to lookup.</p>\n"
      },
      "error": {
        "text": "<p>Error string, if error occurred.</p>\n"
      },
      "mechanism": {
        "text": "<p>Name of used SASL mechanism (e.g. PLAIN).</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_auth_client_common_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Name of service. Examples: <code>imap</code>, <code>pop3</code>, <code>lmtp</code>, ...</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_auth_client_common_protocol_added": false
        }
      },
      "transport": {
        "text": "<p>Transport security indicator. Values:</p>\n<ul>\n<li><code>insecure</code></li>\n<li><code>secured</code>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span> Secure non-TLS connections (e.g. from localhost) are now <code>secured</code> rather than <code>trusted</code>.</li>\n</ul>\n</li>\n<li><code>TLS</code></li>\n</ul>\n"
      },
      "session": {
        "text": "<p>Session identifier.</p>\n"
      },
      "certificate_user": {
        "text": "<p>Username from certificate.</p>\n"
      },
      "client_id": {
        "text": "<p>Expands to client ID request as IMAP arglist. Needs <code><a href=\"/main/core/summaries/settings.html#imap_id_retain\">imap_id_retain = yes</a></code>.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP client connected to.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP of client.</p>\n"
      },
      "local_port": {
        "text": "<p>Local port client connected to.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port of client.</p>\n"
      },
      "real_local_ip": {
        "text": "<p>Real local IP as seen by the server.</p>\n"
      },
      "real_remote_ip": {
        "text": "<p>Real remote IP as seen by the server.</p>\n"
      },
      "real_local_port": {
        "text": "<p>Real local port as seen by the server.</p>\n"
      },
      "real_remote_port": {
        "text": "<p>Real remote port as seen by the server.</p>\n"
      },
      "tls_cipher": {
        "text": "<p>Cipher name used, e.g. <code>TLS_AES_256_GCM_SHA384</code>.</p>\n"
      },
      "tls_cipher_bits": {
        "text": "<p>Cipher bits, e.g. <code>256</code>.</p>\n"
      },
      "tls_pfs": {
        "text": "<p>Perfect forward-security mechanism, e.g. <code>KxANY</code>, <code>KxECDHE</code>.</p>\n"
      },
      "tls_protocol": {
        "text": "<p>TLS protocol name, e.g. <code>TLSv1.3</code>.</p>\n"
      }
    }
  },
  "auth_client_userdb_lookup_finished": {
    "root": "auth-client",
    "inherit": "auth_client_lookup",
    "text": "<p>Authentication client finishes a userdb lookup.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "user": {
        "text": "<p>Full username to lookup.</p>\n"
      },
      "error": {
        "text": "<p>Error string, if error occurred.</p>\n"
      },
      "mechanism": {
        "text": "<p>Name of used SASL mechanism (e.g. PLAIN).</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_auth_client_common_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Name of service. Examples: <code>imap</code>, <code>pop3</code>, <code>lmtp</code>, ...</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_auth_client_common_protocol_added": false
        }
      },
      "transport": {
        "text": "<p>Transport security indicator. Values:</p>\n<ul>\n<li><code>insecure</code></li>\n<li><code>secured</code>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span> Secure non-TLS connections (e.g. from localhost) are now <code>secured</code> rather than <code>trusted</code>.</li>\n</ul>\n</li>\n<li><code>TLS</code></li>\n</ul>\n"
      },
      "session": {
        "text": "<p>Session identifier.</p>\n"
      },
      "certificate_user": {
        "text": "<p>Username from certificate.</p>\n"
      },
      "client_id": {
        "text": "<p>Expands to client ID request as IMAP arglist. Needs <code><a href=\"/main/core/summaries/settings.html#imap_id_retain\">imap_id_retain = yes</a></code>.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP client connected to.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP of client.</p>\n"
      },
      "local_port": {
        "text": "<p>Local port client connected to.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port of client.</p>\n"
      },
      "real_local_ip": {
        "text": "<p>Real local IP as seen by the server.</p>\n"
      },
      "real_remote_ip": {
        "text": "<p>Real remote IP as seen by the server.</p>\n"
      },
      "real_local_port": {
        "text": "<p>Real local port as seen by the server.</p>\n"
      },
      "real_remote_port": {
        "text": "<p>Real remote port as seen by the server.</p>\n"
      },
      "tls_cipher": {
        "text": "<p>Cipher name used, e.g. <code>TLS_AES_256_GCM_SHA384</code>.</p>\n"
      },
      "tls_cipher_bits": {
        "text": "<p>Cipher bits, e.g. <code>256</code>.</p>\n"
      },
      "tls_pfs": {
        "text": "<p>Perfect forward-security mechanism, e.g. <code>KxANY</code>, <code>KxECDHE</code>.</p>\n"
      },
      "tls_protocol": {
        "text": "<p>TLS protocol name, e.g. <code>TLSv1.3</code>.</p>\n"
      }
    }
  },
  "auth_request_finished": {
    "root": "auth",
    "inherit": "auth_server_common",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "error": {
        "text": "<p>Set when error happens.</p>\n"
      },
      "success": {
        "text": "<p><code>yes</code>, when authentication succeeded.</p>\n"
      },
      "policy_penalty": {
        "text": "<p>Time of penalty added by policy server.</p>\n"
      },
      "policy_result": {
        "text": "<p><code>ok</code>, <code>delayed</code>, or <code>refused</code>.</p>\n"
      },
      "user": {
        "text": "<p>Full username. This can change during authentication, for example due to passdb lookups.</p>\n"
      },
      "original_user": {
        "text": "<p>Original username exactly as provided by the client.</p>\n"
      },
      "translated_user": {
        "text": "<p>Similar to <code>original_user</code>, except after <code><a href=\"/main/core/summaries/settings.html#auth_username_translation\">auth_username_translation</a></code> translations are applied.</p>\n"
      },
      "login_user": {
        "text": "<p>When doing a master user login, the user we are logging in as. Otherwise not set.</p>\n"
      },
      "master_user": {
        "text": "<p>When doing a master user login, the master username. Otherwise not set.</p>\n"
      },
      "mechanism": {
        "text": "<p>Name of used SASL mechanism (e.g. PLAIN).</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_auth_server_common_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Service doing the lookup (e.g. <code>imap</code>, <code>pop3</code>, ...).</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_auth_server_common_protocol_added": false
        }
      },
      "session": {
        "text": "<p>Session ID.</p>\n"
      },
      "client_id": {
        "text": "<p>Expands to client ID request as IMAP arglist. Needs <code><a href=\"/main/core/summaries/settings.html#imap_id_retain\">imap_id_retain = yes</a></code>.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP address of the client connection.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP address where client connected to.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port of the client connection.</p>\n"
      },
      "local_port": {
        "text": "<p>Local port where the client connected to.</p>\n"
      },
      "real_remote_ip": {
        "text": "<p>Same as <code>remote_ip</code>, except if the connection was proxied this is the proxy's IP address.</p>\n"
      },
      "real_local_ip": {
        "text": "<p>Same as <code>local_ip</code>, except if the connection was proxied this is the proxy's IP where proxy connected to.</p>\n"
      },
      "real_remote_port": {
        "text": "<p>Same as <code>remote_port</code>, except if the connection was proxied this is the proxy connection's port.</p>\n"
      },
      "real_local_port": {
        "text": "<p>Same as <code>local_port</code>, except if the connection was proxied this is the local port where the proxy connected to.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI hostname, if given.</p>\n"
      },
      "transport": {
        "text": "<p>Transport security indicator. Values:</p>\n<ul>\n<li><code>insecure</code></li>\n<li><code>secured</code>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span> Secure non-TLS connections (e.g. from localhost) are now <code>secured</code> rather than <code>trusted</code>.</li>\n</ul>\n</li>\n<li><code>TLS</code></li>\n</ul>\n"
      }
    },
    "text": "<p>Authentication request finished.</p>\n<p>Most useful for tracking status of authentication/login attempts.</p>\n"
  },
  "auth_passdb_request_started": {
    "root": "auth",
    "inherit": [
      "auth_server_common",
      "auth_server_passdb"
    ],
    "text": "<p>Processing has begun for a passdb block.</p>\n<p>Most useful for debugging authentication flow.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "user": {
        "text": "<p>Full username. This can change during authentication, for example due to passdb lookups.</p>\n"
      },
      "original_user": {
        "text": "<p>Original username exactly as provided by the client.</p>\n"
      },
      "translated_user": {
        "text": "<p>Similar to <code>original_user</code>, except after <code><a href=\"/main/core/summaries/settings.html#auth_username_translation\">auth_username_translation</a></code> translations are applied.</p>\n"
      },
      "login_user": {
        "text": "<p>When doing a master user login, the user we are logging in as. Otherwise not set.</p>\n"
      },
      "master_user": {
        "text": "<p>When doing a master user login, the master username. Otherwise not set.</p>\n"
      },
      "mechanism": {
        "text": "<p>Name of used SASL mechanism (e.g. PLAIN).</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_auth_server_common_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Service doing the lookup (e.g. <code>imap</code>, <code>pop3</code>, ...).</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_auth_server_common_protocol_added": false
        }
      },
      "session": {
        "text": "<p>Session ID.</p>\n"
      },
      "client_id": {
        "text": "<p>Expands to client ID request as IMAP arglist. Needs <code><a href=\"/main/core/summaries/settings.html#imap_id_retain\">imap_id_retain = yes</a></code>.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP address of the client connection.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP address where client connected to.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port of the client connection.</p>\n"
      },
      "local_port": {
        "text": "<p>Local port where the client connected to.</p>\n"
      },
      "real_remote_ip": {
        "text": "<p>Same as <code>remote_ip</code>, except if the connection was proxied this is the proxy's IP address.</p>\n"
      },
      "real_local_ip": {
        "text": "<p>Same as <code>local_ip</code>, except if the connection was proxied this is the proxy's IP where proxy connected to.</p>\n"
      },
      "real_remote_port": {
        "text": "<p>Same as <code>remote_port</code>, except if the connection was proxied this is the proxy connection's port.</p>\n"
      },
      "real_local_port": {
        "text": "<p>Same as <code>local_port</code>, except if the connection was proxied this is the local port where the proxy connected to.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI hostname, if given.</p>\n"
      },
      "transport": {
        "text": "<p>Transport security indicator. Values:</p>\n<ul>\n<li><code>insecure</code></li>\n<li><code>secured</code>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span> Secure non-TLS connections (e.g. from localhost) are now <code>secured</code> rather than <code>trusted</code>.</li>\n</ul>\n</li>\n<li><code>TLS</code></li>\n</ul>\n"
      },
      "passdb": {
        "changed": {
          "events_auth_server_passdb_passdb_changed": false
        },
        "text": "<p>passdb { name }.</p>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span></li>\n</ul>\n"
      },
      "passdb_driver": {
        "text": "<p>Driver name.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_auth_server_passdb_passdb_driver_added": false
        }
      },
      "passdb_name": {
        "text": "<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span>:\nRenamed to <code>passdb</code>.</li>\n</ul>\n",
        "removed": {
          "events_auth_server_passdb_passdb_name_removed": "\nRenamed to `passdb`."
        }
      },
      "passdb_id": {
        "text": "<p>Internal ID number of the passdb. May be useful to identify the passdb if it has no name.</p>\n"
      }
    }
  },
  "auth_passdb_request_finished": {
    "root": "auth",
    "inherit": [
      "auth_server_common",
      "auth_server_passdb"
    ],
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "result": {
        "text": "<ul>\n<li><code>ok</code></li>\n<li><code>password_mismatch</code></li>\n<li><code>user_unknown</code></li>\n<li><code>pass_expired</code></li>\n<li><code>user_disabled</code></li>\n<li><code>scheme_not_available</code></li>\n<li><code>internal_failure</code></li>\n<li><code>next</code></li>\n</ul>\n"
      },
      "cache": {
        "text": "<ul>\n<li><code>miss</code>: Was not cached</li>\n<li><code>hit</code>: Found from cache</li>\n</ul>\n"
      },
      "user": {
        "text": "<p>Full username. This can change during authentication, for example due to passdb lookups.</p>\n"
      },
      "original_user": {
        "text": "<p>Original username exactly as provided by the client.</p>\n"
      },
      "translated_user": {
        "text": "<p>Similar to <code>original_user</code>, except after <code><a href=\"/main/core/summaries/settings.html#auth_username_translation\">auth_username_translation</a></code> translations are applied.</p>\n"
      },
      "login_user": {
        "text": "<p>When doing a master user login, the user we are logging in as. Otherwise not set.</p>\n"
      },
      "master_user": {
        "text": "<p>When doing a master user login, the master username. Otherwise not set.</p>\n"
      },
      "mechanism": {
        "text": "<p>Name of used SASL mechanism (e.g. PLAIN).</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_auth_server_common_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Service doing the lookup (e.g. <code>imap</code>, <code>pop3</code>, ...).</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_auth_server_common_protocol_added": false
        }
      },
      "session": {
        "text": "<p>Session ID.</p>\n"
      },
      "client_id": {
        "text": "<p>Expands to client ID request as IMAP arglist. Needs <code><a href=\"/main/core/summaries/settings.html#imap_id_retain\">imap_id_retain = yes</a></code>.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP address of the client connection.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP address where client connected to.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port of the client connection.</p>\n"
      },
      "local_port": {
        "text": "<p>Local port where the client connected to.</p>\n"
      },
      "real_remote_ip": {
        "text": "<p>Same as <code>remote_ip</code>, except if the connection was proxied this is the proxy's IP address.</p>\n"
      },
      "real_local_ip": {
        "text": "<p>Same as <code>local_ip</code>, except if the connection was proxied this is the proxy's IP where proxy connected to.</p>\n"
      },
      "real_remote_port": {
        "text": "<p>Same as <code>remote_port</code>, except if the connection was proxied this is the proxy connection's port.</p>\n"
      },
      "real_local_port": {
        "text": "<p>Same as <code>local_port</code>, except if the connection was proxied this is the local port where the proxy connected to.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI hostname, if given.</p>\n"
      },
      "transport": {
        "text": "<p>Transport security indicator. Values:</p>\n<ul>\n<li><code>insecure</code></li>\n<li><code>secured</code>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span> Secure non-TLS connections (e.g. from localhost) are now <code>secured</code> rather than <code>trusted</code>.</li>\n</ul>\n</li>\n<li><code>TLS</code></li>\n</ul>\n"
      },
      "passdb": {
        "changed": {
          "events_auth_server_passdb_passdb_changed": false
        },
        "text": "<p>passdb { name }.</p>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span></li>\n</ul>\n"
      },
      "passdb_driver": {
        "text": "<p>Driver name.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_auth_server_passdb_passdb_driver_added": false
        }
      },
      "passdb_name": {
        "text": "<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span>:\nRenamed to <code>passdb</code>.</li>\n</ul>\n",
        "removed": {
          "events_auth_server_passdb_passdb_name_removed": "\nRenamed to `passdb`."
        }
      },
      "passdb_id": {
        "text": "<p>Internal ID number of the passdb. May be useful to identify the passdb if it has no name.</p>\n"
      }
    },
    "text": "<p>Processing has ended for a passdb block.</p>\n<p>Most useful for debugging authentication flow.</p>\n"
  },
  "auth_userdb_request_started": {
    "root": "auth",
    "inherit": [
      "auth_server_common",
      "auth_server_userdb"
    ],
    "text": "<p>Processing has begun for a userdb block. This event is also sent for userdb\niterations.</p>\n<p>Most useful for debugging authentication flow.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "user": {
        "text": "<p>Full username. This can change during authentication, for example due to passdb lookups.</p>\n"
      },
      "original_user": {
        "text": "<p>Original username exactly as provided by the client.</p>\n"
      },
      "translated_user": {
        "text": "<p>Similar to <code>original_user</code>, except after <code><a href=\"/main/core/summaries/settings.html#auth_username_translation\">auth_username_translation</a></code> translations are applied.</p>\n"
      },
      "login_user": {
        "text": "<p>When doing a master user login, the user we are logging in as. Otherwise not set.</p>\n"
      },
      "master_user": {
        "text": "<p>When doing a master user login, the master username. Otherwise not set.</p>\n"
      },
      "mechanism": {
        "text": "<p>Name of used SASL mechanism (e.g. PLAIN).</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_auth_server_common_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Service doing the lookup (e.g. <code>imap</code>, <code>pop3</code>, ...).</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_auth_server_common_protocol_added": false
        }
      },
      "session": {
        "text": "<p>Session ID.</p>\n"
      },
      "client_id": {
        "text": "<p>Expands to client ID request as IMAP arglist. Needs <code><a href=\"/main/core/summaries/settings.html#imap_id_retain\">imap_id_retain = yes</a></code>.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP address of the client connection.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP address where client connected to.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port of the client connection.</p>\n"
      },
      "local_port": {
        "text": "<p>Local port where the client connected to.</p>\n"
      },
      "real_remote_ip": {
        "text": "<p>Same as <code>remote_ip</code>, except if the connection was proxied this is the proxy's IP address.</p>\n"
      },
      "real_local_ip": {
        "text": "<p>Same as <code>local_ip</code>, except if the connection was proxied this is the proxy's IP where proxy connected to.</p>\n"
      },
      "real_remote_port": {
        "text": "<p>Same as <code>remote_port</code>, except if the connection was proxied this is the proxy connection's port.</p>\n"
      },
      "real_local_port": {
        "text": "<p>Same as <code>local_port</code>, except if the connection was proxied this is the local port where the proxy connected to.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI hostname, if given.</p>\n"
      },
      "transport": {
        "text": "<p>Transport security indicator. Values:</p>\n<ul>\n<li><code>insecure</code></li>\n<li><code>secured</code>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span> Secure non-TLS connections (e.g. from localhost) are now <code>secured</code> rather than <code>trusted</code>.</li>\n</ul>\n</li>\n<li><code>TLS</code></li>\n</ul>\n"
      },
      "userdb": {
        "changed": {
          "events_auth_server_userdb_userdb_changed": false
        },
        "text": "<p>userdb { name }.</p>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span></li>\n</ul>\n"
      },
      "userdb_driver": {
        "text": "<p>Driver name.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_auth_server_userdb_userdb_driver_added": false
        }
      },
      "userdb_name": {
        "text": "<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span>:\nRenamed to <code>userdb</code>.</li>\n</ul>\n",
        "removed": {
          "events_auth_server_userdb_userdb_name_removed": "\nRenamed to `userdb`."
        }
      },
      "userdb_id": {
        "text": "<p>Internal ID number of the userdb. May be useful to identify the userdb if it has no name.</p>\n"
      }
    }
  },
  "auth_userdb_request_finished": {
    "root": "auth",
    "inherit": [
      "auth_server_common",
      "auth_server_userdb"
    ],
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "result": {
        "text": "<ul>\n<li><code>ok</code></li>\n<li><code>user_unknown</code></li>\n<li><code>internal_failure</code></li>\n</ul>\n"
      },
      "cache": {
        "text": "<ul>\n<li><code>miss</code>: Was not cached</li>\n<li><code>hit</code>: Found from cache</li>\n</ul>\n"
      },
      "user": {
        "text": "<p>Full username. This can change during authentication, for example due to passdb lookups.</p>\n"
      },
      "original_user": {
        "text": "<p>Original username exactly as provided by the client.</p>\n"
      },
      "translated_user": {
        "text": "<p>Similar to <code>original_user</code>, except after <code><a href=\"/main/core/summaries/settings.html#auth_username_translation\">auth_username_translation</a></code> translations are applied.</p>\n"
      },
      "login_user": {
        "text": "<p>When doing a master user login, the user we are logging in as. Otherwise not set.</p>\n"
      },
      "master_user": {
        "text": "<p>When doing a master user login, the master username. Otherwise not set.</p>\n"
      },
      "mechanism": {
        "text": "<p>Name of used SASL mechanism (e.g. PLAIN).</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_auth_server_common_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Service doing the lookup (e.g. <code>imap</code>, <code>pop3</code>, ...).</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_auth_server_common_protocol_added": false
        }
      },
      "session": {
        "text": "<p>Session ID.</p>\n"
      },
      "client_id": {
        "text": "<p>Expands to client ID request as IMAP arglist. Needs <code><a href=\"/main/core/summaries/settings.html#imap_id_retain\">imap_id_retain = yes</a></code>.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP address of the client connection.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP address where client connected to.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port of the client connection.</p>\n"
      },
      "local_port": {
        "text": "<p>Local port where the client connected to.</p>\n"
      },
      "real_remote_ip": {
        "text": "<p>Same as <code>remote_ip</code>, except if the connection was proxied this is the proxy's IP address.</p>\n"
      },
      "real_local_ip": {
        "text": "<p>Same as <code>local_ip</code>, except if the connection was proxied this is the proxy's IP where proxy connected to.</p>\n"
      },
      "real_remote_port": {
        "text": "<p>Same as <code>remote_port</code>, except if the connection was proxied this is the proxy connection's port.</p>\n"
      },
      "real_local_port": {
        "text": "<p>Same as <code>local_port</code>, except if the connection was proxied this is the local port where the proxy connected to.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI hostname, if given.</p>\n"
      },
      "transport": {
        "text": "<p>Transport security indicator. Values:</p>\n<ul>\n<li><code>insecure</code></li>\n<li><code>secured</code>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span> Secure non-TLS connections (e.g. from localhost) are now <code>secured</code> rather than <code>trusted</code>.</li>\n</ul>\n</li>\n<li><code>TLS</code></li>\n</ul>\n"
      },
      "userdb": {
        "changed": {
          "events_auth_server_userdb_userdb_changed": false
        },
        "text": "<p>userdb { name }.</p>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span></li>\n</ul>\n"
      },
      "userdb_driver": {
        "text": "<p>Driver name.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_auth_server_userdb_userdb_driver_added": false
        }
      },
      "userdb_name": {
        "text": "<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span>:\nRenamed to <code>userdb</code>.</li>\n</ul>\n",
        "removed": {
          "events_auth_server_userdb_userdb_name_removed": "\nRenamed to `userdb`."
        }
      },
      "userdb_id": {
        "text": "<p>Internal ID number of the userdb. May be useful to identify the userdb if it has no name.</p>\n"
      }
    },
    "text": "<p>Processing has ended for a userdb block. This event is also sent for userdb\niterations.</p>\n<p>Most useful for debugging authentication flow.</p>\n"
  },
  "auth_policy_request_finished": {
    "root": "auth",
    "inherit": "auth_server_common",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "mode": {
        "text": "<p>Either <code>allow</code> or <code>report</code>.</p>\n"
      },
      "policy_result": {
        "text": "<p>Value returned from policy server (number).</p>\n"
      },
      "user": {
        "text": "<p>Full username. This can change during authentication, for example due to passdb lookups.</p>\n"
      },
      "original_user": {
        "text": "<p>Original username exactly as provided by the client.</p>\n"
      },
      "translated_user": {
        "text": "<p>Similar to <code>original_user</code>, except after <code><a href=\"/main/core/summaries/settings.html#auth_username_translation\">auth_username_translation</a></code> translations are applied.</p>\n"
      },
      "login_user": {
        "text": "<p>When doing a master user login, the user we are logging in as. Otherwise not set.</p>\n"
      },
      "master_user": {
        "text": "<p>When doing a master user login, the master username. Otherwise not set.</p>\n"
      },
      "mechanism": {
        "text": "<p>Name of used SASL mechanism (e.g. PLAIN).</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_auth_server_common_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Service doing the lookup (e.g. <code>imap</code>, <code>pop3</code>, ...).</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_auth_server_common_protocol_added": false
        }
      },
      "session": {
        "text": "<p>Session ID.</p>\n"
      },
      "client_id": {
        "text": "<p>Expands to client ID request as IMAP arglist. Needs <code><a href=\"/main/core/summaries/settings.html#imap_id_retain\">imap_id_retain = yes</a></code>.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP address of the client connection.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP address where client connected to.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port of the client connection.</p>\n"
      },
      "local_port": {
        "text": "<p>Local port where the client connected to.</p>\n"
      },
      "real_remote_ip": {
        "text": "<p>Same as <code>remote_ip</code>, except if the connection was proxied this is the proxy's IP address.</p>\n"
      },
      "real_local_ip": {
        "text": "<p>Same as <code>local_ip</code>, except if the connection was proxied this is the proxy's IP where proxy connected to.</p>\n"
      },
      "real_remote_port": {
        "text": "<p>Same as <code>remote_port</code>, except if the connection was proxied this is the proxy connection's port.</p>\n"
      },
      "real_local_port": {
        "text": "<p>Same as <code>local_port</code>, except if the connection was proxied this is the local port where the proxy connected to.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI hostname, if given.</p>\n"
      },
      "transport": {
        "text": "<p>Transport security indicator. Values:</p>\n<ul>\n<li><code>insecure</code></li>\n<li><code>secured</code>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span> Secure non-TLS connections (e.g. from localhost) are now <code>secured</code> rather than <code>trusted</code>.</li>\n</ul>\n</li>\n<li><code>TLS</code></li>\n</ul>\n"
      }
    },
    "text": "<p>Processing has ended for an auth policy request.</p>\n<p>Most useful for debugging authentication flow.</p>\n"
  },
  "auth_worker_request_finished": {
    "root": "auth",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "command": {
        "text": "<p>Command received by auth worker.</p>\n"
      },
      "command_id": {
        "text": "<p>Command ID received by auth worker (integer).</p>\n"
      },
      "error": {
        "text": "<p>Error message (if request ended in error).</p>\n"
      }
    },
    "text": "<p>An authentication worker request has finished.</p>\n"
  },
  "auth_master_client_login_started": {
    "inherit": "auth_master_common",
    "text": "<p>Authentication master login request started.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "id": {
        "text": "<p>Login request ID.</p>\n"
      },
      "local_ip": {
        "text": "<p>Client connection's local (server) IP.</p>\n"
      },
      "local_port": {
        "text": "<p>Client connection's local (server) port.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Client connection's remote (client) IP.</p>\n"
      },
      "remote_port": {
        "text": "<p>Client connection's remote (client) port.</p>\n"
      }
    }
  },
  "auth_master_client_login_finished": {
    "inherit": "auth_master_common",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      },
      "error": {
        "text": "<p>Error message if the request failed.</p>\n"
      },
      "id": {
        "text": "<p>Login request ID.</p>\n"
      },
      "local_ip": {
        "text": "<p>Client connection's local (server) IP.</p>\n"
      },
      "local_port": {
        "text": "<p>Client connection's local (server) port.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Client connection's remote (client) IP.</p>\n"
      },
      "remote_port": {
        "text": "<p>Client connection's remote (client) port.</p>\n"
      }
    },
    "text": "<p>Authentication master login request finished.</p>\n"
  },
  "client_connection_connected": {
    "inherit": "client_connection_common",
    "text": "<p>Server accepted an incoming client connection.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local server IP address where TCP client connected to.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote TCP client's IP address.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote TCP client's source port.</p>\n"
      },
      "remote_pid": {
        "text": "<p>Remote UNIX socket client's process ID.</p>\n"
      },
      "remote_uid": {
        "text": "<p>Remote UNIX socket client's system user ID.</p>\n"
      }
    }
  },
  "client_connection_disconnected": {
    "inherit": "client_connection_common",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "net_in_bytes": {
        "changed": {
          "events_net_in_bytes_changed": "This was previously `in_bytes`."
        },
        "text": "<p>Amount of data read, in bytes.</p>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span>: This was previously <code>in_bytes</code>.</li>\n</ul>\n"
      },
      "net_out_bytes": {
        "changed": {
          "events_net_out_bytes_changed": "This was previously `out_bytes`."
        },
        "text": "<p>Amount of data written, in bytes.</p>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span>: This was previously <code>out_bytes</code>.</li>\n</ul>\n"
      },
      "reason": {
        "text": "<p>Disconnection reason.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local server IP address where TCP client connected to.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote TCP client's IP address.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote TCP client's source port.</p>\n"
      },
      "remote_pid": {
        "text": "<p>Remote UNIX socket client's process ID.</p>\n"
      },
      "remote_uid": {
        "text": "<p>Remote UNIX socket client's system user ID.</p>\n"
      }
    },
    "text": "<p>Client connection is terminated.</p>\n"
  },
  "server_connection_connected": {
    "inherit": "server_connection_common",
    "text": "<p>Outgoing server connection was either successfully established or failed.</p>\n<div class=\"tip custom-block\"><p class=\"custom-block-title\">TIP</p>\n<p>Currently it is not possible to know which one happened.</p>\n</div>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "source_ip": {
        "text": "<p>Source IP address used for the outgoing TCP connection. This is set only if a specific source IP was explicitly requested.</p>\n"
      },
      "dest_ip": {
        "text": "<p>TCP connection's destination IP address.</p>\n"
      },
      "dest_port": {
        "text": "<p>TCP connection's destination port.</p>\n"
      },
      "dest_host": {
        "text": "<p>TCP connection's destination hostname, if known.</p>\n"
      },
      "socket_path": {
        "text": "<p>UNIX socket connection's path.</p>\n"
      },
      "remote_pid": {
        "text": "<p>Remote UNIX socket server's process ID.</p>\n"
      },
      "remote_uid": {
        "text": "<p>Remote UNIX socket server's system user ID.</p>\n"
      }
    }
  },
  "server_connection_disconnected": {
    "inherit": "server_connection_common",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "reason": {
        "text": "<p>Disconnection reason.</p>\n"
      },
      "source_ip": {
        "text": "<p>Source IP address used for the outgoing TCP connection. This is set only if a specific source IP was explicitly requested.</p>\n"
      },
      "dest_ip": {
        "text": "<p>TCP connection's destination IP address.</p>\n"
      },
      "dest_port": {
        "text": "<p>TCP connection's destination port.</p>\n"
      },
      "dest_host": {
        "text": "<p>TCP connection's destination hostname, if known.</p>\n"
      },
      "socket_path": {
        "text": "<p>UNIX socket connection's path.</p>\n"
      },
      "remote_pid": {
        "text": "<p>Remote UNIX socket server's process ID.</p>\n"
      },
      "remote_uid": {
        "text": "<p>Remote UNIX socket server's system user ID.</p>\n"
      }
    },
    "text": "<p>Server connection is terminated.</p>\n"
  },
  "fs": {
    "root": "fs",
    "text": "<p>May be inherited from various different parents (e.g. &quot;Mail User&quot; event) or even from no parent.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      }
    }
  },
  "fs_file": {
    "root": "fs",
    "text": "<p>Inherits from fs or any other specified event (e.g. mail).</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      }
    }
  },
  "mail_user_session_finished": {
    "inherit": "mail_user",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "utime": {
        "text": "<p>User CPU time used in microseconds.</p>\n"
      },
      "stime": {
        "text": "<p>System CPU time used in microseconds.</p>\n"
      },
      "minor_faults": {
        "text": "<p>Page reclaims (soft page faults).</p>\n"
      },
      "major_faults": {
        "text": "<p>Page faults (hard page faults).</p>\n"
      },
      "vol_cs": {
        "text": "<p>Voluntary context switches.</p>\n"
      },
      "invol_cs": {
        "text": "<p>Involuntary context switches.</p>\n"
      },
      "rss": {
        "text": "<p>Resident set size in bytes. (Skipped in non-Linux environments.)</p>\n"
      },
      "vsz": {
        "text": "<p>Virtual memory size in bytes. (Skipped in non-Linux environments.)</p>\n"
      },
      "rchar": {
        "text": "<p>I/O counter: chars (bytes) read from storage. (Skipped in non-Linux environments.)</p>\n"
      },
      "wchar": {
        "text": "<p>I/O counter: chars (bytes) written to storage. (Skipped in non-Linux environments.)</p>\n"
      },
      "syscr": {
        "text": "<p>Number of read syscalls. (Skipped in non-Linux environments.)</p>\n"
      },
      "syscw": {
        "text": "<p>Number of write syscalls. (Skipped in non-Linux environments.)</p>\n"
      },
      "net_in_bytes": {
        "text": "<p>Bytes received during this session (for applicable processes.)</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span>: This was previously <code>in_bytes</code>.</li>\n</ul>\n",
        "added": {
          "events_net_in_bytes_changed": "This was previously `in_bytes`."
        }
      },
      "net_out_bytes": {
        "text": "<p>Bytes sent during this session (for applicable processes.)</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span>: This was previously <code>out_bytes</code>.</li>\n</ul>\n",
        "added": {
          "events_net_out_bytes_changed": "This was previously `out_bytes`."
        }
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      },
      "session": {
        "text": "<p>Session ID for the storage session.</p>\n"
      },
      "service": {
        "text": "<p>Name of the service. Examples: <code>imap</code>, <code>pop3</code>, <code>lmtp</code>, ...</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_mail_storage_service_user_service_added": false
        }
      }
    }
  },
  "mail_expunged": {
    "inherit": "mailbox",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "uid": {
        "text": "<p>UID of the expunged mail.</p>\n"
      },
      "mailbox": {
        "text": "<p>Full mailbox name in UTF-8</p>\n"
      },
      "mailbox_guid": {
        "text": "<p>Mailbox GUID</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      },
      "session": {
        "text": "<p>Session ID for the storage session.</p>\n"
      },
      "service": {
        "text": "<p>Name of the service. Examples: <code>imap</code>, <code>pop3</code>, <code>lmtp</code>, ...</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_mail_storage_service_user_service_added": false
        }
      }
    },
    "text": "<p>A mail was expunged from the mailbox.</p>\n<div class=\"tip custom-block\"><p class=\"custom-block-title\">TIP</p>\n<p>This event inherits from mailbox, not mail.</p>\n</div>\n"
  },
  "mail_metadata_accessed": {
    "added": {
      "events_mail_metadata_accessed_added": false
    },
    "inherit": [
      "mail",
      "mailbox"
    ],
    "text": "<p><span class=\"VPBadge tip\">Added: 2.4.0</span></p>\n<p>A mail was opened for reading its metadata.</p>\n<div class=\"tip custom-block\"><p class=\"custom-block-title\">TIP</p>\n<p>This event is not sent when mails' body is accessed.</p>\n</div>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "seq": {
        "text": "<p>Mail sequence number.</p>\n"
      },
      "uid": {
        "text": "<p>Mail IMAP UID number.</p>\n"
      },
      "mailbox": {
        "text": "<p>Full mailbox name in UTF-8</p>\n"
      },
      "mailbox_guid": {
        "text": "<p>Mailbox GUID</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      },
      "session": {
        "text": "<p>Session ID for the storage session.</p>\n"
      },
      "service": {
        "text": "<p>Name of the service. Examples: <code>imap</code>, <code>pop3</code>, <code>lmtp</code>, ...</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_mail_storage_service_user_service_added": false
        }
      }
    }
  },
  "mail_opened": {
    "inherit": [
      "mail",
      "mailbox"
    ],
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "reason": {
        "text": "<p>Reason why the mail was opened. (optional)</p>\n"
      },
      "seq": {
        "text": "<p>Mail sequence number.</p>\n"
      },
      "uid": {
        "text": "<p>Mail IMAP UID number.</p>\n"
      },
      "mailbox": {
        "text": "<p>Full mailbox name in UTF-8</p>\n"
      },
      "mailbox_guid": {
        "text": "<p>Mailbox GUID</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      },
      "session": {
        "text": "<p>Session ID for the storage session.</p>\n"
      },
      "service": {
        "text": "<p>Name of the service. Examples: <code>imap</code>, <code>pop3</code>, <code>lmtp</code>, ...</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_mail_storage_service_user_service_added": false
        }
      }
    },
    "text": "<p>A mail was opened, e.g., for reading its body.</p>\n<div class=\"tip custom-block\"><p class=\"custom-block-title\">TIP</p>\n<p>This event is not sent when mails' metadata is accessed, even if it causes\nopening the mail file.</p>\n</div>\n"
  },
  "mail_expunge_requested": {
    "inherit": [
      "mail",
      "mailbox"
    ],
    "text": "<p>A mail is set to be expunged.</p>\n<div class=\"tip custom-block\"><p class=\"custom-block-title\">TIP</p>\n<p>Expunges can be rolled back later on, this event is emitted when an expunge\nis requested.</p>\n</div>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "seq": {
        "text": "<p>Mail sequence number.</p>\n"
      },
      "uid": {
        "text": "<p>Mail IMAP UID number.</p>\n"
      },
      "mailbox": {
        "text": "<p>Full mailbox name in UTF-8</p>\n"
      },
      "mailbox_guid": {
        "text": "<p>Mailbox GUID</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      },
      "session": {
        "text": "<p>Session ID for the storage session.</p>\n"
      },
      "service": {
        "text": "<p>Name of the service. Examples: <code>imap</code>, <code>pop3</code>, <code>lmtp</code>, ...</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_mail_storage_service_user_service_added": false
        }
      }
    }
  },
  "mail_index_recreated": {
    "root": "mail-index",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "filepath": {
        "text": "<p>Path to the index file being recreated.</p>\n"
      },
      "reason": {
        "text": "<p>Human-readable reason why the mail index was recreated.</p>\n"
      }
    },
    "text": "<p>A mail index file was recreated.</p>\n"
  },
  "indexer_worker_indexing_finished": {
    "root": "mail-index",
    "inherit": "mailbox",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "message_count": {
        "text": "<p>Number of messages indexed.</p>\n"
      },
      "first_uid": {
        "text": "<p>UID of the first indexed message.</p>\n"
      },
      "last_uid": {
        "text": "<p>UID of the last indexed message.</p>\n"
      },
      "user_cpu_usecs": {
        "text": "<p>Total user CPU spent on the indexing transaction in microseconds.</p>\n"
      },
      "mailbox": {
        "text": "<p>Full mailbox name in UTF-8</p>\n"
      },
      "mailbox_guid": {
        "text": "<p>Mailbox GUID</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      },
      "session": {
        "text": "<p>Session ID for the storage session.</p>\n"
      },
      "service": {
        "text": "<p>Name of the service. Examples: <code>imap</code>, <code>pop3</code>, <code>lmtp</code>, ...</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_mail_storage_service_user_service_added": false
        }
      }
    },
    "text": "<p>Indexer worker process completed an indexing transaction.</p>\n"
  },
  "mail_cache_decision_changed": {
    "root": "mail-cache",
    "inherit": "mail_index_common",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "field": {
        "text": "<p>Cache field name (e.g. <code>imap.body</code> or <code>hdr.from</code>).</p>\n"
      },
      "last_used": {
        "text": "<p>UNIX timestamp of when the field was accessed the last time. This is updated only once per 24 hours.</p>\n"
      },
      "reason": {
        "text": "<p>Reason why the caching decision changed:</p>\n<ul>\n<li><code>add</code>: no -&gt; temp decision change, because a new field was added to cache.</li>\n<li><code>old_mail</code>: temp -&gt; yes decision change, because a mail older than 1 week was accessed.</li>\n<li><code>unordered_access</code>: temp -&gt; yes decision change, because mails weren't accessed in ascending order.</li>\n<li>Other values indicate a reason for cache purging, which changes the caching decision yes -&gt; temp.</li>\n</ul>\n"
      },
      "uid": {
        "text": "<p>IMAP UID number that caused the decision change. This is set only for some reasons, not all.</p>\n"
      },
      "old_decision": {
        "text": "<p>Old <a href=\"#mail_cache_decision_changed_decisions\">cache decision</a>.</p>\n"
      },
      "new_decision": {
        "text": "<p>New <a href=\"#mail_cache_decision_changed_decisions\">cache decision</a>.</p>\n"
      }
    },
    "text": "<p>A field's caching decision changed.</p>\n<span id=\"mail_cache_decision_changed_decisions\" />\n<p>Decisions:</p>\n<table tabindex=\"0\">\n<thead>\n<tr>\n<th>Decision</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>no</code></td>\n<td>The field is not cached.</td>\n</tr>\n<tr>\n<td><code>temp</code></td>\n<td>The field is cached for 1 week and dropped on the next purge.</td>\n</tr>\n<tr>\n<td><code>yes</code></td>\n<td>The field is cached permanently. If the field isn't accessed for 30 days it's dropped.</td>\n</tr>\n</tbody>\n</table>\n"
  },
  "mail_cache_decision_rejected": {
    "root": "mail-cache",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "field": {
        "text": "<p>Cache field name (e.g. <code>hdr.from</code>).</p>\n"
      },
      "reason": {
        "text": "<p>Reason why the caching decision changed:</p>\n<ul>\n<li><code>too_many_headers</code>\n:   This can happen when the count of headers in the cache exceeds the maximum configured with <code><a href=\"/main/core/summaries/settings.html#mail_cache_max_headers_count\">mail_cache_max_headers_count</a></code>.</li>\n</ul>\n"
      }
    },
    "text": "<p>The decision to promote a field (from <code>no</code> to <code>temp</code>) was rejected.</p>\n"
  },
  "mail_cache_purge_started": {
    "root": "mail-cache",
    "inherit": [
      "mail_cache_purge",
      "mail_index_common"
    ],
    "text": "<p>Cache file purging is started.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "file_seq": {
        "text": "<p>Sequence of the new cache file that is created.</p>\n"
      },
      "prev_file_seq": {
        "text": "<p>Sequence of the cache file that is to be purged.</p>\n"
      },
      "prev_file_size": {
        "text": "<p>Size of the cache file that is to be purged.</p>\n"
      },
      "prev_deleted_records": {
        "text": "<p>Number of records (mails) marked as deleted in the cache file that is to be purged.</p>\n"
      },
      "reason": {
        "text": "<p>Reason string for purging the cache file:</p>\n<ul>\n<li>doveadm mailbox cache purge</li>\n<li>copy cache decisions</li>\n<li>creating cache</li>\n<li>cache is too large</li>\n<li>syncing</li>\n<li>rebuilding index</li>\n</ul>\n"
      }
    }
  },
  "mail_cache_purge_drop_field": {
    "root": "mail-cache",
    "inherit": [
      "mail_cache_purge",
      "mail_index_common"
    ],
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "field": {
        "text": "<p>Cache field name (e.g. <code>imap.body</code> or <code>hdr.from</code>).</p>\n"
      },
      "decision": {
        "text": "<p>Old caching decision: <code>temp</code>, or <code>yes</code>.</p>\n"
      },
      "last_used": {
        "text": "<p>UNIX timestamp of when the field was accessed the last time. This is updated only once per 24 hours.</p>\n"
      },
      "file_seq": {
        "text": "<p>Sequence of the new cache file that is created.</p>\n"
      },
      "prev_file_seq": {
        "text": "<p>Sequence of the cache file that is to be purged.</p>\n"
      },
      "prev_file_size": {
        "text": "<p>Size of the cache file that is to be purged.</p>\n"
      },
      "prev_deleted_records": {
        "text": "<p>Number of records (mails) marked as deleted in the cache file that is to be purged.</p>\n"
      },
      "reason": {
        "text": "<p>Reason string for purging the cache file:</p>\n<ul>\n<li>doveadm mailbox cache purge</li>\n<li>copy cache decisions</li>\n<li>creating cache</li>\n<li>cache is too large</li>\n<li>syncing</li>\n<li>rebuilding index</li>\n</ul>\n"
      }
    },
    "text": "<p>Existing field is dropped from the cache file because it hadn't been accessed\nfor 30 days.</p>\n"
  },
  "mail_cache_purge_finished": {
    "root": "mail-cache",
    "inherit": [
      "mail_cache_purge",
      "mail_index_common"
    ],
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "file_size": {
        "text": "<p>Size of the new cache file.</p>\n"
      },
      "max_uid": {
        "text": "<p>IMAP UID of the last mail in the cache file.</p>\n"
      },
      "file_seq": {
        "text": "<p>Sequence of the new cache file that is created.</p>\n"
      },
      "prev_file_seq": {
        "text": "<p>Sequence of the cache file that is to be purged.</p>\n"
      },
      "prev_file_size": {
        "text": "<p>Size of the cache file that is to be purged.</p>\n"
      },
      "prev_deleted_records": {
        "text": "<p>Number of records (mails) marked as deleted in the cache file that is to be purged.</p>\n"
      },
      "reason": {
        "text": "<p>Reason string for purging the cache file:</p>\n<ul>\n<li>doveadm mailbox cache purge</li>\n<li>copy cache decisions</li>\n<li>creating cache</li>\n<li>cache is too large</li>\n<li>syncing</li>\n<li>rebuilding index</li>\n</ul>\n"
      }
    }
  },
  "mail_cache_corrupted": {
    "root": "mail-cache",
    "inherit": "mail_index_common",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "reason": {
        "text": "<p>Reason string why cache was found to be corrupted.</p>\n"
      }
    },
    "text": "<p>Cache file was found to be corrupted and the whole file is deleted.</p>\n"
  },
  "mail_cache_record_corrupted": {
    "root": "mail-cache",
    "inherit": "mail_index_common",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "reason": {
        "text": "<p>Reason string why cache was found to be corrupted.</p>\n"
      },
      "uid": {
        "text": "<p>IMAP UID of the mail whose cache record is corrupted.</p>\n"
      }
    },
    "text": "<p>Cache record for a specific mail was found to be corrupted and the record\nis deleted.</p>\n"
  },
  "http_request_finished": {
    "root": "http-client",
    "inherit": "http_client",
    "text": "<p>HTTP request is complete.</p>\n<p>This event is useful to track and monitor external services.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "attempts": {
        "text": "<p>Amount of individual HTTP request attempts (number of retries after failures + 1).</p>\n"
      },
      "net_in_bytes": {
        "changed": {
          "events_net_in_bytes_changed": "This was previously `in_bytes`."
        },
        "text": "<p>Amount of data read, in bytes.</p>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span>: This was previously <code>in_bytes</code>.</li>\n</ul>\n"
      },
      "net_out_bytes": {
        "changed": {
          "events_net_out_bytes_changed": "This was previously `out_bytes`."
        },
        "text": "<p>Amount of data written, in bytes.</p>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span>: This was previously <code>out_bytes</code>.</li>\n</ul>\n"
      },
      "dest_host": {
        "text": "<p>Destination host.</p>\n"
      },
      "dest_ip": {
        "text": "<p>Destination IP address.</p>\n"
      },
      "dest_port": {
        "text": "<p>Destination port.</p>\n"
      },
      "method": {
        "text": "<p>HTTP verb used uppercased, e.g. <code>GET</code>.</p>\n"
      },
      "redirects": {
        "text": "<p>Number of redirects done while processing request.</p>\n"
      },
      "status_code": {
        "text": "<p>HTTP result status code (integer).</p>\n"
      },
      "target": {
        "text": "<p>Request path with parameters, e.g. <code>/path/?delimiter=%2F&amp;prefix=test%2F</code>.</p>\n"
      }
    }
  },
  "http_request_redirected": {
    "root": "http-client",
    "inherit": "http_client",
    "text": "<p>Intermediate event emitted when an HTTP request is being redirected.</p>\n<p>The <code><a href=\"/main/core/summaries/events.html#http_request_finished\">http_request_finished</a></code> is still sent at the end of the request.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "attempts": {
        "text": "<p>Amount of individual HTTP request attempts (number of retries after failures + 1).</p>\n"
      },
      "net_in_bytes": {
        "changed": {
          "events_net_in_bytes_changed": "This was previously `in_bytes`."
        },
        "text": "<p>Amount of data read, in bytes.</p>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span>: This was previously <code>in_bytes</code>.</li>\n</ul>\n"
      },
      "net_out_bytes": {
        "changed": {
          "events_net_out_bytes_changed": "This was previously `out_bytes`."
        },
        "text": "<p>Amount of data written, in bytes.</p>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span>: This was previously <code>out_bytes</code>.</li>\n</ul>\n"
      },
      "dest_host": {
        "text": "<p>Destination host.</p>\n"
      },
      "dest_ip": {
        "text": "<p>Destination IP address.</p>\n"
      },
      "dest_port": {
        "text": "<p>Destination port.</p>\n"
      },
      "method": {
        "text": "<p>HTTP verb used uppercased, e.g. <code>GET</code>.</p>\n"
      },
      "redirects": {
        "text": "<p>Number of redirects done while processing request.</p>\n"
      },
      "status_code": {
        "text": "<p>HTTP result status code (integer).</p>\n"
      },
      "target": {
        "text": "<p>Request path with parameters, e.g. <code>/path/?delimiter=%2F&amp;prefix=test%2F</code>.</p>\n"
      }
    }
  },
  "http_request_retried": {
    "root": "http-client",
    "inherit": "http_client",
    "text": "<p>Intermediate event emitted when an HTTP request is being retried.</p>\n<p>The <code><a href=\"/main/core/summaries/events.html#http_request_finished\">http_request_finished</a></code> is still sent at the end of the request.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "attempts": {
        "text": "<p>Amount of individual HTTP request attempts (number of retries after failures + 1).</p>\n"
      },
      "net_in_bytes": {
        "changed": {
          "events_net_in_bytes_changed": "This was previously `in_bytes`."
        },
        "text": "<p>Amount of data read, in bytes.</p>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span>: This was previously <code>in_bytes</code>.</li>\n</ul>\n"
      },
      "net_out_bytes": {
        "changed": {
          "events_net_out_bytes_changed": "This was previously `out_bytes`."
        },
        "text": "<p>Amount of data written, in bytes.</p>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span>: This was previously <code>out_bytes</code>.</li>\n</ul>\n"
      },
      "dest_host": {
        "text": "<p>Destination host.</p>\n"
      },
      "dest_ip": {
        "text": "<p>Destination IP address.</p>\n"
      },
      "dest_port": {
        "text": "<p>Destination port.</p>\n"
      },
      "method": {
        "text": "<p>HTTP verb used uppercased, e.g. <code>GET</code>.</p>\n"
      },
      "redirects": {
        "text": "<p>Number of redirects done while processing request.</p>\n"
      },
      "status_code": {
        "text": "<p>HTTP result status code (integer).</p>\n"
      },
      "target": {
        "text": "<p>Request path with parameters, e.g. <code>/path/?delimiter=%2F&amp;prefix=test%2F</code>.</p>\n"
      }
    }
  },
  "http_server_request_started": {
    "root": "http-server",
    "inherit": "http_server",
    "text": "<p>A new HTTP request has been received and the request headers (but not body\npayload) are parsed.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "request_id": {
        "text": "<p>Assigned ID of the received request.</p>\n"
      },
      "method": {
        "text": "<p>HTTP verb used uppercased, e.g. <code>GET</code>.</p>\n"
      },
      "target": {
        "text": "<p>Request path with parameters, e.g. <code>/path/?delimiter=%2F&amp;prefix=test%2F</code>.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local server IP address where TCP client connected to.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote TCP client's IP address.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote TCP client's source port.</p>\n"
      },
      "remote_pid": {
        "text": "<p>Remote UNIX socket client's process ID.</p>\n"
      },
      "remote_uid": {
        "text": "<p>Remote UNIX socket client's system user ID.</p>\n"
      }
    }
  },
  "http_server_request_finished": {
    "root": "http-server",
    "inherit": "http_server",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "net_in_bytes": {
        "changed": {
          "events_net_in_bytes_changed": "This was previously `in_bytes`."
        },
        "text": "<p>Amount of request data read, in bytes.</p>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span>: This was previously <code>in_bytes</code>.</li>\n</ul>\n"
      },
      "net_out_bytes": {
        "changed": {
          "events_net_out_bytes_changed": "This was previously `out_bytes`."
        },
        "text": "<p>Amount of response data written, in bytes.</p>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span>: This was previously <code>out_bytes</code>.</li>\n</ul>\n"
      },
      "status_code": {
        "text": "<p>HTTP result status code (integer).</p>\n"
      },
      "request_id": {
        "text": "<p>Assigned ID of the received request.</p>\n"
      },
      "method": {
        "text": "<p>HTTP verb used uppercased, e.g. <code>GET</code>.</p>\n"
      },
      "target": {
        "text": "<p>Request path with parameters, e.g. <code>/path/?delimiter=%2F&amp;prefix=test%2F</code>.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local server IP address where TCP client connected to.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote TCP client's IP address.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote TCP client's source port.</p>\n"
      },
      "remote_pid": {
        "text": "<p>Remote UNIX socket client's process ID.</p>\n"
      },
      "remote_uid": {
        "text": "<p>Remote UNIX socket client's system user ID.</p>\n"
      }
    },
    "text": "<p>HTTP request is fully completed, i.e. the incoming request body is read and\nthe full response to the request has been sent to the client.</p>\n"
  },
  "pop3_command_finished": {
    "root": "pop3",
    "inherit": "pop3_command",
    "added": {
      "events_pop3_command_finished_added": false
    },
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "reply": {
        "text": "<p>POP3 reply. Values:</p>\n<ul>\n<li><code>OK</code></li>\n<li><code>FAIL</code></li>\n</ul>\n"
      },
      "net_in_bytes": {
        "text": "<p>Amount of data read for this command, in bytes.</p>\n"
      },
      "net_out_bytes": {
        "text": "<p>Amount of data written for this command, in bytes.</p>\n"
      },
      "cmd_name": {
        "text": "<p>POP3 command name uppercased (e.g. <code>UIDL</code>).</p>\n"
      },
      "cmd_args": {
        "text": "<p>POP3 command's full parameters (e.g. <code>1 1</code>).</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      },
      "session": {
        "text": "<p>Session ID of the POP3 connection.</p>\n"
      },
      "local_ip": {
        "text": "<p>POP3 connection's local (server) IP.</p>\n"
      },
      "local_port": {
        "text": "<p>POP3 connection's local (server) port.</p>\n"
      },
      "remote_ip": {
        "text": "<p>POP3 connection's remote (client) IP.</p>\n"
      },
      "remote_port": {
        "text": "<p>POP3 connection's remote (client) port.</p>\n"
      }
    },
    "text": "<p><span class=\"VPBadge tip\">Added: 2.4.0</span></p>\n<p>POP3 command is completed.</p>\n<p>This event is useful to track individual command usage, debug specific\nsessions, and/or detect broken clients.</p>\n<div class=\"tip custom-block\"><p class=\"custom-block-title\">TIP</p>\n<p>This event is currently not sent for pre-login POP3 commands.</p>\n</div>\n"
  },
  "imap_client_hibernated": {
    "root": "imap-hibernate",
    "inherit": "imap_client",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "mailbox": {
        "text": "<p>Mailbox name where hibernation was started in.</p>\n"
      },
      "error": {
        "text": "<p>Reason why hibernation attempt failed.</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      },
      "session": {
        "text": "<p>Session ID of the IMAP connection.</p>\n"
      },
      "local_ip": {
        "text": "<p>IMAP connection's local (server) IP.</p>\n"
      },
      "local_port": {
        "text": "<p>IMAP connection's local (server) port.</p>\n"
      },
      "remote_ip": {
        "text": "<p>IMAP connection's remote (client) IP.</p>\n"
      },
      "remote_port": {
        "text": "<p>IMAP connection's remote (client) port.</p>\n"
      }
    },
    "text": "<p>IMAP client is hibernated or the hibernation attempt failed.</p>\n<div class=\"tip custom-block\"><p class=\"custom-block-title\">TIP</p>\n<p>For failures, this event can be logged by either imap or imap-hibernate\nprocess depending on which side the error was detected in.</p>\n</div>\n"
  },
  "imap_client_unhibernated": {
    "root": "imap-hibernate",
    "inherit": "imap_client",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "mailbox": {
        "text": "<p>Mailbox name where hibernation was started in.</p>\n"
      },
      "reason": {
        "text": "<p>Reason why client was unhibernated:</p>\n<ul>\n<li><code>idle_done</code>: IDLE command was stopped with DONE.</li>\n<li><code>idle_bad_reply</code>: IDLE command was stopped with some other command than DONE.</li>\n<li><code>mailbox_changes</code>: Mailbox change notifications need to be sent to the client.</li>\n</ul>\n"
      },
      "hibernation_usecs": {
        "text": "<p>Number of microseconds how long the client was hibernated.</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      },
      "session": {
        "text": "<p>Session ID of the IMAP connection.</p>\n"
      },
      "local_ip": {
        "text": "<p>IMAP connection's local (server) IP.</p>\n"
      },
      "local_port": {
        "text": "<p>IMAP connection's local (server) port.</p>\n"
      },
      "remote_ip": {
        "text": "<p>IMAP connection's remote (client) IP.</p>\n"
      },
      "remote_port": {
        "text": "<p>IMAP connection's remote (client) port.</p>\n"
      }
    },
    "text": "<p>IMAP client is unhibernated or the unhibernation attempt failed.</p>\n<div class=\"tip custom-block\"><p class=\"custom-block-title\">TIP</p>\n<p>For failures, this event can be logged by either imap or imap-hibernate\nprocess depending on which side the error was detected in.</p>\n</div>\n"
  },
  "imap_client_unhibernate_retried": {
    "root": "imap-hibernate",
    "inherit": "imap_client",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "error": {
        "text": "<p>Reason why unhibernation failed.</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      },
      "session": {
        "text": "<p>Session ID of the IMAP connection.</p>\n"
      },
      "local_ip": {
        "text": "<p>IMAP connection's local (server) IP.</p>\n"
      },
      "local_port": {
        "text": "<p>IMAP connection's local (server) port.</p>\n"
      },
      "remote_ip": {
        "text": "<p>IMAP connection's remote (client) IP.</p>\n"
      },
      "remote_port": {
        "text": "<p>IMAP connection's remote (client) port.</p>\n"
      }
    },
    "text": "<p>An IMAP client is attempted to be unhibernated, but imap processes are busy\nand the unhibernation attempt is retried.</p>\n<p>This event is sent each time when retrying is done.</p>\n<p>The <code><a href=\"/main/core/summaries/events.html#imap_client_unhibernated\">imap_client_unhibernated</a></code> event is still sent when unhibernation\neither succeeds or fails permanently.</p>\n"
  },
  "imap_command_finished": {
    "root": "imap",
    "inherit": "imap_command",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "tagged_reply_state": {
        "text": "<p>Values:</p>\n<ul>\n<li><code>OK</code></li>\n<li><code>NO</code></li>\n<li><code>BAD</code></li>\n</ul>\n"
      },
      "tagged_reply": {
        "text": "<p>Full tagged reply (e.g. <code>OK SELECT finished.</code>).</p>\n"
      },
      "last_run_time": {
        "text": "<p>Timestamp when the command was running last time. (Command may be followed by internal &quot;mailbox sync&quot; that can take some time to complete.)</p>\n"
      },
      "running_usecs": {
        "text": "<p>How many usecs this command has spent running.</p>\n"
      },
      "lock_wait_usecs": {
        "text": "<p>How many usecs this command has spent waiting for locks.</p>\n"
      },
      "net_in_bytes": {
        "changed": {
          "events_net_in_bytes_changed": "This was previously `in_bytes`."
        },
        "text": "<p>Amount of data read for this command, in bytes.</p>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span>: This was previously <code>in_bytes</code>.</li>\n</ul>\n"
      },
      "net_out_bytes": {
        "changed": {
          "events_net_out_bytes_changed": "This was previously `out_bytes`."
        },
        "text": "<p>Amount of data written for this command, in bytes.</p>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span>: This was previously <code>out_bytes</code>.</li>\n</ul>\n"
      },
      "cmd_tag": {
        "text": "<p>IMAP command tag.</p>\n"
      },
      "cmd_name": {
        "text": "<p>IMAP command name uppercased (e.g. <code>FETCH</code>).</p>\n<p>Contains <code>unknown</code> for unknown command names.</p>\n"
      },
      "cmd_input_name": {
        "text": "<p>IMAP command name exactly as sent (e.g. <code>fetcH</code>) regardless of whether or not it is valid.</p>\n"
      },
      "cmd_args": {
        "text": "<p>IMAP command's full parameters (e.g.  <code>1:* FLAGS</code>).</p>\n"
      },
      "cmd_human_args": {
        "text": "<p>IMAP command's full parameters, as human-readable output. Often it's the\nsame as <code>cmd_args</code>, but it is guaranteed to contain only valid UTF-8\ncharacters and no control characters.</p>\n<p>Multi-line parameters are written only as <code>&lt;N byte multi-line literal&gt;</code>.</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      },
      "session": {
        "text": "<p>Session ID of the IMAP connection.</p>\n"
      },
      "local_ip": {
        "text": "<p>IMAP connection's local (server) IP.</p>\n"
      },
      "local_port": {
        "text": "<p>IMAP connection's local (server) port.</p>\n"
      },
      "remote_ip": {
        "text": "<p>IMAP connection's remote (client) IP.</p>\n"
      },
      "remote_port": {
        "text": "<p>IMAP connection's remote (client) port.</p>\n"
      }
    },
    "text": "<p>IMAP command is completed.</p>\n<p>This event is useful to track individual command usage, debug specific\nsessions, and/or detect broken clients.</p>\n<div class=\"tip custom-block\"><p class=\"custom-block-title\">TIP</p>\n<p>This event is currently not sent for pre-login IMAP commands.</p>\n</div>\n"
  },
  "imap_id_received": {
    "root": "imap",
    "inherit": "imap_command",
    "added": {
      "events_imap_id_received_added": false
    },
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "internal": {
        "text": "<p>If <code>yes</code>, ID command parameters include the internally known <code>x-*</code> fields\nto update e.g. the IP or session ID. Typically these fields would be sent only\nby Dovecot proxies. The internal fields are not actually used, unless\n<code>trusted=yes</code> also.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.3</span></li>\n</ul>\n",
        "added": {
          "events_imap_id_received_internal_added": false
        }
      },
      "external": {
        "text": "<p>If <code>yes</code>, ID command parameters include fields sent by a regular IMAP client\n(non-internal fields). Dovecot proxy can send an ID command to a backend\ncontaining both internal and external fields. If the IMAP client sends only\n<code>tag ID NIL</code> command, the event is sent but <code>external</code> is not set.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.3</span></li>\n</ul>\n",
        "added": {
          "events_imap_id_received_internal_added": false
        }
      },
      "trusted": {
        "text": "<p>If <code>yes</code>, the ID command came from an IP matching\n<code><a href=\"/main/core/summaries/settings.html#login_trusted_networks\">login_trusted_networks</a></code>. If any internal fields were sent, they were\nprocessed.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.3</span></li>\n</ul>\n",
        "added": {
          "events_imap_id_received_internal_added": false
        }
      },
      "id_param_<param>": {
        "text": "<p>Received parameters. The event name is the lowercase parameter key prefixed\nwith <code>id_param_</code>, the value is the parameter value.</p>\n"
      },
      "id_invalid<num>": {
        "text": "<p>Each key that contains invalid characters are enumerated starting with 1.\nValid characters are latin alphabetic characters (= <code>a</code> .. <code>z</code>),\nnumerals (= <code>0</code> .. <code>9</code>), the dash (= <code>-</code>) and\nthe underscore (= <code>_</code>), every other character is\nconsidered invalid. The value of this field is the\noriginal parameter key including invalid characters,\nfollowed by a space character, and finally the\noriginal value concatenated into a single string.</p>\n"
      },
      "cmd_tag": {
        "text": "<p>IMAP command tag.</p>\n"
      },
      "cmd_name": {
        "text": "<p>IMAP command name uppercased (e.g. <code>FETCH</code>).</p>\n<p>Contains <code>unknown</code> for unknown command names.</p>\n"
      },
      "cmd_input_name": {
        "text": "<p>IMAP command name exactly as sent (e.g. <code>fetcH</code>) regardless of whether or not it is valid.</p>\n"
      },
      "cmd_args": {
        "text": "<p>IMAP command's full parameters (e.g.  <code>1:* FLAGS</code>).</p>\n"
      },
      "cmd_human_args": {
        "text": "<p>IMAP command's full parameters, as human-readable output. Often it's the\nsame as <code>cmd_args</code>, but it is guaranteed to contain only valid UTF-8\ncharacters and no control characters.</p>\n<p>Multi-line parameters are written only as <code>&lt;N byte multi-line literal&gt;</code>.</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      },
      "session": {
        "text": "<p>Session ID of the IMAP connection.</p>\n"
      },
      "local_ip": {
        "text": "<p>IMAP connection's local (server) IP.</p>\n"
      },
      "local_port": {
        "text": "<p>IMAP connection's local (server) port.</p>\n"
      },
      "remote_ip": {
        "text": "<p>IMAP connection's remote (client) IP.</p>\n"
      },
      "remote_port": {
        "text": "<p>IMAP connection's remote (client) port.</p>\n"
      }
    },
    "text": "<p><span class=\"VPBadge tip\">Added: 2.4.0</span></p>\n<p>This event is emitted when the IMAP ID command was received, both for pre-\nas well as post-login. The parameters slightly differ for an unauthenticated\nclient, e.g. there is no user id.</p>\n"
  },
  "mail_delivery_started": {
    "root": "local-delivery",
    "inherit": "mail_delivery",
    "text": "<p>Message delivery has started.</p>\n<p>This event is useful for debugging mail delivery flow.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "message_id": {
        "text": "<p>Message-ID header value (truncated to 200 bytes).</p>\n"
      },
      "message_subject": {
        "text": "<p>Subject header value, in UTF-8 (truncated to 80 bytes).</p>\n"
      },
      "message_from": {
        "text": "<p>Email address in the From header (e.g. <code>user@example.com</code>).</p>\n"
      },
      "message_size": {
        "text": "<p>Size of the message, in bytes.</p>\n"
      },
      "message_vsize": {
        "text": "<p>Size of the message with CRLF linefeeds, in bytes.</p>\n"
      },
      "rcpt_to": {
        "text": "<p>Recipient address.</p>\n"
      },
      "rcpt_param_notify": {
        "text": "<p>The value of the NOTIFY parameter for the RCPT command.</p>\n"
      },
      "rcpt_param_orcpt": {
        "text": "<p>The address value of the ORCPT parameter for the RCPT command.</p>\n"
      },
      "rcpt_param_orcpt_type": {
        "text": "<p>The address type (typically &quot;rfc822&quot;) of the ORCPT parameter for the RCPT command.</p>\n"
      },
      "session": {
        "text": "<p>The session ID for this connection (same as <code>connection_id</code>).</p>\n"
      },
      "transaction_id": {
        "text": "<p>Transaction ID used by the server for this transaction (this ID is logged, mentioned in the DATA reply and part of the &quot;Received:&quot; header). It is based on the connection_id with a &quot;:&lt;seq&gt;&quot; sequence number suffix.</p>\n"
      },
      "mail_from": {
        "text": "<p>Sender address.</p>\n"
      },
      "mail_param_auth": {
        "text": "<p>The value of the AUTH parameter for the MAIL command.</p>\n"
      },
      "mail_param_body": {
        "text": "<p>The value of the BODY parameter for the MAIL command.</p>\n"
      },
      "mail_param_envid": {
        "text": "<p>The value of the ENVID parameter for the MAIL command.</p>\n"
      },
      "mail_param_ret": {
        "text": "<p>The value of the RET parameter for the MAIL command.</p>\n"
      },
      "mail_param_size": {
        "text": "<p>The value of the SIZE parameter for the MAIL command.</p>\n"
      },
      "data_size": {
        "text": "<p>The number data of bytes received from the client. This field is only present when the transaction finished receiving the DATA command.</p>\n"
      },
      "connection_id": {
        "text": "<p>The session ID for this connection. The connection ID is forwarded through proxies, allowing correlation between sessions on frontend and backend systems.</p>\n"
      },
      "protocol": {
        "text": "<p>The protocol used by the connection; i.e., either <code>smtp</code> or <code>lmtp</code>.</p>\n"
      }
    }
  },
  "mail_delivery_finished": {
    "root": "local-delivery",
    "inherit": "mail_delivery",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "error": {
        "text": "<p>Error message if the delivery failed.</p>\n"
      },
      "message_id": {
        "text": "<p>Message-ID header value (truncated to 200 bytes).</p>\n"
      },
      "message_subject": {
        "text": "<p>Subject header value, in UTF-8 (truncated to 80 bytes).</p>\n"
      },
      "message_from": {
        "text": "<p>Email address in the From header (e.g. <code>user@example.com</code>).</p>\n"
      },
      "message_size": {
        "text": "<p>Size of the message, in bytes.</p>\n"
      },
      "message_vsize": {
        "text": "<p>Size of the message with CRLF linefeeds, in bytes.</p>\n"
      },
      "rcpt_to": {
        "text": "<p>Recipient address.</p>\n"
      },
      "rcpt_param_notify": {
        "text": "<p>The value of the NOTIFY parameter for the RCPT command.</p>\n"
      },
      "rcpt_param_orcpt": {
        "text": "<p>The address value of the ORCPT parameter for the RCPT command.</p>\n"
      },
      "rcpt_param_orcpt_type": {
        "text": "<p>The address type (typically &quot;rfc822&quot;) of the ORCPT parameter for the RCPT command.</p>\n"
      },
      "session": {
        "text": "<p>The session ID for this connection (same as <code>connection_id</code>).</p>\n"
      },
      "transaction_id": {
        "text": "<p>Transaction ID used by the server for this transaction (this ID is logged, mentioned in the DATA reply and part of the &quot;Received:&quot; header). It is based on the connection_id with a &quot;:&lt;seq&gt;&quot; sequence number suffix.</p>\n"
      },
      "mail_from": {
        "text": "<p>Sender address.</p>\n"
      },
      "mail_param_auth": {
        "text": "<p>The value of the AUTH parameter for the MAIL command.</p>\n"
      },
      "mail_param_body": {
        "text": "<p>The value of the BODY parameter for the MAIL command.</p>\n"
      },
      "mail_param_envid": {
        "text": "<p>The value of the ENVID parameter for the MAIL command.</p>\n"
      },
      "mail_param_ret": {
        "text": "<p>The value of the RET parameter for the MAIL command.</p>\n"
      },
      "mail_param_size": {
        "text": "<p>The value of the SIZE parameter for the MAIL command.</p>\n"
      },
      "data_size": {
        "text": "<p>The number data of bytes received from the client. This field is only present when the transaction finished receiving the DATA command.</p>\n"
      },
      "connection_id": {
        "text": "<p>The session ID for this connection. The connection ID is forwarded through proxies, allowing correlation between sessions on frontend and backend systems.</p>\n"
      },
      "protocol": {
        "text": "<p>The protocol used by the connection; i.e., either <code>smtp</code> or <code>lmtp</code>.</p>\n"
      }
    },
    "text": "<p>Message delivery is completed.</p>\n<p>This event is useful for logging and tracking mail deliveries.</p>\n"
  },
  "dns_worker_request_started": {
    "root": "dns-worker",
    "text": "<p>DNS request started being processed by DNS worker process.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      }
    }
  },
  "dns_request_started": {
    "root": "dns-client",
    "text": "<p>DNS request sent by DNS client library to DNS worker process.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      }
    }
  },
  "dns_worker_request_finished": {
    "root": "dns-worker",
    "inherit": "dns",
    "text": "<p>DNS request finished being processed by DNS worker process.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "error": {
        "text": "<p>Human readable error.</p>\n"
      },
      "error_code": {
        "text": "<p>Error code usable with net_gethosterror().</p>\n"
      }
    }
  },
  "dns_request_finished": {
    "root": "dns-client",
    "inherit": "dns",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "cached": {
        "text": "<p>Set to <code>yes</code> or <code>no</code> depending if it was a cached reply or not.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_dns_worker_request_finished_cached_added": false
        }
      },
      "error": {
        "text": "<p>Human readable error.</p>\n"
      },
      "error_code": {
        "text": "<p>Error code usable with net_gethosterror().</p>\n"
      }
    },
    "text": "<p>DNS request sent by DNS client library to DNS worker process has been\nfinished.</p>\n"
  },
  "sql_query_finished": {
    "root": "sql",
    "inherit": "sql_common",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "error": {
        "text": "<p>Human readable error.</p>\n"
      },
      "error_code": {
        "text": "<p>Error code (if available).</p>\n"
      },
      "query_first_word": {
        "text": "<p>First word of the query (e.g. <code>SELECT</code>).</p>\n"
      },
      "consistency": {
        "text": "<p>Requested consistency for the query (Cassandra only).</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_sql_query_finished_consistency_added": false
        }
      },
      "error_consistency": {
        "text": "<p>Consistency attempted to be used by Cassandra for the failed query (Cassandra only).</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_sql_query_finished_consistency_added": false
        }
      },
      "sql_driver": {
        "text": "<p>Name of the sql driver, e.g. <code>mysql</code> or <code>cassandra</code>.</p>\n"
      }
    },
    "text": "<p>Response was received to SQL query.</p>\n"
  },
  "sql_transaction_finished": {
    "root": "sql",
    "inherit": "sql_common",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "error": {
        "text": "<p>Human readable error.</p>\n"
      },
      "error_code": {
        "text": "<p>Error code (if available).</p>\n"
      },
      "sql_driver": {
        "text": "<p>Name of the sql driver, e.g. <code>mysql</code> or <code>cassandra</code>.</p>\n"
      }
    },
    "text": "<p>SQL transaction was committed or rolled back.</p>\n"
  },
  "sql_connection_finished": {
    "root": "sql",
    "inherit": "sql_common",
    "text": "<p>Connection to SQL server is closed.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "sql_driver": {
        "text": "<p>Name of the sql driver, e.g. <code>mysql</code> or <code>cassandra</code>.</p>\n"
      }
    }
  },
  "smtp_server_command_started": {
    "root": "smtp-server",
    "inherit": "smtp_server",
    "text": "<p>The command is received from the client.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "cmd_name": {
        "text": "<p>Name of the command.</p>\n"
      },
      "cmd_input_name": {
        "text": "<p>SMTP command name exactly as sent (e.g. <code>MaIL</code>) regardless of whether or not it is valid.</p>\n"
      },
      "cmd_args": {
        "text": "<p>SMTP command's full parameters (e.g. <code>&lt;from@example.com&gt;</code>).</p>\n"
      },
      "cmd_human_args": {
        "text": "<p>SMTP command's full parameters, as human-readable output. For SMTP, this is currently identical to <code>cmd_args</code>.</p>\n"
      },
      "connection_id": {
        "text": "<p>The session ID for this connection. The connection ID is forwarded through proxies, allowing correlation between sessions on frontend and backend systems.</p>\n"
      },
      "protocol": {
        "text": "<p>The protocol used by the connection; i.e., either <code>smtp</code> or <code>lmtp</code>.</p>\n"
      },
      "session": {
        "text": "<p>The session ID for this connection (same as <code>connection_id</code>).</p>\n"
      }
    }
  },
  "smtp_server_command_finished": {
    "root": "smtp-server",
    "inherit": "smtp_server",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "status_code": {
        "text": "<p>SMTP status code for the (first) reply. This is = 9000 for aborted commands (e.g., when the connection is closed prematurely).</p>\n"
      },
      "enhanced_code": {
        "text": "<p>SMTP enhanced status code for the (first) reply. This is &quot;9.0.0&quot; for aborted commands (e.g., when the connection is closed prematurely).</p>\n"
      },
      "error": {
        "text": "<p>Error message for the reply. There is no field for a success message.</p>\n"
      },
      "cmd_name": {
        "text": "<p>Name of the command.</p>\n"
      },
      "cmd_input_name": {
        "text": "<p>SMTP command name exactly as sent (e.g. <code>MaIL</code>) regardless of whether or not it is valid.</p>\n"
      },
      "cmd_args": {
        "text": "<p>SMTP command's full parameters (e.g. <code>&lt;from@example.com&gt;</code>).</p>\n"
      },
      "cmd_human_args": {
        "text": "<p>SMTP command's full parameters, as human-readable output. For SMTP, this is currently identical to <code>cmd_args</code>.</p>\n"
      },
      "connection_id": {
        "text": "<p>The session ID for this connection. The connection ID is forwarded through proxies, allowing correlation between sessions on frontend and backend systems.</p>\n"
      },
      "protocol": {
        "text": "<p>The protocol used by the connection; i.e., either <code>smtp</code> or <code>lmtp</code>.</p>\n"
      },
      "session": {
        "text": "<p>The session ID for this connection (same as <code>connection_id</code>).</p>\n"
      }
    },
    "text": "<p>The command is finished. Either a success reply was sent for it or it\nfailed somehow.</p>\n"
  },
  "smtp_server_transaction_started": {
    "root": "smtp-server",
    "inherit": "smtp_transaction",
    "text": "<p>The transaction is started.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "transaction_id": {
        "text": "<p>Transaction ID used by the server for this transaction (this ID is logged, mentioned in the DATA reply and part of the &quot;Received:&quot; header). It is based on the connection_id with a &quot;:&lt;seq&gt;&quot; sequence number suffix.</p>\n"
      },
      "session": {
        "text": "<p>The session ID for this connection (same as <code>connection_id</code>).</p>\n"
      },
      "mail_from": {
        "text": "<p>Sender address.</p>\n"
      },
      "mail_param_auth": {
        "text": "<p>The value of the AUTH parameter for the MAIL command.</p>\n"
      },
      "mail_param_body": {
        "text": "<p>The value of the BODY parameter for the MAIL command.</p>\n"
      },
      "mail_param_envid": {
        "text": "<p>The value of the ENVID parameter for the MAIL command.</p>\n"
      },
      "mail_param_ret": {
        "text": "<p>The value of the RET parameter for the MAIL command.</p>\n"
      },
      "mail_param_size": {
        "text": "<p>The value of the SIZE parameter for the MAIL command.</p>\n"
      },
      "data_size": {
        "text": "<p>The number data of bytes received from the client. This field is only present when the transaction finished receiving the DATA command.</p>\n"
      },
      "connection_id": {
        "text": "<p>The session ID for this connection. The connection ID is forwarded through proxies, allowing correlation between sessions on frontend and backend systems.</p>\n"
      },
      "protocol": {
        "text": "<p>The protocol used by the connection; i.e., either <code>smtp</code> or <code>lmtp</code>.</p>\n"
      }
    }
  },
  "smtp_server_transaction_finished": {
    "root": "smtp-server",
    "inherit": "smtp_transaction",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "status_code": {
        "text": "<p>SMTP status code for the (first failure) reply. This is = 9000 for aborted commands (e.g., when the connection is closed prematurely).</p>\n"
      },
      "enhanced_code": {
        "text": "<p>SMTP enhanced status code for the (first failure) reply. This is &quot;9.0.0&quot; for aborted commands (e.g., when the connection is closed prematurely).</p>\n"
      },
      "error": {
        "text": "<p>Error message for the first failure reply. There is no field for a success message.</p>\n"
      },
      "recipients": {
        "text": "<p>Total number of recipients.</p>\n"
      },
      "recipients_aborted": {
        "text": "<p>The number of recipients that got aborted before these could either finish\nor fail. This means that the transaction failed early somehow while these\nrecipients were still being processed by the server.</p>\n"
      },
      "recipients_denied": {
        "text": "<p>The number of recipients denied by the server using a negative reply to the RCPT command.</p>\n"
      },
      "recipients_failed": {
        "text": "<p>The number of recipients that failed somehow (includes denied recipients, but not aborted recipients).</p>\n"
      },
      "recipients_succeeded": {
        "text": "<p>The number of recipients for which the transaction finally succeeded.</p>\n"
      },
      "is_reset": {
        "text": "<p>The transaction was reset (RSET) rather than finishing\nwith a DATA/BDAT command as it normally would. This happens when client\nside issues the RSET command. Note that a reset event is a success (no\nerror field is present).</p>\n"
      },
      "transaction_id": {
        "text": "<p>Transaction ID used by the server for this transaction (this ID is logged, mentioned in the DATA reply and part of the &quot;Received:&quot; header). It is based on the connection_id with a &quot;:&lt;seq&gt;&quot; sequence number suffix.</p>\n"
      },
      "session": {
        "text": "<p>The session ID for this connection (same as <code>connection_id</code>).</p>\n"
      },
      "mail_from": {
        "text": "<p>Sender address.</p>\n"
      },
      "mail_param_auth": {
        "text": "<p>The value of the AUTH parameter for the MAIL command.</p>\n"
      },
      "mail_param_body": {
        "text": "<p>The value of the BODY parameter for the MAIL command.</p>\n"
      },
      "mail_param_envid": {
        "text": "<p>The value of the ENVID parameter for the MAIL command.</p>\n"
      },
      "mail_param_ret": {
        "text": "<p>The value of the RET parameter for the MAIL command.</p>\n"
      },
      "mail_param_size": {
        "text": "<p>The value of the SIZE parameter for the MAIL command.</p>\n"
      },
      "data_size": {
        "text": "<p>The number data of bytes received from the client. This field is only present when the transaction finished receiving the DATA command.</p>\n"
      },
      "connection_id": {
        "text": "<p>The session ID for this connection. The connection ID is forwarded through proxies, allowing correlation between sessions on frontend and backend systems.</p>\n"
      },
      "protocol": {
        "text": "<p>The protocol used by the connection; i.e., either <code>smtp</code> or <code>lmtp</code>.</p>\n"
      }
    },
    "text": "<p>Transaction is finished or failed.</p>\n"
  },
  "smtp_server_transaction_rcpt_finished": {
    "root": "smtp-server",
    "inherit": "smtp_recipient",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "status_code": {
        "text": "<p>SMTP status code for the reply. This is = 9000 for aborted commands (e.g., when the connection is closed prematurely).</p>\n"
      },
      "enhanced_code": {
        "text": "<p>SMTP enhanced status code for the reply. This is &quot;9.0.0&quot; for aborted commands (e.g., when the connection is closed prematurely).</p>\n"
      },
      "error": {
        "text": "<p>Error message for the reply if it is a failure. There is no field for a success message.</p>\n"
      },
      "dest_host": {
        "text": "<p>LMTP proxying only: Proxy destination hostname.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_smtp_server_transaction_rcpt_finished_dest_host_added": false
        }
      },
      "dest_ip": {
        "text": "<p>LMTP proxying only: Proxy destination IP address.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_smtp_server_transaction_rcpt_finished_dest_ip_added": false
        }
      },
      "rcpt_to": {
        "text": "<p>Recipient address.</p>\n"
      },
      "rcpt_param_notify": {
        "text": "<p>The value of the NOTIFY parameter for the RCPT command.</p>\n"
      },
      "rcpt_param_orcpt": {
        "text": "<p>The address value of the ORCPT parameter for the RCPT command.</p>\n"
      },
      "rcpt_param_orcpt_type": {
        "text": "<p>The address type (typically &quot;rfc822&quot;) of the ORCPT parameter for the RCPT command.</p>\n"
      },
      "session": {
        "text": "<p>The session ID for this connection (same as <code>connection_id</code>).</p>\n"
      },
      "transaction_id": {
        "text": "<p>Transaction ID used by the server for this transaction (this ID is logged, mentioned in the DATA reply and part of the &quot;Received:&quot; header). It is based on the connection_id with a &quot;:&lt;seq&gt;&quot; sequence number suffix.</p>\n"
      },
      "mail_from": {
        "text": "<p>Sender address.</p>\n"
      },
      "mail_param_auth": {
        "text": "<p>The value of the AUTH parameter for the MAIL command.</p>\n"
      },
      "mail_param_body": {
        "text": "<p>The value of the BODY parameter for the MAIL command.</p>\n"
      },
      "mail_param_envid": {
        "text": "<p>The value of the ENVID parameter for the MAIL command.</p>\n"
      },
      "mail_param_ret": {
        "text": "<p>The value of the RET parameter for the MAIL command.</p>\n"
      },
      "mail_param_size": {
        "text": "<p>The value of the SIZE parameter for the MAIL command.</p>\n"
      },
      "data_size": {
        "text": "<p>The number data of bytes received from the client. This field is only present when the transaction finished receiving the DATA command.</p>\n"
      },
      "connection_id": {
        "text": "<p>The session ID for this connection. The connection ID is forwarded through proxies, allowing correlation between sessions on frontend and backend systems.</p>\n"
      },
      "protocol": {
        "text": "<p>The protocol used by the connection; i.e., either <code>smtp</code> or <code>lmtp</code>.</p>\n"
      }
    },
    "text": "<p>The transaction is finished or failed for this particular recipient. When\nsuccessful, this means the DATA command for the transaction yielded success\nfor that recipient (even for SMTP this event is generated for each\nrecipient separately). Recipients can fail at various stages, particularly\nat the actual RCPT command where the server can deny the recipient.</p>\n"
  },
  "smtp_submit_started": {
    "root": "smtp-submit",
    "text": "<p>Started message submission.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      }
    }
  },
  "smtp_submit_finished": {
    "root": "smtp-submit",
    "inherit": "smtp_submit",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "error": {
        "text": "<p>Error message for submission failure.</p>\n"
      },
      "mail_from": {
        "text": "<p>The envelope sender for the outgoing message.</p>\n"
      },
      "recipients": {
        "text": "<p>The number of recipients for the outgoing message.</p>\n"
      },
      "data_size": {
        "text": "<p>The size of the outgoing message.</p>\n"
      }
    },
    "text": "<p>Finished the message submission.</p>\n"
  },
  "push_notification_finished": {
    "root": "push-notification",
    "inherit": "mail_user",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "mailbox": {
        "text": "<p>Mailbox for event.</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      },
      "session": {
        "text": "<p>Session ID for the storage session.</p>\n"
      },
      "service": {
        "text": "<p>Name of the service. Examples: <code>imap</code>, <code>pop3</code>, <code>lmtp</code>, ...</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_mail_storage_service_user_service_added": false
        }
      }
    },
    "text": "<p>Push notification event was sent. See <a href=\"/main/core/config/statistics.html#push-notifications\">push notification stats</a>.</p>\n"
  },
  "sieve_runtime_script_started": {
    "root": "sieve-runtime",
    "inherit": "sieve_runtime",
    "text": "<p>Started evaluating a Sieve script.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "script_name": {
        "text": "<p>The name of the Sieve script as it is visible to the user.</p>\n"
      },
      "script_location": {
        "text": "<p>The full location string of the Sieve script.</p>\n"
      },
      "binary_path": {
        "text": "<p>The path of the Sieve binary being executed (if it is not only in memory).</p>\n"
      },
      "error": {
        "text": "<p>If present, this field indicates that the script execution has failed. The error message itself is very simple.</p>\n"
      },
      "message_id": {
        "text": "<p>The message-id of the message being filtered.</p>\n"
      },
      "mail_from": {
        "text": "<p>Envelope sender address if available.</p>\n"
      },
      "rcpt_to": {
        "text": "<p>Envelope recipient address if available.</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      }
    }
  },
  "sieve_runtime_script_finished": {
    "root": "sieve-runtime",
    "inherit": "sieve_runtime",
    "text": "<p>Finished evaluating a Sieve script.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "script_name": {
        "text": "<p>The name of the Sieve script as it is visible to the user.</p>\n"
      },
      "script_location": {
        "text": "<p>The full location string of the Sieve script.</p>\n"
      },
      "binary_path": {
        "text": "<p>The path of the Sieve binary being executed (if it is not only in memory).</p>\n"
      },
      "error": {
        "text": "<p>If present, this field indicates that the script execution has failed. The error message itself is very simple.</p>\n"
      },
      "message_id": {
        "text": "<p>The message-id of the message being filtered.</p>\n"
      },
      "mail_from": {
        "text": "<p>Envelope sender address if available.</p>\n"
      },
      "rcpt_to": {
        "text": "<p>Envelope recipient address if available.</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      }
    }
  },
  "sieve_action_finished": {
    "root": "sieve-execute",
    "inherit": "sieve_execute",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "action_name": {
        "text": "<table tabindex=\"0\">\n<thead>\n<tr>\n<th>Action</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>discard</code></td>\n<td>The discard action was executed successfully (only has an effect when no explicit keep is executed).</td>\n</tr>\n<tr>\n<td>ileinto`</td>\n<td>The fileinto action was executed successfully.</td>\n</tr>\n<tr>\n<td><code>keep</code></td>\n<td>The keep action was executed successfully (maps to fileinto internally, so the fields are identical).</td>\n</tr>\n<tr>\n<td><code>notify</code></td>\n<td>The notify action was executed successfully (either from the notify or the enotify extension).</td>\n</tr>\n<tr>\n<td><code>pipe</code></td>\n<td>The pipe action (from vnd.dovecot.pipe extension) was executed successfully.</td>\n</tr>\n<tr>\n<td><code>redirect</code></td>\n<td>The redirect action was executed successfully.</td>\n</tr>\n<tr>\n<td><code>reject</code></td>\n<td>The reject action was executed successfully.</td>\n</tr>\n<tr>\n<td><code>report</code></td>\n<td>The report action (from vnd.dovecot.report extension) was executed successfully.</td>\n</tr>\n<tr>\n<td><code>vacation</code></td>\n<td>The vacation action was executed successfully.</td>\n</tr>\n</tbody>\n</table>\n"
      },
      "action_script_location": {
        "text": "<p>The location string for this Sieve action (a combination of &quot;&lt;script-name&gt;: line &lt;number&gt;&quot;.</p>\n"
      },
      "redirect_target": {
        "text": "<p>The target address for the redirect action.</p>\n"
      },
      "notify_target": {
        "text": "<p>The list of target addresses for the notify action.</p>\n"
      },
      "report_target": {
        "text": "<p>The target address for the report action.</p>\n"
      },
      "report_type": {
        "text": "<p>The feedback type for the report action.</p>\n"
      },
      "fileinto_mailbox": {
        "text": "<p>The target mailbox for the fileinto/keep action.</p>\n"
      },
      "pipe_program": {
        "text": "<p>The name of the program being executed by the pipe action.</p>\n"
      },
      "message_id": {
        "text": "<p>The message-id of the message being filtered.</p>\n"
      },
      "mail_from": {
        "text": "<p>Envelope sender address if available.</p>\n"
      },
      "rcpt_to": {
        "text": "<p>Envelope recipient address if available.</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      }
    },
    "text": "<p>Emitted when sieve action is completed successfully.</p>\n"
  },
  "sieve_script_opened": {
    "root": "sieve-storage",
    "inherit": "sieve_storage",
    "text": "<p>Opened a Sieve script for reading (e.g. for ManageSieve GETSCRIPT or\ncompiling it at delivery).</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "storage_driver": {
        "text": "<p>The driver name of the Sieve storage (<code>file</code>, <code>ldap</code>, or <code>dict</code>).</p>\n"
      },
      "script_location": {
        "text": "<p>The location string for the Sieve script.</p>\n"
      },
      "error": {
        "text": "<p>Error message for when storage operation has failed.</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      }
    }
  },
  "sieve_script_closed": {
    "root": "sieve-storage",
    "inherit": "sieve_storage",
    "text": "<p>Closed a Sieve script (after reading it).</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "storage_driver": {
        "text": "<p>The driver name of the Sieve storage (<code>file</code>, <code>ldap</code>, or <code>dict</code>).</p>\n"
      },
      "script_location": {
        "text": "<p>The location string for the Sieve script.</p>\n"
      },
      "error": {
        "text": "<p>Error message for when storage operation has failed.</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      }
    }
  },
  "sieve_script_deleted": {
    "root": "sieve-storage",
    "inherit": "sieve_storage",
    "text": "<p>Deleted a Sieve script.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "storage_driver": {
        "text": "<p>The driver name of the Sieve storage (<code>file</code>, <code>ldap</code>, or <code>dict</code>).</p>\n"
      },
      "script_location": {
        "text": "<p>The location string for the Sieve script.</p>\n"
      },
      "error": {
        "text": "<p>Error message for when storage operation has failed.</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      }
    }
  },
  "sieve_script_activated": {
    "root": "sieve-storage",
    "inherit": "sieve_storage",
    "text": "<p>Activated a Sieve script.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "storage_driver": {
        "text": "<p>The driver name of the Sieve storage (<code>file</code>, <code>ldap</code>, or <code>dict</code>).</p>\n"
      },
      "script_location": {
        "text": "<p>The location string for the Sieve script.</p>\n"
      },
      "error": {
        "text": "<p>Error message for when storage operation has failed.</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      }
    }
  },
  "sieve_script_renamed": {
    "root": "sieve-storage",
    "inherit": "sieve_storage",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "old_script_name": {
        "text": "<p>Old name of the Sieve script.</p>\n"
      },
      "new_script_name": {
        "text": "<p>New name for the Sieve script.</p>\n"
      },
      "storage_driver": {
        "text": "<p>The driver name of the Sieve storage (<code>file</code>, <code>ldap</code>, or <code>dict</code>).</p>\n"
      },
      "script_location": {
        "text": "<p>The location string for the Sieve script.</p>\n"
      },
      "error": {
        "text": "<p>Error message for when storage operation has failed.</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      }
    },
    "text": "<p>Renamed a Sieve script.</p>\n"
  },
  "sieve_storage_save_started": {
    "root": "sieve-storage",
    "inherit": "sieve_storage",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "script_name": {
        "text": "<p>Name of the Sieve script.</p>\n"
      },
      "storage_driver": {
        "text": "<p>The driver name of the Sieve storage (<code>file</code>, <code>ldap</code>, or <code>dict</code>).</p>\n"
      },
      "script_location": {
        "text": "<p>The location string for the Sieve script.</p>\n"
      },
      "error": {
        "text": "<p>Error message for when storage operation has failed.</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      }
    },
    "text": "<p>Started saving a Sieve script.</p>\n"
  },
  "sieve_storage_save_finished": {
    "root": "sieve-storage",
    "inherit": "sieve_storage",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "script_name": {
        "text": "<p>Name of the Sieve script.</p>\n"
      },
      "storage_driver": {
        "text": "<p>The driver name of the Sieve storage (<code>file</code>, <code>ldap</code>, or <code>dict</code>).</p>\n"
      },
      "script_location": {
        "text": "<p>The location string for the Sieve script.</p>\n"
      },
      "error": {
        "text": "<p>Error message for when storage operation has failed.</p>\n"
      },
      "user": {
        "text": "<p>Username of the user.</p>\n"
      }
    },
    "text": "<p>Finished saving a Sieve script.</p>\n"
  },
  "managesieve_command_finished": {
    "root": "managesieve",
    "inherit": "managesieve",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "script_name": {
        "text": "<p>Name for the Sieve script this command operated on (if any).</p>\n"
      },
      "old_script_name": {
        "text": "<p>Old name of the Sieve script (only set for RENAMESCRIPT).</p>\n"
      },
      "new_script_name": {
        "text": "<p>New name for the Sieve script (only set for RENAMESCRIPT).</p>\n"
      },
      "compile_errors": {
        "text": "<p>The number of compile errors that occurred (only set for PUTSCRIPT, CHECKSCRIPT and SETACTIVE when compile fails).</p>\n"
      },
      "compile_warnings": {
        "text": "<p>The number of compile warnings that occurred (only set for PUTSCRIPT, CHECKSCRIPT and SETACTIVE when script is compiled).</p>\n"
      },
      "cmd_name": {
        "text": "<p>Name of the ManageSieve command.</p>\n"
      },
      "cmd_args": {
        "text": "<p>Arguments for the ManageSieve command.</p>\n"
      },
      "error": {
        "text": "<p>Error message for when the command failed.</p>\n"
      }
    },
    "text": "<p>Finished the ManageSieve command.</p>\n"
  },
  "dict_created": {
    "root": "dict",
    "inherit": "dict_init",
    "text": "<p>Dictionary is initialized.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "dict_name": {
        "text": "<p>Name of the dict as set in configurations.</p>\n"
      },
      "dict_driver": {
        "text": "<p>Name of the dictionary driver, e.g. <code>sql</code> or <code>proxy</code>.</p>\n"
      },
      "error": {
        "text": "<p>Error, if one occurred.</p>\n"
      }
    }
  },
  "dict_destroyed": {
    "root": "dict",
    "inherit": "dict_init",
    "text": "<p>Dictionary is destroyed.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "dict_name": {
        "text": "<p>Name of the dict as set in configurations.</p>\n"
      },
      "dict_driver": {
        "text": "<p>Name of the dictionary driver, e.g. <code>sql</code> or <code>proxy</code>.</p>\n"
      },
      "error": {
        "text": "<p>Error, if one occurred.</p>\n"
      }
    }
  },
  "dict_lookup_finished": {
    "root": "dict",
    "inherit": "dict_lookup",
    "text": "<p>Dictionary lookup finishes.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "user": {
        "text": "<p>Username, if it's not empty.</p>\n"
      },
      "key": {
        "text": "<p>Key name, starts with <code>priv/</code> or <code>shared/</code>.</p>\n"
      },
      "key_not_found": {
        "text": "<p>Set to <code>yes</code> if key not found.</p>\n"
      },
      "dict_driver": {
        "text": "<p>Name of the dictionary driver, e.g. <code>sql</code> or <code>proxy</code>.</p>\n"
      },
      "error": {
        "text": "<p>Error, if one occurred.</p>\n"
      }
    }
  },
  "dict_iteration_finished": {
    "root": "dict",
    "inherit": "dict_iteration",
    "text": "<p>Dictionary iteration finished.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "rows": {
        "text": "<p>Number of rows returned.</p>\n"
      },
      "user": {
        "text": "<p>Username, if it's not empty.</p>\n"
      },
      "key": {
        "text": "<p>Key name, starts with <code>priv/</code> or <code>shared/</code>.</p>\n"
      },
      "key_not_found": {
        "text": "<p>Set to <code>yes</code> if key not found.</p>\n"
      },
      "dict_driver": {
        "text": "<p>Name of the dictionary driver, e.g. <code>sql</code> or <code>proxy</code>.</p>\n"
      },
      "error": {
        "text": "<p>Error, if one occurred.</p>\n"
      }
    }
  },
  "dict_transaction_finished": {
    "root": "dict",
    "inherit": "dict_transaction",
    "text": "<p>Dictionary transaction has been committed or rolled back.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "user": {
        "text": "<p>Username, if it's not empty.</p>\n"
      },
      "rollback": {
        "text": "<p>Set to <code>yes</code> when transaction was rolled back.</p>\n"
      },
      "write_uncertain": {
        "text": "<p>Set to <code>yes</code> if write was not confirmed.</p>\n"
      },
      "dict_driver": {
        "text": "<p>Name of the dictionary driver, e.g. <code>sql</code> or <code>proxy</code>.</p>\n"
      },
      "error": {
        "text": "<p>Error, if one occurred.</p>\n"
      }
    }
  },
  "dict_server_lookup_finished": {
    "root": "dict-server",
    "inherit": "dict_lookup",
    "text": "<p>Dictionary server finishes lookup.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "user": {
        "text": "<p>Username, if it's not empty.</p>\n"
      },
      "key": {
        "text": "<p>Key name, starts with <code>priv/</code> or <code>shared/</code>.</p>\n"
      },
      "key_not_found": {
        "text": "<p>Set to <code>yes</code> if key not found.</p>\n"
      },
      "dict_driver": {
        "text": "<p>Name of the dictionary driver, e.g. <code>sql</code> or <code>proxy</code>.</p>\n"
      },
      "error": {
        "text": "<p>Error, if one occurred.</p>\n"
      }
    }
  },
  "dict_server_iteration_finished": {
    "root": "dict-server",
    "inherit": "dict_iteration",
    "text": "<p>Dictionary server finishes iteration.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "rows": {
        "text": "<p>Number of rows returned.</p>\n"
      },
      "user": {
        "text": "<p>Username, if it's not empty.</p>\n"
      },
      "key": {
        "text": "<p>Key name, starts with <code>priv/</code> or <code>shared/</code>.</p>\n"
      },
      "key_not_found": {
        "text": "<p>Set to <code>yes</code> if key not found.</p>\n"
      },
      "dict_driver": {
        "text": "<p>Name of the dictionary driver, e.g. <code>sql</code> or <code>proxy</code>.</p>\n"
      },
      "error": {
        "text": "<p>Error, if one occurred.</p>\n"
      }
    }
  },
  "dict_server_transaction_finished": {
    "root": "dict-server",
    "inherit": "dict_transaction",
    "text": "<p>Dictionary server finishes transaction.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "user": {
        "text": "<p>Username, if it's not empty.</p>\n"
      },
      "rollback": {
        "text": "<p>Set to <code>yes</code> when transaction was rolled back.</p>\n"
      },
      "write_uncertain": {
        "text": "<p>Set to <code>yes</code> if write was not confirmed.</p>\n"
      },
      "dict_driver": {
        "text": "<p>Name of the dictionary driver, e.g. <code>sql</code> or <code>proxy</code>.</p>\n"
      },
      "error": {
        "text": "<p>Error, if one occurred.</p>\n"
      }
    }
  },
  "login_aborted": {
    "added": {
      "events_login_aborted_added": false
    },
    "inherit": "pre_login_client",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "reason": {
        "text": "<p>Short reason; see the <a href=\"#pre_login_client_reason_values\">short reason to description mapping</a>.</p>\n"
      },
      "auth_successes": {
        "text": "<p>Number of successful authentications, which eventually failed due to other reasons.</p>\n"
      },
      "auth_attempts": {
        "text": "<p>Total number of authentication attempts, both successful and failed.</p>\n"
      },
      "auth_usecs": {
        "text": "<p>How long ago the first authentication attempt was started.</p>\n"
      },
      "connected_usecs": {
        "text": "<p>How long ago the client connection was created.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP address.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI hostname, if given.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_pre_login_client_local_name_added": false
        }
      },
      "local_port": {
        "text": "<p>Local port.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP address.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port.</p>\n"
      },
      "user": {
        "text": "<p>Full username.</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_pre_login_client_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Name of service e.g. <code>submission</code>, <code>imap</code>.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_pre_login_client_protocol_added": false
        }
      }
    },
    "text": "<p><span class=\"VPBadge tip\">Added: 2.4.0</span></p>\n<span id=\"pre_login_client_reason_values\" />\n<p><code>reason</code> values:</p>\n<table tabindex=\"0\">\n<thead>\n<tr>\n<th>Reason</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>anonymous_auth_disabled</code></td>\n<td>Anonymous authentication is not allowed.</td>\n</tr>\n<tr>\n<td><code>authorization_failed</code></td>\n<td>Master user authentication succeeded, but authorization to access the requested login user wasn't allowed.</td>\n</tr>\n<tr>\n<td><code>auth_aborted_by_client</code></td>\n<td>Client started SASL authentication, but returned &quot;*&quot; reply to abort it.</td>\n</tr>\n<tr>\n<td><code>auth_failed</code></td>\n<td>Generic authentication failure. Possibly due to invalid username/password, but could have been some other unspecified reason also.</td>\n</tr>\n<tr>\n<td><code>auth_nologin_referral</code></td>\n<td>Authentication returned auth referral to redirect the client to another server. This is normally configured to be sent only when the client is a Dovecot proxy, which handles the redirection.</td>\n</tr>\n<tr>\n<td><code>auth_process_comm_fail</code></td>\n<td>Internal error communicating with the auth process.</td>\n</tr>\n<tr>\n<td><code>auth_process_not_ready</code></td>\n<td>Client disconnected before auth process was ready. This may indicate a hanging auth process if <code>connected_usecs</code> is large.</td>\n</tr>\n<tr>\n<td><code>auth_waiting_client</code></td>\n<td>Client started SASL authentication, but disconnected instead of sending the next SASL continuation reply.</td>\n</tr>\n<tr>\n<td><code>cleartext_auth_disabled</code></td>\n<td>Authentication using cleartext mechanism is not allowed at this point. It would be allowed if SSL/TLS was enabled.</td>\n</tr>\n<tr>\n<td><code>client_ssl_cert_untrusted</code></td>\n<td>Client sent an SSL certificate that is untrusted with <code><a href=\"/main/core/summaries/settings.html#auth_ssl_require_client_cert\">auth_ssl_require_client_cert = yes</a></code>.</td>\n</tr>\n<tr>\n<td><code>client_ssl_cert_missing</code></td>\n<td>Client didn't send SSL certificate, but <code><a href=\"/main/core/summaries/settings.html#auth_ssl_require_client_cert\">auth_ssl_require_client_cert = yes</a></code>.</td>\n</tr>\n<tr>\n<td><code>client_ssl_not_started</code></td>\n<td>Client didn't even start SSL with <code><a href=\"/main/core/summaries/settings.html#auth_ssl_require_client_cert\">auth_ssl_require_client_cert = yes</a></code>.</td>\n</tr>\n<tr>\n<td><code>connection_limit</code></td>\n<td>Client reached <code><a href=\"/main/core/summaries/settings.html#mail_max_userip_connections\">mail_max_userip_connections</a></code> limit.</td>\n</tr>\n<tr>\n<td><code>internal_failure</code></td>\n<td>Internal failure. The error log has more details.</td>\n</tr>\n<tr>\n<td><code>invalid_base64</code></td>\n<td>Client sent invalid base64 in SASL response.</td>\n</tr>\n<tr>\n<td><code>invalid_mech</code></td>\n<td>Unknown SASL authentication mechanism requested.</td>\n</tr>\n<tr>\n<td><code>login_disabled</code></td>\n<td>The user has the <a href=\"/main/core/config/auth/passdb.html#nologin\">passdb: Authentication `nologin` Extra Field</a> field set in passdb and is thereby not able to login.</td>\n</tr>\n<tr>\n<td><code>no_auth_attempts</code></td>\n<td>Client didn't send any authentication attempts.</td>\n</tr>\n<tr>\n<td><code>password_expired</code></td>\n<td>The user's password is expired.</td>\n</tr>\n<tr>\n<td><code>process_full</code></td>\n<td><a href=\"/main/core/config/service.html#client-limit\">service configuration (client_limit)</a> and <a href=\"/main/core/config/service.html#process-limit\">service configuration (process_limit)</a> was hit and this login session was killed.</td>\n</tr>\n<tr>\n<td><code>shutting_down</code></td>\n<td>The process is shutting down so the login is aborted.</td>\n</tr>\n<tr>\n<td><code>tls_handshake_not_finished</code></td>\n<td>TLS handshake failed or was not finished.</td>\n</tr>\n<tr>\n<td><code>user_disabled</code></td>\n<td>User is in deny passdb, or in some other way disabled passdb.</td>\n</tr>\n</tbody>\n</table>\n<p>Proxying <code>reason</code> values:</p>\n<table tabindex=\"0\">\n<thead>\n<tr>\n<th>Reason</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>proxy_dest_connect_failed</code></td>\n<td>Local authentication succeeded, but connection to destination hop failed.</td>\n</tr>\n<tr>\n<td><code>proxy_dest_internal_failure</code></td>\n<td>Local authentication succeeded, but internal failure occurred after that.</td>\n</tr>\n<tr>\n<td><code>proxy_dest_remote_failure</code></td>\n<td>Local authentication succeeded, but destination hop reported unspecified failure.</td>\n</tr>\n<tr>\n<td><code>proxy_dest_protocol_failure</code></td>\n<td>Local authentication succeeded, but destination hop unexpectedly violated the protocol standard.</td>\n</tr>\n<tr>\n<td><code>proxy_dest_auth_failed</code></td>\n<td>Local authentication succeeded, but proxying failed to authenticate to the destination hop.</td>\n</tr>\n<tr>\n<td><code>proxy_dest_auth_temp_failed</code></td>\n<td>Local authentication succeeded, but proxying failed to temporarily authenticate to the destination hop.</td>\n</tr>\n<tr>\n<td><code>proxy_dest_redirected</code></td>\n<td>Local authentication succeeded, but destination hop redirected to another host.</td>\n</tr>\n<tr>\n<td><code>proxy_dest_connection_limit</code></td>\n<td><span class=\"VPBadge tip\">Added: 2.4.3</span> Login to backend failed because client reached <code><a href=\"/main/core/summaries/settings.html#mail_max_userip_connections\">mail_max_userip_connections</a></code> limit.</td>\n</tr>\n</tbody>\n</table>\n"
  },
  "proxy_session_started": {
    "inherit": "login_proxy",
    "text": "<p>Connection to proxy destination has started.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "dest_host": {
        "text": "<p>Host name of the proxy destination (if proxying is configured with IP address, will have the same value as <code>dest_ip</code>).</p>\n"
      },
      "dest_ip": {
        "text": "<p>Proxy destination IP.</p>\n"
      },
      "dest_port": {
        "text": "<p>Proxy destination port.</p>\n"
      },
      "source_ip": {
        "text": "<p>Source IP where proxy connection originated from.</p>\n"
      },
      "master_user": {
        "text": "<p>If proxying is done with a master user authentication, contains the full username of master user.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP address.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI hostname, if given.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_pre_login_client_local_name_added": false
        }
      },
      "local_port": {
        "text": "<p>Local port.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP address.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port.</p>\n"
      },
      "user": {
        "text": "<p>Full username.</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_pre_login_client_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Name of service e.g. <code>submission</code>, <code>imap</code>.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_pre_login_client_protocol_added": false
        }
      }
    }
  },
  "proxy_session_established": {
    "inherit": "login_proxy_session",
    "text": "<p>Connection to proxy destination is established and user is successfully\nlogged into the backend.</p>\n",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "source_port": {
        "text": "<p>Source port where proxy connection originated from.</p>\n"
      },
      "reconnect_attempts": {
        "text": "<p>Number of times connection failed and reconnection was attempted.</p>\n"
      },
      "dest_host": {
        "text": "<p>Host name of the proxy destination (if proxying is configured with IP address, will have the same value as <code>dest_ip</code>).</p>\n"
      },
      "dest_ip": {
        "text": "<p>Proxy destination IP.</p>\n"
      },
      "dest_port": {
        "text": "<p>Proxy destination port.</p>\n"
      },
      "source_ip": {
        "text": "<p>Source IP where proxy connection originated from.</p>\n"
      },
      "master_user": {
        "text": "<p>If proxying is done with a master user authentication, contains the full username of master user.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP address.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI hostname, if given.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_pre_login_client_local_name_added": false
        }
      },
      "local_port": {
        "text": "<p>Local port.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP address.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port.</p>\n"
      },
      "user": {
        "text": "<p>Full username.</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_pre_login_client_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Name of service e.g. <code>submission</code>, <code>imap</code>.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_pre_login_client_protocol_added": false
        }
      }
    }
  },
  "proxy_session_finished": {
    "inherit": "login_proxy_session",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "error": {
        "text": "<p>If login to destination failed, contains the error.</p>\n"
      },
      "error_code": {
        "text": "<p>If login to destination failed, contains the <a href=\"#proxy_session_finished_error_code\">error code</a>.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_proxy_session_finished_error_code_added": false
        }
      },
      "disconnect_side": {
        "text": "<p>Which side disconnected: <code>client</code>, <code>server</code>, <code>proxy</code>.</p>\n"
      },
      "disconnect_reason": {
        "text": "<p>Reason for disconnection (empty = clean disconnect).</p>\n"
      },
      "idle_usecs": {
        "changed": {
          "events_proxy_session_finished_idle_usecs_changed": "This was previously named `idle_secs`."
        },
        "text": "<p>Number of seconds the connection was idling before getting disconnected.</p>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span>: This was previously named <code>idle_secs</code>.</li>\n</ul>\n"
      },
      "net_in_bytes": {
        "changed": {
          "events_net_in_bytes_changed": "This was previously `in_bytes`."
        },
        "text": "<p>Amount of data read from client, in bytes.</p>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span>: This was previously <code>in_bytes</code>.</li>\n</ul>\n"
      },
      "net_out_bytes": {
        "changed": {
          "events_net_out_bytes_changed": "This was previously `out_bytes`."
        },
        "text": "<p>Amount of data written to client, in bytes.</p>\n<ul>\n<li><span class=\"VPBadge info\">Changed: 2.4.0</span>: This was previously <code>out_bytes</code>.</li>\n</ul>\n"
      },
      "source_port": {
        "text": "<p>Source port where proxy connection originated from.</p>\n"
      },
      "reconnect_attempts": {
        "text": "<p>Number of times connection failed and reconnection was attempted.</p>\n"
      },
      "dest_host": {
        "text": "<p>Host name of the proxy destination (if proxying is configured with IP address, will have the same value as <code>dest_ip</code>).</p>\n"
      },
      "dest_ip": {
        "text": "<p>Proxy destination IP.</p>\n"
      },
      "dest_port": {
        "text": "<p>Proxy destination port.</p>\n"
      },
      "source_ip": {
        "text": "<p>Source IP where proxy connection originated from.</p>\n"
      },
      "master_user": {
        "text": "<p>If proxying is done with a master user authentication, contains the full username of master user.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP address.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI hostname, if given.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_pre_login_client_local_name_added": false
        }
      },
      "local_port": {
        "text": "<p>Local port.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP address.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port.</p>\n"
      },
      "user": {
        "text": "<p>Full username.</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_pre_login_client_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Name of service e.g. <code>submission</code>, <code>imap</code>.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_pre_login_client_protocol_added": false
        }
      }
    },
    "text": "<p>Connection to proxy destination has ended, either successfully or with error.</p>\n<span id=\"proxy_session_finished_error_code\" />\n<p>List of error codes:</p>\n<table tabindex=\"0\">\n<thead>\n<tr>\n<th>Error Code</th>\n<th>Explanation</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>authorization_failed</code></td>\n<td>User authorization failed.</td>\n</tr>\n<tr>\n<td><code>temp_fail</code></td>\n<td>Auth service reported temporary failure.</td>\n</tr>\n<tr>\n<td><code>user_disabled</code></td>\n<td>User is disabled.</td>\n</tr>\n<tr>\n<td><code>password_expired</code></td>\n<td>Password is expired.</td>\n</tr>\n<tr>\n<td><code>invalid_base64</code></td>\n<td>Challenge response was invalid base64 encoded.</td>\n</tr>\n<tr>\n<td><code>login_disabled</code></td>\n<td>Login is disabled.</td>\n</tr>\n<tr>\n<td><code>invalid_mech</code></td>\n<td>Used mechanism isn't supported.</td>\n</tr>\n<tr>\n<td><code>cleartext_auth_disabled</code></td>\n<td>Cleartext authentication is not enabled, use TLS.</td>\n</tr>\n<tr>\n<td><code>anonymous_auth_disabled</code></td>\n<td>Anonymous authentication is not enabled.</td>\n</tr>\n</tbody>\n</table>\n<p>Proxying error codes:</p>\n<table tabindex=\"0\">\n<thead>\n<tr>\n<th>Reason</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>proxy_dest_connect_failed</code></td>\n<td>Local authentication succeeded, but connection to destination hop failed.</td>\n</tr>\n<tr>\n<td><code>proxy_dest_internal_failure</code></td>\n<td>Local authentication succeeded, but internal failure occurred after that.</td>\n</tr>\n<tr>\n<td><code>proxy_dest_remote_failure</code></td>\n<td>Local authentication succeeded, but destination hop reported unspecified failure.</td>\n</tr>\n<tr>\n<td><code>proxy_dest_protocol_failure</code></td>\n<td>Local authentication succeeded, but destination hop unexpectedly violated the protocol standard.</td>\n</tr>\n<tr>\n<td><code>proxy_dest_auth_failed</code></td>\n<td>Local authentication succeeded, but proxying failed to authenticate to the destination hop.</td>\n</tr>\n<tr>\n<td><code>proxy_dest_auth_temp_failed</code></td>\n<td>Local authentication succeeded, but proxying failed to temporarily authenticate to the destination hop.</td>\n</tr>\n<tr>\n<td><code>proxy_dest_redirected</code></td>\n<td>Local authentication succeeded, but destination hop redirected to another host.</td>\n</tr>\n<tr>\n<td><code>proxy_dest_connection_limit</code></td>\n<td><span class=\"VPBadge tip\">Added: 2.4.3</span> Login to backend failed because client reached <code><a href=\"/main/core/summaries/settings.html#mail_max_userip_connections\">mail_max_userip_connections</a></code> limit.</td>\n</tr>\n</tbody>\n</table>\n"
  },
  "proxy_session_reconnecting": {
    "inherit": "login_proxy_session",
    "fields": {
      "duration": {
        "text": "<p>Duration of the event (in microseconds)</p>\n"
      },
      "reason_code": {
        "text": "<p>List of reason code strings why the event happened. See <a href=\"./events.html#event-reasons\">event reasons</a> for possible values.</p>\n"
      },
      "error": {
        "text": "<p>Reason for the attempt failure.</p>\n"
      },
      "error_code": {
        "text": "<p><a href=\"#proxy_session_finished_error_code\">Error code</a> for the attempt failure.</p>\n"
      },
      "source_port": {
        "text": "<p>Source port where proxy connection originated from.</p>\n"
      },
      "reconnect_attempts": {
        "text": "<p>Number of times connection failed and reconnection was attempted.</p>\n"
      },
      "dest_host": {
        "text": "<p>Host name of the proxy destination (if proxying is configured with IP address, will have the same value as <code>dest_ip</code>).</p>\n"
      },
      "dest_ip": {
        "text": "<p>Proxy destination IP.</p>\n"
      },
      "dest_port": {
        "text": "<p>Proxy destination port.</p>\n"
      },
      "source_ip": {
        "text": "<p>Source IP where proxy connection originated from.</p>\n"
      },
      "master_user": {
        "text": "<p>If proxying is done with a master user authentication, contains the full username of master user.</p>\n"
      },
      "local_ip": {
        "text": "<p>Local IP address.</p>\n"
      },
      "local_name": {
        "text": "<p>TLS SNI hostname, if given.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_pre_login_client_local_name_added": false
        }
      },
      "local_port": {
        "text": "<p>Local port.</p>\n"
      },
      "remote_ip": {
        "text": "<p>Remote IP address.</p>\n"
      },
      "remote_port": {
        "text": "<p>Remote port.</p>\n"
      },
      "user": {
        "text": "<p>Full username.</p>\n"
      },
      "service": {
        "text": "<p>Same as <code>protocol</code></p>\n<ul>\n<li><span class=\"VPBadge danger\">Removed: 2.4.0</span></li>\n</ul>\n",
        "removed": {
          "events_pre_login_client_service_removed": false
        }
      },
      "protocol": {
        "text": "<p>Name of service e.g. <code>submission</code>, <code>imap</code>.</p>\n<ul>\n<li><span class=\"VPBadge tip\">Added: 2.4.0</span></li>\n</ul>\n",
        "added": {
          "events_pre_login_client_protocol_added": false
        }
      }
    },
    "text": "<p>Connection to proxy failed, but reconnect will be attempted.\n<code>reconnect_attempts=1</code> for the first event and increases for each subsequent\nevent.</p>\n"
  }
}