1*853c0dc5SEd Tanous #pragma once 2*853c0dc5SEd Tanous #include <nlohmann/json.hpp> 3*853c0dc5SEd Tanous 4*853c0dc5SEd Tanous namespace allow_deny 5*853c0dc5SEd Tanous { 6*853c0dc5SEd Tanous // clang-format off 7*853c0dc5SEd Tanous 8*853c0dc5SEd Tanous enum class IPAddressType{ 9*853c0dc5SEd Tanous Invalid, 10*853c0dc5SEd Tanous IPv4, 11*853c0dc5SEd Tanous IPv6, 12*853c0dc5SEd Tanous }; 13*853c0dc5SEd Tanous 14*853c0dc5SEd Tanous enum class AllowType{ 15*853c0dc5SEd Tanous Invalid, 16*853c0dc5SEd Tanous Allow, 17*853c0dc5SEd Tanous Deny, 18*853c0dc5SEd Tanous }; 19*853c0dc5SEd Tanous 20*853c0dc5SEd Tanous enum class DataDirection{ 21*853c0dc5SEd Tanous Invalid, 22*853c0dc5SEd Tanous Ingress, 23*853c0dc5SEd Tanous Egress, 24*853c0dc5SEd Tanous }; 25*853c0dc5SEd Tanous 26*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(IPAddressType, { 27*853c0dc5SEd Tanous {IPAddressType::Invalid, "Invalid"}, 28*853c0dc5SEd Tanous {IPAddressType::IPv4, "IPv4"}, 29*853c0dc5SEd Tanous {IPAddressType::IPv6, "IPv6"}, 30*853c0dc5SEd Tanous }); 31*853c0dc5SEd Tanous 32*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AllowType, { 33*853c0dc5SEd Tanous {AllowType::Invalid, "Invalid"}, 34*853c0dc5SEd Tanous {AllowType::Allow, "Allow"}, 35*853c0dc5SEd Tanous {AllowType::Deny, "Deny"}, 36*853c0dc5SEd Tanous }); 37*853c0dc5SEd Tanous 38*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(DataDirection, { 39*853c0dc5SEd Tanous {DataDirection::Invalid, "Invalid"}, 40*853c0dc5SEd Tanous {DataDirection::Ingress, "Ingress"}, 41*853c0dc5SEd Tanous {DataDirection::Egress, "Egress"}, 42*853c0dc5SEd Tanous }); 43*853c0dc5SEd Tanous 44*853c0dc5SEd Tanous } 45*853c0dc5SEd Tanous // clang-format on 46