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 CFB128_AES192, 26 CFB128_AES256, 27 }; 28 29 enum class AggregationType{ 30 Invalid, 31 NotificationsOnly, 32 Full, 33 }; 34 35 enum class UserAuthenticationMethod{ 36 Invalid, 37 PublicKey, 38 Password, 39 }; 40 41 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPAuthenticationProtocols, { 42 {SNMPAuthenticationProtocols::Invalid, "Invalid"}, 43 {SNMPAuthenticationProtocols::None, "None"}, 44 {SNMPAuthenticationProtocols::CommunityString, "CommunityString"}, 45 {SNMPAuthenticationProtocols::HMAC_MD5, "HMAC_MD5"}, 46 {SNMPAuthenticationProtocols::HMAC_SHA96, "HMAC_SHA96"}, 47 {SNMPAuthenticationProtocols::HMAC128_SHA224, "HMAC128_SHA224"}, 48 {SNMPAuthenticationProtocols::HMAC192_SHA256, "HMAC192_SHA256"}, 49 {SNMPAuthenticationProtocols::HMAC256_SHA384, "HMAC256_SHA384"}, 50 {SNMPAuthenticationProtocols::HMAC384_SHA512, "HMAC384_SHA512"}, 51 }); 52 53 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPEncryptionProtocols, { 54 {SNMPEncryptionProtocols::Invalid, "Invalid"}, 55 {SNMPEncryptionProtocols::None, "None"}, 56 {SNMPEncryptionProtocols::CBC_DES, "CBC_DES"}, 57 {SNMPEncryptionProtocols::CFB128_AES128, "CFB128_AES128"}, 58 {SNMPEncryptionProtocols::CFB128_AES192, "CFB128_AES192"}, 59 {SNMPEncryptionProtocols::CFB128_AES256, "CFB128_AES256"}, 60 }); 61 62 NLOHMANN_JSON_SERIALIZE_ENUM(AggregationType, { 63 {AggregationType::Invalid, "Invalid"}, 64 {AggregationType::NotificationsOnly, "NotificationsOnly"}, 65 {AggregationType::Full, "Full"}, 66 }); 67 68 NLOHMANN_JSON_SERIALIZE_ENUM(UserAuthenticationMethod, { 69 {UserAuthenticationMethod::Invalid, "Invalid"}, 70 {UserAuthenticationMethod::PublicKey, "PublicKey"}, 71 {UserAuthenticationMethod::Password, "Password"}, 72 }); 73 74 } 75 // clang-format on 76