1*40e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0 2*40e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3a8d8f9d8SEd Tanous #pragma once 4a8d8f9d8SEd Tanous #include <nlohmann/json.hpp> 5a8d8f9d8SEd Tanous 6a8d8f9d8SEd Tanous namespace software_inventory 7a8d8f9d8SEd Tanous { 8a8d8f9d8SEd Tanous // clang-format off 9a8d8f9d8SEd Tanous 10a8d8f9d8SEd Tanous enum class VersionScheme{ 11a8d8f9d8SEd Tanous Invalid, 12a8d8f9d8SEd Tanous SemVer, 13a8d8f9d8SEd Tanous DotIntegerNotation, 14a8d8f9d8SEd Tanous OEM, 15a8d8f9d8SEd Tanous }; 16a8d8f9d8SEd Tanous 17e9cc1bc9SEd Tanous enum class ReleaseType{ 18e9cc1bc9SEd Tanous Invalid, 19e9cc1bc9SEd Tanous Production, 20e9cc1bc9SEd Tanous Prototype, 21e9cc1bc9SEd Tanous Other, 22e9cc1bc9SEd Tanous }; 23e9cc1bc9SEd Tanous 24a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(VersionScheme, { 25a8d8f9d8SEd Tanous {VersionScheme::Invalid, "Invalid"}, 26a8d8f9d8SEd Tanous {VersionScheme::SemVer, "SemVer"}, 27a8d8f9d8SEd Tanous {VersionScheme::DotIntegerNotation, "DotIntegerNotation"}, 28a8d8f9d8SEd Tanous {VersionScheme::OEM, "OEM"}, 29a8d8f9d8SEd Tanous }); 30a8d8f9d8SEd Tanous 31e9cc1bc9SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ReleaseType, { 32e9cc1bc9SEd Tanous {ReleaseType::Invalid, "Invalid"}, 33e9cc1bc9SEd Tanous {ReleaseType::Production, "Production"}, 34e9cc1bc9SEd Tanous {ReleaseType::Prototype, "Prototype"}, 35e9cc1bc9SEd Tanous {ReleaseType::Other, "Other"}, 36e9cc1bc9SEd Tanous }); 37e9cc1bc9SEd Tanous 38a8d8f9d8SEd Tanous } 39a8d8f9d8SEd Tanous // clang-format on 40