1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #pragma once 4 #include <nlohmann/json.hpp> 5 6 namespace collection_capabilities 7 { 8 // clang-format off 9 10 enum class UseCase{ 11 Invalid, 12 ComputerSystemComposition, 13 ComputerSystemConstrainedComposition, 14 VolumeCreation, 15 ResourceBlockComposition, 16 ResourceBlockConstrainedComposition, 17 RegisterResourceBlock, 18 }; 19 20 NLOHMANN_JSON_SERIALIZE_ENUM(UseCase, { 21 {UseCase::Invalid, "Invalid"}, 22 {UseCase::ComputerSystemComposition, "ComputerSystemComposition"}, 23 {UseCase::ComputerSystemConstrainedComposition, "ComputerSystemConstrainedComposition"}, 24 {UseCase::VolumeCreation, "VolumeCreation"}, 25 {UseCase::ResourceBlockComposition, "ResourceBlockComposition"}, 26 {UseCase::ResourceBlockConstrainedComposition, "ResourceBlockConstrainedComposition"}, 27 {UseCase::RegisterResourceBlock, "RegisterResourceBlock"}, 28 }); 29 30 } 31 // clang-format on 32