1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #pragma once 4 #include <nlohmann/json.hpp> 5 6 namespace attribute_registry 7 { 8 // clang-format off 9 10 enum class AttributeType{ 11 Invalid, 12 Enumeration, 13 String, 14 Integer, 15 Boolean, 16 Password, 17 }; 18 19 enum class DependencyType{ 20 Invalid, 21 Map, 22 }; 23 24 enum class MapFromCondition{ 25 Invalid, 26 EQU, 27 NEQ, 28 GTR, 29 GEQ, 30 LSS, 31 LEQ, 32 }; 33 34 enum class MapFromProperty{ 35 Invalid, 36 CurrentValue, 37 DefaultValue, 38 ReadOnly, 39 WriteOnly, 40 GrayOut, 41 Hidden, 42 LowerBound, 43 UpperBound, 44 MinLength, 45 MaxLength, 46 ScalarIncrement, 47 }; 48 49 enum class MapTerms{ 50 Invalid, 51 AND, 52 OR, 53 }; 54 55 enum class MapToProperty{ 56 Invalid, 57 CurrentValue, 58 DefaultValue, 59 ReadOnly, 60 WriteOnly, 61 GrayOut, 62 Hidden, 63 Immutable, 64 HelpText, 65 WarningText, 66 DisplayName, 67 DisplayOrder, 68 LowerBound, 69 UpperBound, 70 MinLength, 71 MaxLength, 72 ScalarIncrement, 73 ValueExpression, 74 }; 75 76 NLOHMANN_JSON_SERIALIZE_ENUM(AttributeType, { 77 {AttributeType::Invalid, "Invalid"}, 78 {AttributeType::Enumeration, "Enumeration"}, 79 {AttributeType::String, "String"}, 80 {AttributeType::Integer, "Integer"}, 81 {AttributeType::Boolean, "Boolean"}, 82 {AttributeType::Password, "Password"}, 83 }); 84 85 NLOHMANN_JSON_SERIALIZE_ENUM(DependencyType, { 86 {DependencyType::Invalid, "Invalid"}, 87 {DependencyType::Map, "Map"}, 88 }); 89 90 NLOHMANN_JSON_SERIALIZE_ENUM(MapFromCondition, { 91 {MapFromCondition::Invalid, "Invalid"}, 92 {MapFromCondition::EQU, "EQU"}, 93 {MapFromCondition::NEQ, "NEQ"}, 94 {MapFromCondition::GTR, "GTR"}, 95 {MapFromCondition::GEQ, "GEQ"}, 96 {MapFromCondition::LSS, "LSS"}, 97 {MapFromCondition::LEQ, "LEQ"}, 98 }); 99 100 NLOHMANN_JSON_SERIALIZE_ENUM(MapFromProperty, { 101 {MapFromProperty::Invalid, "Invalid"}, 102 {MapFromProperty::CurrentValue, "CurrentValue"}, 103 {MapFromProperty::DefaultValue, "DefaultValue"}, 104 {MapFromProperty::ReadOnly, "ReadOnly"}, 105 {MapFromProperty::WriteOnly, "WriteOnly"}, 106 {MapFromProperty::GrayOut, "GrayOut"}, 107 {MapFromProperty::Hidden, "Hidden"}, 108 {MapFromProperty::LowerBound, "LowerBound"}, 109 {MapFromProperty::UpperBound, "UpperBound"}, 110 {MapFromProperty::MinLength, "MinLength"}, 111 {MapFromProperty::MaxLength, "MaxLength"}, 112 {MapFromProperty::ScalarIncrement, "ScalarIncrement"}, 113 }); 114 115 NLOHMANN_JSON_SERIALIZE_ENUM(MapTerms, { 116 {MapTerms::Invalid, "Invalid"}, 117 {MapTerms::AND, "AND"}, 118 {MapTerms::OR, "OR"}, 119 }); 120 121 NLOHMANN_JSON_SERIALIZE_ENUM(MapToProperty, { 122 {MapToProperty::Invalid, "Invalid"}, 123 {MapToProperty::CurrentValue, "CurrentValue"}, 124 {MapToProperty::DefaultValue, "DefaultValue"}, 125 {MapToProperty::ReadOnly, "ReadOnly"}, 126 {MapToProperty::WriteOnly, "WriteOnly"}, 127 {MapToProperty::GrayOut, "GrayOut"}, 128 {MapToProperty::Hidden, "Hidden"}, 129 {MapToProperty::Immutable, "Immutable"}, 130 {MapToProperty::HelpText, "HelpText"}, 131 {MapToProperty::WarningText, "WarningText"}, 132 {MapToProperty::DisplayName, "DisplayName"}, 133 {MapToProperty::DisplayOrder, "DisplayOrder"}, 134 {MapToProperty::LowerBound, "LowerBound"}, 135 {MapToProperty::UpperBound, "UpperBound"}, 136 {MapToProperty::MinLength, "MinLength"}, 137 {MapToProperty::MaxLength, "MaxLength"}, 138 {MapToProperty::ScalarIncrement, "ScalarIncrement"}, 139 {MapToProperty::ValueExpression, "ValueExpression"}, 140 }); 141 142 } 143 // clang-format on 144