1*40e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0 2*40e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3853c0dc5SEd Tanous #pragma once 4853c0dc5SEd Tanous #include <nlohmann/json.hpp> 5853c0dc5SEd Tanous 6853c0dc5SEd Tanous namespace aggregation_source 7853c0dc5SEd Tanous { 8853c0dc5SEd Tanous // clang-format off 9853c0dc5SEd Tanous 10853c0dc5SEd Tanous enum class SNMPAuthenticationProtocols{ 11853c0dc5SEd Tanous Invalid, 12853c0dc5SEd Tanous None, 13853c0dc5SEd Tanous CommunityString, 14853c0dc5SEd Tanous HMAC_MD5, 15853c0dc5SEd Tanous HMAC_SHA96, 16853c0dc5SEd Tanous HMAC128_SHA224, 17853c0dc5SEd Tanous HMAC192_SHA256, 18853c0dc5SEd Tanous HMAC256_SHA384, 19853c0dc5SEd Tanous HMAC384_SHA512, 20853c0dc5SEd Tanous }; 21853c0dc5SEd Tanous 22853c0dc5SEd Tanous enum class SNMPEncryptionProtocols{ 23853c0dc5SEd Tanous Invalid, 24853c0dc5SEd Tanous None, 25853c0dc5SEd Tanous CBC_DES, 26853c0dc5SEd Tanous CFB128_AES128, 272ae81db9SGunnar Mills CFB128_AES192, 282ae81db9SGunnar Mills CFB128_AES256, 29853c0dc5SEd Tanous }; 30853c0dc5SEd Tanous 31853c0dc5SEd Tanous enum class AggregationType{ 32853c0dc5SEd Tanous Invalid, 33853c0dc5SEd Tanous NotificationsOnly, 34853c0dc5SEd Tanous Full, 35853c0dc5SEd Tanous }; 36853c0dc5SEd Tanous 37a8d8f9d8SEd Tanous enum class UserAuthenticationMethod{ 38a8d8f9d8SEd Tanous Invalid, 39a8d8f9d8SEd Tanous PublicKey, 40a8d8f9d8SEd Tanous Password, 41a8d8f9d8SEd Tanous }; 42a8d8f9d8SEd Tanous 43853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SNMPAuthenticationProtocols, { 44853c0dc5SEd Tanous {SNMPAuthenticationProtocols::Invalid, "Invalid"}, 45853c0dc5SEd Tanous {SNMPAuthenticationProtocols::None, "None"}, 46853c0dc5SEd Tanous {SNMPAuthenticationProtocols::CommunityString, "CommunityString"}, 47853c0dc5SEd Tanous {SNMPAuthenticationProtocols::HMAC_MD5, "HMAC_MD5"}, 48853c0dc5SEd Tanous {SNMPAuthenticationProtocols::HMAC_SHA96, "HMAC_SHA96"}, 49853c0dc5SEd Tanous {SNMPAuthenticationProtocols::HMAC128_SHA224, "HMAC128_SHA224"}, 50853c0dc5SEd Tanous {SNMPAuthenticationProtocols::HMAC192_SHA256, "HMAC192_SHA256"}, 51853c0dc5SEd Tanous {SNMPAuthenticationProtocols::HMAC256_SHA384, "HMAC256_SHA384"}, 52853c0dc5SEd Tanous {SNMPAuthenticationProtocols::HMAC384_SHA512, "HMAC384_SHA512"}, 53853c0dc5SEd Tanous }); 54853c0dc5SEd Tanous 55853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SNMPEncryptionProtocols, { 56853c0dc5SEd Tanous {SNMPEncryptionProtocols::Invalid, "Invalid"}, 57853c0dc5SEd Tanous {SNMPEncryptionProtocols::None, "None"}, 58853c0dc5SEd Tanous {SNMPEncryptionProtocols::CBC_DES, "CBC_DES"}, 59853c0dc5SEd Tanous {SNMPEncryptionProtocols::CFB128_AES128, "CFB128_AES128"}, 602ae81db9SGunnar Mills {SNMPEncryptionProtocols::CFB128_AES192, "CFB128_AES192"}, 612ae81db9SGunnar Mills {SNMPEncryptionProtocols::CFB128_AES256, "CFB128_AES256"}, 62853c0dc5SEd Tanous }); 63853c0dc5SEd Tanous 64853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AggregationType, { 65853c0dc5SEd Tanous {AggregationType::Invalid, "Invalid"}, 66853c0dc5SEd Tanous {AggregationType::NotificationsOnly, "NotificationsOnly"}, 67853c0dc5SEd Tanous {AggregationType::Full, "Full"}, 68853c0dc5SEd Tanous }); 69853c0dc5SEd Tanous 70a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(UserAuthenticationMethod, { 71a8d8f9d8SEd Tanous {UserAuthenticationMethod::Invalid, "Invalid"}, 72a8d8f9d8SEd Tanous {UserAuthenticationMethod::PublicKey, "PublicKey"}, 73a8d8f9d8SEd Tanous {UserAuthenticationMethod::Password, "Password"}, 74a8d8f9d8SEd Tanous }); 75a8d8f9d8SEd Tanous 76853c0dc5SEd Tanous } 77853c0dc5SEd Tanous // clang-format on 78