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