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