10ec8b83dSEd Tanous #pragma once 20ec8b83dSEd Tanous #include <nlohmann/json.hpp> 30ec8b83dSEd Tanous 40ec8b83dSEd Tanous namespace manager_network_protocol 50ec8b83dSEd Tanous { 60ec8b83dSEd Tanous // clang-format off 70ec8b83dSEd Tanous 80ec8b83dSEd Tanous enum class NotifyIPv6Scope{ 90ec8b83dSEd Tanous Invalid, 100ec8b83dSEd Tanous Link, 110ec8b83dSEd Tanous Site, 120ec8b83dSEd Tanous Organization, 130ec8b83dSEd Tanous }; 140ec8b83dSEd Tanous 150ec8b83dSEd Tanous enum class SNMPCommunityAccessMode{ 160ec8b83dSEd Tanous Invalid, 170ec8b83dSEd Tanous Full, 180ec8b83dSEd Tanous Limited, 190ec8b83dSEd Tanous }; 200ec8b83dSEd Tanous 210ec8b83dSEd Tanous enum class SNMPAuthenticationProtocols{ 220ec8b83dSEd Tanous Invalid, 230ec8b83dSEd Tanous Account, 240ec8b83dSEd Tanous CommunityString, 250ec8b83dSEd Tanous HMAC_MD5, 260ec8b83dSEd Tanous HMAC_SHA96, 270ec8b83dSEd Tanous HMAC128_SHA224, 280ec8b83dSEd Tanous HMAC192_SHA256, 290ec8b83dSEd Tanous HMAC256_SHA384, 300ec8b83dSEd Tanous HMAC384_SHA512, 310ec8b83dSEd Tanous }; 320ec8b83dSEd Tanous 330ec8b83dSEd Tanous enum class SNMPEncryptionProtocols{ 340ec8b83dSEd Tanous Invalid, 350ec8b83dSEd Tanous None, 360ec8b83dSEd Tanous Account, 370ec8b83dSEd Tanous CBC_DES, 380ec8b83dSEd Tanous CFB128_AES128, 39*2ae81db9SGunnar Mills CFB128_AES192, 40*2ae81db9SGunnar Mills CFB128_AES256, 410ec8b83dSEd Tanous }; 420ec8b83dSEd Tanous 430ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(NotifyIPv6Scope, { 440ec8b83dSEd Tanous {NotifyIPv6Scope::Invalid, "Invalid"}, 450ec8b83dSEd Tanous {NotifyIPv6Scope::Link, "Link"}, 460ec8b83dSEd Tanous {NotifyIPv6Scope::Site, "Site"}, 470ec8b83dSEd Tanous {NotifyIPv6Scope::Organization, "Organization"}, 480ec8b83dSEd Tanous }); 490ec8b83dSEd Tanous 500ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SNMPCommunityAccessMode, { 510ec8b83dSEd Tanous {SNMPCommunityAccessMode::Invalid, "Invalid"}, 520ec8b83dSEd Tanous {SNMPCommunityAccessMode::Full, "Full"}, 530ec8b83dSEd Tanous {SNMPCommunityAccessMode::Limited, "Limited"}, 540ec8b83dSEd Tanous }); 550ec8b83dSEd Tanous 560ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SNMPAuthenticationProtocols, { 570ec8b83dSEd Tanous {SNMPAuthenticationProtocols::Invalid, "Invalid"}, 580ec8b83dSEd Tanous {SNMPAuthenticationProtocols::Account, "Account"}, 590ec8b83dSEd Tanous {SNMPAuthenticationProtocols::CommunityString, "CommunityString"}, 600ec8b83dSEd Tanous {SNMPAuthenticationProtocols::HMAC_MD5, "HMAC_MD5"}, 610ec8b83dSEd Tanous {SNMPAuthenticationProtocols::HMAC_SHA96, "HMAC_SHA96"}, 620ec8b83dSEd Tanous {SNMPAuthenticationProtocols::HMAC128_SHA224, "HMAC128_SHA224"}, 630ec8b83dSEd Tanous {SNMPAuthenticationProtocols::HMAC192_SHA256, "HMAC192_SHA256"}, 640ec8b83dSEd Tanous {SNMPAuthenticationProtocols::HMAC256_SHA384, "HMAC256_SHA384"}, 650ec8b83dSEd Tanous {SNMPAuthenticationProtocols::HMAC384_SHA512, "HMAC384_SHA512"}, 660ec8b83dSEd Tanous }); 670ec8b83dSEd Tanous 680ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SNMPEncryptionProtocols, { 690ec8b83dSEd Tanous {SNMPEncryptionProtocols::Invalid, "Invalid"}, 700ec8b83dSEd Tanous {SNMPEncryptionProtocols::None, "None"}, 710ec8b83dSEd Tanous {SNMPEncryptionProtocols::Account, "Account"}, 720ec8b83dSEd Tanous {SNMPEncryptionProtocols::CBC_DES, "CBC_DES"}, 730ec8b83dSEd Tanous {SNMPEncryptionProtocols::CFB128_AES128, "CFB128_AES128"}, 74*2ae81db9SGunnar Mills {SNMPEncryptionProtocols::CFB128_AES192, "CFB128_AES192"}, 75*2ae81db9SGunnar Mills {SNMPEncryptionProtocols::CFB128_AES256, "CFB128_AES256"}, 760ec8b83dSEd Tanous }); 770ec8b83dSEd Tanous 780ec8b83dSEd Tanous } 790ec8b83dSEd Tanous // clang-format on 80