mirror of
https://github.com/stalwartlabs/mail-server.git
synced 2025-09-17 01:14:33 +08:00
1613 lines
88 KiB
Rust
1613 lines
88 KiB
Rust
/*
|
|
* SPDX-FileCopyrightText: 2020 Stalwart Labs Ltd <hello@stalw.art>
|
|
*
|
|
* SPDX-License-Identifier: LicenseRef-SEL
|
|
*
|
|
* This file is subject to the Stalwart Enterprise License Agreement (SEL) and
|
|
* is NOT open source software.
|
|
*
|
|
*/
|
|
|
|
use std::net::{Ipv4Addr, Ipv6Addr};
|
|
|
|
use crate::*;
|
|
|
|
const VERSION: u8 = 1;
|
|
|
|
pub fn serialize_events<'x>(
|
|
events: impl IntoIterator<Item = &'x Event<EventDetails>>,
|
|
num_events: usize,
|
|
) -> Vec<u8> {
|
|
let mut buf = Vec::with_capacity(num_events * 64);
|
|
buf.push(VERSION);
|
|
leb128_write(&mut buf, num_events as u64);
|
|
for event in events {
|
|
event.serialize(&mut buf);
|
|
}
|
|
buf
|
|
}
|
|
|
|
pub fn deserialize_events(bytes: &[u8]) -> crate::Result<Vec<Event<EventDetails>>> {
|
|
let mut iter = bytes.iter();
|
|
if *iter.next().ok_or_else(|| {
|
|
StoreEvent::DataCorruption
|
|
.caused_by(crate::location!())
|
|
.details("EOF while reading version")
|
|
})? != VERSION
|
|
{
|
|
crate::bail!(StoreEvent::DataCorruption
|
|
.caused_by(crate::location!())
|
|
.details("Invalid version"));
|
|
}
|
|
let len = leb128_read(&mut iter).ok_or_else(|| {
|
|
StoreEvent::DataCorruption
|
|
.caused_by(crate::location!())
|
|
.details("EOF while size")
|
|
})? as usize;
|
|
let mut events = Vec::with_capacity(len);
|
|
for n in 0..len {
|
|
events.push(Event::deserialize(&mut iter).ok_or_else(|| {
|
|
StoreEvent::DataCorruption
|
|
.caused_by(crate::location!())
|
|
.details(format!("Failed to deserialize event {n}"))
|
|
})?);
|
|
}
|
|
Ok(events)
|
|
}
|
|
|
|
pub fn deserialize_single_event(bytes: &[u8]) -> crate::Result<Event<EventDetails>> {
|
|
let mut iter = bytes.iter();
|
|
if *iter.next().ok_or_else(|| {
|
|
StoreEvent::DataCorruption
|
|
.caused_by(crate::location!())
|
|
.details("EOF while reading version")
|
|
})? != VERSION
|
|
{
|
|
crate::bail!(StoreEvent::DataCorruption
|
|
.caused_by(crate::location!())
|
|
.details("Invalid version"));
|
|
}
|
|
let _ = leb128_read(&mut iter).ok_or_else(|| {
|
|
StoreEvent::DataCorruption
|
|
.caused_by(crate::location!())
|
|
.details("EOF while size")
|
|
})?;
|
|
Event::deserialize(&mut iter).ok_or_else(|| {
|
|
StoreEvent::DataCorruption
|
|
.caused_by(crate::location!())
|
|
.details("Failed to deserialize event")
|
|
})
|
|
}
|
|
|
|
impl Event<EventDetails> {
|
|
pub fn serialize(&self, buf: &mut Vec<u8>) {
|
|
leb128_write(buf, self.inner.typ.code());
|
|
buf.extend_from_slice(self.inner.timestamp.to_le_bytes().as_ref());
|
|
leb128_write(buf, self.keys.len() as u64);
|
|
for (k, v) in &self.keys {
|
|
leb128_write(buf, k.code());
|
|
v.serialize(buf);
|
|
}
|
|
}
|
|
pub fn deserialize<'x>(iter: &mut impl Iterator<Item = &'x u8>) -> Option<Self> {
|
|
let typ = EventType::from_code(leb128_read(iter)?)?;
|
|
let timestamp = u64::from_le_bytes([
|
|
*iter.next()?,
|
|
*iter.next()?,
|
|
*iter.next()?,
|
|
*iter.next()?,
|
|
*iter.next()?,
|
|
*iter.next()?,
|
|
*iter.next()?,
|
|
*iter.next()?,
|
|
]);
|
|
let keys_len = leb128_read(iter)?;
|
|
let mut keys = Vec::with_capacity(keys_len as usize);
|
|
for _ in 0..keys_len {
|
|
let key = Key::from_code(leb128_read(iter)?)?;
|
|
let value = Value::deserialize(iter)?;
|
|
keys.push((key, value));
|
|
}
|
|
Some(Event {
|
|
inner: EventDetails {
|
|
typ,
|
|
timestamp,
|
|
level: Level::Info,
|
|
span: None,
|
|
},
|
|
keys,
|
|
})
|
|
}
|
|
}
|
|
|
|
impl Value {
|
|
fn serialize(&self, buf: &mut Vec<u8>) {
|
|
match self {
|
|
Value::Static(v) => {
|
|
buf.push(0u8);
|
|
leb128_write(buf, v.len() as u64);
|
|
buf.extend(v.as_bytes());
|
|
}
|
|
Value::String(v) => {
|
|
buf.push(0u8);
|
|
leb128_write(buf, v.len() as u64);
|
|
buf.extend(v.as_bytes());
|
|
}
|
|
Value::UInt(v) => {
|
|
buf.push(1u8);
|
|
leb128_write(buf, *v);
|
|
}
|
|
Value::Int(v) => {
|
|
buf.push(2u8);
|
|
buf.extend(&v.to_le_bytes());
|
|
}
|
|
Value::Float(v) => {
|
|
buf.push(3u8);
|
|
buf.extend(&v.to_le_bytes());
|
|
}
|
|
Value::Timestamp(v) => {
|
|
buf.push(4u8);
|
|
buf.extend(&v.to_le_bytes());
|
|
}
|
|
Value::Duration(v) => {
|
|
buf.push(5u8);
|
|
leb128_write(buf, *v);
|
|
}
|
|
Value::Bytes(v) => {
|
|
buf.push(6u8);
|
|
leb128_write(buf, v.len() as u64);
|
|
buf.extend(v);
|
|
}
|
|
Value::Bool(true) => {
|
|
buf.push(7u8);
|
|
}
|
|
Value::Bool(false) => {
|
|
buf.push(8u8);
|
|
}
|
|
Value::Ipv4(v) => {
|
|
buf.push(9u8);
|
|
buf.extend(&v.octets());
|
|
}
|
|
Value::Ipv6(v) => {
|
|
buf.push(10u8);
|
|
buf.extend(&v.octets());
|
|
}
|
|
Value::Event(v) => {
|
|
buf.push(11u8);
|
|
leb128_write(buf, v.inner.code());
|
|
leb128_write(buf, v.keys.len() as u64);
|
|
for (k, v) in &v.keys {
|
|
leb128_write(buf, k.code());
|
|
v.serialize(buf);
|
|
}
|
|
}
|
|
Value::Array(v) => {
|
|
buf.push(12u8);
|
|
leb128_write(buf, v.len() as u64);
|
|
for value in v {
|
|
value.serialize(buf);
|
|
}
|
|
}
|
|
Value::None => {
|
|
buf.push(13u8);
|
|
}
|
|
}
|
|
}
|
|
|
|
fn deserialize<'x>(iter: &mut impl Iterator<Item = &'x u8>) -> Option<Self> {
|
|
match iter.next()? {
|
|
0 => {
|
|
let mut buf = vec![0u8; leb128_read(iter)? as usize];
|
|
for byte in buf.iter_mut() {
|
|
*byte = *iter.next()?;
|
|
}
|
|
Some(Value::String(String::from_utf8(buf).ok()?))
|
|
}
|
|
1 => Some(Value::UInt(leb128_read(iter)?)),
|
|
2 => {
|
|
let mut buf = [0u8; std::mem::size_of::<i64>()];
|
|
for byte in buf.iter_mut() {
|
|
*byte = *iter.next()?;
|
|
}
|
|
Some(Value::Int(i64::from_le_bytes(buf)))
|
|
}
|
|
3 => {
|
|
let mut buf = [0u8; std::mem::size_of::<f64>()];
|
|
for byte in buf.iter_mut() {
|
|
*byte = *iter.next()?;
|
|
}
|
|
Some(Value::Float(f64::from_le_bytes(buf)))
|
|
}
|
|
4 => {
|
|
let mut buf = [0u8; std::mem::size_of::<u64>()];
|
|
for byte in buf.iter_mut() {
|
|
*byte = *iter.next()?;
|
|
}
|
|
Some(Value::Timestamp(u64::from_le_bytes(buf)))
|
|
}
|
|
5 => Some(Value::Duration(leb128_read(iter)?)),
|
|
6 => {
|
|
let mut buf = vec![0u8; leb128_read(iter)? as usize];
|
|
for byte in buf.iter_mut() {
|
|
*byte = *iter.next()?;
|
|
}
|
|
Some(Value::Bytes(buf))
|
|
}
|
|
7 => Some(Value::Bool(true)),
|
|
8 => Some(Value::Bool(false)),
|
|
9 => {
|
|
let mut buf = [0u8; 4];
|
|
for byte in buf.iter_mut() {
|
|
*byte = *iter.next()?;
|
|
}
|
|
Some(Value::Ipv4(Ipv4Addr::from(buf)))
|
|
}
|
|
10 => {
|
|
let mut buf = [0u8; 16];
|
|
for byte in buf.iter_mut() {
|
|
*byte = *iter.next()?;
|
|
}
|
|
Some(Value::Ipv6(Ipv6Addr::from(buf)))
|
|
}
|
|
11 => {
|
|
let code = EventType::from_code(leb128_read(iter)?)?;
|
|
let keys_len = leb128_read(iter)?;
|
|
let mut keys = Vec::with_capacity(keys_len as usize);
|
|
for _ in 0..keys_len {
|
|
let key = Key::from_code(leb128_read(iter)?)?;
|
|
let value = Value::deserialize(iter)?;
|
|
keys.push((key, value));
|
|
}
|
|
Some(Value::Event(Event::with_keys(code, keys)))
|
|
}
|
|
12 => {
|
|
let len = leb128_read(iter)?;
|
|
let mut values = Vec::with_capacity(len as usize);
|
|
for _ in 0..len {
|
|
values.push(Value::deserialize(iter)?);
|
|
}
|
|
Some(Value::Array(values))
|
|
}
|
|
13 => Some(Value::None),
|
|
_ => None,
|
|
}
|
|
}
|
|
}
|
|
|
|
fn leb128_write(buf: &mut Vec<u8>, mut value: u64) {
|
|
loop {
|
|
if value < 0x80 {
|
|
buf.push(value as u8);
|
|
break;
|
|
} else {
|
|
buf.push(((value & 0x7f) | 0x80) as u8);
|
|
value >>= 7;
|
|
}
|
|
}
|
|
}
|
|
|
|
fn leb128_read<'x>(iter: &mut impl Iterator<Item = &'x u8>) -> Option<u64> {
|
|
let mut result = 0;
|
|
|
|
for shift in [0, 7, 14, 21, 28, 35, 42, 49, 56, 63] {
|
|
let byte = iter.next()?;
|
|
|
|
if (byte & 0x80) == 0 {
|
|
result |= (*byte as u64) << shift;
|
|
return Some(result);
|
|
} else {
|
|
result |= ((byte & 0x7F) as u64) << shift;
|
|
}
|
|
}
|
|
|
|
None
|
|
}
|
|
|
|
impl EventType {
|
|
pub fn code(&self) -> u64 {
|
|
match self {
|
|
EventType::Acme(AcmeEvent::AuthCompleted) => 0,
|
|
EventType::Acme(AcmeEvent::AuthError) => 1,
|
|
EventType::Acme(AcmeEvent::AuthPending) => 2,
|
|
EventType::Acme(AcmeEvent::AuthStart) => 3,
|
|
EventType::Acme(AcmeEvent::AuthTooManyAttempts) => 4,
|
|
EventType::Acme(AcmeEvent::AuthValid) => 5,
|
|
EventType::Acme(AcmeEvent::ClientMissingSni) => 6,
|
|
EventType::Acme(AcmeEvent::ClientSuppliedSni) => 7,
|
|
EventType::Acme(AcmeEvent::DnsRecordCreated) => 8,
|
|
EventType::Acme(AcmeEvent::DnsRecordCreationFailed) => 9,
|
|
EventType::Acme(AcmeEvent::DnsRecordDeletionFailed) => 10,
|
|
EventType::Acme(AcmeEvent::DnsRecordLookupFailed) => 11,
|
|
EventType::Acme(AcmeEvent::DnsRecordNotPropagated) => 12,
|
|
EventType::Acme(AcmeEvent::DnsRecordPropagated) => 13,
|
|
EventType::Acme(AcmeEvent::DnsRecordPropagationTimeout) => 14,
|
|
EventType::Acme(AcmeEvent::Error) => 15,
|
|
EventType::Acme(AcmeEvent::OrderCompleted) => 16,
|
|
EventType::Acme(AcmeEvent::OrderInvalid) => 17,
|
|
EventType::Acme(AcmeEvent::OrderProcessing) => 18,
|
|
EventType::Acme(AcmeEvent::OrderReady) => 19,
|
|
EventType::Acme(AcmeEvent::OrderStart) => 20,
|
|
EventType::Acme(AcmeEvent::OrderValid) => 21,
|
|
EventType::Acme(AcmeEvent::ProcessCert) => 22,
|
|
EventType::Acme(AcmeEvent::RenewBackoff) => 23,
|
|
EventType::Acme(AcmeEvent::TlsAlpnError) => 24,
|
|
EventType::Acme(AcmeEvent::TlsAlpnReceived) => 25,
|
|
EventType::Acme(AcmeEvent::TokenNotFound) => 26,
|
|
EventType::Arc(ArcEvent::BrokenChain) => 27,
|
|
EventType::Arc(ArcEvent::ChainTooLong) => 28,
|
|
EventType::Arc(ArcEvent::HasHeaderTag) => 29,
|
|
EventType::Arc(ArcEvent::InvalidCv) => 30,
|
|
EventType::Arc(ArcEvent::InvalidInstance) => 31,
|
|
EventType::Arc(ArcEvent::SealerNotFound) => 32,
|
|
EventType::Security(SecurityEvent::AuthenticationBan) => 33,
|
|
EventType::Auth(AuthEvent::Error) => 34,
|
|
EventType::Auth(AuthEvent::Failed) => 35,
|
|
EventType::Auth(AuthEvent::MissingTotp) => 36,
|
|
EventType::Auth(AuthEvent::Success) => 37,
|
|
EventType::Auth(AuthEvent::TooManyAttempts) => 38,
|
|
EventType::Cluster(ClusterEvent::DecryptionError) => 39,
|
|
EventType::Cluster(ClusterEvent::EmptyPacket) => 40,
|
|
EventType::Cluster(ClusterEvent::Error) => 41,
|
|
EventType::Cluster(ClusterEvent::InvalidPacket) => 42,
|
|
EventType::Cluster(ClusterEvent::OneOrMorePeersOffline) => 43,
|
|
EventType::Cluster(ClusterEvent::PeerAlive) => 44,
|
|
EventType::Cluster(ClusterEvent::PeerBackOnline) => 45,
|
|
EventType::Cluster(ClusterEvent::PeerDiscovered) => 46,
|
|
EventType::Cluster(ClusterEvent::PeerHasChanges) => 47,
|
|
EventType::Cluster(ClusterEvent::PeerLeaving) => 49,
|
|
EventType::Cluster(ClusterEvent::PeerOffline) => 50,
|
|
EventType::Cluster(ClusterEvent::PeerSuspected) => 51,
|
|
EventType::Cluster(ClusterEvent::PeerSuspectedIsAlive) => 52,
|
|
EventType::Config(ConfigEvent::AlreadyUpToDate) => 53,
|
|
EventType::Config(ConfigEvent::BuildError) => 54,
|
|
EventType::Config(ConfigEvent::BuildWarning) => 55,
|
|
EventType::Config(ConfigEvent::DefaultApplied) => 56,
|
|
EventType::Config(ConfigEvent::ExternalKeyIgnored) => 57,
|
|
EventType::Config(ConfigEvent::FetchError) => 58,
|
|
EventType::Config(ConfigEvent::ImportExternal) => 59,
|
|
EventType::Config(ConfigEvent::MacroError) => 60,
|
|
EventType::Config(ConfigEvent::MissingSetting) => 61,
|
|
EventType::Config(ConfigEvent::ParseError) => 62,
|
|
EventType::Config(ConfigEvent::ParseWarning) => 63,
|
|
EventType::Config(ConfigEvent::UnusedSetting) => 64,
|
|
EventType::Config(ConfigEvent::WriteError) => 65,
|
|
EventType::Dane(DaneEvent::AuthenticationFailure) => 66,
|
|
EventType::Dane(DaneEvent::AuthenticationSuccess) => 67,
|
|
EventType::Dane(DaneEvent::CertificateParseError) => 68,
|
|
EventType::Dane(DaneEvent::NoCertificatesFound) => 69,
|
|
EventType::Dane(DaneEvent::TlsaRecordFetch) => 70,
|
|
EventType::Dane(DaneEvent::TlsaRecordFetchError) => 71,
|
|
EventType::Dane(DaneEvent::TlsaRecordInvalid) => 72,
|
|
EventType::Dane(DaneEvent::TlsaRecordMatch) => 73,
|
|
EventType::Dane(DaneEvent::TlsaRecordNotDnssecSigned) => 74,
|
|
EventType::Dane(DaneEvent::TlsaRecordNotFound) => 75,
|
|
EventType::Delivery(DeliveryEvent::AttemptEnd) => 76,
|
|
EventType::Delivery(DeliveryEvent::AttemptStart) => 77,
|
|
EventType::Delivery(DeliveryEvent::Auth) => 78,
|
|
EventType::Delivery(DeliveryEvent::AuthFailed) => 79,
|
|
EventType::Delivery(DeliveryEvent::Completed) => 80,
|
|
EventType::Delivery(DeliveryEvent::ConcurrencyLimitExceeded) => 81,
|
|
EventType::Delivery(DeliveryEvent::Connect) => 82,
|
|
EventType::Delivery(DeliveryEvent::ConnectError) => 83,
|
|
EventType::Delivery(DeliveryEvent::Delivered) => 84,
|
|
EventType::Delivery(DeliveryEvent::DomainDeliveryStart) => 85,
|
|
EventType::Delivery(DeliveryEvent::DoubleBounce) => 86,
|
|
EventType::Delivery(DeliveryEvent::DsnPermFail) => 87,
|
|
EventType::Delivery(DeliveryEvent::DsnSuccess) => 88,
|
|
EventType::Delivery(DeliveryEvent::DsnTempFail) => 89,
|
|
EventType::Delivery(DeliveryEvent::Ehlo) => 90,
|
|
EventType::Delivery(DeliveryEvent::EhloRejected) => 91,
|
|
EventType::Delivery(DeliveryEvent::Failed) => 92,
|
|
EventType::Delivery(DeliveryEvent::GreetingFailed) => 93,
|
|
EventType::Delivery(DeliveryEvent::ImplicitTlsError) => 94,
|
|
EventType::Delivery(DeliveryEvent::IpLookup) => 95,
|
|
EventType::Delivery(DeliveryEvent::IpLookupFailed) => 96,
|
|
EventType::Delivery(DeliveryEvent::MailFrom) => 97,
|
|
EventType::Delivery(DeliveryEvent::MailFromRejected) => 98,
|
|
EventType::Delivery(DeliveryEvent::MessageRejected) => 99,
|
|
EventType::Delivery(DeliveryEvent::MissingOutboundHostname) => 100,
|
|
EventType::Delivery(DeliveryEvent::MxLookup) => 101,
|
|
EventType::Delivery(DeliveryEvent::MxLookupFailed) => 102,
|
|
EventType::Delivery(DeliveryEvent::NullMx) => 103,
|
|
EventType::Delivery(DeliveryEvent::RateLimitExceeded) => 104,
|
|
EventType::Delivery(DeliveryEvent::RawInput) => 105,
|
|
EventType::Delivery(DeliveryEvent::RawOutput) => 106,
|
|
EventType::Delivery(DeliveryEvent::RcptTo) => 107,
|
|
EventType::Delivery(DeliveryEvent::RcptToFailed) => 108,
|
|
EventType::Delivery(DeliveryEvent::RcptToRejected) => 109,
|
|
EventType::Delivery(DeliveryEvent::StartTls) => 110,
|
|
EventType::Delivery(DeliveryEvent::StartTlsDisabled) => 111,
|
|
EventType::Delivery(DeliveryEvent::StartTlsError) => 112,
|
|
EventType::Delivery(DeliveryEvent::StartTlsUnavailable) => 113,
|
|
EventType::Dkim(DkimEvent::Fail) => 114,
|
|
EventType::Dkim(DkimEvent::FailedAuidMatch) => 115,
|
|
EventType::Dkim(DkimEvent::FailedBodyHashMatch) => 116,
|
|
EventType::Dkim(DkimEvent::FailedVerification) => 117,
|
|
EventType::Dkim(DkimEvent::IncompatibleAlgorithms) => 118,
|
|
EventType::Dkim(DkimEvent::Neutral) => 119,
|
|
EventType::Dkim(DkimEvent::None) => 120,
|
|
EventType::Dkim(DkimEvent::Pass) => 121,
|
|
EventType::Dkim(DkimEvent::PermError) => 122,
|
|
EventType::Dkim(DkimEvent::RevokedPublicKey) => 123,
|
|
EventType::Dkim(DkimEvent::SignatureExpired) => 124,
|
|
EventType::Dkim(DkimEvent::SignatureLength) => 125,
|
|
EventType::Dkim(DkimEvent::SignerNotFound) => 126,
|
|
EventType::Dkim(DkimEvent::TempError) => 127,
|
|
EventType::Dkim(DkimEvent::UnsupportedAlgorithm) => 128,
|
|
EventType::Dkim(DkimEvent::UnsupportedCanonicalization) => 129,
|
|
EventType::Dkim(DkimEvent::UnsupportedKeyType) => 130,
|
|
EventType::Dkim(DkimEvent::UnsupportedVersion) => 131,
|
|
EventType::Dmarc(DmarcEvent::Fail) => 132,
|
|
EventType::Dmarc(DmarcEvent::None) => 133,
|
|
EventType::Dmarc(DmarcEvent::Pass) => 134,
|
|
EventType::Dmarc(DmarcEvent::PermError) => 135,
|
|
EventType::Dmarc(DmarcEvent::TempError) => 136,
|
|
EventType::Eval(EvalEvent::DirectoryNotFound) => 137,
|
|
EventType::Eval(EvalEvent::Error) => 138,
|
|
EventType::Eval(EvalEvent::Result) => 139,
|
|
EventType::Eval(EvalEvent::StoreNotFound) => 140,
|
|
EventType::FtsIndex(FtsIndexEvent::BlobNotFound) => 141,
|
|
EventType::FtsIndex(FtsIndexEvent::Index) => 142,
|
|
EventType::FtsIndex(FtsIndexEvent::Locked) => 144,
|
|
EventType::FtsIndex(FtsIndexEvent::MetadataNotFound) => 145,
|
|
EventType::Housekeeper(HousekeeperEvent::Run) => 146,
|
|
EventType::Housekeeper(HousekeeperEvent::Schedule) => 149,
|
|
EventType::Housekeeper(HousekeeperEvent::Start) => 150,
|
|
EventType::Housekeeper(HousekeeperEvent::Stop) => 151,
|
|
EventType::Http(HttpEvent::ConnectionEnd) => 152,
|
|
EventType::Http(HttpEvent::ConnectionStart) => 153,
|
|
EventType::Http(HttpEvent::Error) => 154,
|
|
EventType::Http(HttpEvent::RequestBody) => 155,
|
|
EventType::Http(HttpEvent::RequestUrl) => 156,
|
|
EventType::Http(HttpEvent::ResponseBody) => 157,
|
|
EventType::Http(HttpEvent::XForwardedMissing) => 158,
|
|
EventType::Imap(ImapEvent::Append) => 159,
|
|
EventType::Imap(ImapEvent::Capabilities) => 160,
|
|
EventType::Imap(ImapEvent::Close) => 161,
|
|
EventType::Imap(ImapEvent::ConnectionEnd) => 162,
|
|
EventType::Imap(ImapEvent::ConnectionStart) => 163,
|
|
EventType::Imap(ImapEvent::Copy) => 164,
|
|
EventType::Imap(ImapEvent::CreateMailbox) => 165,
|
|
EventType::Imap(ImapEvent::DeleteMailbox) => 166,
|
|
EventType::Imap(ImapEvent::Enable) => 167,
|
|
EventType::Imap(ImapEvent::Error) => 168,
|
|
EventType::Imap(ImapEvent::Expunge) => 169,
|
|
EventType::Imap(ImapEvent::Fetch) => 170,
|
|
EventType::Imap(ImapEvent::GetAcl) => 171,
|
|
EventType::Imap(ImapEvent::Id) => 172,
|
|
EventType::Imap(ImapEvent::IdleStart) => 173,
|
|
EventType::Imap(ImapEvent::IdleStop) => 174,
|
|
EventType::Imap(ImapEvent::List) => 175,
|
|
EventType::Imap(ImapEvent::ListRights) => 176,
|
|
EventType::Imap(ImapEvent::Logout) => 177,
|
|
EventType::Imap(ImapEvent::Lsub) => 178,
|
|
EventType::Imap(ImapEvent::Move) => 179,
|
|
EventType::Imap(ImapEvent::MyRights) => 180,
|
|
EventType::Imap(ImapEvent::Namespace) => 181,
|
|
EventType::Imap(ImapEvent::Noop) => 182,
|
|
EventType::Imap(ImapEvent::RawInput) => 183,
|
|
EventType::Imap(ImapEvent::RawOutput) => 184,
|
|
EventType::Imap(ImapEvent::RenameMailbox) => 185,
|
|
EventType::Imap(ImapEvent::Search) => 186,
|
|
EventType::Imap(ImapEvent::Select) => 187,
|
|
EventType::Imap(ImapEvent::SetAcl) => 188,
|
|
EventType::Imap(ImapEvent::Sort) => 189,
|
|
EventType::Imap(ImapEvent::Status) => 190,
|
|
EventType::Imap(ImapEvent::Store) => 191,
|
|
EventType::Imap(ImapEvent::Subscribe) => 192,
|
|
EventType::Imap(ImapEvent::Thread) => 193,
|
|
EventType::Imap(ImapEvent::Unsubscribe) => 194,
|
|
EventType::IncomingReport(IncomingReportEvent::AbuseReport) => 195,
|
|
EventType::IncomingReport(IncomingReportEvent::ArfParseFailed) => 196,
|
|
EventType::IncomingReport(IncomingReportEvent::AuthFailureReport) => 197,
|
|
EventType::IncomingReport(IncomingReportEvent::DecompressError) => 198,
|
|
EventType::IncomingReport(IncomingReportEvent::DmarcParseFailed) => 199,
|
|
EventType::IncomingReport(IncomingReportEvent::DmarcReport) => 200,
|
|
EventType::IncomingReport(IncomingReportEvent::DmarcReportWithWarnings) => 201,
|
|
EventType::IncomingReport(IncomingReportEvent::FraudReport) => 202,
|
|
EventType::IncomingReport(IncomingReportEvent::MessageParseFailed) => 203,
|
|
EventType::IncomingReport(IncomingReportEvent::NotSpamReport) => 204,
|
|
EventType::IncomingReport(IncomingReportEvent::OtherReport) => 205,
|
|
EventType::IncomingReport(IncomingReportEvent::TlsReport) => 206,
|
|
EventType::IncomingReport(IncomingReportEvent::TlsReportWithWarnings) => 207,
|
|
EventType::IncomingReport(IncomingReportEvent::TlsRpcParseFailed) => 208,
|
|
EventType::IncomingReport(IncomingReportEvent::VirusReport) => 209,
|
|
EventType::Iprev(IprevEvent::Fail) => 210,
|
|
EventType::Iprev(IprevEvent::None) => 211,
|
|
EventType::Iprev(IprevEvent::Pass) => 212,
|
|
EventType::Iprev(IprevEvent::PermError) => 213,
|
|
EventType::Iprev(IprevEvent::TempError) => 214,
|
|
EventType::Jmap(JmapEvent::AccountNotFound) => 215,
|
|
EventType::Jmap(JmapEvent::AccountNotSupportedByMethod) => 216,
|
|
EventType::Jmap(JmapEvent::AccountReadOnly) => 217,
|
|
EventType::Jmap(JmapEvent::AnchorNotFound) => 218,
|
|
EventType::Jmap(JmapEvent::CannotCalculateChanges) => 219,
|
|
EventType::Jmap(JmapEvent::Forbidden) => 220,
|
|
EventType::Jmap(JmapEvent::InvalidArguments) => 221,
|
|
EventType::Jmap(JmapEvent::InvalidResultReference) => 222,
|
|
EventType::Jmap(JmapEvent::MethodCall) => 223,
|
|
EventType::Jmap(JmapEvent::NotFound) => 224,
|
|
EventType::Jmap(JmapEvent::NotJson) => 225,
|
|
EventType::Jmap(JmapEvent::NotRequest) => 226,
|
|
EventType::Jmap(JmapEvent::RequestTooLarge) => 227,
|
|
EventType::Jmap(JmapEvent::StateMismatch) => 228,
|
|
EventType::Jmap(JmapEvent::UnknownCapability) => 229,
|
|
EventType::Jmap(JmapEvent::UnknownDataType) => 230,
|
|
EventType::Jmap(JmapEvent::UnknownMethod) => 231,
|
|
EventType::Jmap(JmapEvent::UnsupportedFilter) => 232,
|
|
EventType::Jmap(JmapEvent::UnsupportedSort) => 233,
|
|
EventType::Jmap(JmapEvent::WebsocketError) => 234,
|
|
EventType::Jmap(JmapEvent::WebsocketStart) => 235,
|
|
EventType::Jmap(JmapEvent::WebsocketStop) => 236,
|
|
EventType::Limit(LimitEvent::BlobQuota) => 237,
|
|
EventType::Limit(LimitEvent::CallsIn) => 238,
|
|
EventType::Limit(LimitEvent::ConcurrentConnection) => 239,
|
|
EventType::Limit(LimitEvent::ConcurrentRequest) => 240,
|
|
EventType::Limit(LimitEvent::ConcurrentUpload) => 241,
|
|
EventType::Limit(LimitEvent::Quota) => 242,
|
|
EventType::Limit(LimitEvent::SizeRequest) => 243,
|
|
EventType::Limit(LimitEvent::SizeUpload) => 244,
|
|
EventType::Limit(LimitEvent::TooManyRequests) => 245,
|
|
EventType::MailAuth(MailAuthEvent::Base64) => 246,
|
|
EventType::MailAuth(MailAuthEvent::Crypto) => 247,
|
|
EventType::MailAuth(MailAuthEvent::DnsError) => 248,
|
|
EventType::MailAuth(MailAuthEvent::DnsInvalidRecordType) => 249,
|
|
EventType::MailAuth(MailAuthEvent::DnsRecordNotFound) => 250,
|
|
EventType::MailAuth(MailAuthEvent::Io) => 251,
|
|
EventType::MailAuth(MailAuthEvent::MissingParameters) => 252,
|
|
EventType::MailAuth(MailAuthEvent::NoHeadersFound) => 253,
|
|
EventType::MailAuth(MailAuthEvent::ParseError) => 254,
|
|
EventType::MailAuth(MailAuthEvent::PolicyNotAligned) => 255,
|
|
EventType::ManageSieve(ManageSieveEvent::Capabilities) => 256,
|
|
EventType::ManageSieve(ManageSieveEvent::CheckScript) => 257,
|
|
EventType::ManageSieve(ManageSieveEvent::ConnectionEnd) => 258,
|
|
EventType::ManageSieve(ManageSieveEvent::ConnectionStart) => 259,
|
|
EventType::ManageSieve(ManageSieveEvent::CreateScript) => 260,
|
|
EventType::ManageSieve(ManageSieveEvent::DeleteScript) => 261,
|
|
EventType::ManageSieve(ManageSieveEvent::Error) => 262,
|
|
EventType::ManageSieve(ManageSieveEvent::GetScript) => 263,
|
|
EventType::ManageSieve(ManageSieveEvent::HaveSpace) => 264,
|
|
EventType::ManageSieve(ManageSieveEvent::ListScripts) => 265,
|
|
EventType::ManageSieve(ManageSieveEvent::Logout) => 266,
|
|
EventType::ManageSieve(ManageSieveEvent::Noop) => 267,
|
|
EventType::ManageSieve(ManageSieveEvent::RawInput) => 268,
|
|
EventType::ManageSieve(ManageSieveEvent::RawOutput) => 269,
|
|
EventType::ManageSieve(ManageSieveEvent::RenameScript) => 270,
|
|
EventType::ManageSieve(ManageSieveEvent::SetActive) => 271,
|
|
EventType::ManageSieve(ManageSieveEvent::StartTls) => 272,
|
|
EventType::ManageSieve(ManageSieveEvent::Unauthenticate) => 273,
|
|
EventType::ManageSieve(ManageSieveEvent::UpdateScript) => 274,
|
|
EventType::Manage(ManageEvent::AlreadyExists) => 275,
|
|
EventType::Manage(ManageEvent::AssertFailed) => 276,
|
|
EventType::Manage(ManageEvent::Error) => 277,
|
|
EventType::Manage(ManageEvent::MissingParameter) => 278,
|
|
EventType::Manage(ManageEvent::NotFound) => 279,
|
|
EventType::Manage(ManageEvent::NotSupported) => 280,
|
|
EventType::MessageIngest(MessageIngestEvent::Duplicate) => 281,
|
|
EventType::MessageIngest(MessageIngestEvent::Error) => 282,
|
|
EventType::MessageIngest(MessageIngestEvent::Ham) => 283,
|
|
EventType::MessageIngest(MessageIngestEvent::ImapAppend) => 284,
|
|
EventType::MessageIngest(MessageIngestEvent::JmapAppend) => 285,
|
|
EventType::MessageIngest(MessageIngestEvent::Spam) => 286,
|
|
EventType::Milter(MilterEvent::ActionAccept) => 287,
|
|
EventType::Milter(MilterEvent::ActionConnectionFailure) => 288,
|
|
EventType::Milter(MilterEvent::ActionDiscard) => 289,
|
|
EventType::Milter(MilterEvent::ActionReject) => 290,
|
|
EventType::Milter(MilterEvent::ActionReplyCode) => 291,
|
|
EventType::Milter(MilterEvent::ActionShutdown) => 292,
|
|
EventType::Milter(MilterEvent::ActionTempFail) => 293,
|
|
EventType::Milter(MilterEvent::Disconnected) => 294,
|
|
EventType::Milter(MilterEvent::FrameInvalid) => 295,
|
|
EventType::Milter(MilterEvent::FrameTooLarge) => 296,
|
|
EventType::Milter(MilterEvent::IoError) => 297,
|
|
EventType::Milter(MilterEvent::ParseError) => 298,
|
|
EventType::Milter(MilterEvent::Read) => 299,
|
|
EventType::Milter(MilterEvent::Timeout) => 300,
|
|
EventType::Milter(MilterEvent::TlsInvalidName) => 301,
|
|
EventType::Milter(MilterEvent::UnexpectedResponse) => 302,
|
|
EventType::Milter(MilterEvent::Write) => 303,
|
|
EventType::MtaHook(MtaHookEvent::ActionAccept) => 304,
|
|
EventType::MtaHook(MtaHookEvent::ActionDiscard) => 305,
|
|
EventType::MtaHook(MtaHookEvent::ActionQuarantine) => 306,
|
|
EventType::MtaHook(MtaHookEvent::ActionReject) => 307,
|
|
EventType::MtaHook(MtaHookEvent::Error) => 308,
|
|
EventType::MtaSts(MtaStsEvent::Authorized) => 309,
|
|
EventType::MtaSts(MtaStsEvent::InvalidPolicy) => 310,
|
|
EventType::MtaSts(MtaStsEvent::NotAuthorized) => 311,
|
|
EventType::MtaSts(MtaStsEvent::PolicyFetch) => 312,
|
|
EventType::MtaSts(MtaStsEvent::PolicyFetchError) => 313,
|
|
EventType::MtaSts(MtaStsEvent::PolicyNotFound) => 314,
|
|
EventType::Network(NetworkEvent::AcceptError) => 315,
|
|
EventType::Network(NetworkEvent::BindError) => 316,
|
|
EventType::Network(NetworkEvent::Closed) => 317,
|
|
EventType::Security(SecurityEvent::IpBlocked) => 318,
|
|
EventType::Network(NetworkEvent::FlushError) => 319,
|
|
EventType::Network(NetworkEvent::ListenError) => 320,
|
|
EventType::Network(NetworkEvent::ListenStart) => 321,
|
|
EventType::Network(NetworkEvent::ListenStop) => 322,
|
|
EventType::Network(NetworkEvent::ProxyError) => 323,
|
|
EventType::Network(NetworkEvent::ReadError) => 324,
|
|
EventType::Network(NetworkEvent::SetOptError) => 325,
|
|
EventType::Network(NetworkEvent::SplitError) => 326,
|
|
EventType::Network(NetworkEvent::Timeout) => 327,
|
|
EventType::Network(NetworkEvent::WriteError) => 328,
|
|
EventType::OutgoingReport(OutgoingReportEvent::DkimRateLimited) => 329,
|
|
EventType::OutgoingReport(OutgoingReportEvent::DkimReport) => 330,
|
|
EventType::OutgoingReport(OutgoingReportEvent::DmarcAggregateReport) => 331,
|
|
EventType::OutgoingReport(OutgoingReportEvent::DmarcRateLimited) => 332,
|
|
EventType::OutgoingReport(OutgoingReportEvent::DmarcReport) => 333,
|
|
EventType::OutgoingReport(OutgoingReportEvent::HttpSubmission) => 334,
|
|
EventType::OutgoingReport(OutgoingReportEvent::Locked) => 337,
|
|
EventType::OutgoingReport(OutgoingReportEvent::NoRecipientsFound) => 338,
|
|
EventType::OutgoingReport(OutgoingReportEvent::NotFound) => 339,
|
|
EventType::OutgoingReport(OutgoingReportEvent::ReportingAddressValidationError) => 340,
|
|
EventType::OutgoingReport(OutgoingReportEvent::SpfRateLimited) => 341,
|
|
EventType::OutgoingReport(OutgoingReportEvent::SpfReport) => 342,
|
|
EventType::OutgoingReport(OutgoingReportEvent::SubmissionError) => 343,
|
|
EventType::OutgoingReport(OutgoingReportEvent::TlsAggregate) => 344,
|
|
EventType::OutgoingReport(OutgoingReportEvent::UnauthorizedReportingAddress) => 345,
|
|
EventType::Pop3(Pop3Event::Capabilities) => 346,
|
|
EventType::Pop3(Pop3Event::ConnectionEnd) => 347,
|
|
EventType::Pop3(Pop3Event::ConnectionStart) => 348,
|
|
EventType::Pop3(Pop3Event::Delete) => 349,
|
|
EventType::Pop3(Pop3Event::Error) => 350,
|
|
EventType::Pop3(Pop3Event::Fetch) => 351,
|
|
EventType::Pop3(Pop3Event::List) => 352,
|
|
EventType::Pop3(Pop3Event::ListMessage) => 353,
|
|
EventType::Pop3(Pop3Event::Noop) => 354,
|
|
EventType::Pop3(Pop3Event::Quit) => 355,
|
|
EventType::Pop3(Pop3Event::RawInput) => 356,
|
|
EventType::Pop3(Pop3Event::RawOutput) => 357,
|
|
EventType::Pop3(Pop3Event::Reset) => 358,
|
|
EventType::Pop3(Pop3Event::StartTls) => 359,
|
|
EventType::Pop3(Pop3Event::Stat) => 360,
|
|
EventType::Pop3(Pop3Event::Uidl) => 361,
|
|
EventType::Pop3(Pop3Event::UidlMessage) => 362,
|
|
EventType::Pop3(Pop3Event::Utf8) => 363,
|
|
EventType::Purge(PurgeEvent::AutoExpunge) => 364,
|
|
EventType::Purge(PurgeEvent::Error) => 365,
|
|
EventType::Purge(PurgeEvent::Finished) => 366,
|
|
EventType::Purge(PurgeEvent::InProgress) => 367,
|
|
EventType::Purge(PurgeEvent::Running) => 368,
|
|
EventType::Purge(PurgeEvent::Started) => 369,
|
|
EventType::Purge(PurgeEvent::TombstoneCleanup) => 370,
|
|
EventType::PushSubscription(PushSubscriptionEvent::Error) => 371,
|
|
EventType::PushSubscription(PushSubscriptionEvent::NotFound) => 372,
|
|
EventType::PushSubscription(PushSubscriptionEvent::Success) => 373,
|
|
EventType::Queue(QueueEvent::BlobNotFound) => 374,
|
|
EventType::Queue(QueueEvent::ConcurrencyLimitExceeded) => 375,
|
|
EventType::Queue(QueueEvent::Locked) => 377,
|
|
EventType::Queue(QueueEvent::QueueAutogenerated) => 378,
|
|
EventType::Queue(QueueEvent::QueueDsn) => 379,
|
|
EventType::Queue(QueueEvent::QueueMessage) => 380,
|
|
EventType::Queue(QueueEvent::QueueMessageAuthenticated) => 381,
|
|
EventType::Queue(QueueEvent::QueueReport) => 382,
|
|
EventType::Queue(QueueEvent::QuotaExceeded) => 383,
|
|
EventType::Queue(QueueEvent::RateLimitExceeded) => 384,
|
|
EventType::Queue(QueueEvent::Rescheduled) => 385,
|
|
EventType::Resource(ResourceEvent::BadParameters) => 386,
|
|
EventType::Resource(ResourceEvent::DownloadExternal) => 387,
|
|
EventType::Resource(ResourceEvent::Error) => 388,
|
|
EventType::Resource(ResourceEvent::NotFound) => 389,
|
|
EventType::Resource(ResourceEvent::WebadminUnpacked) => 390,
|
|
EventType::Server(ServerEvent::Licensing) => 391,
|
|
EventType::Server(ServerEvent::Shutdown) => 392,
|
|
EventType::Server(ServerEvent::Startup) => 393,
|
|
EventType::Server(ServerEvent::StartupError) => 394,
|
|
EventType::Server(ServerEvent::ThreadError) => 395,
|
|
EventType::Sieve(SieveEvent::ActionAccept) => 396,
|
|
EventType::Sieve(SieveEvent::ActionAcceptReplace) => 397,
|
|
EventType::Sieve(SieveEvent::ActionDiscard) => 398,
|
|
EventType::Sieve(SieveEvent::ActionReject) => 399,
|
|
EventType::Sieve(SieveEvent::ListNotFound) => 400,
|
|
EventType::Sieve(SieveEvent::MessageTooLarge) => 401,
|
|
EventType::Sieve(SieveEvent::NotSupported) => 402,
|
|
EventType::Sieve(SieveEvent::QuotaExceeded) => 403,
|
|
EventType::Sieve(SieveEvent::RuntimeError) => 404,
|
|
EventType::Sieve(SieveEvent::ScriptNotFound) => 405,
|
|
EventType::Sieve(SieveEvent::SendMessage) => 406,
|
|
EventType::Sieve(SieveEvent::UnexpectedError) => 407,
|
|
EventType::Smtp(SmtpEvent::AlreadyAuthenticated) => 408,
|
|
EventType::Smtp(SmtpEvent::ArcFail) => 409,
|
|
EventType::Smtp(SmtpEvent::ArcPass) => 410,
|
|
EventType::Smtp(SmtpEvent::AuthExchangeTooLong) => 411,
|
|
EventType::Smtp(SmtpEvent::AuthMechanismNotSupported) => 412,
|
|
EventType::Smtp(SmtpEvent::AuthNotAllowed) => 413,
|
|
EventType::Smtp(SmtpEvent::CommandNotImplemented) => 414,
|
|
EventType::Smtp(SmtpEvent::ConcurrencyLimitExceeded) => 415,
|
|
EventType::Smtp(SmtpEvent::ConnectionEnd) => 416,
|
|
EventType::Smtp(SmtpEvent::ConnectionStart) => 417,
|
|
EventType::Smtp(SmtpEvent::DeliverByDisabled) => 418,
|
|
EventType::Smtp(SmtpEvent::DeliverByInvalid) => 419,
|
|
EventType::Smtp(SmtpEvent::DidNotSayEhlo) => 420,
|
|
EventType::Smtp(SmtpEvent::DkimFail) => 421,
|
|
EventType::Smtp(SmtpEvent::DkimPass) => 422,
|
|
EventType::Smtp(SmtpEvent::DmarcFail) => 423,
|
|
EventType::Smtp(SmtpEvent::DmarcPass) => 424,
|
|
EventType::Smtp(SmtpEvent::DsnDisabled) => 425,
|
|
EventType::Smtp(SmtpEvent::Ehlo) => 426,
|
|
EventType::Smtp(SmtpEvent::EhloExpected) => 427,
|
|
EventType::Smtp(SmtpEvent::Error) => 428,
|
|
EventType::Smtp(SmtpEvent::Expn) => 429,
|
|
EventType::Smtp(SmtpEvent::ExpnDisabled) => 430,
|
|
EventType::Smtp(SmtpEvent::ExpnNotFound) => 431,
|
|
EventType::Smtp(SmtpEvent::FutureReleaseDisabled) => 432,
|
|
EventType::Smtp(SmtpEvent::FutureReleaseInvalid) => 433,
|
|
EventType::Smtp(SmtpEvent::Help) => 434,
|
|
EventType::Smtp(SmtpEvent::InvalidCommand) => 435,
|
|
EventType::Smtp(SmtpEvent::InvalidEhlo) => 436,
|
|
EventType::Smtp(SmtpEvent::InvalidParameter) => 437,
|
|
EventType::Smtp(SmtpEvent::InvalidRecipientAddress) => 438,
|
|
EventType::Smtp(SmtpEvent::InvalidSenderAddress) => 439,
|
|
EventType::Smtp(SmtpEvent::IprevFail) => 440,
|
|
EventType::Smtp(SmtpEvent::IprevPass) => 441,
|
|
EventType::Smtp(SmtpEvent::LhloExpected) => 442,
|
|
EventType::Smtp(SmtpEvent::LoopDetected) => 443,
|
|
EventType::Smtp(SmtpEvent::MailFrom) => 444,
|
|
EventType::Smtp(SmtpEvent::MailFromMissing) => 445,
|
|
EventType::Smtp(SmtpEvent::MailFromRewritten) => 446,
|
|
EventType::Smtp(SmtpEvent::MailFromUnauthenticated) => 447,
|
|
EventType::Smtp(SmtpEvent::MailFromUnauthorized) => 448,
|
|
EventType::Smtp(SmtpEvent::MailboxDoesNotExist) => 449,
|
|
EventType::Smtp(SmtpEvent::MessageParseFailed) => 450,
|
|
EventType::Smtp(SmtpEvent::MessageTooLarge) => 451,
|
|
EventType::Smtp(SmtpEvent::MissingAuthDirectory) => 452,
|
|
EventType::Smtp(SmtpEvent::MissingLocalHostname) => 453,
|
|
EventType::Smtp(SmtpEvent::MtPriorityDisabled) => 454,
|
|
EventType::Smtp(SmtpEvent::MtPriorityInvalid) => 455,
|
|
EventType::Smtp(SmtpEvent::MultipleMailFrom) => 456,
|
|
EventType::Smtp(SmtpEvent::Noop) => 457,
|
|
EventType::Smtp(SmtpEvent::Quit) => 460,
|
|
EventType::Smtp(SmtpEvent::RateLimitExceeded) => 461,
|
|
EventType::Smtp(SmtpEvent::RawInput) => 462,
|
|
EventType::Smtp(SmtpEvent::RawOutput) => 463,
|
|
EventType::Smtp(SmtpEvent::RcptTo) => 464,
|
|
EventType::Smtp(SmtpEvent::RcptToDuplicate) => 465,
|
|
EventType::Smtp(SmtpEvent::RcptToMissing) => 466,
|
|
EventType::Smtp(SmtpEvent::RcptToRewritten) => 467,
|
|
EventType::Smtp(SmtpEvent::RelayNotAllowed) => 468,
|
|
EventType::Smtp(SmtpEvent::RemoteIdNotFound) => 469,
|
|
EventType::Smtp(SmtpEvent::RequestTooLarge) => 470,
|
|
EventType::Smtp(SmtpEvent::RequireTlsDisabled) => 471,
|
|
EventType::Smtp(SmtpEvent::Rset) => 472,
|
|
EventType::Smtp(SmtpEvent::SpfEhloFail) => 473,
|
|
EventType::Smtp(SmtpEvent::SpfEhloPass) => 474,
|
|
EventType::Smtp(SmtpEvent::SpfFromFail) => 475,
|
|
EventType::Smtp(SmtpEvent::SpfFromPass) => 476,
|
|
EventType::Smtp(SmtpEvent::StartTls) => 477,
|
|
EventType::Smtp(SmtpEvent::StartTlsAlready) => 478,
|
|
EventType::Smtp(SmtpEvent::StartTlsUnavailable) => 479,
|
|
EventType::Smtp(SmtpEvent::SyntaxError) => 480,
|
|
EventType::Smtp(SmtpEvent::TimeLimitExceeded) => 481,
|
|
EventType::Smtp(SmtpEvent::TooManyInvalidRcpt) => 482,
|
|
EventType::Smtp(SmtpEvent::TooManyMessages) => 483,
|
|
EventType::Smtp(SmtpEvent::TooManyRecipients) => 484,
|
|
EventType::Smtp(SmtpEvent::TransferLimitExceeded) => 485,
|
|
EventType::Smtp(SmtpEvent::UnsupportedParameter) => 486,
|
|
EventType::Smtp(SmtpEvent::Vrfy) => 487,
|
|
EventType::Smtp(SmtpEvent::VrfyDisabled) => 488,
|
|
EventType::Smtp(SmtpEvent::VrfyNotFound) => 489,
|
|
EventType::Spam(SpamEvent::Classify) => 490,
|
|
EventType::Spam(SpamEvent::ClassifyError) => 491,
|
|
EventType::Store(StoreEvent::HttpStoreFetch) => 492,
|
|
EventType::Store(StoreEvent::HttpStoreError) => 493,
|
|
EventType::Spam(SpamEvent::PyzorError) => 494,
|
|
EventType::Spam(SpamEvent::Train) => 495,
|
|
EventType::Spam(SpamEvent::TrainBalance) => 496,
|
|
EventType::Spam(SpamEvent::TrainError) => 497,
|
|
EventType::Spf(SpfEvent::Fail) => 498,
|
|
EventType::Spf(SpfEvent::Neutral) => 499,
|
|
EventType::Spf(SpfEvent::None) => 500,
|
|
EventType::Spf(SpfEvent::Pass) => 501,
|
|
EventType::Spf(SpfEvent::PermError) => 502,
|
|
EventType::Spf(SpfEvent::SoftFail) => 503,
|
|
EventType::Spf(SpfEvent::TempError) => 504,
|
|
EventType::Store(StoreEvent::AssertValueFailed) => 505,
|
|
EventType::Store(StoreEvent::BlobDelete) => 506,
|
|
EventType::Store(StoreEvent::BlobMissingMarker) => 507,
|
|
EventType::Store(StoreEvent::BlobRead) => 508,
|
|
EventType::Store(StoreEvent::BlobWrite) => 509,
|
|
EventType::Store(StoreEvent::CryptoError) => 510,
|
|
EventType::Store(StoreEvent::DataCorruption) => 511,
|
|
EventType::Store(StoreEvent::DataIterate) => 512,
|
|
EventType::Store(StoreEvent::DataWrite) => 513,
|
|
EventType::Store(StoreEvent::DecompressError) => 514,
|
|
EventType::Store(StoreEvent::DeserializeError) => 515,
|
|
EventType::Store(StoreEvent::ElasticsearchError) => 516,
|
|
EventType::Store(StoreEvent::FilesystemError) => 517,
|
|
EventType::Store(StoreEvent::FoundationdbError) => 518,
|
|
EventType::Store(StoreEvent::LdapBind) => 519,
|
|
EventType::Store(StoreEvent::LdapError) => 520,
|
|
EventType::Store(StoreEvent::LdapQuery) => 521,
|
|
EventType::Store(StoreEvent::MysqlError) => 522,
|
|
EventType::Store(StoreEvent::NotConfigured) => 523,
|
|
EventType::Store(StoreEvent::NotFound) => 524,
|
|
EventType::Store(StoreEvent::NotSupported) => 525,
|
|
EventType::Store(StoreEvent::PoolError) => 526,
|
|
EventType::Store(StoreEvent::PostgresqlError) => 527,
|
|
EventType::Store(StoreEvent::RedisError) => 528,
|
|
EventType::Store(StoreEvent::RocksdbError) => 529,
|
|
EventType::Store(StoreEvent::S3Error) => 530,
|
|
EventType::Store(StoreEvent::SqlQuery) => 531,
|
|
EventType::Store(StoreEvent::SqliteError) => 532,
|
|
EventType::Store(StoreEvent::UnexpectedError) => 533,
|
|
EventType::Telemetry(TelemetryEvent::JournalError) => 534,
|
|
EventType::Telemetry(TelemetryEvent::LogError) => 535,
|
|
EventType::Telemetry(TelemetryEvent::OtelExporterError) => 536,
|
|
EventType::Telemetry(TelemetryEvent::OtelMetricsExporterError) => 537,
|
|
EventType::Telemetry(TelemetryEvent::PrometheusExporterError) => 538,
|
|
EventType::Telemetry(TelemetryEvent::WebhookError) => 539,
|
|
EventType::TlsRpt(TlsRptEvent::RecordFetch) => 540,
|
|
EventType::TlsRpt(TlsRptEvent::RecordFetchError) => 541,
|
|
EventType::Tls(TlsEvent::CertificateNotFound) => 542,
|
|
EventType::Tls(TlsEvent::Handshake) => 543,
|
|
EventType::Tls(TlsEvent::HandshakeError) => 544,
|
|
EventType::Tls(TlsEvent::MultipleCertificatesAvailable) => 545,
|
|
EventType::Tls(TlsEvent::NoCertificatesAvailable) => 546,
|
|
EventType::Tls(TlsEvent::NotConfigured) => 547,
|
|
EventType::Telemetry(TelemetryEvent::Alert) => 548,
|
|
EventType::Security(SecurityEvent::AbuseBan) => 549,
|
|
EventType::Security(SecurityEvent::LoiterBan) => 550,
|
|
EventType::Smtp(SmtpEvent::MailFromNotAllowed) => 551,
|
|
EventType::Security(SecurityEvent::Unauthorized) => 552,
|
|
EventType::Limit(LimitEvent::TenantQuota) => 553,
|
|
EventType::Auth(AuthEvent::TokenExpired) => 554,
|
|
EventType::Auth(AuthEvent::ClientRegistration) => 555,
|
|
EventType::Ai(AiEvent::LlmResponse) => 556,
|
|
EventType::Ai(AiEvent::ApiError) => 557,
|
|
EventType::Security(SecurityEvent::ScanBan) => 558,
|
|
EventType::Store(StoreEvent::AzureError) => 559,
|
|
EventType::TlsRpt(TlsRptEvent::RecordNotFound) => 560,
|
|
EventType::Smtp(SmtpEvent::RcptToGreylisted) => 561,
|
|
EventType::Spam(SpamEvent::Dnsbl) => 562,
|
|
EventType::Spam(SpamEvent::DnsblError) => 563,
|
|
EventType::Spam(SpamEvent::Pyzor) => 564,
|
|
}
|
|
}
|
|
|
|
pub fn from_code(code: u64) -> Option<Self> {
|
|
match code {
|
|
0 => Some(EventType::Acme(AcmeEvent::AuthCompleted)),
|
|
1 => Some(EventType::Acme(AcmeEvent::AuthError)),
|
|
2 => Some(EventType::Acme(AcmeEvent::AuthPending)),
|
|
3 => Some(EventType::Acme(AcmeEvent::AuthStart)),
|
|
4 => Some(EventType::Acme(AcmeEvent::AuthTooManyAttempts)),
|
|
5 => Some(EventType::Acme(AcmeEvent::AuthValid)),
|
|
6 => Some(EventType::Acme(AcmeEvent::ClientMissingSni)),
|
|
7 => Some(EventType::Acme(AcmeEvent::ClientSuppliedSni)),
|
|
8 => Some(EventType::Acme(AcmeEvent::DnsRecordCreated)),
|
|
9 => Some(EventType::Acme(AcmeEvent::DnsRecordCreationFailed)),
|
|
10 => Some(EventType::Acme(AcmeEvent::DnsRecordDeletionFailed)),
|
|
11 => Some(EventType::Acme(AcmeEvent::DnsRecordLookupFailed)),
|
|
12 => Some(EventType::Acme(AcmeEvent::DnsRecordNotPropagated)),
|
|
13 => Some(EventType::Acme(AcmeEvent::DnsRecordPropagated)),
|
|
14 => Some(EventType::Acme(AcmeEvent::DnsRecordPropagationTimeout)),
|
|
15 => Some(EventType::Acme(AcmeEvent::Error)),
|
|
16 => Some(EventType::Acme(AcmeEvent::OrderCompleted)),
|
|
17 => Some(EventType::Acme(AcmeEvent::OrderInvalid)),
|
|
18 => Some(EventType::Acme(AcmeEvent::OrderProcessing)),
|
|
19 => Some(EventType::Acme(AcmeEvent::OrderReady)),
|
|
20 => Some(EventType::Acme(AcmeEvent::OrderStart)),
|
|
21 => Some(EventType::Acme(AcmeEvent::OrderValid)),
|
|
22 => Some(EventType::Acme(AcmeEvent::ProcessCert)),
|
|
23 => Some(EventType::Acme(AcmeEvent::RenewBackoff)),
|
|
24 => Some(EventType::Acme(AcmeEvent::TlsAlpnError)),
|
|
25 => Some(EventType::Acme(AcmeEvent::TlsAlpnReceived)),
|
|
26 => Some(EventType::Acme(AcmeEvent::TokenNotFound)),
|
|
27 => Some(EventType::Arc(ArcEvent::BrokenChain)),
|
|
28 => Some(EventType::Arc(ArcEvent::ChainTooLong)),
|
|
29 => Some(EventType::Arc(ArcEvent::HasHeaderTag)),
|
|
30 => Some(EventType::Arc(ArcEvent::InvalidCv)),
|
|
31 => Some(EventType::Arc(ArcEvent::InvalidInstance)),
|
|
32 => Some(EventType::Arc(ArcEvent::SealerNotFound)),
|
|
33 => Some(EventType::Security(SecurityEvent::AuthenticationBan)),
|
|
34 => Some(EventType::Auth(AuthEvent::Error)),
|
|
35 => Some(EventType::Auth(AuthEvent::Failed)),
|
|
36 => Some(EventType::Auth(AuthEvent::MissingTotp)),
|
|
37 => Some(EventType::Auth(AuthEvent::Success)),
|
|
38 => Some(EventType::Auth(AuthEvent::TooManyAttempts)),
|
|
39 => Some(EventType::Cluster(ClusterEvent::DecryptionError)),
|
|
40 => Some(EventType::Cluster(ClusterEvent::EmptyPacket)),
|
|
41 => Some(EventType::Cluster(ClusterEvent::Error)),
|
|
42 => Some(EventType::Cluster(ClusterEvent::InvalidPacket)),
|
|
43 => Some(EventType::Cluster(ClusterEvent::OneOrMorePeersOffline)),
|
|
44 => Some(EventType::Cluster(ClusterEvent::PeerAlive)),
|
|
45 => Some(EventType::Cluster(ClusterEvent::PeerBackOnline)),
|
|
46 => Some(EventType::Cluster(ClusterEvent::PeerDiscovered)),
|
|
47 => Some(EventType::Cluster(ClusterEvent::PeerHasChanges)),
|
|
48 => Some(EventType::Cluster(ClusterEvent::PeerHasChanges)), // TODO: recycle
|
|
49 => Some(EventType::Cluster(ClusterEvent::PeerLeaving)),
|
|
50 => Some(EventType::Cluster(ClusterEvent::PeerOffline)),
|
|
51 => Some(EventType::Cluster(ClusterEvent::PeerSuspected)),
|
|
52 => Some(EventType::Cluster(ClusterEvent::PeerSuspectedIsAlive)),
|
|
53 => Some(EventType::Config(ConfigEvent::AlreadyUpToDate)),
|
|
54 => Some(EventType::Config(ConfigEvent::BuildError)),
|
|
55 => Some(EventType::Config(ConfigEvent::BuildWarning)),
|
|
56 => Some(EventType::Config(ConfigEvent::DefaultApplied)),
|
|
57 => Some(EventType::Config(ConfigEvent::ExternalKeyIgnored)),
|
|
58 => Some(EventType::Config(ConfigEvent::FetchError)),
|
|
59 => Some(EventType::Config(ConfigEvent::ImportExternal)),
|
|
60 => Some(EventType::Config(ConfigEvent::MacroError)),
|
|
61 => Some(EventType::Config(ConfigEvent::MissingSetting)),
|
|
62 => Some(EventType::Config(ConfigEvent::ParseError)),
|
|
63 => Some(EventType::Config(ConfigEvent::ParseWarning)),
|
|
64 => Some(EventType::Config(ConfigEvent::UnusedSetting)),
|
|
65 => Some(EventType::Config(ConfigEvent::WriteError)),
|
|
66 => Some(EventType::Dane(DaneEvent::AuthenticationFailure)),
|
|
67 => Some(EventType::Dane(DaneEvent::AuthenticationSuccess)),
|
|
68 => Some(EventType::Dane(DaneEvent::CertificateParseError)),
|
|
69 => Some(EventType::Dane(DaneEvent::NoCertificatesFound)),
|
|
70 => Some(EventType::Dane(DaneEvent::TlsaRecordFetch)),
|
|
71 => Some(EventType::Dane(DaneEvent::TlsaRecordFetchError)),
|
|
72 => Some(EventType::Dane(DaneEvent::TlsaRecordInvalid)),
|
|
73 => Some(EventType::Dane(DaneEvent::TlsaRecordMatch)),
|
|
74 => Some(EventType::Dane(DaneEvent::TlsaRecordNotDnssecSigned)),
|
|
75 => Some(EventType::Dane(DaneEvent::TlsaRecordNotFound)),
|
|
76 => Some(EventType::Delivery(DeliveryEvent::AttemptEnd)),
|
|
77 => Some(EventType::Delivery(DeliveryEvent::AttemptStart)),
|
|
78 => Some(EventType::Delivery(DeliveryEvent::Auth)),
|
|
79 => Some(EventType::Delivery(DeliveryEvent::AuthFailed)),
|
|
80 => Some(EventType::Delivery(DeliveryEvent::Completed)),
|
|
81 => Some(EventType::Delivery(DeliveryEvent::ConcurrencyLimitExceeded)),
|
|
82 => Some(EventType::Delivery(DeliveryEvent::Connect)),
|
|
83 => Some(EventType::Delivery(DeliveryEvent::ConnectError)),
|
|
84 => Some(EventType::Delivery(DeliveryEvent::Delivered)),
|
|
85 => Some(EventType::Delivery(DeliveryEvent::DomainDeliveryStart)),
|
|
86 => Some(EventType::Delivery(DeliveryEvent::DoubleBounce)),
|
|
87 => Some(EventType::Delivery(DeliveryEvent::DsnPermFail)),
|
|
88 => Some(EventType::Delivery(DeliveryEvent::DsnSuccess)),
|
|
89 => Some(EventType::Delivery(DeliveryEvent::DsnTempFail)),
|
|
90 => Some(EventType::Delivery(DeliveryEvent::Ehlo)),
|
|
91 => Some(EventType::Delivery(DeliveryEvent::EhloRejected)),
|
|
92 => Some(EventType::Delivery(DeliveryEvent::Failed)),
|
|
93 => Some(EventType::Delivery(DeliveryEvent::GreetingFailed)),
|
|
94 => Some(EventType::Delivery(DeliveryEvent::ImplicitTlsError)),
|
|
95 => Some(EventType::Delivery(DeliveryEvent::IpLookup)),
|
|
96 => Some(EventType::Delivery(DeliveryEvent::IpLookupFailed)),
|
|
97 => Some(EventType::Delivery(DeliveryEvent::MailFrom)),
|
|
98 => Some(EventType::Delivery(DeliveryEvent::MailFromRejected)),
|
|
99 => Some(EventType::Delivery(DeliveryEvent::MessageRejected)),
|
|
100 => Some(EventType::Delivery(DeliveryEvent::MissingOutboundHostname)),
|
|
101 => Some(EventType::Delivery(DeliveryEvent::MxLookup)),
|
|
102 => Some(EventType::Delivery(DeliveryEvent::MxLookupFailed)),
|
|
103 => Some(EventType::Delivery(DeliveryEvent::NullMx)),
|
|
104 => Some(EventType::Delivery(DeliveryEvent::RateLimitExceeded)),
|
|
105 => Some(EventType::Delivery(DeliveryEvent::RawInput)),
|
|
106 => Some(EventType::Delivery(DeliveryEvent::RawOutput)),
|
|
107 => Some(EventType::Delivery(DeliveryEvent::RcptTo)),
|
|
108 => Some(EventType::Delivery(DeliveryEvent::RcptToFailed)),
|
|
109 => Some(EventType::Delivery(DeliveryEvent::RcptToRejected)),
|
|
110 => Some(EventType::Delivery(DeliveryEvent::StartTls)),
|
|
111 => Some(EventType::Delivery(DeliveryEvent::StartTlsDisabled)),
|
|
112 => Some(EventType::Delivery(DeliveryEvent::StartTlsError)),
|
|
113 => Some(EventType::Delivery(DeliveryEvent::StartTlsUnavailable)),
|
|
114 => Some(EventType::Dkim(DkimEvent::Fail)),
|
|
115 => Some(EventType::Dkim(DkimEvent::FailedAuidMatch)),
|
|
116 => Some(EventType::Dkim(DkimEvent::FailedBodyHashMatch)),
|
|
117 => Some(EventType::Dkim(DkimEvent::FailedVerification)),
|
|
118 => Some(EventType::Dkim(DkimEvent::IncompatibleAlgorithms)),
|
|
119 => Some(EventType::Dkim(DkimEvent::Neutral)),
|
|
120 => Some(EventType::Dkim(DkimEvent::None)),
|
|
121 => Some(EventType::Dkim(DkimEvent::Pass)),
|
|
122 => Some(EventType::Dkim(DkimEvent::PermError)),
|
|
123 => Some(EventType::Dkim(DkimEvent::RevokedPublicKey)),
|
|
124 => Some(EventType::Dkim(DkimEvent::SignatureExpired)),
|
|
125 => Some(EventType::Dkim(DkimEvent::SignatureLength)),
|
|
126 => Some(EventType::Dkim(DkimEvent::SignerNotFound)),
|
|
127 => Some(EventType::Dkim(DkimEvent::TempError)),
|
|
128 => Some(EventType::Dkim(DkimEvent::UnsupportedAlgorithm)),
|
|
129 => Some(EventType::Dkim(DkimEvent::UnsupportedCanonicalization)),
|
|
130 => Some(EventType::Dkim(DkimEvent::UnsupportedKeyType)),
|
|
131 => Some(EventType::Dkim(DkimEvent::UnsupportedVersion)),
|
|
132 => Some(EventType::Dmarc(DmarcEvent::Fail)),
|
|
133 => Some(EventType::Dmarc(DmarcEvent::None)),
|
|
134 => Some(EventType::Dmarc(DmarcEvent::Pass)),
|
|
135 => Some(EventType::Dmarc(DmarcEvent::PermError)),
|
|
136 => Some(EventType::Dmarc(DmarcEvent::TempError)),
|
|
137 => Some(EventType::Eval(EvalEvent::DirectoryNotFound)),
|
|
138 => Some(EventType::Eval(EvalEvent::Error)),
|
|
139 => Some(EventType::Eval(EvalEvent::Result)),
|
|
140 => Some(EventType::Eval(EvalEvent::StoreNotFound)),
|
|
141 => Some(EventType::FtsIndex(FtsIndexEvent::BlobNotFound)),
|
|
142 => Some(EventType::FtsIndex(FtsIndexEvent::Index)),
|
|
144 => Some(EventType::FtsIndex(FtsIndexEvent::Locked)),
|
|
145 => Some(EventType::FtsIndex(FtsIndexEvent::MetadataNotFound)),
|
|
146 => Some(EventType::Housekeeper(HousekeeperEvent::Run)),
|
|
149 => Some(EventType::Housekeeper(HousekeeperEvent::Schedule)),
|
|
150 => Some(EventType::Housekeeper(HousekeeperEvent::Start)),
|
|
151 => Some(EventType::Housekeeper(HousekeeperEvent::Stop)),
|
|
152 => Some(EventType::Http(HttpEvent::ConnectionEnd)),
|
|
153 => Some(EventType::Http(HttpEvent::ConnectionStart)),
|
|
154 => Some(EventType::Http(HttpEvent::Error)),
|
|
155 => Some(EventType::Http(HttpEvent::RequestBody)),
|
|
156 => Some(EventType::Http(HttpEvent::RequestUrl)),
|
|
157 => Some(EventType::Http(HttpEvent::ResponseBody)),
|
|
158 => Some(EventType::Http(HttpEvent::XForwardedMissing)),
|
|
159 => Some(EventType::Imap(ImapEvent::Append)),
|
|
160 => Some(EventType::Imap(ImapEvent::Capabilities)),
|
|
161 => Some(EventType::Imap(ImapEvent::Close)),
|
|
162 => Some(EventType::Imap(ImapEvent::ConnectionEnd)),
|
|
163 => Some(EventType::Imap(ImapEvent::ConnectionStart)),
|
|
164 => Some(EventType::Imap(ImapEvent::Copy)),
|
|
165 => Some(EventType::Imap(ImapEvent::CreateMailbox)),
|
|
166 => Some(EventType::Imap(ImapEvent::DeleteMailbox)),
|
|
167 => Some(EventType::Imap(ImapEvent::Enable)),
|
|
168 => Some(EventType::Imap(ImapEvent::Error)),
|
|
169 => Some(EventType::Imap(ImapEvent::Expunge)),
|
|
170 => Some(EventType::Imap(ImapEvent::Fetch)),
|
|
171 => Some(EventType::Imap(ImapEvent::GetAcl)),
|
|
172 => Some(EventType::Imap(ImapEvent::Id)),
|
|
173 => Some(EventType::Imap(ImapEvent::IdleStart)),
|
|
174 => Some(EventType::Imap(ImapEvent::IdleStop)),
|
|
175 => Some(EventType::Imap(ImapEvent::List)),
|
|
176 => Some(EventType::Imap(ImapEvent::ListRights)),
|
|
177 => Some(EventType::Imap(ImapEvent::Logout)),
|
|
178 => Some(EventType::Imap(ImapEvent::Lsub)),
|
|
179 => Some(EventType::Imap(ImapEvent::Move)),
|
|
180 => Some(EventType::Imap(ImapEvent::MyRights)),
|
|
181 => Some(EventType::Imap(ImapEvent::Namespace)),
|
|
182 => Some(EventType::Imap(ImapEvent::Noop)),
|
|
183 => Some(EventType::Imap(ImapEvent::RawInput)),
|
|
184 => Some(EventType::Imap(ImapEvent::RawOutput)),
|
|
185 => Some(EventType::Imap(ImapEvent::RenameMailbox)),
|
|
186 => Some(EventType::Imap(ImapEvent::Search)),
|
|
187 => Some(EventType::Imap(ImapEvent::Select)),
|
|
188 => Some(EventType::Imap(ImapEvent::SetAcl)),
|
|
189 => Some(EventType::Imap(ImapEvent::Sort)),
|
|
190 => Some(EventType::Imap(ImapEvent::Status)),
|
|
191 => Some(EventType::Imap(ImapEvent::Store)),
|
|
192 => Some(EventType::Imap(ImapEvent::Subscribe)),
|
|
193 => Some(EventType::Imap(ImapEvent::Thread)),
|
|
194 => Some(EventType::Imap(ImapEvent::Unsubscribe)),
|
|
195 => Some(EventType::IncomingReport(IncomingReportEvent::AbuseReport)),
|
|
196 => Some(EventType::IncomingReport(
|
|
IncomingReportEvent::ArfParseFailed,
|
|
)),
|
|
197 => Some(EventType::IncomingReport(
|
|
IncomingReportEvent::AuthFailureReport,
|
|
)),
|
|
198 => Some(EventType::IncomingReport(
|
|
IncomingReportEvent::DecompressError,
|
|
)),
|
|
199 => Some(EventType::IncomingReport(
|
|
IncomingReportEvent::DmarcParseFailed,
|
|
)),
|
|
200 => Some(EventType::IncomingReport(IncomingReportEvent::DmarcReport)),
|
|
201 => Some(EventType::IncomingReport(
|
|
IncomingReportEvent::DmarcReportWithWarnings,
|
|
)),
|
|
202 => Some(EventType::IncomingReport(IncomingReportEvent::FraudReport)),
|
|
203 => Some(EventType::IncomingReport(
|
|
IncomingReportEvent::MessageParseFailed,
|
|
)),
|
|
204 => Some(EventType::IncomingReport(
|
|
IncomingReportEvent::NotSpamReport,
|
|
)),
|
|
205 => Some(EventType::IncomingReport(IncomingReportEvent::OtherReport)),
|
|
206 => Some(EventType::IncomingReport(IncomingReportEvent::TlsReport)),
|
|
207 => Some(EventType::IncomingReport(
|
|
IncomingReportEvent::TlsReportWithWarnings,
|
|
)),
|
|
208 => Some(EventType::IncomingReport(
|
|
IncomingReportEvent::TlsRpcParseFailed,
|
|
)),
|
|
209 => Some(EventType::IncomingReport(IncomingReportEvent::VirusReport)),
|
|
210 => Some(EventType::Iprev(IprevEvent::Fail)),
|
|
211 => Some(EventType::Iprev(IprevEvent::None)),
|
|
212 => Some(EventType::Iprev(IprevEvent::Pass)),
|
|
213 => Some(EventType::Iprev(IprevEvent::PermError)),
|
|
214 => Some(EventType::Iprev(IprevEvent::TempError)),
|
|
215 => Some(EventType::Jmap(JmapEvent::AccountNotFound)),
|
|
216 => Some(EventType::Jmap(JmapEvent::AccountNotSupportedByMethod)),
|
|
217 => Some(EventType::Jmap(JmapEvent::AccountReadOnly)),
|
|
218 => Some(EventType::Jmap(JmapEvent::AnchorNotFound)),
|
|
219 => Some(EventType::Jmap(JmapEvent::CannotCalculateChanges)),
|
|
220 => Some(EventType::Jmap(JmapEvent::Forbidden)),
|
|
221 => Some(EventType::Jmap(JmapEvent::InvalidArguments)),
|
|
222 => Some(EventType::Jmap(JmapEvent::InvalidResultReference)),
|
|
223 => Some(EventType::Jmap(JmapEvent::MethodCall)),
|
|
224 => Some(EventType::Jmap(JmapEvent::NotFound)),
|
|
225 => Some(EventType::Jmap(JmapEvent::NotJson)),
|
|
226 => Some(EventType::Jmap(JmapEvent::NotRequest)),
|
|
227 => Some(EventType::Jmap(JmapEvent::RequestTooLarge)),
|
|
228 => Some(EventType::Jmap(JmapEvent::StateMismatch)),
|
|
229 => Some(EventType::Jmap(JmapEvent::UnknownCapability)),
|
|
230 => Some(EventType::Jmap(JmapEvent::UnknownDataType)),
|
|
231 => Some(EventType::Jmap(JmapEvent::UnknownMethod)),
|
|
232 => Some(EventType::Jmap(JmapEvent::UnsupportedFilter)),
|
|
233 => Some(EventType::Jmap(JmapEvent::UnsupportedSort)),
|
|
234 => Some(EventType::Jmap(JmapEvent::WebsocketError)),
|
|
235 => Some(EventType::Jmap(JmapEvent::WebsocketStart)),
|
|
236 => Some(EventType::Jmap(JmapEvent::WebsocketStop)),
|
|
237 => Some(EventType::Limit(LimitEvent::BlobQuota)),
|
|
238 => Some(EventType::Limit(LimitEvent::CallsIn)),
|
|
239 => Some(EventType::Limit(LimitEvent::ConcurrentConnection)),
|
|
240 => Some(EventType::Limit(LimitEvent::ConcurrentRequest)),
|
|
241 => Some(EventType::Limit(LimitEvent::ConcurrentUpload)),
|
|
242 => Some(EventType::Limit(LimitEvent::Quota)),
|
|
243 => Some(EventType::Limit(LimitEvent::SizeRequest)),
|
|
244 => Some(EventType::Limit(LimitEvent::SizeUpload)),
|
|
245 => Some(EventType::Limit(LimitEvent::TooManyRequests)),
|
|
246 => Some(EventType::MailAuth(MailAuthEvent::Base64)),
|
|
247 => Some(EventType::MailAuth(MailAuthEvent::Crypto)),
|
|
248 => Some(EventType::MailAuth(MailAuthEvent::DnsError)),
|
|
249 => Some(EventType::MailAuth(MailAuthEvent::DnsInvalidRecordType)),
|
|
250 => Some(EventType::MailAuth(MailAuthEvent::DnsRecordNotFound)),
|
|
251 => Some(EventType::MailAuth(MailAuthEvent::Io)),
|
|
252 => Some(EventType::MailAuth(MailAuthEvent::MissingParameters)),
|
|
253 => Some(EventType::MailAuth(MailAuthEvent::NoHeadersFound)),
|
|
254 => Some(EventType::MailAuth(MailAuthEvent::ParseError)),
|
|
255 => Some(EventType::MailAuth(MailAuthEvent::PolicyNotAligned)),
|
|
256 => Some(EventType::ManageSieve(ManageSieveEvent::Capabilities)),
|
|
257 => Some(EventType::ManageSieve(ManageSieveEvent::CheckScript)),
|
|
258 => Some(EventType::ManageSieve(ManageSieveEvent::ConnectionEnd)),
|
|
259 => Some(EventType::ManageSieve(ManageSieveEvent::ConnectionStart)),
|
|
260 => Some(EventType::ManageSieve(ManageSieveEvent::CreateScript)),
|
|
261 => Some(EventType::ManageSieve(ManageSieveEvent::DeleteScript)),
|
|
262 => Some(EventType::ManageSieve(ManageSieveEvent::Error)),
|
|
263 => Some(EventType::ManageSieve(ManageSieveEvent::GetScript)),
|
|
264 => Some(EventType::ManageSieve(ManageSieveEvent::HaveSpace)),
|
|
265 => Some(EventType::ManageSieve(ManageSieveEvent::ListScripts)),
|
|
266 => Some(EventType::ManageSieve(ManageSieveEvent::Logout)),
|
|
267 => Some(EventType::ManageSieve(ManageSieveEvent::Noop)),
|
|
268 => Some(EventType::ManageSieve(ManageSieveEvent::RawInput)),
|
|
269 => Some(EventType::ManageSieve(ManageSieveEvent::RawOutput)),
|
|
270 => Some(EventType::ManageSieve(ManageSieveEvent::RenameScript)),
|
|
271 => Some(EventType::ManageSieve(ManageSieveEvent::SetActive)),
|
|
272 => Some(EventType::ManageSieve(ManageSieveEvent::StartTls)),
|
|
273 => Some(EventType::ManageSieve(ManageSieveEvent::Unauthenticate)),
|
|
274 => Some(EventType::ManageSieve(ManageSieveEvent::UpdateScript)),
|
|
275 => Some(EventType::Manage(ManageEvent::AlreadyExists)),
|
|
276 => Some(EventType::Manage(ManageEvent::AssertFailed)),
|
|
277 => Some(EventType::Manage(ManageEvent::Error)),
|
|
278 => Some(EventType::Manage(ManageEvent::MissingParameter)),
|
|
279 => Some(EventType::Manage(ManageEvent::NotFound)),
|
|
280 => Some(EventType::Manage(ManageEvent::NotSupported)),
|
|
281 => Some(EventType::MessageIngest(MessageIngestEvent::Duplicate)),
|
|
282 => Some(EventType::MessageIngest(MessageIngestEvent::Error)),
|
|
283 => Some(EventType::MessageIngest(MessageIngestEvent::Ham)),
|
|
284 => Some(EventType::MessageIngest(MessageIngestEvent::ImapAppend)),
|
|
285 => Some(EventType::MessageIngest(MessageIngestEvent::JmapAppend)),
|
|
286 => Some(EventType::MessageIngest(MessageIngestEvent::Spam)),
|
|
287 => Some(EventType::Milter(MilterEvent::ActionAccept)),
|
|
288 => Some(EventType::Milter(MilterEvent::ActionConnectionFailure)),
|
|
289 => Some(EventType::Milter(MilterEvent::ActionDiscard)),
|
|
290 => Some(EventType::Milter(MilterEvent::ActionReject)),
|
|
291 => Some(EventType::Milter(MilterEvent::ActionReplyCode)),
|
|
292 => Some(EventType::Milter(MilterEvent::ActionShutdown)),
|
|
293 => Some(EventType::Milter(MilterEvent::ActionTempFail)),
|
|
294 => Some(EventType::Milter(MilterEvent::Disconnected)),
|
|
295 => Some(EventType::Milter(MilterEvent::FrameInvalid)),
|
|
296 => Some(EventType::Milter(MilterEvent::FrameTooLarge)),
|
|
297 => Some(EventType::Milter(MilterEvent::IoError)),
|
|
298 => Some(EventType::Milter(MilterEvent::ParseError)),
|
|
299 => Some(EventType::Milter(MilterEvent::Read)),
|
|
300 => Some(EventType::Milter(MilterEvent::Timeout)),
|
|
301 => Some(EventType::Milter(MilterEvent::TlsInvalidName)),
|
|
302 => Some(EventType::Milter(MilterEvent::UnexpectedResponse)),
|
|
303 => Some(EventType::Milter(MilterEvent::Write)),
|
|
304 => Some(EventType::MtaHook(MtaHookEvent::ActionAccept)),
|
|
305 => Some(EventType::MtaHook(MtaHookEvent::ActionDiscard)),
|
|
306 => Some(EventType::MtaHook(MtaHookEvent::ActionQuarantine)),
|
|
307 => Some(EventType::MtaHook(MtaHookEvent::ActionReject)),
|
|
308 => Some(EventType::MtaHook(MtaHookEvent::Error)),
|
|
309 => Some(EventType::MtaSts(MtaStsEvent::Authorized)),
|
|
310 => Some(EventType::MtaSts(MtaStsEvent::InvalidPolicy)),
|
|
311 => Some(EventType::MtaSts(MtaStsEvent::NotAuthorized)),
|
|
312 => Some(EventType::MtaSts(MtaStsEvent::PolicyFetch)),
|
|
313 => Some(EventType::MtaSts(MtaStsEvent::PolicyFetchError)),
|
|
314 => Some(EventType::MtaSts(MtaStsEvent::PolicyNotFound)),
|
|
315 => Some(EventType::Network(NetworkEvent::AcceptError)),
|
|
316 => Some(EventType::Network(NetworkEvent::BindError)),
|
|
317 => Some(EventType::Network(NetworkEvent::Closed)),
|
|
318 => Some(EventType::Security(SecurityEvent::IpBlocked)),
|
|
319 => Some(EventType::Network(NetworkEvent::FlushError)),
|
|
320 => Some(EventType::Network(NetworkEvent::ListenError)),
|
|
321 => Some(EventType::Network(NetworkEvent::ListenStart)),
|
|
322 => Some(EventType::Network(NetworkEvent::ListenStop)),
|
|
323 => Some(EventType::Network(NetworkEvent::ProxyError)),
|
|
324 => Some(EventType::Network(NetworkEvent::ReadError)),
|
|
325 => Some(EventType::Network(NetworkEvent::SetOptError)),
|
|
326 => Some(EventType::Network(NetworkEvent::SplitError)),
|
|
327 => Some(EventType::Network(NetworkEvent::Timeout)),
|
|
328 => Some(EventType::Network(NetworkEvent::WriteError)),
|
|
329 => Some(EventType::OutgoingReport(
|
|
OutgoingReportEvent::DkimRateLimited,
|
|
)),
|
|
330 => Some(EventType::OutgoingReport(OutgoingReportEvent::DkimReport)),
|
|
331 => Some(EventType::OutgoingReport(
|
|
OutgoingReportEvent::DmarcAggregateReport,
|
|
)),
|
|
332 => Some(EventType::OutgoingReport(
|
|
OutgoingReportEvent::DmarcRateLimited,
|
|
)),
|
|
333 => Some(EventType::OutgoingReport(OutgoingReportEvent::DmarcReport)),
|
|
334 => Some(EventType::OutgoingReport(
|
|
OutgoingReportEvent::HttpSubmission,
|
|
)),
|
|
337 => Some(EventType::OutgoingReport(OutgoingReportEvent::Locked)),
|
|
338 => Some(EventType::OutgoingReport(
|
|
OutgoingReportEvent::NoRecipientsFound,
|
|
)),
|
|
339 => Some(EventType::OutgoingReport(OutgoingReportEvent::NotFound)),
|
|
340 => Some(EventType::OutgoingReport(
|
|
OutgoingReportEvent::ReportingAddressValidationError,
|
|
)),
|
|
341 => Some(EventType::OutgoingReport(
|
|
OutgoingReportEvent::SpfRateLimited,
|
|
)),
|
|
342 => Some(EventType::OutgoingReport(OutgoingReportEvent::SpfReport)),
|
|
343 => Some(EventType::OutgoingReport(
|
|
OutgoingReportEvent::SubmissionError,
|
|
)),
|
|
344 => Some(EventType::OutgoingReport(OutgoingReportEvent::TlsAggregate)),
|
|
345 => Some(EventType::OutgoingReport(
|
|
OutgoingReportEvent::UnauthorizedReportingAddress,
|
|
)),
|
|
346 => Some(EventType::Pop3(Pop3Event::Capabilities)),
|
|
347 => Some(EventType::Pop3(Pop3Event::ConnectionEnd)),
|
|
348 => Some(EventType::Pop3(Pop3Event::ConnectionStart)),
|
|
349 => Some(EventType::Pop3(Pop3Event::Delete)),
|
|
350 => Some(EventType::Pop3(Pop3Event::Error)),
|
|
351 => Some(EventType::Pop3(Pop3Event::Fetch)),
|
|
352 => Some(EventType::Pop3(Pop3Event::List)),
|
|
353 => Some(EventType::Pop3(Pop3Event::ListMessage)),
|
|
354 => Some(EventType::Pop3(Pop3Event::Noop)),
|
|
355 => Some(EventType::Pop3(Pop3Event::Quit)),
|
|
356 => Some(EventType::Pop3(Pop3Event::RawInput)),
|
|
357 => Some(EventType::Pop3(Pop3Event::RawOutput)),
|
|
358 => Some(EventType::Pop3(Pop3Event::Reset)),
|
|
359 => Some(EventType::Pop3(Pop3Event::StartTls)),
|
|
360 => Some(EventType::Pop3(Pop3Event::Stat)),
|
|
361 => Some(EventType::Pop3(Pop3Event::Uidl)),
|
|
362 => Some(EventType::Pop3(Pop3Event::UidlMessage)),
|
|
363 => Some(EventType::Pop3(Pop3Event::Utf8)),
|
|
364 => Some(EventType::Purge(PurgeEvent::AutoExpunge)),
|
|
365 => Some(EventType::Purge(PurgeEvent::Error)),
|
|
366 => Some(EventType::Purge(PurgeEvent::Finished)),
|
|
367 => Some(EventType::Purge(PurgeEvent::InProgress)),
|
|
368 => Some(EventType::Purge(PurgeEvent::Running)),
|
|
369 => Some(EventType::Purge(PurgeEvent::Started)),
|
|
370 => Some(EventType::Purge(PurgeEvent::TombstoneCleanup)),
|
|
371 => Some(EventType::PushSubscription(PushSubscriptionEvent::Error)),
|
|
372 => Some(EventType::PushSubscription(PushSubscriptionEvent::NotFound)),
|
|
373 => Some(EventType::PushSubscription(PushSubscriptionEvent::Success)),
|
|
374 => Some(EventType::Queue(QueueEvent::BlobNotFound)),
|
|
375 => Some(EventType::Queue(QueueEvent::ConcurrencyLimitExceeded)),
|
|
377 => Some(EventType::Queue(QueueEvent::Locked)),
|
|
378 => Some(EventType::Queue(QueueEvent::QueueAutogenerated)),
|
|
379 => Some(EventType::Queue(QueueEvent::QueueDsn)),
|
|
380 => Some(EventType::Queue(QueueEvent::QueueMessage)),
|
|
381 => Some(EventType::Queue(QueueEvent::QueueMessageAuthenticated)),
|
|
382 => Some(EventType::Queue(QueueEvent::QueueReport)),
|
|
383 => Some(EventType::Queue(QueueEvent::QuotaExceeded)),
|
|
384 => Some(EventType::Queue(QueueEvent::RateLimitExceeded)),
|
|
385 => Some(EventType::Queue(QueueEvent::Rescheduled)),
|
|
386 => Some(EventType::Resource(ResourceEvent::BadParameters)),
|
|
387 => Some(EventType::Resource(ResourceEvent::DownloadExternal)),
|
|
388 => Some(EventType::Resource(ResourceEvent::Error)),
|
|
389 => Some(EventType::Resource(ResourceEvent::NotFound)),
|
|
390 => Some(EventType::Resource(ResourceEvent::WebadminUnpacked)),
|
|
391 => Some(EventType::Server(ServerEvent::Licensing)),
|
|
392 => Some(EventType::Server(ServerEvent::Shutdown)),
|
|
393 => Some(EventType::Server(ServerEvent::Startup)),
|
|
394 => Some(EventType::Server(ServerEvent::StartupError)),
|
|
395 => Some(EventType::Server(ServerEvent::ThreadError)),
|
|
396 => Some(EventType::Sieve(SieveEvent::ActionAccept)),
|
|
397 => Some(EventType::Sieve(SieveEvent::ActionAcceptReplace)),
|
|
398 => Some(EventType::Sieve(SieveEvent::ActionDiscard)),
|
|
399 => Some(EventType::Sieve(SieveEvent::ActionReject)),
|
|
400 => Some(EventType::Sieve(SieveEvent::ListNotFound)),
|
|
401 => Some(EventType::Sieve(SieveEvent::MessageTooLarge)),
|
|
402 => Some(EventType::Sieve(SieveEvent::NotSupported)),
|
|
403 => Some(EventType::Sieve(SieveEvent::QuotaExceeded)),
|
|
404 => Some(EventType::Sieve(SieveEvent::RuntimeError)),
|
|
405 => Some(EventType::Sieve(SieveEvent::ScriptNotFound)),
|
|
406 => Some(EventType::Sieve(SieveEvent::SendMessage)),
|
|
407 => Some(EventType::Sieve(SieveEvent::UnexpectedError)),
|
|
408 => Some(EventType::Smtp(SmtpEvent::AlreadyAuthenticated)),
|
|
409 => Some(EventType::Smtp(SmtpEvent::ArcFail)),
|
|
410 => Some(EventType::Smtp(SmtpEvent::ArcPass)),
|
|
411 => Some(EventType::Smtp(SmtpEvent::AuthExchangeTooLong)),
|
|
412 => Some(EventType::Smtp(SmtpEvent::AuthMechanismNotSupported)),
|
|
413 => Some(EventType::Smtp(SmtpEvent::AuthNotAllowed)),
|
|
414 => Some(EventType::Smtp(SmtpEvent::CommandNotImplemented)),
|
|
415 => Some(EventType::Smtp(SmtpEvent::ConcurrencyLimitExceeded)),
|
|
416 => Some(EventType::Smtp(SmtpEvent::ConnectionEnd)),
|
|
417 => Some(EventType::Smtp(SmtpEvent::ConnectionStart)),
|
|
418 => Some(EventType::Smtp(SmtpEvent::DeliverByDisabled)),
|
|
419 => Some(EventType::Smtp(SmtpEvent::DeliverByInvalid)),
|
|
420 => Some(EventType::Smtp(SmtpEvent::DidNotSayEhlo)),
|
|
421 => Some(EventType::Smtp(SmtpEvent::DkimFail)),
|
|
422 => Some(EventType::Smtp(SmtpEvent::DkimPass)),
|
|
423 => Some(EventType::Smtp(SmtpEvent::DmarcFail)),
|
|
424 => Some(EventType::Smtp(SmtpEvent::DmarcPass)),
|
|
425 => Some(EventType::Smtp(SmtpEvent::DsnDisabled)),
|
|
426 => Some(EventType::Smtp(SmtpEvent::Ehlo)),
|
|
427 => Some(EventType::Smtp(SmtpEvent::EhloExpected)),
|
|
428 => Some(EventType::Smtp(SmtpEvent::Error)),
|
|
429 => Some(EventType::Smtp(SmtpEvent::Expn)),
|
|
430 => Some(EventType::Smtp(SmtpEvent::ExpnDisabled)),
|
|
431 => Some(EventType::Smtp(SmtpEvent::ExpnNotFound)),
|
|
432 => Some(EventType::Smtp(SmtpEvent::FutureReleaseDisabled)),
|
|
433 => Some(EventType::Smtp(SmtpEvent::FutureReleaseInvalid)),
|
|
434 => Some(EventType::Smtp(SmtpEvent::Help)),
|
|
435 => Some(EventType::Smtp(SmtpEvent::InvalidCommand)),
|
|
436 => Some(EventType::Smtp(SmtpEvent::InvalidEhlo)),
|
|
437 => Some(EventType::Smtp(SmtpEvent::InvalidParameter)),
|
|
438 => Some(EventType::Smtp(SmtpEvent::InvalidRecipientAddress)),
|
|
439 => Some(EventType::Smtp(SmtpEvent::InvalidSenderAddress)),
|
|
440 => Some(EventType::Smtp(SmtpEvent::IprevFail)),
|
|
441 => Some(EventType::Smtp(SmtpEvent::IprevPass)),
|
|
442 => Some(EventType::Smtp(SmtpEvent::LhloExpected)),
|
|
443 => Some(EventType::Smtp(SmtpEvent::LoopDetected)),
|
|
444 => Some(EventType::Smtp(SmtpEvent::MailFrom)),
|
|
445 => Some(EventType::Smtp(SmtpEvent::MailFromMissing)),
|
|
446 => Some(EventType::Smtp(SmtpEvent::MailFromRewritten)),
|
|
447 => Some(EventType::Smtp(SmtpEvent::MailFromUnauthenticated)),
|
|
448 => Some(EventType::Smtp(SmtpEvent::MailFromUnauthorized)),
|
|
449 => Some(EventType::Smtp(SmtpEvent::MailboxDoesNotExist)),
|
|
450 => Some(EventType::Smtp(SmtpEvent::MessageParseFailed)),
|
|
451 => Some(EventType::Smtp(SmtpEvent::MessageTooLarge)),
|
|
452 => Some(EventType::Smtp(SmtpEvent::MissingAuthDirectory)),
|
|
453 => Some(EventType::Smtp(SmtpEvent::MissingLocalHostname)),
|
|
454 => Some(EventType::Smtp(SmtpEvent::MtPriorityDisabled)),
|
|
455 => Some(EventType::Smtp(SmtpEvent::MtPriorityInvalid)),
|
|
456 => Some(EventType::Smtp(SmtpEvent::MultipleMailFrom)),
|
|
457 => Some(EventType::Smtp(SmtpEvent::Noop)),
|
|
460 => Some(EventType::Smtp(SmtpEvent::Quit)),
|
|
461 => Some(EventType::Smtp(SmtpEvent::RateLimitExceeded)),
|
|
462 => Some(EventType::Smtp(SmtpEvent::RawInput)),
|
|
463 => Some(EventType::Smtp(SmtpEvent::RawOutput)),
|
|
464 => Some(EventType::Smtp(SmtpEvent::RcptTo)),
|
|
465 => Some(EventType::Smtp(SmtpEvent::RcptToDuplicate)),
|
|
466 => Some(EventType::Smtp(SmtpEvent::RcptToMissing)),
|
|
467 => Some(EventType::Smtp(SmtpEvent::RcptToRewritten)),
|
|
468 => Some(EventType::Smtp(SmtpEvent::RelayNotAllowed)),
|
|
469 => Some(EventType::Smtp(SmtpEvent::RemoteIdNotFound)),
|
|
470 => Some(EventType::Smtp(SmtpEvent::RequestTooLarge)),
|
|
471 => Some(EventType::Smtp(SmtpEvent::RequireTlsDisabled)),
|
|
472 => Some(EventType::Smtp(SmtpEvent::Rset)),
|
|
473 => Some(EventType::Smtp(SmtpEvent::SpfEhloFail)),
|
|
474 => Some(EventType::Smtp(SmtpEvent::SpfEhloPass)),
|
|
475 => Some(EventType::Smtp(SmtpEvent::SpfFromFail)),
|
|
476 => Some(EventType::Smtp(SmtpEvent::SpfFromPass)),
|
|
477 => Some(EventType::Smtp(SmtpEvent::StartTls)),
|
|
478 => Some(EventType::Smtp(SmtpEvent::StartTlsAlready)),
|
|
479 => Some(EventType::Smtp(SmtpEvent::StartTlsUnavailable)),
|
|
480 => Some(EventType::Smtp(SmtpEvent::SyntaxError)),
|
|
481 => Some(EventType::Smtp(SmtpEvent::TimeLimitExceeded)),
|
|
482 => Some(EventType::Smtp(SmtpEvent::TooManyInvalidRcpt)),
|
|
483 => Some(EventType::Smtp(SmtpEvent::TooManyMessages)),
|
|
484 => Some(EventType::Smtp(SmtpEvent::TooManyRecipients)),
|
|
485 => Some(EventType::Smtp(SmtpEvent::TransferLimitExceeded)),
|
|
486 => Some(EventType::Smtp(SmtpEvent::UnsupportedParameter)),
|
|
487 => Some(EventType::Smtp(SmtpEvent::Vrfy)),
|
|
488 => Some(EventType::Smtp(SmtpEvent::VrfyDisabled)),
|
|
489 => Some(EventType::Smtp(SmtpEvent::VrfyNotFound)),
|
|
490 => Some(EventType::Spam(SpamEvent::Classify)),
|
|
491 => Some(EventType::Spam(SpamEvent::ClassifyError)),
|
|
492 => Some(EventType::Store(StoreEvent::HttpStoreFetch)),
|
|
493 => Some(EventType::Store(StoreEvent::HttpStoreError)),
|
|
494 => Some(EventType::Spam(SpamEvent::PyzorError)),
|
|
495 => Some(EventType::Spam(SpamEvent::Train)),
|
|
496 => Some(EventType::Spam(SpamEvent::TrainBalance)),
|
|
497 => Some(EventType::Spam(SpamEvent::TrainError)),
|
|
498 => Some(EventType::Spf(SpfEvent::Fail)),
|
|
499 => Some(EventType::Spf(SpfEvent::Neutral)),
|
|
500 => Some(EventType::Spf(SpfEvent::None)),
|
|
501 => Some(EventType::Spf(SpfEvent::Pass)),
|
|
502 => Some(EventType::Spf(SpfEvent::PermError)),
|
|
503 => Some(EventType::Spf(SpfEvent::SoftFail)),
|
|
504 => Some(EventType::Spf(SpfEvent::TempError)),
|
|
505 => Some(EventType::Store(StoreEvent::AssertValueFailed)),
|
|
506 => Some(EventType::Store(StoreEvent::BlobDelete)),
|
|
507 => Some(EventType::Store(StoreEvent::BlobMissingMarker)),
|
|
508 => Some(EventType::Store(StoreEvent::BlobRead)),
|
|
509 => Some(EventType::Store(StoreEvent::BlobWrite)),
|
|
510 => Some(EventType::Store(StoreEvent::CryptoError)),
|
|
511 => Some(EventType::Store(StoreEvent::DataCorruption)),
|
|
512 => Some(EventType::Store(StoreEvent::DataIterate)),
|
|
513 => Some(EventType::Store(StoreEvent::DataWrite)),
|
|
514 => Some(EventType::Store(StoreEvent::DecompressError)),
|
|
515 => Some(EventType::Store(StoreEvent::DeserializeError)),
|
|
516 => Some(EventType::Store(StoreEvent::ElasticsearchError)),
|
|
517 => Some(EventType::Store(StoreEvent::FilesystemError)),
|
|
518 => Some(EventType::Store(StoreEvent::FoundationdbError)),
|
|
519 => Some(EventType::Store(StoreEvent::LdapBind)),
|
|
520 => Some(EventType::Store(StoreEvent::LdapError)),
|
|
521 => Some(EventType::Store(StoreEvent::LdapQuery)),
|
|
522 => Some(EventType::Store(StoreEvent::MysqlError)),
|
|
523 => Some(EventType::Store(StoreEvent::NotConfigured)),
|
|
524 => Some(EventType::Store(StoreEvent::NotFound)),
|
|
525 => Some(EventType::Store(StoreEvent::NotSupported)),
|
|
526 => Some(EventType::Store(StoreEvent::PoolError)),
|
|
527 => Some(EventType::Store(StoreEvent::PostgresqlError)),
|
|
528 => Some(EventType::Store(StoreEvent::RedisError)),
|
|
529 => Some(EventType::Store(StoreEvent::RocksdbError)),
|
|
530 => Some(EventType::Store(StoreEvent::S3Error)),
|
|
531 => Some(EventType::Store(StoreEvent::SqlQuery)),
|
|
532 => Some(EventType::Store(StoreEvent::SqliteError)),
|
|
533 => Some(EventType::Store(StoreEvent::UnexpectedError)),
|
|
534 => Some(EventType::Telemetry(TelemetryEvent::JournalError)),
|
|
535 => Some(EventType::Telemetry(TelemetryEvent::LogError)),
|
|
536 => Some(EventType::Telemetry(TelemetryEvent::OtelExporterError)),
|
|
537 => Some(EventType::Telemetry(
|
|
TelemetryEvent::OtelMetricsExporterError,
|
|
)),
|
|
538 => Some(EventType::Telemetry(
|
|
TelemetryEvent::PrometheusExporterError,
|
|
)),
|
|
539 => Some(EventType::Telemetry(TelemetryEvent::WebhookError)),
|
|
540 => Some(EventType::TlsRpt(TlsRptEvent::RecordFetch)),
|
|
541 => Some(EventType::TlsRpt(TlsRptEvent::RecordFetchError)),
|
|
542 => Some(EventType::Tls(TlsEvent::CertificateNotFound)),
|
|
543 => Some(EventType::Tls(TlsEvent::Handshake)),
|
|
544 => Some(EventType::Tls(TlsEvent::HandshakeError)),
|
|
545 => Some(EventType::Tls(TlsEvent::MultipleCertificatesAvailable)),
|
|
546 => Some(EventType::Tls(TlsEvent::NoCertificatesAvailable)),
|
|
547 => Some(EventType::Tls(TlsEvent::NotConfigured)),
|
|
548 => Some(EventType::Telemetry(TelemetryEvent::Alert)),
|
|
549 => Some(EventType::Security(SecurityEvent::AbuseBan)),
|
|
550 => Some(EventType::Security(SecurityEvent::LoiterBan)),
|
|
551 => Some(EventType::Smtp(SmtpEvent::MailFromNotAllowed)),
|
|
552 => Some(EventType::Security(SecurityEvent::Unauthorized)),
|
|
553 => Some(EventType::Limit(LimitEvent::TenantQuota)),
|
|
554 => Some(EventType::Auth(AuthEvent::TokenExpired)),
|
|
555 => Some(EventType::Auth(AuthEvent::ClientRegistration)),
|
|
556 => Some(EventType::Ai(AiEvent::LlmResponse)),
|
|
557 => Some(EventType::Ai(AiEvent::ApiError)),
|
|
558 => Some(EventType::Security(SecurityEvent::ScanBan)),
|
|
559 => Some(EventType::Store(StoreEvent::AzureError)),
|
|
560 => Some(EventType::TlsRpt(TlsRptEvent::RecordNotFound)),
|
|
561 => Some(EventType::Smtp(SmtpEvent::RcptToGreylisted)),
|
|
562 => Some(EventType::Spam(SpamEvent::Dnsbl)),
|
|
563 => Some(EventType::Spam(SpamEvent::DnsblError)),
|
|
564 => Some(EventType::Spam(SpamEvent::Pyzor)),
|
|
_ => None,
|
|
}
|
|
}
|
|
}
|
|
|
|
impl Key {
|
|
fn code(&self) -> u64 {
|
|
match self {
|
|
Key::AccountName => 0,
|
|
Key::AccountId => 1,
|
|
Key::BlobId => 2,
|
|
Key::CausedBy => 3,
|
|
Key::ChangeId => 4,
|
|
Key::Code => 5,
|
|
Key::Collection => 6,
|
|
Key::Contents => 7,
|
|
Key::Details => 8,
|
|
Key::DkimFail => 9,
|
|
Key::DkimNone => 10,
|
|
Key::DkimPass => 11,
|
|
Key::DmarcNone => 12,
|
|
Key::DmarcPass => 13,
|
|
Key::DmarcQuarantine => 14,
|
|
Key::DmarcReject => 15,
|
|
Key::DocumentId => 16,
|
|
Key::Domain => 17,
|
|
Key::Due => 18,
|
|
Key::Elapsed => 19,
|
|
Key::Expires => 20,
|
|
Key::From => 21,
|
|
Key::Hostname => 22,
|
|
Key::Id => 23,
|
|
Key::Key => 24,
|
|
Key::Limit => 25,
|
|
Key::ListenerId => 26,
|
|
Key::LocalIp => 27,
|
|
Key::LocalPort => 28,
|
|
Key::MailboxName => 29,
|
|
Key::MailboxId => 30,
|
|
Key::MessageId => 31,
|
|
Key::NextDsn => 32,
|
|
Key::NextRetry => 33,
|
|
Key::Path => 34,
|
|
Key::Policy => 35,
|
|
Key::QueueId => 36,
|
|
Key::RangeFrom => 37,
|
|
Key::RangeTo => 38,
|
|
Key::Reason => 39,
|
|
Key::RemoteIp => 40,
|
|
Key::RemotePort => 41,
|
|
Key::ReportId => 42,
|
|
Key::Result => 43,
|
|
Key::Size => 44,
|
|
Key::Source => 45,
|
|
Key::SpanId => 46,
|
|
Key::SpfFail => 47,
|
|
Key::SpfNone => 48,
|
|
Key::SpfPass => 49,
|
|
Key::Strict => 50,
|
|
Key::Tls => 51,
|
|
Key::To => 52,
|
|
Key::Total => 53,
|
|
Key::TotalFailures => 54,
|
|
Key::TotalSuccesses => 55,
|
|
Key::Type => 56,
|
|
Key::Uid => 57,
|
|
Key::UidNext => 58,
|
|
Key::UidValidity => 59,
|
|
Key::Url => 60,
|
|
Key::ValidFrom => 61,
|
|
Key::ValidTo => 62,
|
|
Key::Value => 63,
|
|
Key::Version => 64,
|
|
}
|
|
}
|
|
|
|
fn from_code(code: u64) -> Option<Self> {
|
|
match code {
|
|
0 => Some(Key::AccountName),
|
|
1 => Some(Key::AccountId),
|
|
2 => Some(Key::BlobId),
|
|
3 => Some(Key::CausedBy),
|
|
4 => Some(Key::ChangeId),
|
|
5 => Some(Key::Code),
|
|
6 => Some(Key::Collection),
|
|
7 => Some(Key::Contents),
|
|
8 => Some(Key::Details),
|
|
9 => Some(Key::DkimFail),
|
|
10 => Some(Key::DkimNone),
|
|
11 => Some(Key::DkimPass),
|
|
12 => Some(Key::DmarcNone),
|
|
13 => Some(Key::DmarcPass),
|
|
14 => Some(Key::DmarcQuarantine),
|
|
15 => Some(Key::DmarcReject),
|
|
16 => Some(Key::DocumentId),
|
|
17 => Some(Key::Domain),
|
|
18 => Some(Key::Due),
|
|
19 => Some(Key::Elapsed),
|
|
20 => Some(Key::Expires),
|
|
21 => Some(Key::From),
|
|
22 => Some(Key::Hostname),
|
|
23 => Some(Key::Id),
|
|
24 => Some(Key::Key),
|
|
25 => Some(Key::Limit),
|
|
26 => Some(Key::ListenerId),
|
|
27 => Some(Key::LocalIp),
|
|
28 => Some(Key::LocalPort),
|
|
29 => Some(Key::MailboxName),
|
|
30 => Some(Key::MailboxId),
|
|
31 => Some(Key::MessageId),
|
|
32 => Some(Key::NextDsn),
|
|
33 => Some(Key::NextRetry),
|
|
34 => Some(Key::Path),
|
|
35 => Some(Key::Policy),
|
|
36 => Some(Key::QueueId),
|
|
37 => Some(Key::RangeFrom),
|
|
38 => Some(Key::RangeTo),
|
|
39 => Some(Key::Reason),
|
|
40 => Some(Key::RemoteIp),
|
|
41 => Some(Key::RemotePort),
|
|
42 => Some(Key::ReportId),
|
|
43 => Some(Key::Result),
|
|
44 => Some(Key::Size),
|
|
45 => Some(Key::Source),
|
|
46 => Some(Key::SpanId),
|
|
47 => Some(Key::SpfFail),
|
|
48 => Some(Key::SpfNone),
|
|
49 => Some(Key::SpfPass),
|
|
50 => Some(Key::Strict),
|
|
51 => Some(Key::Tls),
|
|
52 => Some(Key::To),
|
|
53 => Some(Key::Total),
|
|
54 => Some(Key::TotalFailures),
|
|
55 => Some(Key::TotalSuccesses),
|
|
56 => Some(Key::Type),
|
|
57 => Some(Key::Uid),
|
|
58 => Some(Key::UidNext),
|
|
59 => Some(Key::UidValidity),
|
|
60 => Some(Key::Url),
|
|
61 => Some(Key::ValidFrom),
|
|
62 => Some(Key::ValidTo),
|
|
63 => Some(Key::Value),
|
|
64 => Some(Key::Version),
|
|
_ => None,
|
|
}
|
|
}
|
|
}
|