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