1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #pragma once 4 #include <nlohmann/json.hpp> 5 6 namespace log_service 7 { 8 // clang-format off 9 10 enum class OverWritePolicy{ 11 Invalid, 12 Unknown, 13 WrapsWhenFull, 14 NeverOverWrites, 15 }; 16 17 enum class LogEntryTypes{ 18 Invalid, 19 Event, 20 SEL, 21 Multiple, 22 OEM, 23 CXL, 24 }; 25 26 enum class SyslogSeverity{ 27 Invalid, 28 Emergency, 29 Alert, 30 Critical, 31 Error, 32 Warning, 33 Notice, 34 Informational, 35 Debug, 36 All, 37 }; 38 39 enum class SyslogFacility{ 40 Invalid, 41 Kern, 42 User, 43 Mail, 44 Daemon, 45 Auth, 46 Syslog, 47 LPR, 48 News, 49 UUCP, 50 Cron, 51 Authpriv, 52 FTP, 53 NTP, 54 Security, 55 Console, 56 SolarisCron, 57 Local0, 58 Local1, 59 Local2, 60 Local3, 61 Local4, 62 Local5, 63 Local6, 64 Local7, 65 }; 66 67 enum class LogDiagnosticDataTypes{ 68 Invalid, 69 Manager, 70 PreOS, 71 OS, 72 OEM, 73 Device, 74 }; 75 76 enum class LogPurpose{ 77 Invalid, 78 Diagnostic, 79 Operations, 80 Security, 81 Telemetry, 82 ExternalEntity, 83 OEM, 84 }; 85 86 enum class TransferProtocolType{ 87 Invalid, 88 CIFS, 89 FTP, 90 SFTP, 91 HTTP, 92 HTTPS, 93 NFS, 94 SCP, 95 TFTP, 96 OEM, 97 }; 98 99 enum class AutoClearResolvedEntries{ 100 Invalid, 101 ClearEventGroup, 102 RetainCauseResolutionEntries, 103 UpdateCauseEntry, 104 None, 105 }; 106 107 NLOHMANN_JSON_SERIALIZE_ENUM(OverWritePolicy, { 108 {OverWritePolicy::Invalid, "Invalid"}, 109 {OverWritePolicy::Unknown, "Unknown"}, 110 {OverWritePolicy::WrapsWhenFull, "WrapsWhenFull"}, 111 {OverWritePolicy::NeverOverWrites, "NeverOverWrites"}, 112 }); 113 114 NLOHMANN_JSON_SERIALIZE_ENUM(LogEntryTypes, { 115 {LogEntryTypes::Invalid, "Invalid"}, 116 {LogEntryTypes::Event, "Event"}, 117 {LogEntryTypes::SEL, "SEL"}, 118 {LogEntryTypes::Multiple, "Multiple"}, 119 {LogEntryTypes::OEM, "OEM"}, 120 {LogEntryTypes::CXL, "CXL"}, 121 }); 122 123 NLOHMANN_JSON_SERIALIZE_ENUM(SyslogSeverity, { 124 {SyslogSeverity::Invalid, "Invalid"}, 125 {SyslogSeverity::Emergency, "Emergency"}, 126 {SyslogSeverity::Alert, "Alert"}, 127 {SyslogSeverity::Critical, "Critical"}, 128 {SyslogSeverity::Error, "Error"}, 129 {SyslogSeverity::Warning, "Warning"}, 130 {SyslogSeverity::Notice, "Notice"}, 131 {SyslogSeverity::Informational, "Informational"}, 132 {SyslogSeverity::Debug, "Debug"}, 133 {SyslogSeverity::All, "All"}, 134 }); 135 136 NLOHMANN_JSON_SERIALIZE_ENUM(SyslogFacility, { 137 {SyslogFacility::Invalid, "Invalid"}, 138 {SyslogFacility::Kern, "Kern"}, 139 {SyslogFacility::User, "User"}, 140 {SyslogFacility::Mail, "Mail"}, 141 {SyslogFacility::Daemon, "Daemon"}, 142 {SyslogFacility::Auth, "Auth"}, 143 {SyslogFacility::Syslog, "Syslog"}, 144 {SyslogFacility::LPR, "LPR"}, 145 {SyslogFacility::News, "News"}, 146 {SyslogFacility::UUCP, "UUCP"}, 147 {SyslogFacility::Cron, "Cron"}, 148 {SyslogFacility::Authpriv, "Authpriv"}, 149 {SyslogFacility::FTP, "FTP"}, 150 {SyslogFacility::NTP, "NTP"}, 151 {SyslogFacility::Security, "Security"}, 152 {SyslogFacility::Console, "Console"}, 153 {SyslogFacility::SolarisCron, "SolarisCron"}, 154 {SyslogFacility::Local0, "Local0"}, 155 {SyslogFacility::Local1, "Local1"}, 156 {SyslogFacility::Local2, "Local2"}, 157 {SyslogFacility::Local3, "Local3"}, 158 {SyslogFacility::Local4, "Local4"}, 159 {SyslogFacility::Local5, "Local5"}, 160 {SyslogFacility::Local6, "Local6"}, 161 {SyslogFacility::Local7, "Local7"}, 162 }); 163 164 NLOHMANN_JSON_SERIALIZE_ENUM(LogDiagnosticDataTypes, { 165 {LogDiagnosticDataTypes::Invalid, "Invalid"}, 166 {LogDiagnosticDataTypes::Manager, "Manager"}, 167 {LogDiagnosticDataTypes::PreOS, "PreOS"}, 168 {LogDiagnosticDataTypes::OS, "OS"}, 169 {LogDiagnosticDataTypes::OEM, "OEM"}, 170 {LogDiagnosticDataTypes::Device, "Device"}, 171 }); 172 173 NLOHMANN_JSON_SERIALIZE_ENUM(LogPurpose, { 174 {LogPurpose::Invalid, "Invalid"}, 175 {LogPurpose::Diagnostic, "Diagnostic"}, 176 {LogPurpose::Operations, "Operations"}, 177 {LogPurpose::Security, "Security"}, 178 {LogPurpose::Telemetry, "Telemetry"}, 179 {LogPurpose::ExternalEntity, "ExternalEntity"}, 180 {LogPurpose::OEM, "OEM"}, 181 }); 182 183 NLOHMANN_JSON_SERIALIZE_ENUM(TransferProtocolType, { 184 {TransferProtocolType::Invalid, "Invalid"}, 185 {TransferProtocolType::CIFS, "CIFS"}, 186 {TransferProtocolType::FTP, "FTP"}, 187 {TransferProtocolType::SFTP, "SFTP"}, 188 {TransferProtocolType::HTTP, "HTTP"}, 189 {TransferProtocolType::HTTPS, "HTTPS"}, 190 {TransferProtocolType::NFS, "NFS"}, 191 {TransferProtocolType::SCP, "SCP"}, 192 {TransferProtocolType::TFTP, "TFTP"}, 193 {TransferProtocolType::OEM, "OEM"}, 194 }); 195 196 NLOHMANN_JSON_SERIALIZE_ENUM(AutoClearResolvedEntries, { 197 {AutoClearResolvedEntries::Invalid, "Invalid"}, 198 {AutoClearResolvedEntries::ClearEventGroup, "ClearEventGroup"}, 199 {AutoClearResolvedEntries::RetainCauseResolutionEntries, "RetainCauseResolutionEntries"}, 200 {AutoClearResolvedEntries::UpdateCauseEntry, "UpdateCauseEntry"}, 201 {AutoClearResolvedEntries::None, "None"}, 202 }); 203 204 } 205 // clang-format on 206