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