1 #pragma once 2 #include <nlohmann/json.hpp> 3 4 namespace event_destination 5 { 6 // clang-format off 7 8 enum class EventFormatType{ 9 Invalid, 10 Event, 11 MetricReport, 12 }; 13 14 enum class EventDestinationProtocol{ 15 Invalid, 16 Redfish, 17 SNMPv1, 18 SNMPv2c, 19 SNMPv3, 20 SMTP, 21 SyslogTLS, 22 SyslogTCP, 23 SyslogUDP, 24 SyslogRELP, 25 OEM, 26 }; 27 28 enum class SubscriptionType{ 29 Invalid, 30 RedfishEvent, 31 SSE, 32 SNMPTrap, 33 SNMPInform, 34 Syslog, 35 OEM, 36 }; 37 38 enum class DeliveryRetryPolicy{ 39 Invalid, 40 TerminateAfterRetries, 41 SuspendRetries, 42 RetryForever, 43 RetryForeverWithBackoff, 44 }; 45 46 enum class SNMPAuthenticationProtocols{ 47 Invalid, 48 None, 49 CommunityString, 50 HMAC_MD5, 51 HMAC_SHA96, 52 HMAC128_SHA224, 53 HMAC192_SHA256, 54 HMAC256_SHA384, 55 HMAC384_SHA512, 56 }; 57 58 enum class SNMPEncryptionProtocols{ 59 Invalid, 60 None, 61 CBC_DES, 62 CFB128_AES128, 63 }; 64 65 enum class SyslogSeverity{ 66 Invalid, 67 Emergency, 68 Alert, 69 Critical, 70 Error, 71 Warning, 72 Notice, 73 Informational, 74 Debug, 75 All, 76 }; 77 78 enum class SyslogFacility{ 79 Invalid, 80 Kern, 81 User, 82 Mail, 83 Daemon, 84 Auth, 85 Syslog, 86 LPR, 87 News, 88 UUCP, 89 Cron, 90 Authpriv, 91 FTP, 92 NTP, 93 Security, 94 Console, 95 SolarisCron, 96 Local0, 97 Local1, 98 Local2, 99 Local3, 100 Local4, 101 Local5, 102 Local6, 103 Local7, 104 }; 105 106 NLOHMANN_JSON_SERIALIZE_ENUM(EventFormatType, { 107 {EventFormatType::Invalid, "Invalid"}, 108 {EventFormatType::Event, "Event"}, 109 {EventFormatType::MetricReport, "MetricReport"}, 110 }); 111 112 NLOHMANN_JSON_SERIALIZE_ENUM(EventDestinationProtocol, { 113 {EventDestinationProtocol::Invalid, "Invalid"}, 114 {EventDestinationProtocol::Redfish, "Redfish"}, 115 {EventDestinationProtocol::SNMPv1, "SNMPv1"}, 116 {EventDestinationProtocol::SNMPv2c, "SNMPv2c"}, 117 {EventDestinationProtocol::SNMPv3, "SNMPv3"}, 118 {EventDestinationProtocol::SMTP, "SMTP"}, 119 {EventDestinationProtocol::SyslogTLS, "SyslogTLS"}, 120 {EventDestinationProtocol::SyslogTCP, "SyslogTCP"}, 121 {EventDestinationProtocol::SyslogUDP, "SyslogUDP"}, 122 {EventDestinationProtocol::SyslogRELP, "SyslogRELP"}, 123 {EventDestinationProtocol::OEM, "OEM"}, 124 }); 125 126 NLOHMANN_JSON_SERIALIZE_ENUM(SubscriptionType, { 127 {SubscriptionType::Invalid, "Invalid"}, 128 {SubscriptionType::RedfishEvent, "RedfishEvent"}, 129 {SubscriptionType::SSE, "SSE"}, 130 {SubscriptionType::SNMPTrap, "SNMPTrap"}, 131 {SubscriptionType::SNMPInform, "SNMPInform"}, 132 {SubscriptionType::Syslog, "Syslog"}, 133 {SubscriptionType::OEM, "OEM"}, 134 }); 135 136 NLOHMANN_JSON_SERIALIZE_ENUM(DeliveryRetryPolicy, { 137 {DeliveryRetryPolicy::Invalid, "Invalid"}, 138 {DeliveryRetryPolicy::TerminateAfterRetries, "TerminateAfterRetries"}, 139 {DeliveryRetryPolicy::SuspendRetries, "SuspendRetries"}, 140 {DeliveryRetryPolicy::RetryForever, "RetryForever"}, 141 {DeliveryRetryPolicy::RetryForeverWithBackoff, "RetryForeverWithBackoff"}, 142 }); 143 144 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPAuthenticationProtocols, { 145 {SNMPAuthenticationProtocols::Invalid, "Invalid"}, 146 {SNMPAuthenticationProtocols::None, "None"}, 147 {SNMPAuthenticationProtocols::CommunityString, "CommunityString"}, 148 {SNMPAuthenticationProtocols::HMAC_MD5, "HMAC_MD5"}, 149 {SNMPAuthenticationProtocols::HMAC_SHA96, "HMAC_SHA96"}, 150 {SNMPAuthenticationProtocols::HMAC128_SHA224, "HMAC128_SHA224"}, 151 {SNMPAuthenticationProtocols::HMAC192_SHA256, "HMAC192_SHA256"}, 152 {SNMPAuthenticationProtocols::HMAC256_SHA384, "HMAC256_SHA384"}, 153 {SNMPAuthenticationProtocols::HMAC384_SHA512, "HMAC384_SHA512"}, 154 }); 155 156 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPEncryptionProtocols, { 157 {SNMPEncryptionProtocols::Invalid, "Invalid"}, 158 {SNMPEncryptionProtocols::None, "None"}, 159 {SNMPEncryptionProtocols::CBC_DES, "CBC_DES"}, 160 {SNMPEncryptionProtocols::CFB128_AES128, "CFB128_AES128"}, 161 }); 162 163 NLOHMANN_JSON_SERIALIZE_ENUM(SyslogSeverity, { 164 {SyslogSeverity::Invalid, "Invalid"}, 165 {SyslogSeverity::Emergency, "Emergency"}, 166 {SyslogSeverity::Alert, "Alert"}, 167 {SyslogSeverity::Critical, "Critical"}, 168 {SyslogSeverity::Error, "Error"}, 169 {SyslogSeverity::Warning, "Warning"}, 170 {SyslogSeverity::Notice, "Notice"}, 171 {SyslogSeverity::Informational, "Informational"}, 172 {SyslogSeverity::Debug, "Debug"}, 173 {SyslogSeverity::All, "All"}, 174 }); 175 176 NLOHMANN_JSON_SERIALIZE_ENUM(SyslogFacility, { 177 {SyslogFacility::Invalid, "Invalid"}, 178 {SyslogFacility::Kern, "Kern"}, 179 {SyslogFacility::User, "User"}, 180 {SyslogFacility::Mail, "Mail"}, 181 {SyslogFacility::Daemon, "Daemon"}, 182 {SyslogFacility::Auth, "Auth"}, 183 {SyslogFacility::Syslog, "Syslog"}, 184 {SyslogFacility::LPR, "LPR"}, 185 {SyslogFacility::News, "News"}, 186 {SyslogFacility::UUCP, "UUCP"}, 187 {SyslogFacility::Cron, "Cron"}, 188 {SyslogFacility::Authpriv, "Authpriv"}, 189 {SyslogFacility::FTP, "FTP"}, 190 {SyslogFacility::NTP, "NTP"}, 191 {SyslogFacility::Security, "Security"}, 192 {SyslogFacility::Console, "Console"}, 193 {SyslogFacility::SolarisCron, "SolarisCron"}, 194 {SyslogFacility::Local0, "Local0"}, 195 {SyslogFacility::Local1, "Local1"}, 196 {SyslogFacility::Local2, "Local2"}, 197 {SyslogFacility::Local3, "Local3"}, 198 {SyslogFacility::Local4, "Local4"}, 199 {SyslogFacility::Local5, "Local5"}, 200 {SyslogFacility::Local6, "Local6"}, 201 {SyslogFacility::Local7, "Local7"}, 202 }); 203 204 } 205 // clang-format on 206