1 #pragma once
2 #include <nlohmann/json.hpp>
3 
4 namespace manager_account
5 {
6 // clang-format off
7 
8 enum class AccountTypes{
9     Invalid,
10     Redfish,
11     SNMP,
12     OEM,
13     HostConsole,
14     ManagerConsole,
15     IPMI,
16     KVMIP,
17     VirtualMedia,
18     WebUI,
19 };
20 
21 enum class SNMPAuthenticationProtocols{
22     Invalid,
23     None,
24     HMAC_MD5,
25     HMAC_SHA96,
26     HMAC128_SHA224,
27     HMAC192_SHA256,
28     HMAC256_SHA384,
29     HMAC384_SHA512,
30 };
31 
32 enum class SNMPEncryptionProtocols{
33     Invalid,
34     None,
35     CBC_DES,
36     CFB128_AES128,
37 };
38 
39 NLOHMANN_JSON_SERIALIZE_ENUM(AccountTypes, {
40     {AccountTypes::Invalid, "Invalid"},
41     {AccountTypes::Redfish, "Redfish"},
42     {AccountTypes::SNMP, "SNMP"},
43     {AccountTypes::OEM, "OEM"},
44     {AccountTypes::HostConsole, "HostConsole"},
45     {AccountTypes::ManagerConsole, "ManagerConsole"},
46     {AccountTypes::IPMI, "IPMI"},
47     {AccountTypes::KVMIP, "KVMIP"},
48     {AccountTypes::VirtualMedia, "VirtualMedia"},
49     {AccountTypes::WebUI, "WebUI"},
50 });
51 
52 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPAuthenticationProtocols, {
53     {SNMPAuthenticationProtocols::Invalid, "Invalid"},
54     {SNMPAuthenticationProtocols::None, "None"},
55     {SNMPAuthenticationProtocols::HMAC_MD5, "HMAC_MD5"},
56     {SNMPAuthenticationProtocols::HMAC_SHA96, "HMAC_SHA96"},
57     {SNMPAuthenticationProtocols::HMAC128_SHA224, "HMAC128_SHA224"},
58     {SNMPAuthenticationProtocols::HMAC192_SHA256, "HMAC192_SHA256"},
59     {SNMPAuthenticationProtocols::HMAC256_SHA384, "HMAC256_SHA384"},
60     {SNMPAuthenticationProtocols::HMAC384_SHA512, "HMAC384_SHA512"},
61 });
62 
63 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPEncryptionProtocols, {
64     {SNMPEncryptionProtocols::Invalid, "Invalid"},
65     {SNMPEncryptionProtocols::None, "None"},
66     {SNMPEncryptionProtocols::CBC_DES, "CBC_DES"},
67     {SNMPEncryptionProtocols::CFB128_AES128, "CFB128_AES128"},
68 });
69 
70 }
71 // clang-format on
72