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 }; 74 75 enum class LogPurpose{ 76 Invalid, 77 Diagnostic, 78 Operations, 79 Security, 80 Telemetry, 81 ExternalEntity, 82 OEM, 83 }; 84 85 enum class TransferProtocolType{ 86 Invalid, 87 CIFS, 88 FTP, 89 SFTP, 90 HTTP, 91 HTTPS, 92 NFS, 93 SCP, 94 TFTP, 95 OEM, 96 }; 97 98 enum class AutoClearResolvedEntries{ 99 Invalid, 100 ClearEventGroup, 101 RetainCauseResolutionEntries, 102 UpdateCauseEntry, 103 None, 104 }; 105 106 NLOHMANN_JSON_SERIALIZE_ENUM(OverWritePolicy, { 107 {OverWritePolicy::Invalid, "Invalid"}, 108 {OverWritePolicy::Unknown, "Unknown"}, 109 {OverWritePolicy::WrapsWhenFull, "WrapsWhenFull"}, 110 {OverWritePolicy::NeverOverWrites, "NeverOverWrites"}, 111 }); 112 113 NLOHMANN_JSON_SERIALIZE_ENUM(LogEntryTypes, { 114 {LogEntryTypes::Invalid, "Invalid"}, 115 {LogEntryTypes::Event, "Event"}, 116 {LogEntryTypes::SEL, "SEL"}, 117 {LogEntryTypes::Multiple, "Multiple"}, 118 {LogEntryTypes::OEM, "OEM"}, 119 {LogEntryTypes::CXL, "CXL"}, 120 }); 121 122 NLOHMANN_JSON_SERIALIZE_ENUM(SyslogSeverity, { 123 {SyslogSeverity::Invalid, "Invalid"}, 124 {SyslogSeverity::Emergency, "Emergency"}, 125 {SyslogSeverity::Alert, "Alert"}, 126 {SyslogSeverity::Critical, "Critical"}, 127 {SyslogSeverity::Error, "Error"}, 128 {SyslogSeverity::Warning, "Warning"}, 129 {SyslogSeverity::Notice, "Notice"}, 130 {SyslogSeverity::Informational, "Informational"}, 131 {SyslogSeverity::Debug, "Debug"}, 132 {SyslogSeverity::All, "All"}, 133 }); 134 135 NLOHMANN_JSON_SERIALIZE_ENUM(SyslogFacility, { 136 {SyslogFacility::Invalid, "Invalid"}, 137 {SyslogFacility::Kern, "Kern"}, 138 {SyslogFacility::User, "User"}, 139 {SyslogFacility::Mail, "Mail"}, 140 {SyslogFacility::Daemon, "Daemon"}, 141 {SyslogFacility::Auth, "Auth"}, 142 {SyslogFacility::Syslog, "Syslog"}, 143 {SyslogFacility::LPR, "LPR"}, 144 {SyslogFacility::News, "News"}, 145 {SyslogFacility::UUCP, "UUCP"}, 146 {SyslogFacility::Cron, "Cron"}, 147 {SyslogFacility::Authpriv, "Authpriv"}, 148 {SyslogFacility::FTP, "FTP"}, 149 {SyslogFacility::NTP, "NTP"}, 150 {SyslogFacility::Security, "Security"}, 151 {SyslogFacility::Console, "Console"}, 152 {SyslogFacility::SolarisCron, "SolarisCron"}, 153 {SyslogFacility::Local0, "Local0"}, 154 {SyslogFacility::Local1, "Local1"}, 155 {SyslogFacility::Local2, "Local2"}, 156 {SyslogFacility::Local3, "Local3"}, 157 {SyslogFacility::Local4, "Local4"}, 158 {SyslogFacility::Local5, "Local5"}, 159 {SyslogFacility::Local6, "Local6"}, 160 {SyslogFacility::Local7, "Local7"}, 161 }); 162 163 NLOHMANN_JSON_SERIALIZE_ENUM(LogDiagnosticDataTypes, { 164 {LogDiagnosticDataTypes::Invalid, "Invalid"}, 165 {LogDiagnosticDataTypes::Manager, "Manager"}, 166 {LogDiagnosticDataTypes::PreOS, "PreOS"}, 167 {LogDiagnosticDataTypes::OS, "OS"}, 168 {LogDiagnosticDataTypes::OEM, "OEM"}, 169 }); 170 171 NLOHMANN_JSON_SERIALIZE_ENUM(LogPurpose, { 172 {LogPurpose::Invalid, "Invalid"}, 173 {LogPurpose::Diagnostic, "Diagnostic"}, 174 {LogPurpose::Operations, "Operations"}, 175 {LogPurpose::Security, "Security"}, 176 {LogPurpose::Telemetry, "Telemetry"}, 177 {LogPurpose::ExternalEntity, "ExternalEntity"}, 178 {LogPurpose::OEM, "OEM"}, 179 }); 180 181 NLOHMANN_JSON_SERIALIZE_ENUM(TransferProtocolType, { 182 {TransferProtocolType::Invalid, "Invalid"}, 183 {TransferProtocolType::CIFS, "CIFS"}, 184 {TransferProtocolType::FTP, "FTP"}, 185 {TransferProtocolType::SFTP, "SFTP"}, 186 {TransferProtocolType::HTTP, "HTTP"}, 187 {TransferProtocolType::HTTPS, "HTTPS"}, 188 {TransferProtocolType::NFS, "NFS"}, 189 {TransferProtocolType::SCP, "SCP"}, 190 {TransferProtocolType::TFTP, "TFTP"}, 191 {TransferProtocolType::OEM, "OEM"}, 192 }); 193 194 NLOHMANN_JSON_SERIALIZE_ENUM(AutoClearResolvedEntries, { 195 {AutoClearResolvedEntries::Invalid, "Invalid"}, 196 {AutoClearResolvedEntries::ClearEventGroup, "ClearEventGroup"}, 197 {AutoClearResolvedEntries::RetainCauseResolutionEntries, "RetainCauseResolutionEntries"}, 198 {AutoClearResolvedEntries::UpdateCauseEntry, "UpdateCauseEntry"}, 199 {AutoClearResolvedEntries::None, "None"}, 200 }); 201 202 } 203 // clang-format on 204