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