1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #pragma once 4 #include <nlohmann/json.hpp> 5 6 namespace manifest 7 { 8 // clang-format off 9 10 enum class Expand{ 11 Invalid, 12 None, 13 All, 14 Relevant, 15 }; 16 17 enum class StanzaType{ 18 Invalid, 19 ComposeSystem, 20 DecomposeSystem, 21 ComposeResource, 22 DecomposeResource, 23 OEM, 24 RegisterResourceBlock, 25 }; 26 27 NLOHMANN_JSON_SERIALIZE_ENUM(Expand, { 28 {Expand::Invalid, "Invalid"}, 29 {Expand::None, "None"}, 30 {Expand::All, "All"}, 31 {Expand::Relevant, "Relevant"}, 32 }); 33 34 NLOHMANN_JSON_SERIALIZE_ENUM(StanzaType, { 35 {StanzaType::Invalid, "Invalid"}, 36 {StanzaType::ComposeSystem, "ComposeSystem"}, 37 {StanzaType::DecomposeSystem, "DecomposeSystem"}, 38 {StanzaType::ComposeResource, "ComposeResource"}, 39 {StanzaType::DecomposeResource, "DecomposeResource"}, 40 {StanzaType::OEM, "OEM"}, 41 {StanzaType::RegisterResourceBlock, "RegisterResourceBlock"}, 42 }); 43 44 } 45 // clang-format on 46