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