1853c0dc5SEd Tanous #pragma once 2853c0dc5SEd Tanous #include <nlohmann/json.hpp> 3853c0dc5SEd Tanous 4853c0dc5SEd Tanous namespace aggregation_source 5853c0dc5SEd Tanous { 6853c0dc5SEd Tanous // clang-format off 7853c0dc5SEd Tanous 8853c0dc5SEd Tanous enum class SNMPAuthenticationProtocols{ 9853c0dc5SEd Tanous Invalid, 10853c0dc5SEd Tanous None, 11853c0dc5SEd Tanous CommunityString, 12853c0dc5SEd Tanous HMAC_MD5, 13853c0dc5SEd Tanous HMAC_SHA96, 14853c0dc5SEd Tanous HMAC128_SHA224, 15853c0dc5SEd Tanous HMAC192_SHA256, 16853c0dc5SEd Tanous HMAC256_SHA384, 17853c0dc5SEd Tanous HMAC384_SHA512, 18853c0dc5SEd Tanous }; 19853c0dc5SEd Tanous 20853c0dc5SEd Tanous enum class SNMPEncryptionProtocols{ 21853c0dc5SEd Tanous Invalid, 22853c0dc5SEd Tanous None, 23853c0dc5SEd Tanous CBC_DES, 24853c0dc5SEd Tanous CFB128_AES128, 25853c0dc5SEd Tanous }; 26853c0dc5SEd Tanous 27853c0dc5SEd Tanous enum class AggregationType{ 28853c0dc5SEd Tanous Invalid, 29853c0dc5SEd Tanous NotificationsOnly, 30853c0dc5SEd Tanous Full, 31853c0dc5SEd Tanous }; 32853c0dc5SEd Tanous 33*a8d8f9d8SEd Tanous enum class UserAuthenticationMethod{ 34*a8d8f9d8SEd Tanous Invalid, 35*a8d8f9d8SEd Tanous PublicKey, 36*a8d8f9d8SEd Tanous Password, 37*a8d8f9d8SEd Tanous }; 38*a8d8f9d8SEd Tanous 39*a8d8f9d8SEd Tanous enum class SSHKeyType{ 40*a8d8f9d8SEd Tanous Invalid, 41*a8d8f9d8SEd Tanous RSA, 42*a8d8f9d8SEd Tanous DSA, 43*a8d8f9d8SEd Tanous ECDSA, 44*a8d8f9d8SEd Tanous Ed25519, 45*a8d8f9d8SEd Tanous }; 46*a8d8f9d8SEd Tanous 47*a8d8f9d8SEd Tanous enum class ECDSACurveType{ 48*a8d8f9d8SEd Tanous Invalid, 49*a8d8f9d8SEd Tanous NISTP256, 50*a8d8f9d8SEd Tanous NISTP384, 51*a8d8f9d8SEd Tanous NISTP521, 52*a8d8f9d8SEd Tanous NISTK163, 53*a8d8f9d8SEd Tanous NISTP192, 54*a8d8f9d8SEd Tanous NISTP224, 55*a8d8f9d8SEd Tanous NISTK233, 56*a8d8f9d8SEd Tanous NISTB233, 57*a8d8f9d8SEd Tanous NISTK283, 58*a8d8f9d8SEd Tanous NISTK409, 59*a8d8f9d8SEd Tanous NISTB409, 60*a8d8f9d8SEd Tanous NISTT571, 61*a8d8f9d8SEd Tanous }; 62*a8d8f9d8SEd Tanous 63853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SNMPAuthenticationProtocols, { 64853c0dc5SEd Tanous {SNMPAuthenticationProtocols::Invalid, "Invalid"}, 65853c0dc5SEd Tanous {SNMPAuthenticationProtocols::None, "None"}, 66853c0dc5SEd Tanous {SNMPAuthenticationProtocols::CommunityString, "CommunityString"}, 67853c0dc5SEd Tanous {SNMPAuthenticationProtocols::HMAC_MD5, "HMAC_MD5"}, 68853c0dc5SEd Tanous {SNMPAuthenticationProtocols::HMAC_SHA96, "HMAC_SHA96"}, 69853c0dc5SEd Tanous {SNMPAuthenticationProtocols::HMAC128_SHA224, "HMAC128_SHA224"}, 70853c0dc5SEd Tanous {SNMPAuthenticationProtocols::HMAC192_SHA256, "HMAC192_SHA256"}, 71853c0dc5SEd Tanous {SNMPAuthenticationProtocols::HMAC256_SHA384, "HMAC256_SHA384"}, 72853c0dc5SEd Tanous {SNMPAuthenticationProtocols::HMAC384_SHA512, "HMAC384_SHA512"}, 73853c0dc5SEd Tanous }); 74853c0dc5SEd Tanous 75853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SNMPEncryptionProtocols, { 76853c0dc5SEd Tanous {SNMPEncryptionProtocols::Invalid, "Invalid"}, 77853c0dc5SEd Tanous {SNMPEncryptionProtocols::None, "None"}, 78853c0dc5SEd Tanous {SNMPEncryptionProtocols::CBC_DES, "CBC_DES"}, 79853c0dc5SEd Tanous {SNMPEncryptionProtocols::CFB128_AES128, "CFB128_AES128"}, 80853c0dc5SEd Tanous }); 81853c0dc5SEd Tanous 82853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AggregationType, { 83853c0dc5SEd Tanous {AggregationType::Invalid, "Invalid"}, 84853c0dc5SEd Tanous {AggregationType::NotificationsOnly, "NotificationsOnly"}, 85853c0dc5SEd Tanous {AggregationType::Full, "Full"}, 86853c0dc5SEd Tanous }); 87853c0dc5SEd Tanous 88*a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(UserAuthenticationMethod, { 89*a8d8f9d8SEd Tanous {UserAuthenticationMethod::Invalid, "Invalid"}, 90*a8d8f9d8SEd Tanous {UserAuthenticationMethod::PublicKey, "PublicKey"}, 91*a8d8f9d8SEd Tanous {UserAuthenticationMethod::Password, "Password"}, 92*a8d8f9d8SEd Tanous }); 93*a8d8f9d8SEd Tanous 94*a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SSHKeyType, { 95*a8d8f9d8SEd Tanous {SSHKeyType::Invalid, "Invalid"}, 96*a8d8f9d8SEd Tanous {SSHKeyType::RSA, "RSA"}, 97*a8d8f9d8SEd Tanous {SSHKeyType::DSA, "DSA"}, 98*a8d8f9d8SEd Tanous {SSHKeyType::ECDSA, "ECDSA"}, 99*a8d8f9d8SEd Tanous {SSHKeyType::Ed25519, "Ed25519"}, 100*a8d8f9d8SEd Tanous }); 101*a8d8f9d8SEd Tanous 102*a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ECDSACurveType, { 103*a8d8f9d8SEd Tanous {ECDSACurveType::Invalid, "Invalid"}, 104*a8d8f9d8SEd Tanous {ECDSACurveType::NISTP256, "NISTP256"}, 105*a8d8f9d8SEd Tanous {ECDSACurveType::NISTP384, "NISTP384"}, 106*a8d8f9d8SEd Tanous {ECDSACurveType::NISTP521, "NISTP521"}, 107*a8d8f9d8SEd Tanous {ECDSACurveType::NISTK163, "NISTK163"}, 108*a8d8f9d8SEd Tanous {ECDSACurveType::NISTP192, "NISTP192"}, 109*a8d8f9d8SEd Tanous {ECDSACurveType::NISTP224, "NISTP224"}, 110*a8d8f9d8SEd Tanous {ECDSACurveType::NISTK233, "NISTK233"}, 111*a8d8f9d8SEd Tanous {ECDSACurveType::NISTB233, "NISTB233"}, 112*a8d8f9d8SEd Tanous {ECDSACurveType::NISTK283, "NISTK283"}, 113*a8d8f9d8SEd Tanous {ECDSACurveType::NISTK409, "NISTK409"}, 114*a8d8f9d8SEd Tanous {ECDSACurveType::NISTB409, "NISTB409"}, 115*a8d8f9d8SEd Tanous {ECDSACurveType::NISTT571, "NISTT571"}, 116*a8d8f9d8SEd Tanous }); 117*a8d8f9d8SEd Tanous 118853c0dc5SEd Tanous } 119853c0dc5SEd Tanous // clang-format on 120