1f4c4dcf4SKowalski, Kamil /* 2f4c4dcf4SKowalski, Kamil // Copyright (c) 2018 Intel Corporation 3f4c4dcf4SKowalski, Kamil // 4f4c4dcf4SKowalski, Kamil // Licensed under the Apache License, Version 2.0 (the "License"); 5f4c4dcf4SKowalski, Kamil // you may not use this file except in compliance with the License. 6f4c4dcf4SKowalski, Kamil // You may obtain a copy of the License at 7f4c4dcf4SKowalski, Kamil // 8f4c4dcf4SKowalski, Kamil // http://www.apache.org/licenses/LICENSE-2.0 9f4c4dcf4SKowalski, Kamil // 10f4c4dcf4SKowalski, Kamil // Unless required by applicable law or agreed to in writing, software 11f4c4dcf4SKowalski, Kamil // distributed under the License is distributed on an "AS IS" BASIS, 12f4c4dcf4SKowalski, Kamil // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f4c4dcf4SKowalski, Kamil // See the License for the specific language governing permissions and 14f4c4dcf4SKowalski, Kamil // limitations under the License. 15f4c4dcf4SKowalski, Kamil */ 160442ef92SNan Zhou #include "error_messages.hpp" 179ea15c35SEd Tanous 180442ef92SNan Zhou #include "http_response.hpp" 190442ef92SNan Zhou #include "logging.hpp" 200442ef92SNan Zhou #include "registries.hpp" 210442ef92SNan Zhou #include "registries/base_message_registry.hpp" 220442ef92SNan Zhou 230442ef92SNan Zhou #include <boost/beast/http/field.hpp> 249ea15c35SEd Tanous #include <boost/beast/http/status.hpp> 25*f0b59af4SEd Tanous #include <boost/url/url_view.hpp> 26faf100f9SEd Tanous #include <nlohmann/json.hpp> 27f4c4dcf4SKowalski, Kamil 281668ce6dSEd Tanous #include <array> 290442ef92SNan Zhou #include <cstddef> 30*f0b59af4SEd Tanous #include <cstdint> 31d85418e3SPatrick Williams #include <source_location> 320442ef92SNan Zhou #include <span> 330442ef92SNan Zhou #include <string> 34*f0b59af4SEd Tanous #include <string_view> 350442ef92SNan Zhou #include <utility> 360442ef92SNan Zhou 370442ef92SNan Zhou // IWYU pragma: no_include <stddef.h> 381668ce6dSEd Tanous 391abe55efSEd Tanous namespace redfish 401abe55efSEd Tanous { 411abe55efSEd Tanous 421abe55efSEd Tanous namespace messages 431abe55efSEd Tanous { 44f4c4dcf4SKowalski, Kamil 45f12894f8SJason M. Bills static void addMessageToErrorJson(nlohmann::json& target, 461abe55efSEd Tanous const nlohmann::json& message) 471abe55efSEd Tanous { 48f4c4dcf4SKowalski, Kamil auto& error = target["error"]; 49f4c4dcf4SKowalski, Kamil 501abe55efSEd Tanous // If this is the first error message, fill in the information from the 511abe55efSEd Tanous // first error message to the top level struct 521abe55efSEd Tanous if (!error.is_object()) 531abe55efSEd Tanous { 54c074230bSJason M. Bills auto messageIdIterator = message.find("MessageId"); 55c074230bSJason M. Bills if (messageIdIterator == message.end()) 561abe55efSEd Tanous { 5762598e31SEd Tanous BMCWEB_LOG_CRITICAL( 5862598e31SEd Tanous "Attempt to add error message without MessageId"); 59f4c4dcf4SKowalski, Kamil return; 60f4c4dcf4SKowalski, Kamil } 61f4c4dcf4SKowalski, Kamil 62c074230bSJason M. Bills auto messageFieldIterator = message.find("Message"); 63c074230bSJason M. Bills if (messageFieldIterator == message.end()) 641abe55efSEd Tanous { 6562598e31SEd Tanous BMCWEB_LOG_CRITICAL("Attempt to add error message without Message"); 66f4c4dcf4SKowalski, Kamil return; 67f4c4dcf4SKowalski, Kamil } 681476687dSEd Tanous error["code"] = *messageIdIterator; 691476687dSEd Tanous error["message"] = *messageFieldIterator; 701abe55efSEd Tanous } 711abe55efSEd Tanous else 721abe55efSEd Tanous { 73f4c4dcf4SKowalski, Kamil // More than 1 error occurred, so the message has to be generic 7455c7b7a2SEd Tanous error["code"] = std::string(messageVersionPrefix) + "GeneralError"; 75cc9139ecSJason M. Bills error["message"] = "A general error has occurred. See Resolution for " 76cc9139ecSJason M. Bills "information on how to resolve the error."; 77f4c4dcf4SKowalski, Kamil } 78f4c4dcf4SKowalski, Kamil 793590bd1dSNan Zhou // This check could technically be done in the default construction 80f4c4dcf4SKowalski, Kamil // branch above, but because we need the pointer to the extended info field 81f4c4dcf4SKowalski, Kamil // anyway, it's more efficient to do it here. 82c074230bSJason M. Bills auto& extendedInfo = error[messages::messageAnnotation]; 83c074230bSJason M. Bills if (!extendedInfo.is_array()) 841abe55efSEd Tanous { 85c074230bSJason M. Bills extendedInfo = nlohmann::json::array(); 86f4c4dcf4SKowalski, Kamil } 87f4c4dcf4SKowalski, Kamil 88c074230bSJason M. Bills extendedInfo.push_back(message); 89f4c4dcf4SKowalski, Kamil } 90f4c4dcf4SKowalski, Kamil 913590bd1dSNan Zhou void moveErrorsToErrorJson(nlohmann::json& target, nlohmann::json& source) 923590bd1dSNan Zhou { 933590bd1dSNan Zhou if (!source.is_object()) 943590bd1dSNan Zhou { 953590bd1dSNan Zhou return; 963590bd1dSNan Zhou } 973590bd1dSNan Zhou auto errorIt = source.find("error"); 983590bd1dSNan Zhou if (errorIt == source.end()) 993590bd1dSNan Zhou { 1003590bd1dSNan Zhou // caller puts error message in root 1013590bd1dSNan Zhou messages::addMessageToErrorJson(target, source); 1023590bd1dSNan Zhou source.clear(); 1033590bd1dSNan Zhou return; 1043590bd1dSNan Zhou } 1053590bd1dSNan Zhou auto extendedInfoIt = errorIt->find(messages::messageAnnotation); 1063590bd1dSNan Zhou if (extendedInfoIt == errorIt->end()) 1073590bd1dSNan Zhou { 1083590bd1dSNan Zhou return; 1093590bd1dSNan Zhou } 1103590bd1dSNan Zhou const nlohmann::json::array_t* extendedInfo = 1113590bd1dSNan Zhou (*extendedInfoIt).get_ptr<const nlohmann::json::array_t*>(); 1123590bd1dSNan Zhou if (extendedInfo == nullptr) 1133590bd1dSNan Zhou { 1143590bd1dSNan Zhou source.erase(errorIt); 1153590bd1dSNan Zhou return; 1163590bd1dSNan Zhou } 1173590bd1dSNan Zhou for (const nlohmann::json& message : *extendedInfo) 1183590bd1dSNan Zhou { 1193590bd1dSNan Zhou addMessageToErrorJson(target, message); 1203590bd1dSNan Zhou } 1213590bd1dSNan Zhou source.erase(errorIt); 1223590bd1dSNan Zhou } 1233590bd1dSNan Zhou 124f12894f8SJason M. Bills static void addMessageToJsonRoot(nlohmann::json& target, 125f12894f8SJason M. Bills const nlohmann::json& message) 1261abe55efSEd Tanous { 1271abe55efSEd Tanous if (!target[messages::messageAnnotation].is_array()) 1281abe55efSEd Tanous { 129f4c4dcf4SKowalski, Kamil // Force object to be an array 13055c7b7a2SEd Tanous target[messages::messageAnnotation] = nlohmann::json::array(); 131f4c4dcf4SKowalski, Kamil } 132f4c4dcf4SKowalski, Kamil 13355c7b7a2SEd Tanous target[messages::messageAnnotation].push_back(message); 134f4c4dcf4SKowalski, Kamil } 135f4c4dcf4SKowalski, Kamil 136f12894f8SJason M. Bills static void addMessageToJson(nlohmann::json& target, 137f12894f8SJason M. Bills const nlohmann::json& message, 1381668ce6dSEd Tanous std::string_view fieldPath) 1391abe55efSEd Tanous { 1401668ce6dSEd Tanous std::string extendedInfo(fieldPath); 1411668ce6dSEd Tanous extendedInfo += messages::messageAnnotation; 142f4c4dcf4SKowalski, Kamil 1431668ce6dSEd Tanous nlohmann::json& field = target[extendedInfo]; 1441668ce6dSEd Tanous if (!field.is_array()) 1451abe55efSEd Tanous { 146f4c4dcf4SKowalski, Kamil // Force object to be an array 1471668ce6dSEd Tanous field = nlohmann::json::array(); 148f4c4dcf4SKowalski, Kamil } 149f4c4dcf4SKowalski, Kamil 150f4c4dcf4SKowalski, Kamil // Object exists and it is an array so we can just push in the message 1511668ce6dSEd Tanous field.push_back(message); 152f4c4dcf4SKowalski, Kamil } 153f4c4dcf4SKowalski, Kamil 154f7725d79SEd Tanous static nlohmann::json getLog(redfish::registries::base::Index name, 155b6cd31e1SEd Tanous std::span<const std::string_view> args) 156b6cd31e1SEd Tanous { 157b6cd31e1SEd Tanous size_t index = static_cast<size_t>(name); 158fffb8c1fSEd Tanous if (index >= redfish::registries::base::registry.size()) 159b6cd31e1SEd Tanous { 160b6cd31e1SEd Tanous return {}; 161b6cd31e1SEd Tanous } 16265e4f1f7SEd Tanous return getLogFromRegistry(redfish::registries::base::header, 16365e4f1f7SEd Tanous redfish::registries::base::registry, index, args); 164b6cd31e1SEd Tanous } 165b6cd31e1SEd Tanous 166f4c4dcf4SKowalski, Kamil /** 167f4c4dcf4SKowalski, Kamil * @internal 168f4c4dcf4SKowalski, Kamil * @brief Formats ResourceInUse message into JSON 169f4c4dcf4SKowalski, Kamil * 170f4c4dcf4SKowalski, Kamil * See header file for more information 171f4c4dcf4SKowalski, Kamil * @endinternal 172f4c4dcf4SKowalski, Kamil */ 173d9fcfcc1SEd Tanous nlohmann::json resourceInUse() 1741abe55efSEd Tanous { 175fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::resourceInUse, {}); 176b5c07418SJames Feist } 177b5c07418SJames Feist 178b5c07418SJames Feist void resourceInUse(crow::Response& res) 179b5c07418SJames Feist { 180b5c07418SJames Feist res.result(boost::beast::http::status::service_unavailable); 181b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, resourceInUse()); 182f4c4dcf4SKowalski, Kamil } 183f4c4dcf4SKowalski, Kamil 184f4c4dcf4SKowalski, Kamil /** 185f4c4dcf4SKowalski, Kamil * @internal 186f4c4dcf4SKowalski, Kamil * @brief Formats MalformedJSON message into JSON 187f4c4dcf4SKowalski, Kamil * 188f4c4dcf4SKowalski, Kamil * See header file for more information 189f4c4dcf4SKowalski, Kamil * @endinternal 190f4c4dcf4SKowalski, Kamil */ 191d9fcfcc1SEd Tanous nlohmann::json malformedJSON() 1921abe55efSEd Tanous { 193fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::malformedJSON, {}); 194b5c07418SJames Feist } 195b5c07418SJames Feist 196b5c07418SJames Feist void malformedJSON(crow::Response& res) 197b5c07418SJames Feist { 198b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 199b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, malformedJSON()); 200f4c4dcf4SKowalski, Kamil } 201f4c4dcf4SKowalski, Kamil 202f4c4dcf4SKowalski, Kamil /** 203f4c4dcf4SKowalski, Kamil * @internal 204f4c4dcf4SKowalski, Kamil * @brief Formats ResourceMissingAtURI message into JSON 205f4c4dcf4SKowalski, Kamil * 206f4c4dcf4SKowalski, Kamil * See header file for more information 207f4c4dcf4SKowalski, Kamil * @endinternal 208f4c4dcf4SKowalski, Kamil */ 209d9f466b3SEd Tanous nlohmann::json resourceMissingAtURI(boost::urls::url_view arg1) 2101abe55efSEd Tanous { 211079360aeSEd Tanous std::array<std::string_view, 1> args{arg1.buffer()}; 212fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::resourceMissingAtURI, args); 213b5c07418SJames Feist } 214b5c07418SJames Feist 215d9f466b3SEd Tanous void resourceMissingAtURI(crow::Response& res, boost::urls::url_view arg1) 216b5c07418SJames Feist { 217b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 218b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, resourceMissingAtURI(arg1)); 219f4c4dcf4SKowalski, Kamil } 220f4c4dcf4SKowalski, Kamil 221f4c4dcf4SKowalski, Kamil /** 222f4c4dcf4SKowalski, Kamil * @internal 223f4c4dcf4SKowalski, Kamil * @brief Formats ActionParameterValueFormatError message into JSON 224f4c4dcf4SKowalski, Kamil * 225f4c4dcf4SKowalski, Kamil * See header file for more information 226f4c4dcf4SKowalski, Kamil * @endinternal 227f4c4dcf4SKowalski, Kamil */ 22895b3ad73SEd Tanous nlohmann::json actionParameterValueFormatError(const nlohmann::json& arg1, 2291668ce6dSEd Tanous std::string_view arg2, 2301668ce6dSEd Tanous std::string_view arg3) 2311abe55efSEd Tanous { 23295b3ad73SEd Tanous std::string arg1Str = arg1.dump(2, ' ', true, 23395b3ad73SEd Tanous nlohmann::json::error_handler_t::replace); 234fffb8c1fSEd Tanous return getLog( 235fffb8c1fSEd Tanous redfish::registries::base::Index::actionParameterValueFormatError, 23695b3ad73SEd Tanous std::to_array<std::string_view>({arg1Str, arg2, arg3})); 237b5c07418SJames Feist } 238b5c07418SJames Feist 23995b3ad73SEd Tanous void actionParameterValueFormatError(crow::Response& res, 24095b3ad73SEd Tanous const nlohmann::json& arg1, 2411668ce6dSEd Tanous std::string_view arg2, 2421668ce6dSEd Tanous std::string_view arg3) 243b5c07418SJames Feist { 244b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 245b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, 246b5c07418SJames Feist actionParameterValueFormatError(arg1, arg2, arg3)); 247f4c4dcf4SKowalski, Kamil } 248f4c4dcf4SKowalski, Kamil 249f4c4dcf4SKowalski, Kamil /** 250f4c4dcf4SKowalski, Kamil * @internal 2514ef82a15SAlex Schendel * @brief Formats ActionParameterValueNotInList message into JSON 2524ef82a15SAlex Schendel * 2534ef82a15SAlex Schendel * See header file for more information 2544ef82a15SAlex Schendel * @endinternal 2554ef82a15SAlex Schendel */ 2564ef82a15SAlex Schendel nlohmann::json actionParameterValueNotInList(std::string_view arg1, 2574ef82a15SAlex Schendel std::string_view arg2, 2584ef82a15SAlex Schendel std::string_view arg3) 2594ef82a15SAlex Schendel { 2604ef82a15SAlex Schendel return getLog( 2614ef82a15SAlex Schendel redfish::registries::base::Index::actionParameterValueNotInList, 2624ef82a15SAlex Schendel std::to_array({arg1, arg2, arg3})); 2634ef82a15SAlex Schendel } 2644ef82a15SAlex Schendel 2654ef82a15SAlex Schendel void actionParameterValueNotInList(crow::Response& res, std::string_view arg1, 2664ef82a15SAlex Schendel std::string_view arg2, std::string_view arg3) 2674ef82a15SAlex Schendel { 2684ef82a15SAlex Schendel res.result(boost::beast::http::status::bad_request); 2694ef82a15SAlex Schendel addMessageToErrorJson(res.jsonValue, 2704ef82a15SAlex Schendel actionParameterValueNotInList(arg1, arg2, arg3)); 2714ef82a15SAlex Schendel } 2724ef82a15SAlex Schendel 2734ef82a15SAlex Schendel /** 2744ef82a15SAlex Schendel * @internal 275f4c4dcf4SKowalski, Kamil * @brief Formats InternalError message into JSON 276f4c4dcf4SKowalski, Kamil * 277f4c4dcf4SKowalski, Kamil * See header file for more information 278f4c4dcf4SKowalski, Kamil * @endinternal 279f4c4dcf4SKowalski, Kamil */ 280d9fcfcc1SEd Tanous nlohmann::json internalError() 2811abe55efSEd Tanous { 282fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::internalError, {}); 283b5c07418SJames Feist } 284b5c07418SJames Feist 285d85418e3SPatrick Williams void internalError(crow::Response& res, const std::source_location location) 286b5c07418SJames Feist { 28762598e31SEd Tanous BMCWEB_LOG_CRITICAL("Internal Error {}({}:{}) `{}`: ", location.file_name(), 28862598e31SEd Tanous location.line(), location.column(), 28962598e31SEd Tanous location.function_name()); 290b5c07418SJames Feist res.result(boost::beast::http::status::internal_server_error); 291b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, internalError()); 292f12894f8SJason M. Bills } 293f12894f8SJason M. Bills 294f12894f8SJason M. Bills /** 295f12894f8SJason M. Bills * @internal 296f4c4dcf4SKowalski, Kamil * @brief Formats UnrecognizedRequestBody message into JSON 297f4c4dcf4SKowalski, Kamil * 298f4c4dcf4SKowalski, Kamil * See header file for more information 299f4c4dcf4SKowalski, Kamil * @endinternal 300f4c4dcf4SKowalski, Kamil */ 301d9fcfcc1SEd Tanous nlohmann::json unrecognizedRequestBody() 3021abe55efSEd Tanous { 303fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::unrecognizedRequestBody, 304fffb8c1fSEd Tanous {}); 305b5c07418SJames Feist } 306b5c07418SJames Feist 307b5c07418SJames Feist void unrecognizedRequestBody(crow::Response& res) 308b5c07418SJames Feist { 309b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 310b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, unrecognizedRequestBody()); 311f4c4dcf4SKowalski, Kamil } 312f4c4dcf4SKowalski, Kamil 313f4c4dcf4SKowalski, Kamil /** 314f4c4dcf4SKowalski, Kamil * @internal 315f4c4dcf4SKowalski, Kamil * @brief Formats ResourceAtUriUnauthorized message into JSON 316f4c4dcf4SKowalski, Kamil * 317f4c4dcf4SKowalski, Kamil * See header file for more information 318f4c4dcf4SKowalski, Kamil * @endinternal 319f4c4dcf4SKowalski, Kamil */ 320d9f466b3SEd Tanous nlohmann::json resourceAtUriUnauthorized(boost::urls::url_view arg1, 3211668ce6dSEd Tanous std::string_view arg2) 3221abe55efSEd Tanous { 323079360aeSEd Tanous return getLog(redfish::registries::base::Index::resourceAtUriUnauthorized, 324079360aeSEd Tanous std::to_array<std::string_view>({arg1.buffer(), arg2})); 325b5c07418SJames Feist } 326b5c07418SJames Feist 327d9f466b3SEd Tanous void resourceAtUriUnauthorized(crow::Response& res, boost::urls::url_view arg1, 3281668ce6dSEd Tanous std::string_view arg2) 329b5c07418SJames Feist { 330b5c07418SJames Feist res.result(boost::beast::http::status::unauthorized); 331b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, resourceAtUriUnauthorized(arg1, arg2)); 332f4c4dcf4SKowalski, Kamil } 333f4c4dcf4SKowalski, Kamil 334f4c4dcf4SKowalski, Kamil /** 335f4c4dcf4SKowalski, Kamil * @internal 336f4c4dcf4SKowalski, Kamil * @brief Formats ActionParameterUnknown message into JSON 337f4c4dcf4SKowalski, Kamil * 338f4c4dcf4SKowalski, Kamil * See header file for more information 339f4c4dcf4SKowalski, Kamil * @endinternal 340f4c4dcf4SKowalski, Kamil */ 3411668ce6dSEd Tanous nlohmann::json actionParameterUnknown(std::string_view arg1, 3421668ce6dSEd Tanous std::string_view arg2) 343b5c07418SJames Feist { 344fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::actionParameterUnknown, 3451668ce6dSEd Tanous std::to_array({arg1, arg2})); 346b5c07418SJames Feist } 347b5c07418SJames Feist 3481668ce6dSEd Tanous void actionParameterUnknown(crow::Response& res, std::string_view arg1, 3491668ce6dSEd Tanous std::string_view arg2) 3501abe55efSEd Tanous { 351f12894f8SJason M. Bills res.result(boost::beast::http::status::bad_request); 352b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, actionParameterUnknown(arg1, arg2)); 353f4c4dcf4SKowalski, Kamil } 354f4c4dcf4SKowalski, Kamil 355f4c4dcf4SKowalski, Kamil /** 356f4c4dcf4SKowalski, Kamil * @internal 357f4c4dcf4SKowalski, Kamil * @brief Formats ResourceCannotBeDeleted message into JSON 358f4c4dcf4SKowalski, Kamil * 359f4c4dcf4SKowalski, Kamil * See header file for more information 360f4c4dcf4SKowalski, Kamil * @endinternal 361f4c4dcf4SKowalski, Kamil */ 362d9fcfcc1SEd Tanous nlohmann::json resourceCannotBeDeleted() 3631abe55efSEd Tanous { 364fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::resourceCannotBeDeleted, 365fffb8c1fSEd Tanous {}); 366b5c07418SJames Feist } 367b5c07418SJames Feist 368b5c07418SJames Feist void resourceCannotBeDeleted(crow::Response& res) 369b5c07418SJames Feist { 37044c70412SEd Tanous res.result(boost::beast::http::status::method_not_allowed); 371b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, resourceCannotBeDeleted()); 372f4c4dcf4SKowalski, Kamil } 373f4c4dcf4SKowalski, Kamil 374f4c4dcf4SKowalski, Kamil /** 375f4c4dcf4SKowalski, Kamil * @internal 376f4c4dcf4SKowalski, Kamil * @brief Formats PropertyDuplicate message into JSON 377f4c4dcf4SKowalski, Kamil * 378f4c4dcf4SKowalski, Kamil * See header file for more information 379f4c4dcf4SKowalski, Kamil * @endinternal 380f4c4dcf4SKowalski, Kamil */ 3811668ce6dSEd Tanous nlohmann::json propertyDuplicate(std::string_view arg1) 3821abe55efSEd Tanous { 383fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::propertyDuplicate, 3841668ce6dSEd Tanous std::to_array({arg1})); 385b5c07418SJames Feist } 386b5c07418SJames Feist 3871668ce6dSEd Tanous void propertyDuplicate(crow::Response& res, std::string_view arg1) 388b5c07418SJames Feist { 389b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 390b5c07418SJames Feist addMessageToJson(res.jsonValue, propertyDuplicate(arg1), arg1); 391f4c4dcf4SKowalski, Kamil } 392f4c4dcf4SKowalski, Kamil 393f4c4dcf4SKowalski, Kamil /** 394f4c4dcf4SKowalski, Kamil * @internal 395f4c4dcf4SKowalski, Kamil * @brief Formats ServiceTemporarilyUnavailable message into JSON 396f4c4dcf4SKowalski, Kamil * 397f4c4dcf4SKowalski, Kamil * See header file for more information 398f4c4dcf4SKowalski, Kamil * @endinternal 399f4c4dcf4SKowalski, Kamil */ 4001668ce6dSEd Tanous nlohmann::json serviceTemporarilyUnavailable(std::string_view arg1) 4011abe55efSEd Tanous { 402b6cd31e1SEd Tanous return getLog( 403fffb8c1fSEd Tanous redfish::registries::base::Index::serviceTemporarilyUnavailable, 4041668ce6dSEd Tanous std::to_array({arg1})); 405b5c07418SJames Feist } 406b5c07418SJames Feist 4071668ce6dSEd Tanous void serviceTemporarilyUnavailable(crow::Response& res, std::string_view arg1) 408b5c07418SJames Feist { 409d9f6c621SEd Tanous res.addHeader(boost::beast::http::field::retry_after, arg1); 410b5c07418SJames Feist res.result(boost::beast::http::status::service_unavailable); 411b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, serviceTemporarilyUnavailable(arg1)); 412f4c4dcf4SKowalski, Kamil } 413f4c4dcf4SKowalski, Kamil 414f4c4dcf4SKowalski, Kamil /** 415f4c4dcf4SKowalski, Kamil * @internal 416f4c4dcf4SKowalski, Kamil * @brief Formats ResourceAlreadyExists message into JSON 417f4c4dcf4SKowalski, Kamil * 418f4c4dcf4SKowalski, Kamil * See header file for more information 419f4c4dcf4SKowalski, Kamil * @endinternal 420f4c4dcf4SKowalski, Kamil */ 4211668ce6dSEd Tanous nlohmann::json resourceAlreadyExists(std::string_view arg1, 4221668ce6dSEd Tanous std::string_view arg2, 4231668ce6dSEd Tanous std::string_view arg3) 4241abe55efSEd Tanous { 425fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::resourceAlreadyExists, 4261668ce6dSEd Tanous std::to_array({arg1, arg2, arg3})); 427b5c07418SJames Feist } 428b5c07418SJames Feist 4291668ce6dSEd Tanous void resourceAlreadyExists(crow::Response& res, std::string_view arg1, 4301668ce6dSEd Tanous std::string_view arg2, std::string_view arg3) 431b5c07418SJames Feist { 432b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 433b5c07418SJames Feist addMessageToJson(res.jsonValue, resourceAlreadyExists(arg1, arg2, arg3), 434a08b46ccSJason M. Bills arg2); 435f4c4dcf4SKowalski, Kamil } 436f4c4dcf4SKowalski, Kamil 437f4c4dcf4SKowalski, Kamil /** 438f4c4dcf4SKowalski, Kamil * @internal 439f4c4dcf4SKowalski, Kamil * @brief Formats AccountForSessionNoLongerExists message into JSON 440f4c4dcf4SKowalski, Kamil * 441f4c4dcf4SKowalski, Kamil * See header file for more information 442f4c4dcf4SKowalski, Kamil * @endinternal 443f4c4dcf4SKowalski, Kamil */ 444d9fcfcc1SEd Tanous nlohmann::json accountForSessionNoLongerExists() 4451abe55efSEd Tanous { 446fffb8c1fSEd Tanous return getLog( 447fffb8c1fSEd Tanous redfish::registries::base::Index::accountForSessionNoLongerExists, {}); 448b5c07418SJames Feist } 449b5c07418SJames Feist 450b5c07418SJames Feist void accountForSessionNoLongerExists(crow::Response& res) 451b5c07418SJames Feist { 452b5c07418SJames Feist res.result(boost::beast::http::status::forbidden); 453b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, accountForSessionNoLongerExists()); 454f4c4dcf4SKowalski, Kamil } 455f4c4dcf4SKowalski, Kamil 456f4c4dcf4SKowalski, Kamil /** 457f4c4dcf4SKowalski, Kamil * @internal 458f4c4dcf4SKowalski, Kamil * @brief Formats CreateFailedMissingReqProperties message into JSON 459f4c4dcf4SKowalski, Kamil * 460f4c4dcf4SKowalski, Kamil * See header file for more information 461f4c4dcf4SKowalski, Kamil * @endinternal 462f4c4dcf4SKowalski, Kamil */ 4631668ce6dSEd Tanous nlohmann::json createFailedMissingReqProperties(std::string_view arg1) 4641abe55efSEd Tanous { 465fffb8c1fSEd Tanous return getLog( 466fffb8c1fSEd Tanous redfish::registries::base::Index::createFailedMissingReqProperties, 4671668ce6dSEd Tanous std::to_array({arg1})); 468b5c07418SJames Feist } 469b5c07418SJames Feist 470b5c07418SJames Feist void createFailedMissingReqProperties(crow::Response& res, 4711668ce6dSEd Tanous std::string_view arg1) 472b5c07418SJames Feist { 473b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 474b5c07418SJames Feist addMessageToJson(res.jsonValue, createFailedMissingReqProperties(arg1), 475a08b46ccSJason M. Bills arg1); 476f12894f8SJason M. Bills } 477f12894f8SJason M. Bills 478f12894f8SJason M. Bills /** 479f12894f8SJason M. Bills * @internal 480f12894f8SJason M. Bills * @brief Formats PropertyValueFormatError message into JSON for the specified 481f12894f8SJason M. Bills * property 482f12894f8SJason M. Bills * 483f12894f8SJason M. Bills * See header file for more information 484f12894f8SJason M. Bills * @endinternal 485f12894f8SJason M. Bills */ 486f818b04dSEd Tanous nlohmann::json propertyValueFormatError(const nlohmann::json& arg1, 4871668ce6dSEd Tanous std::string_view arg2) 488f12894f8SJason M. Bills { 489f818b04dSEd Tanous std::string arg1Str = arg1.dump(2, ' ', true, 490f818b04dSEd Tanous nlohmann::json::error_handler_t::replace); 491fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::propertyValueFormatError, 492f818b04dSEd Tanous std::to_array<std::string_view>({arg1Str, arg2})); 493b5c07418SJames Feist } 494b5c07418SJames Feist 495f818b04dSEd Tanous void propertyValueFormatError(crow::Response& res, const nlohmann::json& arg1, 4961668ce6dSEd Tanous std::string_view arg2) 497b5c07418SJames Feist { 498b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 499b5c07418SJames Feist addMessageToJson(res.jsonValue, propertyValueFormatError(arg1, arg2), arg2); 500f12894f8SJason M. Bills } 501f12894f8SJason M. Bills 502f12894f8SJason M. Bills /** 503f12894f8SJason M. Bills * @internal 504f12894f8SJason M. Bills * @brief Formats PropertyValueNotInList message into JSON for the specified 505f12894f8SJason M. Bills * property 506f12894f8SJason M. Bills * 507f12894f8SJason M. Bills * See header file for more information 508f12894f8SJason M. Bills * @endinternal 509f12894f8SJason M. Bills */ 510e2616cc5SEd Tanous 511e2616cc5SEd Tanous nlohmann::json propertyValueNotInList(const nlohmann::json& arg1, 5121668ce6dSEd Tanous std::string_view arg2) 513f12894f8SJason M. Bills { 514e2616cc5SEd Tanous std::string arg1Str = arg1.dump(-1, ' ', true, 515e2616cc5SEd Tanous nlohmann::json::error_handler_t::replace); 516fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::propertyValueNotInList, 517e2616cc5SEd Tanous std::to_array<std::string_view>({arg1Str, arg2})); 518b5c07418SJames Feist } 519b5c07418SJames Feist 520e2616cc5SEd Tanous void propertyValueNotInList(crow::Response& res, const nlohmann::json& arg1, 5211668ce6dSEd Tanous std::string_view arg2) 522b5c07418SJames Feist { 523b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 524b5c07418SJames Feist addMessageToJson(res.jsonValue, propertyValueNotInList(arg1, arg2), arg2); 525f4c4dcf4SKowalski, Kamil } 526f4c4dcf4SKowalski, Kamil 527f4c4dcf4SKowalski, Kamil /** 528f4c4dcf4SKowalski, Kamil * @internal 529227a2b0aSJiaqing Zhao * @brief Formats PropertyValueOutOfRange message into JSON 530227a2b0aSJiaqing Zhao * 531227a2b0aSJiaqing Zhao * See header file for more information 532227a2b0aSJiaqing Zhao * @endinternal 533227a2b0aSJiaqing Zhao */ 53495b3ad73SEd Tanous nlohmann::json propertyValueOutOfRange(const nlohmann::json& arg1, 535227a2b0aSJiaqing Zhao std::string_view arg2) 536227a2b0aSJiaqing Zhao { 53795b3ad73SEd Tanous std::string arg1Str = arg1.dump(2, ' ', true, 53895b3ad73SEd Tanous nlohmann::json::error_handler_t::replace); 539227a2b0aSJiaqing Zhao return getLog(redfish::registries::base::Index::propertyValueOutOfRange, 54095b3ad73SEd Tanous std::to_array<std::string_view>({arg1Str, arg2})); 541227a2b0aSJiaqing Zhao } 542227a2b0aSJiaqing Zhao 54395b3ad73SEd Tanous void propertyValueOutOfRange(crow::Response& res, const nlohmann::json& arg1, 544227a2b0aSJiaqing Zhao std::string_view arg2) 545227a2b0aSJiaqing Zhao { 546227a2b0aSJiaqing Zhao res.result(boost::beast::http::status::bad_request); 547227a2b0aSJiaqing Zhao addMessageToErrorJson(res.jsonValue, propertyValueOutOfRange(arg1, arg2)); 548227a2b0aSJiaqing Zhao } 549227a2b0aSJiaqing Zhao 550227a2b0aSJiaqing Zhao /** 551227a2b0aSJiaqing Zhao * @internal 552f4c4dcf4SKowalski, Kamil * @brief Formats ResourceAtUriInUnknownFormat message into JSON 553f4c4dcf4SKowalski, Kamil * 554f4c4dcf4SKowalski, Kamil * See header file for more information 555f4c4dcf4SKowalski, Kamil * @endinternal 556f4c4dcf4SKowalski, Kamil */ 557d9f466b3SEd Tanous nlohmann::json resourceAtUriInUnknownFormat(boost::urls::url_view arg1) 5581abe55efSEd Tanous { 559b6cd31e1SEd Tanous return getLog( 560fffb8c1fSEd Tanous redfish::registries::base::Index::resourceAtUriInUnknownFormat, 561079360aeSEd Tanous std::to_array<std::string_view>({arg1.buffer()})); 562b5c07418SJames Feist } 563b5c07418SJames Feist 564ace85d60SEd Tanous void resourceAtUriInUnknownFormat(crow::Response& res, 565d9f466b3SEd Tanous boost::urls::url_view arg1) 566b5c07418SJames Feist { 567b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 568b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, resourceAtUriInUnknownFormat(arg1)); 569f4c4dcf4SKowalski, Kamil } 570f4c4dcf4SKowalski, Kamil 571f4c4dcf4SKowalski, Kamil /** 572f4c4dcf4SKowalski, Kamil * @internal 57381856681SAsmitha Karunanithi * @brief Formats ServiceDisabled message into JSON 57481856681SAsmitha Karunanithi * 57581856681SAsmitha Karunanithi * See header file for more information 57681856681SAsmitha Karunanithi * @endinternal 57781856681SAsmitha Karunanithi */ 5781668ce6dSEd Tanous nlohmann::json serviceDisabled(std::string_view arg1) 57981856681SAsmitha Karunanithi { 580fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::serviceDisabled, 5811668ce6dSEd Tanous std::to_array({arg1})); 58281856681SAsmitha Karunanithi } 58381856681SAsmitha Karunanithi 5841668ce6dSEd Tanous void serviceDisabled(crow::Response& res, std::string_view arg1) 58581856681SAsmitha Karunanithi { 58681856681SAsmitha Karunanithi res.result(boost::beast::http::status::service_unavailable); 58781856681SAsmitha Karunanithi addMessageToErrorJson(res.jsonValue, serviceDisabled(arg1)); 58881856681SAsmitha Karunanithi } 58981856681SAsmitha Karunanithi 59081856681SAsmitha Karunanithi /** 59181856681SAsmitha Karunanithi * @internal 592f4c4dcf4SKowalski, Kamil * @brief Formats ServiceInUnknownState message into JSON 593f4c4dcf4SKowalski, Kamil * 594f4c4dcf4SKowalski, Kamil * See header file for more information 595f4c4dcf4SKowalski, Kamil * @endinternal 596f4c4dcf4SKowalski, Kamil */ 597d9fcfcc1SEd Tanous nlohmann::json serviceInUnknownState() 5981abe55efSEd Tanous { 599fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::serviceInUnknownState, {}); 600b5c07418SJames Feist } 601b5c07418SJames Feist 602b5c07418SJames Feist void serviceInUnknownState(crow::Response& res) 603b5c07418SJames Feist { 604b5c07418SJames Feist res.result(boost::beast::http::status::service_unavailable); 605b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, serviceInUnknownState()); 606f4c4dcf4SKowalski, Kamil } 607f4c4dcf4SKowalski, Kamil 608f4c4dcf4SKowalski, Kamil /** 609f4c4dcf4SKowalski, Kamil * @internal 610f4c4dcf4SKowalski, Kamil * @brief Formats EventSubscriptionLimitExceeded message into JSON 611f4c4dcf4SKowalski, Kamil * 612f4c4dcf4SKowalski, Kamil * See header file for more information 613f4c4dcf4SKowalski, Kamil * @endinternal 614f4c4dcf4SKowalski, Kamil */ 615d9fcfcc1SEd Tanous nlohmann::json eventSubscriptionLimitExceeded() 6161abe55efSEd Tanous { 617fffb8c1fSEd Tanous return getLog( 618fffb8c1fSEd Tanous redfish::registries::base::Index::eventSubscriptionLimitExceeded, {}); 619b5c07418SJames Feist } 620b5c07418SJames Feist 621b5c07418SJames Feist void eventSubscriptionLimitExceeded(crow::Response& res) 622b5c07418SJames Feist { 623789fdab3SEd Tanous res.result(boost::beast::http::status::service_unavailable); 624b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, eventSubscriptionLimitExceeded()); 625f4c4dcf4SKowalski, Kamil } 626f4c4dcf4SKowalski, Kamil 627f4c4dcf4SKowalski, Kamil /** 628f4c4dcf4SKowalski, Kamil * @internal 629f4c4dcf4SKowalski, Kamil * @brief Formats ActionParameterMissing message into JSON 630f4c4dcf4SKowalski, Kamil * 631f4c4dcf4SKowalski, Kamil * See header file for more information 632f4c4dcf4SKowalski, Kamil * @endinternal 633f4c4dcf4SKowalski, Kamil */ 6341668ce6dSEd Tanous nlohmann::json actionParameterMissing(std::string_view arg1, 6351668ce6dSEd Tanous std::string_view arg2) 6361abe55efSEd Tanous { 637fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::actionParameterMissing, 6381668ce6dSEd Tanous std::to_array({arg1, arg2})); 639b5c07418SJames Feist } 640b5c07418SJames Feist 6411668ce6dSEd Tanous void actionParameterMissing(crow::Response& res, std::string_view arg1, 6421668ce6dSEd Tanous std::string_view arg2) 643b5c07418SJames Feist { 644b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 645b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, actionParameterMissing(arg1, arg2)); 646f4c4dcf4SKowalski, Kamil } 647f4c4dcf4SKowalski, Kamil 648f4c4dcf4SKowalski, Kamil /** 649f4c4dcf4SKowalski, Kamil * @internal 650f4c4dcf4SKowalski, Kamil * @brief Formats StringValueTooLong message into JSON 651f4c4dcf4SKowalski, Kamil * 652f4c4dcf4SKowalski, Kamil * See header file for more information 653f4c4dcf4SKowalski, Kamil * @endinternal 654f4c4dcf4SKowalski, Kamil */ 6551668ce6dSEd Tanous nlohmann::json stringValueTooLong(std::string_view arg1, int arg2) 6561abe55efSEd Tanous { 657b6cd31e1SEd Tanous std::string arg2String = std::to_string(arg2); 658fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::stringValueTooLong, 6591668ce6dSEd Tanous std::to_array({arg1, std::string_view(arg2String)})); 660b5c07418SJames Feist } 661b5c07418SJames Feist 6621668ce6dSEd Tanous void stringValueTooLong(crow::Response& res, std::string_view arg1, int arg2) 663b5c07418SJames Feist { 664b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 665b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, stringValueTooLong(arg1, arg2)); 666f4c4dcf4SKowalski, Kamil } 667f4c4dcf4SKowalski, Kamil 668f4c4dcf4SKowalski, Kamil /** 669f4c4dcf4SKowalski, Kamil * @internal 670cc9139ecSJason M. Bills * @brief Formats SessionTerminated message into JSON 671cc9139ecSJason M. Bills * 672cc9139ecSJason M. Bills * See header file for more information 673cc9139ecSJason M. Bills * @endinternal 674cc9139ecSJason M. Bills */ 675d9fcfcc1SEd Tanous nlohmann::json sessionTerminated() 676cc9139ecSJason M. Bills { 677fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::sessionTerminated, {}); 678b5c07418SJames Feist } 679b5c07418SJames Feist 680b5c07418SJames Feist void sessionTerminated(crow::Response& res) 681b5c07418SJames Feist { 682b5c07418SJames Feist res.result(boost::beast::http::status::ok); 683b5c07418SJames Feist addMessageToJsonRoot(res.jsonValue, sessionTerminated()); 684cc9139ecSJason M. Bills } 685cc9139ecSJason M. Bills 686cc9139ecSJason M. Bills /** 687cc9139ecSJason M. Bills * @internal 688684bb4b8SJason M. Bills * @brief Formats SubscriptionTerminated message into JSON 689684bb4b8SJason M. Bills * 690684bb4b8SJason M. Bills * See header file for more information 691684bb4b8SJason M. Bills * @endinternal 692684bb4b8SJason M. Bills */ 693d9fcfcc1SEd Tanous nlohmann::json subscriptionTerminated() 694684bb4b8SJason M. Bills { 695fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::subscriptionTerminated, {}); 696684bb4b8SJason M. Bills } 697684bb4b8SJason M. Bills 698684bb4b8SJason M. Bills void subscriptionTerminated(crow::Response& res) 699684bb4b8SJason M. Bills { 700684bb4b8SJason M. Bills res.result(boost::beast::http::status::ok); 701684bb4b8SJason M. Bills addMessageToJsonRoot(res.jsonValue, subscriptionTerminated()); 702684bb4b8SJason M. Bills } 703684bb4b8SJason M. Bills 704684bb4b8SJason M. Bills /** 705684bb4b8SJason M. Bills * @internal 706cc9139ecSJason M. Bills * @brief Formats ResourceTypeIncompatible message into JSON 707cc9139ecSJason M. Bills * 708cc9139ecSJason M. Bills * See header file for more information 709cc9139ecSJason M. Bills * @endinternal 710cc9139ecSJason M. Bills */ 7111668ce6dSEd Tanous nlohmann::json resourceTypeIncompatible(std::string_view arg1, 7121668ce6dSEd Tanous std::string_view arg2) 713cc9139ecSJason M. Bills { 714fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::resourceTypeIncompatible, 7151668ce6dSEd Tanous std::to_array({arg1, arg2})); 716b5c07418SJames Feist } 717b5c07418SJames Feist 7181668ce6dSEd Tanous void resourceTypeIncompatible(crow::Response& res, std::string_view arg1, 7191668ce6dSEd Tanous std::string_view arg2) 720b5c07418SJames Feist { 721b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 722b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, resourceTypeIncompatible(arg1, arg2)); 723cc9139ecSJason M. Bills } 724cc9139ecSJason M. Bills 725cc9139ecSJason M. Bills /** 726cc9139ecSJason M. Bills * @internal 727684bb4b8SJason M. Bills * @brief Formats ResetRequired message into JSON 728684bb4b8SJason M. Bills * 729684bb4b8SJason M. Bills * See header file for more information 730684bb4b8SJason M. Bills * @endinternal 731684bb4b8SJason M. Bills */ 732d9f466b3SEd Tanous nlohmann::json resetRequired(boost::urls::url_view arg1, std::string_view arg2) 733684bb4b8SJason M. Bills { 734fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::resetRequired, 735079360aeSEd Tanous std::to_array<std::string_view>({arg1.buffer(), arg2})); 736684bb4b8SJason M. Bills } 737684bb4b8SJason M. Bills 738d9f466b3SEd Tanous void resetRequired(crow::Response& res, boost::urls::url_view arg1, 7391668ce6dSEd Tanous std::string_view arg2) 740684bb4b8SJason M. Bills { 741684bb4b8SJason M. Bills res.result(boost::beast::http::status::bad_request); 742684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, resetRequired(arg1, arg2)); 743684bb4b8SJason M. Bills } 744684bb4b8SJason M. Bills 745684bb4b8SJason M. Bills /** 746684bb4b8SJason M. Bills * @internal 747684bb4b8SJason M. Bills * @brief Formats ChassisPowerStateOnRequired message into JSON 748684bb4b8SJason M. Bills * 749684bb4b8SJason M. Bills * See header file for more information 750684bb4b8SJason M. Bills * @endinternal 751684bb4b8SJason M. Bills */ 7521668ce6dSEd Tanous nlohmann::json chassisPowerStateOnRequired(std::string_view arg1) 753684bb4b8SJason M. Bills { 754fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::resetRequired, 7551668ce6dSEd Tanous std::to_array({arg1})); 756684bb4b8SJason M. Bills } 757684bb4b8SJason M. Bills 7581668ce6dSEd Tanous void chassisPowerStateOnRequired(crow::Response& res, std::string_view arg1) 759684bb4b8SJason M. Bills { 760684bb4b8SJason M. Bills res.result(boost::beast::http::status::bad_request); 761684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, chassisPowerStateOnRequired(arg1)); 762684bb4b8SJason M. Bills } 763684bb4b8SJason M. Bills 764684bb4b8SJason M. Bills /** 765684bb4b8SJason M. Bills * @internal 766684bb4b8SJason M. Bills * @brief Formats ChassisPowerStateOffRequired message into JSON 767684bb4b8SJason M. Bills * 768684bb4b8SJason M. Bills * See header file for more information 769684bb4b8SJason M. Bills * @endinternal 770684bb4b8SJason M. Bills */ 7711668ce6dSEd Tanous nlohmann::json chassisPowerStateOffRequired(std::string_view arg1) 772684bb4b8SJason M. Bills { 773b6cd31e1SEd Tanous return getLog( 774fffb8c1fSEd Tanous redfish::registries::base::Index::chassisPowerStateOffRequired, 7751668ce6dSEd Tanous std::to_array({arg1})); 776684bb4b8SJason M. Bills } 777684bb4b8SJason M. Bills 7781668ce6dSEd Tanous void chassisPowerStateOffRequired(crow::Response& res, std::string_view arg1) 779684bb4b8SJason M. Bills { 780684bb4b8SJason M. Bills res.result(boost::beast::http::status::bad_request); 781684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, chassisPowerStateOffRequired(arg1)); 782684bb4b8SJason M. Bills } 783684bb4b8SJason M. Bills 784684bb4b8SJason M. Bills /** 785684bb4b8SJason M. Bills * @internal 786684bb4b8SJason M. Bills * @brief Formats PropertyValueConflict message into JSON 787684bb4b8SJason M. Bills * 788684bb4b8SJason M. Bills * See header file for more information 789684bb4b8SJason M. Bills * @endinternal 790684bb4b8SJason M. Bills */ 7911668ce6dSEd Tanous nlohmann::json propertyValueConflict(std::string_view arg1, 7921668ce6dSEd Tanous std::string_view arg2) 793684bb4b8SJason M. Bills { 794fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::propertyValueConflict, 7951668ce6dSEd Tanous std::to_array({arg1, arg2})); 796684bb4b8SJason M. Bills } 797684bb4b8SJason M. Bills 7981668ce6dSEd Tanous void propertyValueConflict(crow::Response& res, std::string_view arg1, 7991668ce6dSEd Tanous std::string_view arg2) 800684bb4b8SJason M. Bills { 801684bb4b8SJason M. Bills res.result(boost::beast::http::status::bad_request); 802684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, propertyValueConflict(arg1, arg2)); 803684bb4b8SJason M. Bills } 804684bb4b8SJason M. Bills 805684bb4b8SJason M. Bills /** 806684bb4b8SJason M. Bills * @internal 8072a6af81cSRamesh Iyyar * @brief Formats PropertyValueResourceConflict message into JSON 8082a6af81cSRamesh Iyyar * 8092a6af81cSRamesh Iyyar * See header file for more information 8102a6af81cSRamesh Iyyar * @endinternal 8112a6af81cSRamesh Iyyar */ 8122a6af81cSRamesh Iyyar nlohmann::json propertyValueResourceConflict(std::string_view arg1, 81395b3ad73SEd Tanous const nlohmann::json& arg2, 814d9f466b3SEd Tanous boost::urls::url_view arg3) 8152a6af81cSRamesh Iyyar { 81695b3ad73SEd Tanous std::string arg2Str = arg2.dump(2, ' ', true, 81795b3ad73SEd Tanous nlohmann::json::error_handler_t::replace); 81895b3ad73SEd Tanous 8192a6af81cSRamesh Iyyar return getLog( 8202a6af81cSRamesh Iyyar redfish::registries::base::Index::propertyValueResourceConflict, 82195b3ad73SEd Tanous std::to_array<std::string_view>({arg1, arg2Str, arg3.buffer()})); 8222a6af81cSRamesh Iyyar } 8232a6af81cSRamesh Iyyar 8242a6af81cSRamesh Iyyar void propertyValueResourceConflict(crow::Response& res, std::string_view arg1, 82595b3ad73SEd Tanous const nlohmann::json& arg2, 826d9f466b3SEd Tanous boost::urls::url_view arg3) 8272a6af81cSRamesh Iyyar { 8282a6af81cSRamesh Iyyar res.result(boost::beast::http::status::conflict); 8292a6af81cSRamesh Iyyar addMessageToErrorJson(res.jsonValue, 8302a6af81cSRamesh Iyyar propertyValueResourceConflict(arg1, arg2, arg3)); 8312a6af81cSRamesh Iyyar } 8322a6af81cSRamesh Iyyar 8332a6af81cSRamesh Iyyar /** 8342a6af81cSRamesh Iyyar * @internal 83524861a28SRamesh Iyyar * @brief Formats PropertyValueExternalConflict message into JSON 83624861a28SRamesh Iyyar * 83724861a28SRamesh Iyyar * See header file for more information 83824861a28SRamesh Iyyar * @endinternal 83924861a28SRamesh Iyyar */ 84024861a28SRamesh Iyyar nlohmann::json propertyValueExternalConflict(std::string_view arg1, 84195b3ad73SEd Tanous const nlohmann::json& arg2) 84224861a28SRamesh Iyyar { 84395b3ad73SEd Tanous std::string arg2Str = arg2.dump(2, ' ', true, 84495b3ad73SEd Tanous nlohmann::json::error_handler_t::replace); 84595b3ad73SEd Tanous 84624861a28SRamesh Iyyar return getLog( 84724861a28SRamesh Iyyar redfish::registries::base::Index::propertyValueExternalConflict, 84895b3ad73SEd Tanous std::to_array<std::string_view>({arg1, arg2Str})); 84924861a28SRamesh Iyyar } 85024861a28SRamesh Iyyar 85124861a28SRamesh Iyyar void propertyValueExternalConflict(crow::Response& res, std::string_view arg1, 85295b3ad73SEd Tanous const nlohmann::json& arg2) 85324861a28SRamesh Iyyar { 85424861a28SRamesh Iyyar res.result(boost::beast::http::status::conflict); 85524861a28SRamesh Iyyar addMessageToErrorJson(res.jsonValue, 85624861a28SRamesh Iyyar propertyValueExternalConflict(arg1, arg2)); 85724861a28SRamesh Iyyar } 85824861a28SRamesh Iyyar 85924861a28SRamesh Iyyar /** 86024861a28SRamesh Iyyar * @internal 861684bb4b8SJason M. Bills * @brief Formats PropertyValueIncorrect message into JSON 862684bb4b8SJason M. Bills * 863684bb4b8SJason M. Bills * See header file for more information 864684bb4b8SJason M. Bills * @endinternal 865684bb4b8SJason M. Bills */ 866367b3dceSGinu George nlohmann::json propertyValueIncorrect(std::string_view arg1, 867367b3dceSGinu George const nlohmann::json& arg2) 868684bb4b8SJason M. Bills { 869367b3dceSGinu George std::string arg2Str = arg2.dump(2, ' ', true, 87014fbced6SEd Tanous nlohmann::json::error_handler_t::replace); 871fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::propertyValueIncorrect, 872367b3dceSGinu George std::to_array<std::string_view>({arg1, arg2Str})); 873684bb4b8SJason M. Bills } 874684bb4b8SJason M. Bills 875367b3dceSGinu George void propertyValueIncorrect(crow::Response& res, std::string_view arg1, 876367b3dceSGinu George const nlohmann::json& arg2) 877684bb4b8SJason M. Bills { 878684bb4b8SJason M. Bills res.result(boost::beast::http::status::bad_request); 879684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, propertyValueIncorrect(arg1, arg2)); 880684bb4b8SJason M. Bills } 881684bb4b8SJason M. Bills 882684bb4b8SJason M. Bills /** 883684bb4b8SJason M. Bills * @internal 884684bb4b8SJason M. Bills * @brief Formats ResourceCreationConflict message into JSON 885684bb4b8SJason M. Bills * 886684bb4b8SJason M. Bills * See header file for more information 887684bb4b8SJason M. Bills * @endinternal 888684bb4b8SJason M. Bills */ 889d9f466b3SEd Tanous nlohmann::json resourceCreationConflict(boost::urls::url_view arg1) 890684bb4b8SJason M. Bills { 891fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::resourceCreationConflict, 892079360aeSEd Tanous std::to_array<std::string_view>({arg1.buffer()})); 893684bb4b8SJason M. Bills } 894684bb4b8SJason M. Bills 895d9f466b3SEd Tanous void resourceCreationConflict(crow::Response& res, boost::urls::url_view arg1) 896684bb4b8SJason M. Bills { 897684bb4b8SJason M. Bills res.result(boost::beast::http::status::bad_request); 898684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, resourceCreationConflict(arg1)); 899684bb4b8SJason M. Bills } 900684bb4b8SJason M. Bills 901684bb4b8SJason M. Bills /** 902684bb4b8SJason M. Bills * @internal 903684bb4b8SJason M. Bills * @brief Formats MaximumErrorsExceeded message into JSON 904684bb4b8SJason M. Bills * 905684bb4b8SJason M. Bills * See header file for more information 906684bb4b8SJason M. Bills * @endinternal 907684bb4b8SJason M. Bills */ 908d9fcfcc1SEd Tanous nlohmann::json maximumErrorsExceeded() 909684bb4b8SJason M. Bills { 910fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::maximumErrorsExceeded, {}); 911684bb4b8SJason M. Bills } 912684bb4b8SJason M. Bills 913684bb4b8SJason M. Bills void maximumErrorsExceeded(crow::Response& res) 914684bb4b8SJason M. Bills { 915684bb4b8SJason M. Bills res.result(boost::beast::http::status::internal_server_error); 916684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, maximumErrorsExceeded()); 917684bb4b8SJason M. Bills } 918684bb4b8SJason M. Bills 919684bb4b8SJason M. Bills /** 920684bb4b8SJason M. Bills * @internal 921684bb4b8SJason M. Bills * @brief Formats PreconditionFailed message into JSON 922684bb4b8SJason M. Bills * 923684bb4b8SJason M. Bills * See header file for more information 924684bb4b8SJason M. Bills * @endinternal 925684bb4b8SJason M. Bills */ 926d9fcfcc1SEd Tanous nlohmann::json preconditionFailed() 927684bb4b8SJason M. Bills { 928fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::preconditionFailed, {}); 929684bb4b8SJason M. Bills } 930684bb4b8SJason M. Bills 931684bb4b8SJason M. Bills void preconditionFailed(crow::Response& res) 932684bb4b8SJason M. Bills { 9334df1bee0SEd Tanous res.result(boost::beast::http::status::precondition_failed); 934684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, preconditionFailed()); 935684bb4b8SJason M. Bills } 936684bb4b8SJason M. Bills 937684bb4b8SJason M. Bills /** 938684bb4b8SJason M. Bills * @internal 939684bb4b8SJason M. Bills * @brief Formats PreconditionRequired message into JSON 940684bb4b8SJason M. Bills * 941684bb4b8SJason M. Bills * See header file for more information 942684bb4b8SJason M. Bills * @endinternal 943684bb4b8SJason M. Bills */ 944d9fcfcc1SEd Tanous nlohmann::json preconditionRequired() 945684bb4b8SJason M. Bills { 946fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::preconditionRequired, {}); 947684bb4b8SJason M. Bills } 948684bb4b8SJason M. Bills 949684bb4b8SJason M. Bills void preconditionRequired(crow::Response& res) 950684bb4b8SJason M. Bills { 951684bb4b8SJason M. Bills res.result(boost::beast::http::status::bad_request); 952684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, preconditionRequired()); 953684bb4b8SJason M. Bills } 954684bb4b8SJason M. Bills 955684bb4b8SJason M. Bills /** 956684bb4b8SJason M. Bills * @internal 957684bb4b8SJason M. Bills * @brief Formats OperationFailed message into JSON 958684bb4b8SJason M. Bills * 959684bb4b8SJason M. Bills * See header file for more information 960684bb4b8SJason M. Bills * @endinternal 961684bb4b8SJason M. Bills */ 962d9fcfcc1SEd Tanous nlohmann::json operationFailed() 963684bb4b8SJason M. Bills { 964fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::operationFailed, {}); 965684bb4b8SJason M. Bills } 966684bb4b8SJason M. Bills 967684bb4b8SJason M. Bills void operationFailed(crow::Response& res) 968684bb4b8SJason M. Bills { 9698868776eSEd Tanous res.result(boost::beast::http::status::bad_gateway); 970684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, operationFailed()); 971684bb4b8SJason M. Bills } 972684bb4b8SJason M. Bills 973684bb4b8SJason M. Bills /** 974684bb4b8SJason M. Bills * @internal 975684bb4b8SJason M. Bills * @brief Formats OperationTimeout message into JSON 976684bb4b8SJason M. Bills * 977684bb4b8SJason M. Bills * See header file for more information 978684bb4b8SJason M. Bills * @endinternal 979684bb4b8SJason M. Bills */ 980d9fcfcc1SEd Tanous nlohmann::json operationTimeout() 981684bb4b8SJason M. Bills { 982fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::operationTimeout, {}); 983684bb4b8SJason M. Bills } 984684bb4b8SJason M. Bills 985684bb4b8SJason M. Bills void operationTimeout(crow::Response& res) 986684bb4b8SJason M. Bills { 987684bb4b8SJason M. Bills res.result(boost::beast::http::status::internal_server_error); 988684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, operationTimeout()); 989684bb4b8SJason M. Bills } 990684bb4b8SJason M. Bills 991684bb4b8SJason M. Bills /** 992684bb4b8SJason M. Bills * @internal 993f12894f8SJason M. Bills * @brief Formats PropertyValueTypeError message into JSON for the specified 994f12894f8SJason M. Bills * property 995f12894f8SJason M. Bills * 996f12894f8SJason M. Bills * See header file for more information 997f12894f8SJason M. Bills * @endinternal 998f12894f8SJason M. Bills */ 9992e8c4bdaSEd Tanous nlohmann::json propertyValueTypeError(const nlohmann::json& arg1, 10001668ce6dSEd Tanous std::string_view arg2) 1001f12894f8SJason M. Bills { 10022e8c4bdaSEd Tanous std::string arg1Str = arg1.dump(2, ' ', true, 10032e8c4bdaSEd Tanous nlohmann::json::error_handler_t::replace); 1004fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::propertyValueTypeError, 10052e8c4bdaSEd Tanous std::to_array<std::string_view>({arg1Str, arg2})); 1006b5c07418SJames Feist } 1007b5c07418SJames Feist 10082e8c4bdaSEd Tanous void propertyValueTypeError(crow::Response& res, const nlohmann::json& arg1, 10091668ce6dSEd Tanous std::string_view arg2) 1010b5c07418SJames Feist { 1011b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1012b5c07418SJames Feist addMessageToJson(res.jsonValue, propertyValueTypeError(arg1, arg2), arg2); 1013f4c4dcf4SKowalski, Kamil } 1014f4c4dcf4SKowalski, Kamil 1015f4c4dcf4SKowalski, Kamil /** 1016f4c4dcf4SKowalski, Kamil * @internal 1017b6cd31e1SEd Tanous * @brief Formats ResourceNotFound message into JSONd 1018f4c4dcf4SKowalski, Kamil * 1019f4c4dcf4SKowalski, Kamil * See header file for more information 1020f4c4dcf4SKowalski, Kamil * @endinternal 1021f4c4dcf4SKowalski, Kamil */ 10221668ce6dSEd Tanous nlohmann::json resourceNotFound(std::string_view arg1, std::string_view arg2) 10231abe55efSEd Tanous { 1024fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::resourceNotFound, 10251668ce6dSEd Tanous std::to_array({arg1, arg2})); 1026b5c07418SJames Feist } 1027b5c07418SJames Feist 10281668ce6dSEd Tanous void resourceNotFound(crow::Response& res, std::string_view arg1, 10291668ce6dSEd Tanous std::string_view arg2) 1030b5c07418SJames Feist { 1031b5c07418SJames Feist res.result(boost::beast::http::status::not_found); 1032b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, resourceNotFound(arg1, arg2)); 1033f4c4dcf4SKowalski, Kamil } 1034f4c4dcf4SKowalski, Kamil 1035f4c4dcf4SKowalski, Kamil /** 1036f4c4dcf4SKowalski, Kamil * @internal 1037f4c4dcf4SKowalski, Kamil * @brief Formats CouldNotEstablishConnection message into JSON 1038f4c4dcf4SKowalski, Kamil * 1039f4c4dcf4SKowalski, Kamil * See header file for more information 1040f4c4dcf4SKowalski, Kamil * @endinternal 1041f4c4dcf4SKowalski, Kamil */ 1042d9f466b3SEd Tanous nlohmann::json couldNotEstablishConnection(boost::urls::url_view arg1) 10431abe55efSEd Tanous { 1044fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::couldNotEstablishConnection, 1045079360aeSEd Tanous std::to_array<std::string_view>({arg1.buffer()})); 1046b5c07418SJames Feist } 1047b5c07418SJames Feist 1048ace85d60SEd Tanous void couldNotEstablishConnection(crow::Response& res, 1049d9f466b3SEd Tanous boost::urls::url_view arg1) 1050b5c07418SJames Feist { 1051b5c07418SJames Feist res.result(boost::beast::http::status::not_found); 1052b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, couldNotEstablishConnection(arg1)); 1053f4c4dcf4SKowalski, Kamil } 1054f4c4dcf4SKowalski, Kamil 1055f4c4dcf4SKowalski, Kamil /** 1056f4c4dcf4SKowalski, Kamil * @internal 1057f12894f8SJason M. Bills * @brief Formats PropertyNotWritable message into JSON for the specified 1058f12894f8SJason M. Bills * property 1059f12894f8SJason M. Bills * 1060f12894f8SJason M. Bills * See header file for more information 1061f12894f8SJason M. Bills * @endinternal 1062f12894f8SJason M. Bills */ 10631668ce6dSEd Tanous nlohmann::json propertyNotWritable(std::string_view arg1) 1064f12894f8SJason M. Bills { 1065fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::propertyNotWritable, 10661668ce6dSEd Tanous std::to_array({arg1})); 1067b5c07418SJames Feist } 1068b5c07418SJames Feist 10691668ce6dSEd Tanous void propertyNotWritable(crow::Response& res, std::string_view arg1) 1070b5c07418SJames Feist { 1071b5c07418SJames Feist res.result(boost::beast::http::status::forbidden); 1072b5c07418SJames Feist addMessageToJson(res.jsonValue, propertyNotWritable(arg1), arg1); 1073f4c4dcf4SKowalski, Kamil } 1074f4c4dcf4SKowalski, Kamil 1075f4c4dcf4SKowalski, Kamil /** 1076f4c4dcf4SKowalski, Kamil * @internal 1077f4c4dcf4SKowalski, Kamil * @brief Formats QueryParameterValueTypeError message into JSON 1078f4c4dcf4SKowalski, Kamil * 1079f4c4dcf4SKowalski, Kamil * See header file for more information 1080f4c4dcf4SKowalski, Kamil * @endinternal 1081f4c4dcf4SKowalski, Kamil */ 108295b3ad73SEd Tanous nlohmann::json queryParameterValueTypeError(const nlohmann::json& arg1, 10831668ce6dSEd Tanous std::string_view arg2) 10841abe55efSEd Tanous { 108595b3ad73SEd Tanous std::string arg1Str = arg1.dump(2, ' ', true, 108695b3ad73SEd Tanous nlohmann::json::error_handler_t::replace); 1087b6cd31e1SEd Tanous return getLog( 1088fffb8c1fSEd Tanous redfish::registries::base::Index::queryParameterValueTypeError, 108995b3ad73SEd Tanous std::to_array<std::string_view>({arg1Str, arg2})); 1090b5c07418SJames Feist } 1091b5c07418SJames Feist 109295b3ad73SEd Tanous void queryParameterValueTypeError(crow::Response& res, 109395b3ad73SEd Tanous const nlohmann::json& arg1, 10941668ce6dSEd Tanous std::string_view arg2) 1095b5c07418SJames Feist { 1096b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1097b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, 1098b5c07418SJames Feist queryParameterValueTypeError(arg1, arg2)); 1099f4c4dcf4SKowalski, Kamil } 1100f4c4dcf4SKowalski, Kamil 1101f4c4dcf4SKowalski, Kamil /** 1102f4c4dcf4SKowalski, Kamil * @internal 1103f4c4dcf4SKowalski, Kamil * @brief Formats ServiceShuttingDown message into JSON 1104f4c4dcf4SKowalski, Kamil * 1105f4c4dcf4SKowalski, Kamil * See header file for more information 1106f4c4dcf4SKowalski, Kamil * @endinternal 1107f4c4dcf4SKowalski, Kamil */ 1108d9fcfcc1SEd Tanous nlohmann::json serviceShuttingDown() 11091abe55efSEd Tanous { 1110fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::serviceShuttingDown, {}); 1111b5c07418SJames Feist } 1112b5c07418SJames Feist 1113b5c07418SJames Feist void serviceShuttingDown(crow::Response& res) 1114b5c07418SJames Feist { 1115b5c07418SJames Feist res.result(boost::beast::http::status::service_unavailable); 1116b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, serviceShuttingDown()); 1117f4c4dcf4SKowalski, Kamil } 1118f4c4dcf4SKowalski, Kamil 1119f4c4dcf4SKowalski, Kamil /** 1120f4c4dcf4SKowalski, Kamil * @internal 1121f4c4dcf4SKowalski, Kamil * @brief Formats ActionParameterDuplicate message into JSON 1122f4c4dcf4SKowalski, Kamil * 1123f4c4dcf4SKowalski, Kamil * See header file for more information 1124f4c4dcf4SKowalski, Kamil * @endinternal 1125f4c4dcf4SKowalski, Kamil */ 11261668ce6dSEd Tanous nlohmann::json actionParameterDuplicate(std::string_view arg1, 11271668ce6dSEd Tanous std::string_view arg2) 11281abe55efSEd Tanous { 1129fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::actionParameterDuplicate, 11301668ce6dSEd Tanous std::to_array({arg1, arg2})); 1131b5c07418SJames Feist } 1132b5c07418SJames Feist 11331668ce6dSEd Tanous void actionParameterDuplicate(crow::Response& res, std::string_view arg1, 11341668ce6dSEd Tanous std::string_view arg2) 1135b5c07418SJames Feist { 1136b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1137b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, actionParameterDuplicate(arg1, arg2)); 1138f4c4dcf4SKowalski, Kamil } 1139f4c4dcf4SKowalski, Kamil 1140f4c4dcf4SKowalski, Kamil /** 1141f4c4dcf4SKowalski, Kamil * @internal 1142f4c4dcf4SKowalski, Kamil * @brief Formats ActionParameterNotSupported message into JSON 1143f4c4dcf4SKowalski, Kamil * 1144f4c4dcf4SKowalski, Kamil * See header file for more information 1145f4c4dcf4SKowalski, Kamil * @endinternal 1146f4c4dcf4SKowalski, Kamil */ 11471668ce6dSEd Tanous nlohmann::json actionParameterNotSupported(std::string_view arg1, 11481668ce6dSEd Tanous std::string_view arg2) 11491abe55efSEd Tanous { 1150fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::actionParameterNotSupported, 11511668ce6dSEd Tanous std::to_array({arg1, arg2})); 1152b5c07418SJames Feist } 1153b5c07418SJames Feist 11541668ce6dSEd Tanous void actionParameterNotSupported(crow::Response& res, std::string_view arg1, 11551668ce6dSEd Tanous std::string_view arg2) 1156b5c07418SJames Feist { 1157b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1158b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, 1159b5c07418SJames Feist actionParameterNotSupported(arg1, arg2)); 1160f4c4dcf4SKowalski, Kamil } 1161f4c4dcf4SKowalski, Kamil 1162f4c4dcf4SKowalski, Kamil /** 1163f4c4dcf4SKowalski, Kamil * @internal 1164f4c4dcf4SKowalski, Kamil * @brief Formats SourceDoesNotSupportProtocol message into JSON 1165f4c4dcf4SKowalski, Kamil * 1166f4c4dcf4SKowalski, Kamil * See header file for more information 1167f4c4dcf4SKowalski, Kamil * @endinternal 1168f4c4dcf4SKowalski, Kamil */ 1169d9f466b3SEd Tanous nlohmann::json sourceDoesNotSupportProtocol(boost::urls::url_view arg1, 11701668ce6dSEd Tanous std::string_view arg2) 11711abe55efSEd Tanous { 1172b6cd31e1SEd Tanous return getLog( 1173fffb8c1fSEd Tanous redfish::registries::base::Index::sourceDoesNotSupportProtocol, 1174079360aeSEd Tanous std::to_array<std::string_view>({arg1.buffer(), arg2})); 1175b5c07418SJames Feist } 1176b5c07418SJames Feist 1177ace85d60SEd Tanous void sourceDoesNotSupportProtocol(crow::Response& res, 1178d9f466b3SEd Tanous boost::urls::url_view arg1, 11791668ce6dSEd Tanous std::string_view arg2) 1180b5c07418SJames Feist { 1181b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1182b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, 1183b5c07418SJames Feist sourceDoesNotSupportProtocol(arg1, arg2)); 1184f4c4dcf4SKowalski, Kamil } 1185f4c4dcf4SKowalski, Kamil 1186f4c4dcf4SKowalski, Kamil /** 1187f4c4dcf4SKowalski, Kamil * @internal 1188b4ad4c05SShantappa Teekappanavar * @brief Formats StrictAccountTypes message into JSON 1189b4ad4c05SShantappa Teekappanavar * 1190b4ad4c05SShantappa Teekappanavar * See header file for more information 1191b4ad4c05SShantappa Teekappanavar * @endinternal 1192b4ad4c05SShantappa Teekappanavar */ 1193b4ad4c05SShantappa Teekappanavar nlohmann::json strictAccountTypes(std::string_view arg1) 1194b4ad4c05SShantappa Teekappanavar { 1195b4ad4c05SShantappa Teekappanavar return getLog(redfish::registries::base::Index::strictAccountTypes, 1196b4ad4c05SShantappa Teekappanavar std::to_array({arg1})); 1197b4ad4c05SShantappa Teekappanavar } 1198b4ad4c05SShantappa Teekappanavar 1199b4ad4c05SShantappa Teekappanavar void strictAccountTypes(crow::Response& res, std::string_view arg1) 1200b4ad4c05SShantappa Teekappanavar { 1201b4ad4c05SShantappa Teekappanavar res.result(boost::beast::http::status::bad_request); 1202b4ad4c05SShantappa Teekappanavar addMessageToErrorJson(res.jsonValue, strictAccountTypes(arg1)); 1203b4ad4c05SShantappa Teekappanavar } 1204b4ad4c05SShantappa Teekappanavar 1205b4ad4c05SShantappa Teekappanavar /** 1206b4ad4c05SShantappa Teekappanavar * @internal 1207f4c4dcf4SKowalski, Kamil * @brief Formats AccountRemoved message into JSON 1208f4c4dcf4SKowalski, Kamil * 1209f4c4dcf4SKowalski, Kamil * See header file for more information 1210f4c4dcf4SKowalski, Kamil * @endinternal 1211f4c4dcf4SKowalski, Kamil */ 1212d9fcfcc1SEd Tanous nlohmann::json accountRemoved() 12131abe55efSEd Tanous { 1214fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::accountRemoved, {}); 1215b5c07418SJames Feist } 1216b5c07418SJames Feist 1217b5c07418SJames Feist void accountRemoved(crow::Response& res) 1218b5c07418SJames Feist { 1219b5c07418SJames Feist res.result(boost::beast::http::status::ok); 1220b5c07418SJames Feist addMessageToJsonRoot(res.jsonValue, accountRemoved()); 1221f4c4dcf4SKowalski, Kamil } 1222f4c4dcf4SKowalski, Kamil 1223f4c4dcf4SKowalski, Kamil /** 1224f4c4dcf4SKowalski, Kamil * @internal 1225f4c4dcf4SKowalski, Kamil * @brief Formats AccessDenied message into JSON 1226f4c4dcf4SKowalski, Kamil * 1227f4c4dcf4SKowalski, Kamil * See header file for more information 1228f4c4dcf4SKowalski, Kamil * @endinternal 1229f4c4dcf4SKowalski, Kamil */ 1230d9f466b3SEd Tanous nlohmann::json accessDenied(boost::urls::url_view arg1) 12311abe55efSEd Tanous { 1232fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::accessDenied, 1233079360aeSEd Tanous std::to_array<std::string_view>({arg1.buffer()})); 1234b5c07418SJames Feist } 1235b5c07418SJames Feist 1236d9f466b3SEd Tanous void accessDenied(crow::Response& res, boost::urls::url_view arg1) 1237b5c07418SJames Feist { 1238b5c07418SJames Feist res.result(boost::beast::http::status::forbidden); 1239b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, accessDenied(arg1)); 1240f4c4dcf4SKowalski, Kamil } 1241f4c4dcf4SKowalski, Kamil 1242f4c4dcf4SKowalski, Kamil /** 1243f4c4dcf4SKowalski, Kamil * @internal 1244f4c4dcf4SKowalski, Kamil * @brief Formats QueryNotSupported message into JSON 1245f4c4dcf4SKowalski, Kamil * 1246f4c4dcf4SKowalski, Kamil * See header file for more information 1247f4c4dcf4SKowalski, Kamil * @endinternal 1248f4c4dcf4SKowalski, Kamil */ 1249d9fcfcc1SEd Tanous nlohmann::json queryNotSupported() 12501abe55efSEd Tanous { 1251fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::queryNotSupported, {}); 1252b5c07418SJames Feist } 1253b5c07418SJames Feist 1254b5c07418SJames Feist void queryNotSupported(crow::Response& res) 1255b5c07418SJames Feist { 1256b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1257b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, queryNotSupported()); 1258f4c4dcf4SKowalski, Kamil } 1259f4c4dcf4SKowalski, Kamil 1260f4c4dcf4SKowalski, Kamil /** 1261f4c4dcf4SKowalski, Kamil * @internal 1262f4c4dcf4SKowalski, Kamil * @brief Formats CreateLimitReachedForResource message into JSON 1263f4c4dcf4SKowalski, Kamil * 1264f4c4dcf4SKowalski, Kamil * See header file for more information 1265f4c4dcf4SKowalski, Kamil * @endinternal 1266f4c4dcf4SKowalski, Kamil */ 1267d9fcfcc1SEd Tanous nlohmann::json createLimitReachedForResource() 12681abe55efSEd Tanous { 1269b6cd31e1SEd Tanous return getLog( 1270fffb8c1fSEd Tanous redfish::registries::base::Index::createLimitReachedForResource, {}); 1271b5c07418SJames Feist } 1272b5c07418SJames Feist 1273b5c07418SJames Feist void createLimitReachedForResource(crow::Response& res) 1274b5c07418SJames Feist { 1275b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1276b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, createLimitReachedForResource()); 1277f4c4dcf4SKowalski, Kamil } 1278f4c4dcf4SKowalski, Kamil 1279f4c4dcf4SKowalski, Kamil /** 1280f4c4dcf4SKowalski, Kamil * @internal 1281f4c4dcf4SKowalski, Kamil * @brief Formats GeneralError message into JSON 1282f4c4dcf4SKowalski, Kamil * 1283f4c4dcf4SKowalski, Kamil * See header file for more information 1284f4c4dcf4SKowalski, Kamil * @endinternal 1285f4c4dcf4SKowalski, Kamil */ 1286d9fcfcc1SEd Tanous nlohmann::json generalError() 12871abe55efSEd Tanous { 1288fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::generalError, {}); 1289b5c07418SJames Feist } 1290b5c07418SJames Feist 1291b5c07418SJames Feist void generalError(crow::Response& res) 1292b5c07418SJames Feist { 1293b5c07418SJames Feist res.result(boost::beast::http::status::internal_server_error); 1294b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, generalError()); 1295f4c4dcf4SKowalski, Kamil } 1296f4c4dcf4SKowalski, Kamil 1297f4c4dcf4SKowalski, Kamil /** 1298f4c4dcf4SKowalski, Kamil * @internal 1299f4c4dcf4SKowalski, Kamil * @brief Formats Success message into JSON 1300f4c4dcf4SKowalski, Kamil * 1301f4c4dcf4SKowalski, Kamil * See header file for more information 1302f4c4dcf4SKowalski, Kamil * @endinternal 1303f4c4dcf4SKowalski, Kamil */ 1304d9fcfcc1SEd Tanous nlohmann::json success() 13051abe55efSEd Tanous { 1306fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::success, {}); 1307b5c07418SJames Feist } 1308b5c07418SJames Feist 1309b5c07418SJames Feist void success(crow::Response& res) 1310b5c07418SJames Feist { 1311b5c07418SJames Feist // don't set res.result here because success is the default and any 1312b5c07418SJames Feist // error should overwrite the default 1313b5c07418SJames Feist addMessageToJsonRoot(res.jsonValue, success()); 1314f12894f8SJason M. Bills } 1315f12894f8SJason M. Bills 1316f12894f8SJason M. Bills /** 1317f12894f8SJason M. Bills * @internal 1318f4c4dcf4SKowalski, Kamil * @brief Formats Created message into JSON 1319f4c4dcf4SKowalski, Kamil * 1320f4c4dcf4SKowalski, Kamil * See header file for more information 1321f4c4dcf4SKowalski, Kamil * @endinternal 1322f4c4dcf4SKowalski, Kamil */ 1323d9fcfcc1SEd Tanous nlohmann::json created() 13241abe55efSEd Tanous { 1325fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::created, {}); 1326b5c07418SJames Feist } 1327b5c07418SJames Feist 1328b5c07418SJames Feist void created(crow::Response& res) 1329b5c07418SJames Feist { 1330b5c07418SJames Feist res.result(boost::beast::http::status::created); 1331b5c07418SJames Feist addMessageToJsonRoot(res.jsonValue, created()); 1332f4c4dcf4SKowalski, Kamil } 1333f4c4dcf4SKowalski, Kamil 1334f4c4dcf4SKowalski, Kamil /** 1335f4c4dcf4SKowalski, Kamil * @internal 1336cc9139ecSJason M. Bills * @brief Formats NoOperation message into JSON 1337cc9139ecSJason M. Bills * 1338cc9139ecSJason M. Bills * See header file for more information 1339cc9139ecSJason M. Bills * @endinternal 1340cc9139ecSJason M. Bills */ 1341d9fcfcc1SEd Tanous nlohmann::json noOperation() 1342cc9139ecSJason M. Bills { 1343fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::noOperation, {}); 1344b5c07418SJames Feist } 1345b5c07418SJames Feist 1346b5c07418SJames Feist void noOperation(crow::Response& res) 1347b5c07418SJames Feist { 1348b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1349b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, noOperation()); 1350cc9139ecSJason M. Bills } 1351cc9139ecSJason M. Bills 1352cc9139ecSJason M. Bills /** 1353cc9139ecSJason M. Bills * @internal 1354b5c07418SJames Feist * @brief Formats PropertyUnknown message into JSON for the specified 1355b5c07418SJames Feist * property 1356f12894f8SJason M. Bills * 1357f12894f8SJason M. Bills * See header file for more information 1358f12894f8SJason M. Bills * @endinternal 1359f12894f8SJason M. Bills */ 13601668ce6dSEd Tanous nlohmann::json propertyUnknown(std::string_view arg1) 1361b5c07418SJames Feist { 1362fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::propertyUnknown, 13631668ce6dSEd Tanous std::to_array({arg1})); 1364b5c07418SJames Feist } 1365b5c07418SJames Feist 13661668ce6dSEd Tanous void propertyUnknown(crow::Response& res, std::string_view arg1) 1367f12894f8SJason M. Bills { 1368f12894f8SJason M. Bills res.result(boost::beast::http::status::bad_request); 13697b1dd2f9SEd Tanous addMessageToErrorJson(res.jsonValue, propertyUnknown(arg1)); 1370f4c4dcf4SKowalski, Kamil } 1371f4c4dcf4SKowalski, Kamil 1372f4c4dcf4SKowalski, Kamil /** 1373f4c4dcf4SKowalski, Kamil * @internal 1374f4c4dcf4SKowalski, Kamil * @brief Formats NoValidSession message into JSON 1375f4c4dcf4SKowalski, Kamil * 1376f4c4dcf4SKowalski, Kamil * See header file for more information 1377f4c4dcf4SKowalski, Kamil * @endinternal 1378f4c4dcf4SKowalski, Kamil */ 1379d9fcfcc1SEd Tanous nlohmann::json noValidSession() 13801abe55efSEd Tanous { 1381fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::noValidSession, {}); 1382b5c07418SJames Feist } 1383b5c07418SJames Feist 1384b5c07418SJames Feist void noValidSession(crow::Response& res) 1385b5c07418SJames Feist { 1386b5c07418SJames Feist res.result(boost::beast::http::status::forbidden); 1387b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, noValidSession()); 1388f4c4dcf4SKowalski, Kamil } 1389f4c4dcf4SKowalski, Kamil 1390f4c4dcf4SKowalski, Kamil /** 1391f4c4dcf4SKowalski, Kamil * @internal 1392f4c4dcf4SKowalski, Kamil * @brief Formats InvalidObject message into JSON 1393f4c4dcf4SKowalski, Kamil * 1394f4c4dcf4SKowalski, Kamil * See header file for more information 1395f4c4dcf4SKowalski, Kamil * @endinternal 1396f4c4dcf4SKowalski, Kamil */ 1397d9f466b3SEd Tanous nlohmann::json invalidObject(boost::urls::url_view arg1) 13981abe55efSEd Tanous { 1399fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::invalidObject, 1400079360aeSEd Tanous std::to_array<std::string_view>({arg1.buffer()})); 1401b5c07418SJames Feist } 1402b5c07418SJames Feist 1403d9f466b3SEd Tanous void invalidObject(crow::Response& res, boost::urls::url_view arg1) 1404b5c07418SJames Feist { 1405b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1406b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, invalidObject(arg1)); 1407f4c4dcf4SKowalski, Kamil } 1408f4c4dcf4SKowalski, Kamil 1409f4c4dcf4SKowalski, Kamil /** 1410f4c4dcf4SKowalski, Kamil * @internal 1411f4c4dcf4SKowalski, Kamil * @brief Formats ResourceInStandby message into JSON 1412f4c4dcf4SKowalski, Kamil * 1413f4c4dcf4SKowalski, Kamil * See header file for more information 1414f4c4dcf4SKowalski, Kamil * @endinternal 1415f4c4dcf4SKowalski, Kamil */ 1416d9fcfcc1SEd Tanous nlohmann::json resourceInStandby() 14171abe55efSEd Tanous { 1418fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::resourceInStandby, {}); 1419b5c07418SJames Feist } 1420b5c07418SJames Feist 1421b5c07418SJames Feist void resourceInStandby(crow::Response& res) 1422b5c07418SJames Feist { 1423b5c07418SJames Feist res.result(boost::beast::http::status::service_unavailable); 1424b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, resourceInStandby()); 1425f4c4dcf4SKowalski, Kamil } 1426f4c4dcf4SKowalski, Kamil 1427f4c4dcf4SKowalski, Kamil /** 1428f4c4dcf4SKowalski, Kamil * @internal 1429f4c4dcf4SKowalski, Kamil * @brief Formats ActionParameterValueTypeError message into JSON 1430f4c4dcf4SKowalski, Kamil * 1431f4c4dcf4SKowalski, Kamil * See header file for more information 1432f4c4dcf4SKowalski, Kamil * @endinternal 1433f4c4dcf4SKowalski, Kamil */ 143495b3ad73SEd Tanous nlohmann::json actionParameterValueTypeError(const nlohmann::json& arg1, 14351668ce6dSEd Tanous std::string_view arg2, 14361668ce6dSEd Tanous std::string_view arg3) 14371abe55efSEd Tanous { 143895b3ad73SEd Tanous std::string arg1Str = arg1.dump(2, ' ', true, 143995b3ad73SEd Tanous nlohmann::json::error_handler_t::replace); 1440b6cd31e1SEd Tanous return getLog( 1441fffb8c1fSEd Tanous redfish::registries::base::Index::actionParameterValueTypeError, 144295b3ad73SEd Tanous std::to_array<std::string_view>({arg1Str, arg2, arg3})); 1443b5c07418SJames Feist } 1444b5c07418SJames Feist 144595b3ad73SEd Tanous void actionParameterValueTypeError(crow::Response& res, 144695b3ad73SEd Tanous const nlohmann::json& arg1, 14471668ce6dSEd Tanous std::string_view arg2, std::string_view arg3) 1448b5c07418SJames Feist { 1449b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1450b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, 1451b5c07418SJames Feist actionParameterValueTypeError(arg1, arg2, arg3)); 1452f4c4dcf4SKowalski, Kamil } 1453f4c4dcf4SKowalski, Kamil 1454f4c4dcf4SKowalski, Kamil /** 1455f4c4dcf4SKowalski, Kamil * @internal 1456f4c4dcf4SKowalski, Kamil * @brief Formats SessionLimitExceeded message into JSON 1457f4c4dcf4SKowalski, Kamil * 1458f4c4dcf4SKowalski, Kamil * See header file for more information 1459f4c4dcf4SKowalski, Kamil * @endinternal 1460f4c4dcf4SKowalski, Kamil */ 1461d9fcfcc1SEd Tanous nlohmann::json sessionLimitExceeded() 14621abe55efSEd Tanous { 1463fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::sessionLimitExceeded, {}); 1464b5c07418SJames Feist } 1465b5c07418SJames Feist 1466b5c07418SJames Feist void sessionLimitExceeded(crow::Response& res) 1467b5c07418SJames Feist { 1468b5c07418SJames Feist res.result(boost::beast::http::status::service_unavailable); 1469b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, sessionLimitExceeded()); 1470f4c4dcf4SKowalski, Kamil } 1471f4c4dcf4SKowalski, Kamil 1472f4c4dcf4SKowalski, Kamil /** 1473f4c4dcf4SKowalski, Kamil * @internal 1474f4c4dcf4SKowalski, Kamil * @brief Formats ActionNotSupported message into JSON 1475f4c4dcf4SKowalski, Kamil * 1476f4c4dcf4SKowalski, Kamil * See header file for more information 1477f4c4dcf4SKowalski, Kamil * @endinternal 1478f4c4dcf4SKowalski, Kamil */ 14791668ce6dSEd Tanous nlohmann::json actionNotSupported(std::string_view arg1) 14801abe55efSEd Tanous { 1481fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::actionNotSupported, 14821668ce6dSEd Tanous std::to_array({arg1})); 1483b5c07418SJames Feist } 1484b5c07418SJames Feist 14851668ce6dSEd Tanous void actionNotSupported(crow::Response& res, std::string_view arg1) 1486b5c07418SJames Feist { 1487b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1488b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, actionNotSupported(arg1)); 1489f4c4dcf4SKowalski, Kamil } 1490f4c4dcf4SKowalski, Kamil 1491f4c4dcf4SKowalski, Kamil /** 1492f4c4dcf4SKowalski, Kamil * @internal 1493f4c4dcf4SKowalski, Kamil * @brief Formats InvalidIndex message into JSON 1494f4c4dcf4SKowalski, Kamil * 1495f4c4dcf4SKowalski, Kamil * See header file for more information 1496f4c4dcf4SKowalski, Kamil * @endinternal 1497f4c4dcf4SKowalski, Kamil */ 14985187e09bSJosh Lehan nlohmann::json invalidIndex(int64_t arg1) 14991abe55efSEd Tanous { 1500b6cd31e1SEd Tanous std::string arg1Str = std::to_string(arg1); 1501fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::invalidIndex, 15021668ce6dSEd Tanous std::to_array<std::string_view>({arg1Str})); 1503b5c07418SJames Feist } 1504b5c07418SJames Feist 15055187e09bSJosh Lehan void invalidIndex(crow::Response& res, int64_t arg1) 1506b5c07418SJames Feist { 1507b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1508b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, invalidIndex(arg1)); 1509f4c4dcf4SKowalski, Kamil } 1510f4c4dcf4SKowalski, Kamil 1511f4c4dcf4SKowalski, Kamil /** 1512f4c4dcf4SKowalski, Kamil * @internal 1513f4c4dcf4SKowalski, Kamil * @brief Formats EmptyJSON message into JSON 1514f4c4dcf4SKowalski, Kamil * 1515f4c4dcf4SKowalski, Kamil * See header file for more information 1516f4c4dcf4SKowalski, Kamil * @endinternal 1517f4c4dcf4SKowalski, Kamil */ 1518d9fcfcc1SEd Tanous nlohmann::json emptyJSON() 15191abe55efSEd Tanous { 1520fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::emptyJSON, {}); 1521b5c07418SJames Feist } 1522b5c07418SJames Feist 1523b5c07418SJames Feist void emptyJSON(crow::Response& res) 1524b5c07418SJames Feist { 1525b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1526b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, emptyJSON()); 1527f4c4dcf4SKowalski, Kamil } 1528f4c4dcf4SKowalski, Kamil 1529f4c4dcf4SKowalski, Kamil /** 1530f4c4dcf4SKowalski, Kamil * @internal 1531f4c4dcf4SKowalski, Kamil * @brief Formats QueryNotSupportedOnResource message into JSON 1532f4c4dcf4SKowalski, Kamil * 1533f4c4dcf4SKowalski, Kamil * See header file for more information 1534f4c4dcf4SKowalski, Kamil * @endinternal 1535f4c4dcf4SKowalski, Kamil */ 1536d9fcfcc1SEd Tanous nlohmann::json queryNotSupportedOnResource() 15371abe55efSEd Tanous { 1538fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::queryNotSupportedOnResource, 1539b6cd31e1SEd Tanous {}); 1540b5c07418SJames Feist } 1541b5c07418SJames Feist 1542b5c07418SJames Feist void queryNotSupportedOnResource(crow::Response& res) 1543b5c07418SJames Feist { 15446a409c12SEd Tanous res.result(boost::beast::http::status::bad_request); 1545b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, queryNotSupportedOnResource()); 1546f4c4dcf4SKowalski, Kamil } 1547f4c4dcf4SKowalski, Kamil 1548f4c4dcf4SKowalski, Kamil /** 1549f4c4dcf4SKowalski, Kamil * @internal 1550684bb4b8SJason M. Bills * @brief Formats QueryNotSupportedOnOperation message into JSON 1551684bb4b8SJason M. Bills * 1552684bb4b8SJason M. Bills * See header file for more information 1553684bb4b8SJason M. Bills * @endinternal 1554684bb4b8SJason M. Bills */ 1555d9fcfcc1SEd Tanous nlohmann::json queryNotSupportedOnOperation() 1556684bb4b8SJason M. Bills { 1557b6cd31e1SEd Tanous return getLog( 1558fffb8c1fSEd Tanous redfish::registries::base::Index::queryNotSupportedOnOperation, {}); 1559684bb4b8SJason M. Bills } 1560684bb4b8SJason M. Bills 1561684bb4b8SJason M. Bills void queryNotSupportedOnOperation(crow::Response& res) 1562684bb4b8SJason M. Bills { 15636a409c12SEd Tanous res.result(boost::beast::http::status::bad_request); 1564684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, queryNotSupportedOnOperation()); 1565684bb4b8SJason M. Bills } 1566684bb4b8SJason M. Bills 1567684bb4b8SJason M. Bills /** 1568684bb4b8SJason M. Bills * @internal 1569684bb4b8SJason M. Bills * @brief Formats QueryCombinationInvalid message into JSON 1570684bb4b8SJason M. Bills * 1571684bb4b8SJason M. Bills * See header file for more information 1572684bb4b8SJason M. Bills * @endinternal 1573684bb4b8SJason M. Bills */ 1574d9fcfcc1SEd Tanous nlohmann::json queryCombinationInvalid() 1575684bb4b8SJason M. Bills { 1576fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::queryCombinationInvalid, 1577fffb8c1fSEd Tanous {}); 1578684bb4b8SJason M. Bills } 1579684bb4b8SJason M. Bills 1580684bb4b8SJason M. Bills void queryCombinationInvalid(crow::Response& res) 1581684bb4b8SJason M. Bills { 1582684bb4b8SJason M. Bills res.result(boost::beast::http::status::bad_request); 1583684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, queryCombinationInvalid()); 1584684bb4b8SJason M. Bills } 1585684bb4b8SJason M. Bills 1586684bb4b8SJason M. Bills /** 1587684bb4b8SJason M. Bills * @internal 1588f4c4dcf4SKowalski, Kamil * @brief Formats InsufficientPrivilege message into JSON 1589f4c4dcf4SKowalski, Kamil * 1590f4c4dcf4SKowalski, Kamil * See header file for more information 1591f4c4dcf4SKowalski, Kamil * @endinternal 1592f4c4dcf4SKowalski, Kamil */ 1593d9fcfcc1SEd Tanous nlohmann::json insufficientPrivilege() 15941abe55efSEd Tanous { 1595fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::insufficientPrivilege, {}); 1596b5c07418SJames Feist } 1597b5c07418SJames Feist 1598b5c07418SJames Feist void insufficientPrivilege(crow::Response& res) 1599b5c07418SJames Feist { 1600b5c07418SJames Feist res.result(boost::beast::http::status::forbidden); 1601b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, insufficientPrivilege()); 1602f4c4dcf4SKowalski, Kamil } 1603f4c4dcf4SKowalski, Kamil 1604f4c4dcf4SKowalski, Kamil /** 1605f4c4dcf4SKowalski, Kamil * @internal 1606f4c4dcf4SKowalski, Kamil * @brief Formats PropertyValueModified message into JSON 1607f4c4dcf4SKowalski, Kamil * 1608f4c4dcf4SKowalski, Kamil * See header file for more information 1609f4c4dcf4SKowalski, Kamil * @endinternal 1610f4c4dcf4SKowalski, Kamil */ 16111668ce6dSEd Tanous nlohmann::json propertyValueModified(std::string_view arg1, 161295b3ad73SEd Tanous const nlohmann::json& arg2) 1613b5c07418SJames Feist { 161495b3ad73SEd Tanous std::string arg2Str = arg2.dump(2, ' ', true, 161595b3ad73SEd Tanous nlohmann::json::error_handler_t::replace); 1616fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::propertyValueModified, 161795b3ad73SEd Tanous std::to_array<std::string_view>({arg1, arg2Str})); 1618b5c07418SJames Feist } 1619b5c07418SJames Feist 16201668ce6dSEd Tanous void propertyValueModified(crow::Response& res, std::string_view arg1, 162195b3ad73SEd Tanous const nlohmann::json& arg2) 16221abe55efSEd Tanous { 1623f12894f8SJason M. Bills res.result(boost::beast::http::status::ok); 1624b5c07418SJames Feist addMessageToJson(res.jsonValue, propertyValueModified(arg1, arg2), arg1); 1625f4c4dcf4SKowalski, Kamil } 1626f4c4dcf4SKowalski, Kamil 1627f4c4dcf4SKowalski, Kamil /** 1628f4c4dcf4SKowalski, Kamil * @internal 1629f4c4dcf4SKowalski, Kamil * @brief Formats AccountNotModified message into JSON 1630f4c4dcf4SKowalski, Kamil * 1631f4c4dcf4SKowalski, Kamil * See header file for more information 1632f4c4dcf4SKowalski, Kamil * @endinternal 1633f4c4dcf4SKowalski, Kamil */ 1634d9fcfcc1SEd Tanous nlohmann::json accountNotModified() 16351abe55efSEd Tanous { 1636fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::accountNotModified, {}); 1637b5c07418SJames Feist } 1638b5c07418SJames Feist 1639b5c07418SJames Feist void accountNotModified(crow::Response& res) 1640b5c07418SJames Feist { 1641b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1642b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, accountNotModified()); 1643f4c4dcf4SKowalski, Kamil } 1644f4c4dcf4SKowalski, Kamil 1645f4c4dcf4SKowalski, Kamil /** 1646f4c4dcf4SKowalski, Kamil * @internal 1647f4c4dcf4SKowalski, Kamil * @brief Formats QueryParameterValueFormatError message into JSON 1648f4c4dcf4SKowalski, Kamil * 1649f4c4dcf4SKowalski, Kamil * See header file for more information 1650f4c4dcf4SKowalski, Kamil * @endinternal 1651f4c4dcf4SKowalski, Kamil */ 165295b3ad73SEd Tanous nlohmann::json queryParameterValueFormatError(const nlohmann::json& arg1, 16531668ce6dSEd Tanous std::string_view arg2) 16541abe55efSEd Tanous { 165595b3ad73SEd Tanous std::string arg1Str = arg1.dump(2, ' ', true, 165695b3ad73SEd Tanous nlohmann::json::error_handler_t::replace); 1657fffb8c1fSEd Tanous return getLog( 1658fffb8c1fSEd Tanous redfish::registries::base::Index::queryParameterValueFormatError, 165995b3ad73SEd Tanous std::to_array<std::string_view>({arg1Str, arg2})); 1660b5c07418SJames Feist } 1661b5c07418SJames Feist 166295b3ad73SEd Tanous void queryParameterValueFormatError(crow::Response& res, 166395b3ad73SEd Tanous const nlohmann::json& arg1, 16641668ce6dSEd Tanous std::string_view arg2) 1665b5c07418SJames Feist { 1666b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1667b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, 1668b5c07418SJames Feist queryParameterValueFormatError(arg1, arg2)); 1669f4c4dcf4SKowalski, Kamil } 1670f4c4dcf4SKowalski, Kamil 1671f4c4dcf4SKowalski, Kamil /** 1672f4c4dcf4SKowalski, Kamil * @internal 1673b5c07418SJames Feist * @brief Formats PropertyMissing message into JSON for the specified 1674b5c07418SJames Feist * property 1675f12894f8SJason M. Bills * 1676f12894f8SJason M. Bills * See header file for more information 1677f12894f8SJason M. Bills * @endinternal 1678f12894f8SJason M. Bills */ 16791668ce6dSEd Tanous nlohmann::json propertyMissing(std::string_view arg1) 1680f12894f8SJason M. Bills { 1681fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::propertyMissing, 16821668ce6dSEd Tanous std::to_array({arg1})); 1683b5c07418SJames Feist } 1684b5c07418SJames Feist 16851668ce6dSEd Tanous void propertyMissing(crow::Response& res, std::string_view arg1) 1686b5c07418SJames Feist { 1687b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1688b5c07418SJames Feist addMessageToJson(res.jsonValue, propertyMissing(arg1), arg1); 1689f4c4dcf4SKowalski, Kamil } 1690f4c4dcf4SKowalski, Kamil 1691f4c4dcf4SKowalski, Kamil /** 1692f4c4dcf4SKowalski, Kamil * @internal 1693f4c4dcf4SKowalski, Kamil * @brief Formats ResourceExhaustion message into JSON 1694f4c4dcf4SKowalski, Kamil * 1695f4c4dcf4SKowalski, Kamil * See header file for more information 1696f4c4dcf4SKowalski, Kamil * @endinternal 1697f4c4dcf4SKowalski, Kamil */ 16981668ce6dSEd Tanous nlohmann::json resourceExhaustion(std::string_view arg1) 16991abe55efSEd Tanous { 1700fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::resourceExhaustion, 17011668ce6dSEd Tanous std::to_array({arg1})); 1702b5c07418SJames Feist } 1703b5c07418SJames Feist 17041668ce6dSEd Tanous void resourceExhaustion(crow::Response& res, std::string_view arg1) 1705b5c07418SJames Feist { 1706b5c07418SJames Feist res.result(boost::beast::http::status::service_unavailable); 1707b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, resourceExhaustion(arg1)); 1708f4c4dcf4SKowalski, Kamil } 1709f4c4dcf4SKowalski, Kamil 1710f4c4dcf4SKowalski, Kamil /** 1711f4c4dcf4SKowalski, Kamil * @internal 1712f4c4dcf4SKowalski, Kamil * @brief Formats AccountModified message into JSON 1713f4c4dcf4SKowalski, Kamil * 1714f4c4dcf4SKowalski, Kamil * See header file for more information 1715f4c4dcf4SKowalski, Kamil * @endinternal 1716f4c4dcf4SKowalski, Kamil */ 1717d9fcfcc1SEd Tanous nlohmann::json accountModified() 17181abe55efSEd Tanous { 1719fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::accountModified, {}); 1720b5c07418SJames Feist } 1721b5c07418SJames Feist 1722b5c07418SJames Feist void accountModified(crow::Response& res) 1723b5c07418SJames Feist { 1724b5c07418SJames Feist res.result(boost::beast::http::status::ok); 1725b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, accountModified()); 1726f4c4dcf4SKowalski, Kamil } 1727f4c4dcf4SKowalski, Kamil 1728f4c4dcf4SKowalski, Kamil /** 1729f4c4dcf4SKowalski, Kamil * @internal 1730f4c4dcf4SKowalski, Kamil * @brief Formats QueryParameterOutOfRange message into JSON 1731f4c4dcf4SKowalski, Kamil * 1732f4c4dcf4SKowalski, Kamil * See header file for more information 1733f4c4dcf4SKowalski, Kamil * @endinternal 1734f4c4dcf4SKowalski, Kamil */ 17351668ce6dSEd Tanous nlohmann::json queryParameterOutOfRange(std::string_view arg1, 17361668ce6dSEd Tanous std::string_view arg2, 17371668ce6dSEd Tanous std::string_view arg3) 17381abe55efSEd Tanous { 1739fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::queryParameterOutOfRange, 17401668ce6dSEd Tanous std::to_array({arg1, arg2, arg3})); 1741b5c07418SJames Feist } 1742b5c07418SJames Feist 17431668ce6dSEd Tanous void queryParameterOutOfRange(crow::Response& res, std::string_view arg1, 17441668ce6dSEd Tanous std::string_view arg2, std::string_view arg3) 1745b5c07418SJames Feist { 1746b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1747b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, 1748b5c07418SJames Feist queryParameterOutOfRange(arg1, arg2, arg3)); 1749f4c4dcf4SKowalski, Kamil } 1750f4c4dcf4SKowalski, Kamil 1751d9f466b3SEd Tanous nlohmann::json passwordChangeRequired(boost::urls::url_view arg1) 1752b6cd31e1SEd Tanous { 1753fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::passwordChangeRequired, 1754079360aeSEd Tanous std::to_array<std::string_view>({arg1.buffer()})); 1755b6cd31e1SEd Tanous } 1756b6cd31e1SEd Tanous 17573bf4e632SJoseph Reynolds /** 17583bf4e632SJoseph Reynolds * @internal 17593bf4e632SJoseph Reynolds * @brief Formats PasswordChangeRequired message into JSON 17603bf4e632SJoseph Reynolds * 17613bf4e632SJoseph Reynolds * See header file for more information 17623bf4e632SJoseph Reynolds * @endinternal 17633bf4e632SJoseph Reynolds */ 1764d9f466b3SEd Tanous void passwordChangeRequired(crow::Response& res, boost::urls::url_view arg1) 17653bf4e632SJoseph Reynolds { 1766b6cd31e1SEd Tanous messages::addMessageToJsonRoot(res.jsonValue, passwordChangeRequired(arg1)); 17673bf4e632SJoseph Reynolds } 17683bf4e632SJoseph Reynolds 17694cde5d90SJames Feist /** 17704cde5d90SJames Feist * @internal 1771ae688313SNan Zhou * @brief Formats InsufficientStorage message into JSON 1772ae688313SNan Zhou * 1773ae688313SNan Zhou * See header file for more information 1774ae688313SNan Zhou * @endinternal 1775ae688313SNan Zhou */ 1776ae688313SNan Zhou nlohmann::json insufficientStorage() 1777ae688313SNan Zhou { 1778ae688313SNan Zhou return getLog(redfish::registries::base::Index::insufficientStorage, {}); 1779ae688313SNan Zhou } 1780ae688313SNan Zhou 1781ae688313SNan Zhou void insufficientStorage(crow::Response& res) 1782ae688313SNan Zhou { 1783ae688313SNan Zhou res.result(boost::beast::http::status::insufficient_storage); 1784ae688313SNan Zhou addMessageToErrorJson(res.jsonValue, insufficientStorage()); 1785ae688313SNan Zhou } 1786ae688313SNan Zhou 1787ae688313SNan Zhou /** 1788ae688313SNan Zhou * @internal 178944c70412SEd Tanous * @brief Formats OperationNotAllowed message into JSON 179044c70412SEd Tanous * 179144c70412SEd Tanous * See header file for more information 179244c70412SEd Tanous * @endinternal 179344c70412SEd Tanous */ 179444c70412SEd Tanous nlohmann::json operationNotAllowed() 179544c70412SEd Tanous { 179644c70412SEd Tanous return getLog(redfish::registries::base::Index::operationNotAllowed, {}); 179744c70412SEd Tanous } 179844c70412SEd Tanous 179944c70412SEd Tanous void operationNotAllowed(crow::Response& res) 180044c70412SEd Tanous { 180144c70412SEd Tanous res.result(boost::beast::http::status::method_not_allowed); 180244c70412SEd Tanous addMessageToErrorJson(res.jsonValue, operationNotAllowed()); 180344c70412SEd Tanous } 180444c70412SEd Tanous 1805600af5f1SAppaRao Puli /** 1806600af5f1SAppaRao Puli * @internal 1807600af5f1SAppaRao Puli * @brief Formats ArraySizeTooLong message into JSON 1808600af5f1SAppaRao Puli * 1809600af5f1SAppaRao Puli * See header file for more information 1810600af5f1SAppaRao Puli * @endinternal 1811600af5f1SAppaRao Puli */ 1812600af5f1SAppaRao Puli nlohmann::json arraySizeTooLong(std::string_view property, uint64_t length) 1813600af5f1SAppaRao Puli { 1814600af5f1SAppaRao Puli std::string valStr = std::to_string(length); 1815600af5f1SAppaRao Puli return getLog(redfish::registries::base::Index::arraySizeTooLong, 1816600af5f1SAppaRao Puli std::to_array<std::string_view>({property, valStr})); 1817600af5f1SAppaRao Puli } 1818600af5f1SAppaRao Puli 1819600af5f1SAppaRao Puli void arraySizeTooLong(crow::Response& res, std::string_view property, 1820600af5f1SAppaRao Puli uint64_t length) 1821600af5f1SAppaRao Puli { 182299bf0262SDivya Jyoti res.result(boost::beast::http::status::bad_request); 1823600af5f1SAppaRao Puli addMessageToErrorJson(res.jsonValue, arraySizeTooLong(property, length)); 1824600af5f1SAppaRao Puli } 1825600af5f1SAppaRao Puli 182644c70412SEd Tanous void invalidUpload(crow::Response& res, std::string_view arg1, 182744c70412SEd Tanous std::string_view arg2) 182844c70412SEd Tanous { 182944c70412SEd Tanous res.result(boost::beast::http::status::bad_request); 183044c70412SEd Tanous addMessageToErrorJson(res.jsonValue, invalidUpload(arg1, arg2)); 183144c70412SEd Tanous } 183244c70412SEd Tanous 183344c70412SEd Tanous /** 183444c70412SEd Tanous * @internal 18354cde5d90SJames Feist * @brief Formats Invalid File message into JSON 18364cde5d90SJames Feist * 18374cde5d90SJames Feist * See header file for more information 18384cde5d90SJames Feist * @endinternal 18394cde5d90SJames Feist */ 18401668ce6dSEd Tanous nlohmann::json invalidUpload(std::string_view arg1, std::string_view arg2) 18414cde5d90SJames Feist { 18421668ce6dSEd Tanous std::string msg = "Invalid file uploaded to "; 18431668ce6dSEd Tanous msg += arg1; 18441668ce6dSEd Tanous msg += ": "; 18451668ce6dSEd Tanous msg += arg2; 18461668ce6dSEd Tanous msg += "."; 1847613dabeaSEd Tanous 1848613dabeaSEd Tanous nlohmann::json::object_t ret; 1849613dabeaSEd Tanous ret["@odata.type"] = "/redfish/v1/$metadata#Message.v1_1_1.Message"; 1850613dabeaSEd Tanous ret["MessageId"] = "OpenBMC.0.2.InvalidUpload"; 1851613dabeaSEd Tanous ret["Message"] = std::move(msg); 1852613dabeaSEd Tanous nlohmann::json::array_t args; 1853ad539545SPatrick Williams args.emplace_back(arg1); 1854ad539545SPatrick Williams args.emplace_back(arg2); 1855613dabeaSEd Tanous ret["MessageArgs"] = std::move(args); 1856613dabeaSEd Tanous ret["MessageSeverity"] = "Warning"; 1857613dabeaSEd Tanous ret["Resolution"] = "None."; 1858613dabeaSEd Tanous return ret; 18594cde5d90SJames Feist } 1860ae688313SNan Zhou 1861f4c4dcf4SKowalski, Kamil } // namespace messages 1862f4c4dcf4SKowalski, Kamil 1863d425c6f6SEd Tanous } // namespace redfish 1864