1*853c0dc5SEd Tanous #pragma once 2*853c0dc5SEd Tanous #include <nlohmann/json.hpp> 3*853c0dc5SEd Tanous 4*853c0dc5SEd Tanous namespace zone 5*853c0dc5SEd Tanous { 6*853c0dc5SEd Tanous // clang-format off 7*853c0dc5SEd Tanous 8*853c0dc5SEd Tanous enum class ExternalAccessibility{ 9*853c0dc5SEd Tanous Invalid, 10*853c0dc5SEd Tanous GloballyAccessible, 11*853c0dc5SEd Tanous NonZonedAccessible, 12*853c0dc5SEd Tanous ZoneOnly, 13*853c0dc5SEd Tanous NoInternalRouting, 14*853c0dc5SEd Tanous }; 15*853c0dc5SEd Tanous 16*853c0dc5SEd Tanous enum class ZoneType{ 17*853c0dc5SEd Tanous Invalid, 18*853c0dc5SEd Tanous Default, 19*853c0dc5SEd Tanous ZoneOfEndpoints, 20*853c0dc5SEd Tanous ZoneOfZones, 21*853c0dc5SEd Tanous ZoneOfResourceBlocks, 22*853c0dc5SEd Tanous }; 23*853c0dc5SEd Tanous 24*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ExternalAccessibility, { 25*853c0dc5SEd Tanous {ExternalAccessibility::Invalid, "Invalid"}, 26*853c0dc5SEd Tanous {ExternalAccessibility::GloballyAccessible, "GloballyAccessible"}, 27*853c0dc5SEd Tanous {ExternalAccessibility::NonZonedAccessible, "NonZonedAccessible"}, 28*853c0dc5SEd Tanous {ExternalAccessibility::ZoneOnly, "ZoneOnly"}, 29*853c0dc5SEd Tanous {ExternalAccessibility::NoInternalRouting, "NoInternalRouting"}, 30*853c0dc5SEd Tanous }); 31*853c0dc5SEd Tanous 32*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ZoneType, { 33*853c0dc5SEd Tanous {ZoneType::Invalid, "Invalid"}, 34*853c0dc5SEd Tanous {ZoneType::Default, "Default"}, 35*853c0dc5SEd Tanous {ZoneType::ZoneOfEndpoints, "ZoneOfEndpoints"}, 36*853c0dc5SEd Tanous {ZoneType::ZoneOfZones, "ZoneOfZones"}, 37*853c0dc5SEd Tanous {ZoneType::ZoneOfResourceBlocks, "ZoneOfResourceBlocks"}, 38*853c0dc5SEd Tanous }); 39*853c0dc5SEd Tanous 40*853c0dc5SEd Tanous } 41*853c0dc5SEd Tanous // clang-format on 42