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