1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #pragma once 4 #include <nlohmann/json.hpp> 5 6 namespace aggregation_source 7 { 8 // clang-format off 9 10 enum class SNMPAuthenticationProtocols{ 11 Invalid, 12 None, 13 CommunityString, 14 HMAC_MD5, 15 HMAC_SHA96, 16 HMAC128_SHA224, 17 HMAC192_SHA256, 18 HMAC256_SHA384, 19 HMAC384_SHA512, 20 }; 21 22 enum class SNMPEncryptionProtocols{ 23 Invalid, 24 None, 25 CBC_DES, 26 CFB128_AES128, 27 CFB128_AES192, 28 CFB128_AES256, 29 }; 30 31 enum class AggregationType{ 32 Invalid, 33 NotificationsOnly, 34 Full, 35 }; 36 37 enum class UserAuthenticationMethod{ 38 Invalid, 39 PublicKey, 40 Password, 41 }; 42 43 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPAuthenticationProtocols, { 44 {SNMPAuthenticationProtocols::Invalid, "Invalid"}, 45 {SNMPAuthenticationProtocols::None, "None"}, 46 {SNMPAuthenticationProtocols::CommunityString, "CommunityString"}, 47 {SNMPAuthenticationProtocols::HMAC_MD5, "HMAC_MD5"}, 48 {SNMPAuthenticationProtocols::HMAC_SHA96, "HMAC_SHA96"}, 49 {SNMPAuthenticationProtocols::HMAC128_SHA224, "HMAC128_SHA224"}, 50 {SNMPAuthenticationProtocols::HMAC192_SHA256, "HMAC192_SHA256"}, 51 {SNMPAuthenticationProtocols::HMAC256_SHA384, "HMAC256_SHA384"}, 52 {SNMPAuthenticationProtocols::HMAC384_SHA512, "HMAC384_SHA512"}, 53 }); 54 55 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPEncryptionProtocols, { 56 {SNMPEncryptionProtocols::Invalid, "Invalid"}, 57 {SNMPEncryptionProtocols::None, "None"}, 58 {SNMPEncryptionProtocols::CBC_DES, "CBC_DES"}, 59 {SNMPEncryptionProtocols::CFB128_AES128, "CFB128_AES128"}, 60 {SNMPEncryptionProtocols::CFB128_AES192, "CFB128_AES192"}, 61 {SNMPEncryptionProtocols::CFB128_AES256, "CFB128_AES256"}, 62 }); 63 64 NLOHMANN_JSON_SERIALIZE_ENUM(AggregationType, { 65 {AggregationType::Invalid, "Invalid"}, 66 {AggregationType::NotificationsOnly, "NotificationsOnly"}, 67 {AggregationType::Full, "Full"}, 68 }); 69 70 NLOHMANN_JSON_SERIALIZE_ENUM(UserAuthenticationMethod, { 71 {UserAuthenticationMethod::Invalid, "Invalid"}, 72 {UserAuthenticationMethod::PublicKey, "PublicKey"}, 73 {UserAuthenticationMethod::Password, "Password"}, 74 }); 75 76 } 77 // clang-format on 78