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