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 CFB128_AES192, 40 CFB128_AES256, 41 }; 42 43 NLOHMANN_JSON_SERIALIZE_ENUM(NotifyIPv6Scope, { 44 {NotifyIPv6Scope::Invalid, "Invalid"}, 45 {NotifyIPv6Scope::Link, "Link"}, 46 {NotifyIPv6Scope::Site, "Site"}, 47 {NotifyIPv6Scope::Organization, "Organization"}, 48 }); 49 50 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPCommunityAccessMode, { 51 {SNMPCommunityAccessMode::Invalid, "Invalid"}, 52 {SNMPCommunityAccessMode::Full, "Full"}, 53 {SNMPCommunityAccessMode::Limited, "Limited"}, 54 }); 55 56 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPAuthenticationProtocols, { 57 {SNMPAuthenticationProtocols::Invalid, "Invalid"}, 58 {SNMPAuthenticationProtocols::Account, "Account"}, 59 {SNMPAuthenticationProtocols::CommunityString, "CommunityString"}, 60 {SNMPAuthenticationProtocols::HMAC_MD5, "HMAC_MD5"}, 61 {SNMPAuthenticationProtocols::HMAC_SHA96, "HMAC_SHA96"}, 62 {SNMPAuthenticationProtocols::HMAC128_SHA224, "HMAC128_SHA224"}, 63 {SNMPAuthenticationProtocols::HMAC192_SHA256, "HMAC192_SHA256"}, 64 {SNMPAuthenticationProtocols::HMAC256_SHA384, "HMAC256_SHA384"}, 65 {SNMPAuthenticationProtocols::HMAC384_SHA512, "HMAC384_SHA512"}, 66 }); 67 68 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPEncryptionProtocols, { 69 {SNMPEncryptionProtocols::Invalid, "Invalid"}, 70 {SNMPEncryptionProtocols::None, "None"}, 71 {SNMPEncryptionProtocols::Account, "Account"}, 72 {SNMPEncryptionProtocols::CBC_DES, "CBC_DES"}, 73 {SNMPEncryptionProtocols::CFB128_AES128, "CFB128_AES128"}, 74 {SNMPEncryptionProtocols::CFB128_AES192, "CFB128_AES192"}, 75 {SNMPEncryptionProtocols::CFB128_AES256, "CFB128_AES256"}, 76 }); 77 78 } 79 // clang-format on 80