1 #pragma once
2 #include <nlohmann/json.hpp>
3 
4 namespace aggregation_source
5 {
6 // clang-format off
7 
8 enum class SNMPAuthenticationProtocols{
9     Invalid,
10     None,
11     CommunityString,
12     HMAC_MD5,
13     HMAC_SHA96,
14     HMAC128_SHA224,
15     HMAC192_SHA256,
16     HMAC256_SHA384,
17     HMAC384_SHA512,
18 };
19 
20 enum class SNMPEncryptionProtocols{
21     Invalid,
22     None,
23     CBC_DES,
24     CFB128_AES128,
25 };
26 
27 enum class AggregationType{
28     Invalid,
29     NotificationsOnly,
30     Full,
31 };
32 
33 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPAuthenticationProtocols, {
34     {SNMPAuthenticationProtocols::Invalid, "Invalid"},
35     {SNMPAuthenticationProtocols::None, "None"},
36     {SNMPAuthenticationProtocols::CommunityString, "CommunityString"},
37     {SNMPAuthenticationProtocols::HMAC_MD5, "HMAC_MD5"},
38     {SNMPAuthenticationProtocols::HMAC_SHA96, "HMAC_SHA96"},
39     {SNMPAuthenticationProtocols::HMAC128_SHA224, "HMAC128_SHA224"},
40     {SNMPAuthenticationProtocols::HMAC192_SHA256, "HMAC192_SHA256"},
41     {SNMPAuthenticationProtocols::HMAC256_SHA384, "HMAC256_SHA384"},
42     {SNMPAuthenticationProtocols::HMAC384_SHA512, "HMAC384_SHA512"},
43 });
44 
45 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPEncryptionProtocols, {
46     {SNMPEncryptionProtocols::Invalid, "Invalid"},
47     {SNMPEncryptionProtocols::None, "None"},
48     {SNMPEncryptionProtocols::CBC_DES, "CBC_DES"},
49     {SNMPEncryptionProtocols::CFB128_AES128, "CFB128_AES128"},
50 });
51 
52 NLOHMANN_JSON_SERIALIZE_ENUM(AggregationType, {
53     {AggregationType::Invalid, "Invalid"},
54     {AggregationType::NotificationsOnly, "NotificationsOnly"},
55     {AggregationType::Full, "Full"},
56 });
57 
58 }
59 // clang-format on
60