blob: dd9a84fcbfc89129d8c3120936237bab512bf40c [file] [log] [blame]
#pragma once
#include <cstdint>
#include <nlohmann/json.hpp>
namespace event_destination
{
// clang-format off
enum class EventFormatType : std::uint8_t{
Invalid,
Event,
MetricReport,
};
enum class EventDestinationProtocol : std::uint8_t{
Invalid,
Redfish,
Kafka,
SNMPv1,
SNMPv2c,
SNMPv3,
SMTP,
SyslogTLS,
SyslogTCP,
SyslogUDP,
SyslogRELP,
OEM,
};
enum class SubscriptionType : std::uint8_t{
Invalid,
RedfishEvent,
SSE,
SNMPTrap,
SNMPInform,
Syslog,
OEM,
};
enum class DeliveryRetryPolicy : std::uint8_t{
Invalid,
TerminateAfterRetries,
SuspendRetries,
RetryForever,
RetryForeverWithBackoff,
};
enum class SNMPAuthenticationProtocols : std::uint8_t{
Invalid,
None,
CommunityString,
HMAC_MD5,
HMAC_SHA96,
HMAC128_SHA224,
HMAC192_SHA256,
HMAC256_SHA384,
HMAC384_SHA512,
};
enum class SNMPEncryptionProtocols : std::uint8_t{
Invalid,
None,
CBC_DES,
CFB128_AES128,
};
enum class SyslogSeverity : std::uint8_t{
Invalid,
Emergency,
Alert,
Critical,
Error,
Warning,
Notice,
Informational,
Debug,
All,
};
enum class SyslogFacility : std::uint8_t{
Invalid,
Kern,
User,
Mail,
Daemon,
Auth,
Syslog,
LPR,
News,
UUCP,
Cron,
Authpriv,
FTP,
NTP,
Security,
Console,
SolarisCron,
Local0,
Local1,
Local2,
Local3,
Local4,
Local5,
Local6,
Local7,
};
NLOHMANN_JSON_SERIALIZE_ENUM(EventFormatType, {
{EventFormatType::Invalid, "Invalid"},
{EventFormatType::Event, "Event"},
{EventFormatType::MetricReport, "MetricReport"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(EventDestinationProtocol, {
{EventDestinationProtocol::Invalid, "Invalid"},
{EventDestinationProtocol::Redfish, "Redfish"},
{EventDestinationProtocol::Kafka, "Kafka"},
{EventDestinationProtocol::SNMPv1, "SNMPv1"},
{EventDestinationProtocol::SNMPv2c, "SNMPv2c"},
{EventDestinationProtocol::SNMPv3, "SNMPv3"},
{EventDestinationProtocol::SMTP, "SMTP"},
{EventDestinationProtocol::SyslogTLS, "SyslogTLS"},
{EventDestinationProtocol::SyslogTCP, "SyslogTCP"},
{EventDestinationProtocol::SyslogUDP, "SyslogUDP"},
{EventDestinationProtocol::SyslogRELP, "SyslogRELP"},
{EventDestinationProtocol::OEM, "OEM"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(SubscriptionType, {
{SubscriptionType::Invalid, "Invalid"},
{SubscriptionType::RedfishEvent, "RedfishEvent"},
{SubscriptionType::SSE, "SSE"},
{SubscriptionType::SNMPTrap, "SNMPTrap"},
{SubscriptionType::SNMPInform, "SNMPInform"},
{SubscriptionType::Syslog, "Syslog"},
{SubscriptionType::OEM, "OEM"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(DeliveryRetryPolicy, {
{DeliveryRetryPolicy::Invalid, "Invalid"},
{DeliveryRetryPolicy::TerminateAfterRetries, "TerminateAfterRetries"},
{DeliveryRetryPolicy::SuspendRetries, "SuspendRetries"},
{DeliveryRetryPolicy::RetryForever, "RetryForever"},
{DeliveryRetryPolicy::RetryForeverWithBackoff, "RetryForeverWithBackoff"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(SNMPAuthenticationProtocols, {
{SNMPAuthenticationProtocols::Invalid, "Invalid"},
{SNMPAuthenticationProtocols::None, "None"},
{SNMPAuthenticationProtocols::CommunityString, "CommunityString"},
{SNMPAuthenticationProtocols::HMAC_MD5, "HMAC_MD5"},
{SNMPAuthenticationProtocols::HMAC_SHA96, "HMAC_SHA96"},
{SNMPAuthenticationProtocols::HMAC128_SHA224, "HMAC128_SHA224"},
{SNMPAuthenticationProtocols::HMAC192_SHA256, "HMAC192_SHA256"},
{SNMPAuthenticationProtocols::HMAC256_SHA384, "HMAC256_SHA384"},
{SNMPAuthenticationProtocols::HMAC384_SHA512, "HMAC384_SHA512"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(SNMPEncryptionProtocols, {
{SNMPEncryptionProtocols::Invalid, "Invalid"},
{SNMPEncryptionProtocols::None, "None"},
{SNMPEncryptionProtocols::CBC_DES, "CBC_DES"},
{SNMPEncryptionProtocols::CFB128_AES128, "CFB128_AES128"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(SyslogSeverity, {
{SyslogSeverity::Invalid, "Invalid"},
{SyslogSeverity::Emergency, "Emergency"},
{SyslogSeverity::Alert, "Alert"},
{SyslogSeverity::Critical, "Critical"},
{SyslogSeverity::Error, "Error"},
{SyslogSeverity::Warning, "Warning"},
{SyslogSeverity::Notice, "Notice"},
{SyslogSeverity::Informational, "Informational"},
{SyslogSeverity::Debug, "Debug"},
{SyslogSeverity::All, "All"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(SyslogFacility, {
{SyslogFacility::Invalid, "Invalid"},
{SyslogFacility::Kern, "Kern"},
{SyslogFacility::User, "User"},
{SyslogFacility::Mail, "Mail"},
{SyslogFacility::Daemon, "Daemon"},
{SyslogFacility::Auth, "Auth"},
{SyslogFacility::Syslog, "Syslog"},
{SyslogFacility::LPR, "LPR"},
{SyslogFacility::News, "News"},
{SyslogFacility::UUCP, "UUCP"},
{SyslogFacility::Cron, "Cron"},
{SyslogFacility::Authpriv, "Authpriv"},
{SyslogFacility::FTP, "FTP"},
{SyslogFacility::NTP, "NTP"},
{SyslogFacility::Security, "Security"},
{SyslogFacility::Console, "Console"},
{SyslogFacility::SolarisCron, "SolarisCron"},
{SyslogFacility::Local0, "Local0"},
{SyslogFacility::Local1, "Local1"},
{SyslogFacility::Local2, "Local2"},
{SyslogFacility::Local3, "Local3"},
{SyslogFacility::Local4, "Local4"},
{SyslogFacility::Local5, "Local5"},
{SyslogFacility::Local6, "Local6"},
{SyslogFacility::Local7, "Local7"},
});
} // namespace event_destination
// clang-format on