1*40e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0 2*40e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors 30ec8b83dSEd Tanous #pragma once 40ec8b83dSEd Tanous #include <nlohmann/json.hpp> 50ec8b83dSEd Tanous 60ec8b83dSEd Tanous namespace storage_controller 70ec8b83dSEd Tanous { 80ec8b83dSEd Tanous // clang-format off 90ec8b83dSEd Tanous 100ec8b83dSEd Tanous enum class NVMeControllerType{ 110ec8b83dSEd Tanous Invalid, 120ec8b83dSEd Tanous Admin, 130ec8b83dSEd Tanous Discovery, 140ec8b83dSEd Tanous IO, 150ec8b83dSEd Tanous }; 160ec8b83dSEd Tanous 170ec8b83dSEd Tanous enum class ANAAccessState{ 180ec8b83dSEd Tanous Invalid, 190ec8b83dSEd Tanous Optimized, 200ec8b83dSEd Tanous NonOptimized, 210ec8b83dSEd Tanous Inaccessible, 220ec8b83dSEd Tanous PersistentLoss, 230ec8b83dSEd Tanous }; 240ec8b83dSEd Tanous 250ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(NVMeControllerType, { 260ec8b83dSEd Tanous {NVMeControllerType::Invalid, "Invalid"}, 270ec8b83dSEd Tanous {NVMeControllerType::Admin, "Admin"}, 280ec8b83dSEd Tanous {NVMeControllerType::Discovery, "Discovery"}, 290ec8b83dSEd Tanous {NVMeControllerType::IO, "IO"}, 300ec8b83dSEd Tanous }); 310ec8b83dSEd Tanous 320ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ANAAccessState, { 330ec8b83dSEd Tanous {ANAAccessState::Invalid, "Invalid"}, 340ec8b83dSEd Tanous {ANAAccessState::Optimized, "Optimized"}, 350ec8b83dSEd Tanous {ANAAccessState::NonOptimized, "NonOptimized"}, 360ec8b83dSEd Tanous {ANAAccessState::Inaccessible, "Inaccessible"}, 370ec8b83dSEd Tanous {ANAAccessState::PersistentLoss, "PersistentLoss"}, 380ec8b83dSEd Tanous }); 390ec8b83dSEd Tanous 400ec8b83dSEd Tanous } 410ec8b83dSEd Tanous // clang-format on 42