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> 25f0b59af4SEd Tanous #include <boost/url/url_view.hpp> 26faf100f9SEd Tanous #include <nlohmann/json.hpp> 27f4c4dcf4SKowalski, Kamil 281668ce6dSEd Tanous #include <array> 290442ef92SNan Zhou #include <cstddef> 30f0b59af4SEd Tanous #include <cstdint> 31d85418e3SPatrick Williams #include <source_location> 320442ef92SNan Zhou #include <span> 330442ef92SNan Zhou #include <string> 34f0b59af4SEd 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 1456*1827b4f1SAsmitha Karunanithi * @brief Formats actionParameterValueError message into JSON 1457*1827b4f1SAsmitha Karunanithi * 1458*1827b4f1SAsmitha Karunanithi * See header file for more information 1459*1827b4f1SAsmitha Karunanithi * @endinternal 1460*1827b4f1SAsmitha Karunanithi */ 1461*1827b4f1SAsmitha Karunanithi nlohmann::json actionParameterValueError(const nlohmann::json& arg1, 1462*1827b4f1SAsmitha Karunanithi std::string_view arg2) 1463*1827b4f1SAsmitha Karunanithi { 1464*1827b4f1SAsmitha Karunanithi std::string arg1Str = arg1.dump(2, ' ', true, 1465*1827b4f1SAsmitha Karunanithi nlohmann::json::error_handler_t::replace); 1466*1827b4f1SAsmitha Karunanithi return getLog(redfish::registries::base::Index::actionParameterValueError, 1467*1827b4f1SAsmitha Karunanithi std::to_array<std::string_view>({arg1Str, arg2})); 1468*1827b4f1SAsmitha Karunanithi } 1469*1827b4f1SAsmitha Karunanithi 1470*1827b4f1SAsmitha Karunanithi void actionParameterValueError(crow::Response& res, const nlohmann::json& arg1, 1471*1827b4f1SAsmitha Karunanithi std::string_view arg2) 1472*1827b4f1SAsmitha Karunanithi { 1473*1827b4f1SAsmitha Karunanithi res.result(boost::beast::http::status::bad_request); 1474*1827b4f1SAsmitha Karunanithi addMessageToErrorJson(res.jsonValue, actionParameterValueError(arg1, arg2)); 1475*1827b4f1SAsmitha Karunanithi } 1476*1827b4f1SAsmitha Karunanithi 1477*1827b4f1SAsmitha Karunanithi /** 1478*1827b4f1SAsmitha Karunanithi * @internal 1479f4c4dcf4SKowalski, Kamil * @brief Formats SessionLimitExceeded message into JSON 1480f4c4dcf4SKowalski, Kamil * 1481f4c4dcf4SKowalski, Kamil * See header file for more information 1482f4c4dcf4SKowalski, Kamil * @endinternal 1483f4c4dcf4SKowalski, Kamil */ 1484d9fcfcc1SEd Tanous nlohmann::json sessionLimitExceeded() 14851abe55efSEd Tanous { 1486fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::sessionLimitExceeded, {}); 1487b5c07418SJames Feist } 1488b5c07418SJames Feist 1489b5c07418SJames Feist void sessionLimitExceeded(crow::Response& res) 1490b5c07418SJames Feist { 1491b5c07418SJames Feist res.result(boost::beast::http::status::service_unavailable); 1492b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, sessionLimitExceeded()); 1493f4c4dcf4SKowalski, Kamil } 1494f4c4dcf4SKowalski, Kamil 1495f4c4dcf4SKowalski, Kamil /** 1496f4c4dcf4SKowalski, Kamil * @internal 1497f4c4dcf4SKowalski, Kamil * @brief Formats ActionNotSupported message into JSON 1498f4c4dcf4SKowalski, Kamil * 1499f4c4dcf4SKowalski, Kamil * See header file for more information 1500f4c4dcf4SKowalski, Kamil * @endinternal 1501f4c4dcf4SKowalski, Kamil */ 15021668ce6dSEd Tanous nlohmann::json actionNotSupported(std::string_view arg1) 15031abe55efSEd Tanous { 1504fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::actionNotSupported, 15051668ce6dSEd Tanous std::to_array({arg1})); 1506b5c07418SJames Feist } 1507b5c07418SJames Feist 15081668ce6dSEd Tanous void actionNotSupported(crow::Response& res, std::string_view arg1) 1509b5c07418SJames Feist { 1510b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1511b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, actionNotSupported(arg1)); 1512f4c4dcf4SKowalski, Kamil } 1513f4c4dcf4SKowalski, Kamil 1514f4c4dcf4SKowalski, Kamil /** 1515f4c4dcf4SKowalski, Kamil * @internal 1516f4c4dcf4SKowalski, Kamil * @brief Formats InvalidIndex message into JSON 1517f4c4dcf4SKowalski, Kamil * 1518f4c4dcf4SKowalski, Kamil * See header file for more information 1519f4c4dcf4SKowalski, Kamil * @endinternal 1520f4c4dcf4SKowalski, Kamil */ 15215187e09bSJosh Lehan nlohmann::json invalidIndex(int64_t arg1) 15221abe55efSEd Tanous { 1523b6cd31e1SEd Tanous std::string arg1Str = std::to_string(arg1); 1524fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::invalidIndex, 15251668ce6dSEd Tanous std::to_array<std::string_view>({arg1Str})); 1526b5c07418SJames Feist } 1527b5c07418SJames Feist 15285187e09bSJosh Lehan void invalidIndex(crow::Response& res, int64_t arg1) 1529b5c07418SJames Feist { 1530b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1531b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, invalidIndex(arg1)); 1532f4c4dcf4SKowalski, Kamil } 1533f4c4dcf4SKowalski, Kamil 1534f4c4dcf4SKowalski, Kamil /** 1535f4c4dcf4SKowalski, Kamil * @internal 1536f4c4dcf4SKowalski, Kamil * @brief Formats EmptyJSON message into JSON 1537f4c4dcf4SKowalski, Kamil * 1538f4c4dcf4SKowalski, Kamil * See header file for more information 1539f4c4dcf4SKowalski, Kamil * @endinternal 1540f4c4dcf4SKowalski, Kamil */ 1541d9fcfcc1SEd Tanous nlohmann::json emptyJSON() 15421abe55efSEd Tanous { 1543fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::emptyJSON, {}); 1544b5c07418SJames Feist } 1545b5c07418SJames Feist 1546b5c07418SJames Feist void emptyJSON(crow::Response& res) 1547b5c07418SJames Feist { 1548b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1549b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, emptyJSON()); 1550f4c4dcf4SKowalski, Kamil } 1551f4c4dcf4SKowalski, Kamil 1552f4c4dcf4SKowalski, Kamil /** 1553f4c4dcf4SKowalski, Kamil * @internal 1554f4c4dcf4SKowalski, Kamil * @brief Formats QueryNotSupportedOnResource message into JSON 1555f4c4dcf4SKowalski, Kamil * 1556f4c4dcf4SKowalski, Kamil * See header file for more information 1557f4c4dcf4SKowalski, Kamil * @endinternal 1558f4c4dcf4SKowalski, Kamil */ 1559d9fcfcc1SEd Tanous nlohmann::json queryNotSupportedOnResource() 15601abe55efSEd Tanous { 1561fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::queryNotSupportedOnResource, 1562b6cd31e1SEd Tanous {}); 1563b5c07418SJames Feist } 1564b5c07418SJames Feist 1565b5c07418SJames Feist void queryNotSupportedOnResource(crow::Response& res) 1566b5c07418SJames Feist { 15676a409c12SEd Tanous res.result(boost::beast::http::status::bad_request); 1568b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, queryNotSupportedOnResource()); 1569f4c4dcf4SKowalski, Kamil } 1570f4c4dcf4SKowalski, Kamil 1571f4c4dcf4SKowalski, Kamil /** 1572f4c4dcf4SKowalski, Kamil * @internal 1573684bb4b8SJason M. Bills * @brief Formats QueryNotSupportedOnOperation message into JSON 1574684bb4b8SJason M. Bills * 1575684bb4b8SJason M. Bills * See header file for more information 1576684bb4b8SJason M. Bills * @endinternal 1577684bb4b8SJason M. Bills */ 1578d9fcfcc1SEd Tanous nlohmann::json queryNotSupportedOnOperation() 1579684bb4b8SJason M. Bills { 1580b6cd31e1SEd Tanous return getLog( 1581fffb8c1fSEd Tanous redfish::registries::base::Index::queryNotSupportedOnOperation, {}); 1582684bb4b8SJason M. Bills } 1583684bb4b8SJason M. Bills 1584684bb4b8SJason M. Bills void queryNotSupportedOnOperation(crow::Response& res) 1585684bb4b8SJason M. Bills { 15866a409c12SEd Tanous res.result(boost::beast::http::status::bad_request); 1587684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, queryNotSupportedOnOperation()); 1588684bb4b8SJason M. Bills } 1589684bb4b8SJason M. Bills 1590684bb4b8SJason M. Bills /** 1591684bb4b8SJason M. Bills * @internal 1592684bb4b8SJason M. Bills * @brief Formats QueryCombinationInvalid message into JSON 1593684bb4b8SJason M. Bills * 1594684bb4b8SJason M. Bills * See header file for more information 1595684bb4b8SJason M. Bills * @endinternal 1596684bb4b8SJason M. Bills */ 1597d9fcfcc1SEd Tanous nlohmann::json queryCombinationInvalid() 1598684bb4b8SJason M. Bills { 1599fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::queryCombinationInvalid, 1600fffb8c1fSEd Tanous {}); 1601684bb4b8SJason M. Bills } 1602684bb4b8SJason M. Bills 1603684bb4b8SJason M. Bills void queryCombinationInvalid(crow::Response& res) 1604684bb4b8SJason M. Bills { 1605684bb4b8SJason M. Bills res.result(boost::beast::http::status::bad_request); 1606684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, queryCombinationInvalid()); 1607684bb4b8SJason M. Bills } 1608684bb4b8SJason M. Bills 1609684bb4b8SJason M. Bills /** 1610684bb4b8SJason M. Bills * @internal 1611f4c4dcf4SKowalski, Kamil * @brief Formats InsufficientPrivilege message into JSON 1612f4c4dcf4SKowalski, Kamil * 1613f4c4dcf4SKowalski, Kamil * See header file for more information 1614f4c4dcf4SKowalski, Kamil * @endinternal 1615f4c4dcf4SKowalski, Kamil */ 1616d9fcfcc1SEd Tanous nlohmann::json insufficientPrivilege() 16171abe55efSEd Tanous { 1618fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::insufficientPrivilege, {}); 1619b5c07418SJames Feist } 1620b5c07418SJames Feist 1621b5c07418SJames Feist void insufficientPrivilege(crow::Response& res) 1622b5c07418SJames Feist { 1623b5c07418SJames Feist res.result(boost::beast::http::status::forbidden); 1624b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, insufficientPrivilege()); 1625f4c4dcf4SKowalski, Kamil } 1626f4c4dcf4SKowalski, Kamil 1627f4c4dcf4SKowalski, Kamil /** 1628f4c4dcf4SKowalski, Kamil * @internal 1629f4c4dcf4SKowalski, Kamil * @brief Formats PropertyValueModified message into JSON 1630f4c4dcf4SKowalski, Kamil * 1631f4c4dcf4SKowalski, Kamil * See header file for more information 1632f4c4dcf4SKowalski, Kamil * @endinternal 1633f4c4dcf4SKowalski, Kamil */ 16341668ce6dSEd Tanous nlohmann::json propertyValueModified(std::string_view arg1, 163595b3ad73SEd Tanous const nlohmann::json& arg2) 1636b5c07418SJames Feist { 163795b3ad73SEd Tanous std::string arg2Str = arg2.dump(2, ' ', true, 163895b3ad73SEd Tanous nlohmann::json::error_handler_t::replace); 1639fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::propertyValueModified, 164095b3ad73SEd Tanous std::to_array<std::string_view>({arg1, arg2Str})); 1641b5c07418SJames Feist } 1642b5c07418SJames Feist 16431668ce6dSEd Tanous void propertyValueModified(crow::Response& res, std::string_view arg1, 164495b3ad73SEd Tanous const nlohmann::json& arg2) 16451abe55efSEd Tanous { 1646f12894f8SJason M. Bills res.result(boost::beast::http::status::ok); 1647b5c07418SJames Feist addMessageToJson(res.jsonValue, propertyValueModified(arg1, arg2), arg1); 1648f4c4dcf4SKowalski, Kamil } 1649f4c4dcf4SKowalski, Kamil 1650f4c4dcf4SKowalski, Kamil /** 1651f4c4dcf4SKowalski, Kamil * @internal 1652f4c4dcf4SKowalski, Kamil * @brief Formats AccountNotModified message into JSON 1653f4c4dcf4SKowalski, Kamil * 1654f4c4dcf4SKowalski, Kamil * See header file for more information 1655f4c4dcf4SKowalski, Kamil * @endinternal 1656f4c4dcf4SKowalski, Kamil */ 1657d9fcfcc1SEd Tanous nlohmann::json accountNotModified() 16581abe55efSEd Tanous { 1659fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::accountNotModified, {}); 1660b5c07418SJames Feist } 1661b5c07418SJames Feist 1662b5c07418SJames Feist void accountNotModified(crow::Response& res) 1663b5c07418SJames Feist { 1664b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1665b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, accountNotModified()); 1666f4c4dcf4SKowalski, Kamil } 1667f4c4dcf4SKowalski, Kamil 1668f4c4dcf4SKowalski, Kamil /** 1669f4c4dcf4SKowalski, Kamil * @internal 1670f4c4dcf4SKowalski, Kamil * @brief Formats QueryParameterValueFormatError message into JSON 1671f4c4dcf4SKowalski, Kamil * 1672f4c4dcf4SKowalski, Kamil * See header file for more information 1673f4c4dcf4SKowalski, Kamil * @endinternal 1674f4c4dcf4SKowalski, Kamil */ 167595b3ad73SEd Tanous nlohmann::json queryParameterValueFormatError(const nlohmann::json& arg1, 16761668ce6dSEd Tanous std::string_view arg2) 16771abe55efSEd Tanous { 167895b3ad73SEd Tanous std::string arg1Str = arg1.dump(2, ' ', true, 167995b3ad73SEd Tanous nlohmann::json::error_handler_t::replace); 1680fffb8c1fSEd Tanous return getLog( 1681fffb8c1fSEd Tanous redfish::registries::base::Index::queryParameterValueFormatError, 168295b3ad73SEd Tanous std::to_array<std::string_view>({arg1Str, arg2})); 1683b5c07418SJames Feist } 1684b5c07418SJames Feist 168595b3ad73SEd Tanous void queryParameterValueFormatError(crow::Response& res, 168695b3ad73SEd Tanous const nlohmann::json& arg1, 16871668ce6dSEd Tanous std::string_view arg2) 1688b5c07418SJames Feist { 1689b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1690b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, 1691b5c07418SJames Feist queryParameterValueFormatError(arg1, arg2)); 1692f4c4dcf4SKowalski, Kamil } 1693f4c4dcf4SKowalski, Kamil 1694f4c4dcf4SKowalski, Kamil /** 1695f4c4dcf4SKowalski, Kamil * @internal 1696b5c07418SJames Feist * @brief Formats PropertyMissing message into JSON for the specified 1697b5c07418SJames Feist * property 1698f12894f8SJason M. Bills * 1699f12894f8SJason M. Bills * See header file for more information 1700f12894f8SJason M. Bills * @endinternal 1701f12894f8SJason M. Bills */ 17021668ce6dSEd Tanous nlohmann::json propertyMissing(std::string_view arg1) 1703f12894f8SJason M. Bills { 1704fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::propertyMissing, 17051668ce6dSEd Tanous std::to_array({arg1})); 1706b5c07418SJames Feist } 1707b5c07418SJames Feist 17081668ce6dSEd Tanous void propertyMissing(crow::Response& res, std::string_view arg1) 1709b5c07418SJames Feist { 1710b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1711b5c07418SJames Feist addMessageToJson(res.jsonValue, propertyMissing(arg1), arg1); 1712f4c4dcf4SKowalski, Kamil } 1713f4c4dcf4SKowalski, Kamil 1714f4c4dcf4SKowalski, Kamil /** 1715f4c4dcf4SKowalski, Kamil * @internal 1716f4c4dcf4SKowalski, Kamil * @brief Formats ResourceExhaustion message into JSON 1717f4c4dcf4SKowalski, Kamil * 1718f4c4dcf4SKowalski, Kamil * See header file for more information 1719f4c4dcf4SKowalski, Kamil * @endinternal 1720f4c4dcf4SKowalski, Kamil */ 17211668ce6dSEd Tanous nlohmann::json resourceExhaustion(std::string_view arg1) 17221abe55efSEd Tanous { 1723fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::resourceExhaustion, 17241668ce6dSEd Tanous std::to_array({arg1})); 1725b5c07418SJames Feist } 1726b5c07418SJames Feist 17271668ce6dSEd Tanous void resourceExhaustion(crow::Response& res, std::string_view arg1) 1728b5c07418SJames Feist { 1729b5c07418SJames Feist res.result(boost::beast::http::status::service_unavailable); 1730b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, resourceExhaustion(arg1)); 1731f4c4dcf4SKowalski, Kamil } 1732f4c4dcf4SKowalski, Kamil 1733f4c4dcf4SKowalski, Kamil /** 1734f4c4dcf4SKowalski, Kamil * @internal 1735f4c4dcf4SKowalski, Kamil * @brief Formats AccountModified message into JSON 1736f4c4dcf4SKowalski, Kamil * 1737f4c4dcf4SKowalski, Kamil * See header file for more information 1738f4c4dcf4SKowalski, Kamil * @endinternal 1739f4c4dcf4SKowalski, Kamil */ 1740d9fcfcc1SEd Tanous nlohmann::json accountModified() 17411abe55efSEd Tanous { 1742fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::accountModified, {}); 1743b5c07418SJames Feist } 1744b5c07418SJames Feist 1745b5c07418SJames Feist void accountModified(crow::Response& res) 1746b5c07418SJames Feist { 1747b5c07418SJames Feist res.result(boost::beast::http::status::ok); 1748b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, accountModified()); 1749f4c4dcf4SKowalski, Kamil } 1750f4c4dcf4SKowalski, Kamil 1751f4c4dcf4SKowalski, Kamil /** 1752f4c4dcf4SKowalski, Kamil * @internal 1753f4c4dcf4SKowalski, Kamil * @brief Formats QueryParameterOutOfRange message into JSON 1754f4c4dcf4SKowalski, Kamil * 1755f4c4dcf4SKowalski, Kamil * See header file for more information 1756f4c4dcf4SKowalski, Kamil * @endinternal 1757f4c4dcf4SKowalski, Kamil */ 17581668ce6dSEd Tanous nlohmann::json queryParameterOutOfRange(std::string_view arg1, 17591668ce6dSEd Tanous std::string_view arg2, 17601668ce6dSEd Tanous std::string_view arg3) 17611abe55efSEd Tanous { 1762fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::queryParameterOutOfRange, 17631668ce6dSEd Tanous std::to_array({arg1, arg2, arg3})); 1764b5c07418SJames Feist } 1765b5c07418SJames Feist 17661668ce6dSEd Tanous void queryParameterOutOfRange(crow::Response& res, std::string_view arg1, 17671668ce6dSEd Tanous std::string_view arg2, std::string_view arg3) 1768b5c07418SJames Feist { 1769b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1770b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, 1771b5c07418SJames Feist queryParameterOutOfRange(arg1, arg2, arg3)); 1772f4c4dcf4SKowalski, Kamil } 1773f4c4dcf4SKowalski, Kamil 1774d9f466b3SEd Tanous nlohmann::json passwordChangeRequired(boost::urls::url_view arg1) 1775b6cd31e1SEd Tanous { 1776fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::passwordChangeRequired, 1777079360aeSEd Tanous std::to_array<std::string_view>({arg1.buffer()})); 1778b6cd31e1SEd Tanous } 1779b6cd31e1SEd Tanous 17803bf4e632SJoseph Reynolds /** 17813bf4e632SJoseph Reynolds * @internal 17823bf4e632SJoseph Reynolds * @brief Formats PasswordChangeRequired message into JSON 17833bf4e632SJoseph Reynolds * 17843bf4e632SJoseph Reynolds * See header file for more information 17853bf4e632SJoseph Reynolds * @endinternal 17863bf4e632SJoseph Reynolds */ 1787d9f466b3SEd Tanous void passwordChangeRequired(crow::Response& res, boost::urls::url_view arg1) 17883bf4e632SJoseph Reynolds { 1789b6cd31e1SEd Tanous messages::addMessageToJsonRoot(res.jsonValue, passwordChangeRequired(arg1)); 17903bf4e632SJoseph Reynolds } 17913bf4e632SJoseph Reynolds 17924cde5d90SJames Feist /** 17934cde5d90SJames Feist * @internal 1794ae688313SNan Zhou * @brief Formats InsufficientStorage message into JSON 1795ae688313SNan Zhou * 1796ae688313SNan Zhou * See header file for more information 1797ae688313SNan Zhou * @endinternal 1798ae688313SNan Zhou */ 1799ae688313SNan Zhou nlohmann::json insufficientStorage() 1800ae688313SNan Zhou { 1801ae688313SNan Zhou return getLog(redfish::registries::base::Index::insufficientStorage, {}); 1802ae688313SNan Zhou } 1803ae688313SNan Zhou 1804ae688313SNan Zhou void insufficientStorage(crow::Response& res) 1805ae688313SNan Zhou { 1806ae688313SNan Zhou res.result(boost::beast::http::status::insufficient_storage); 1807ae688313SNan Zhou addMessageToErrorJson(res.jsonValue, insufficientStorage()); 1808ae688313SNan Zhou } 1809ae688313SNan Zhou 1810ae688313SNan Zhou /** 1811ae688313SNan Zhou * @internal 181244c70412SEd Tanous * @brief Formats OperationNotAllowed message into JSON 181344c70412SEd Tanous * 181444c70412SEd Tanous * See header file for more information 181544c70412SEd Tanous * @endinternal 181644c70412SEd Tanous */ 181744c70412SEd Tanous nlohmann::json operationNotAllowed() 181844c70412SEd Tanous { 181944c70412SEd Tanous return getLog(redfish::registries::base::Index::operationNotAllowed, {}); 182044c70412SEd Tanous } 182144c70412SEd Tanous 182244c70412SEd Tanous void operationNotAllowed(crow::Response& res) 182344c70412SEd Tanous { 182444c70412SEd Tanous res.result(boost::beast::http::status::method_not_allowed); 182544c70412SEd Tanous addMessageToErrorJson(res.jsonValue, operationNotAllowed()); 182644c70412SEd Tanous } 182744c70412SEd Tanous 1828600af5f1SAppaRao Puli /** 1829600af5f1SAppaRao Puli * @internal 1830600af5f1SAppaRao Puli * @brief Formats ArraySizeTooLong message into JSON 1831600af5f1SAppaRao Puli * 1832600af5f1SAppaRao Puli * See header file for more information 1833600af5f1SAppaRao Puli * @endinternal 1834600af5f1SAppaRao Puli */ 1835600af5f1SAppaRao Puli nlohmann::json arraySizeTooLong(std::string_view property, uint64_t length) 1836600af5f1SAppaRao Puli { 1837600af5f1SAppaRao Puli std::string valStr = std::to_string(length); 1838600af5f1SAppaRao Puli return getLog(redfish::registries::base::Index::arraySizeTooLong, 1839600af5f1SAppaRao Puli std::to_array<std::string_view>({property, valStr})); 1840600af5f1SAppaRao Puli } 1841600af5f1SAppaRao Puli 1842600af5f1SAppaRao Puli void arraySizeTooLong(crow::Response& res, std::string_view property, 1843600af5f1SAppaRao Puli uint64_t length) 1844600af5f1SAppaRao Puli { 184599bf0262SDivya Jyoti res.result(boost::beast::http::status::bad_request); 1846600af5f1SAppaRao Puli addMessageToErrorJson(res.jsonValue, arraySizeTooLong(property, length)); 1847600af5f1SAppaRao Puli } 1848600af5f1SAppaRao Puli 184944c70412SEd Tanous void invalidUpload(crow::Response& res, std::string_view arg1, 185044c70412SEd Tanous std::string_view arg2) 185144c70412SEd Tanous { 185244c70412SEd Tanous res.result(boost::beast::http::status::bad_request); 185344c70412SEd Tanous addMessageToErrorJson(res.jsonValue, invalidUpload(arg1, arg2)); 185444c70412SEd Tanous } 185544c70412SEd Tanous 185644c70412SEd Tanous /** 185744c70412SEd Tanous * @internal 18584cde5d90SJames Feist * @brief Formats Invalid File message into JSON 18594cde5d90SJames Feist * 18604cde5d90SJames Feist * See header file for more information 18614cde5d90SJames Feist * @endinternal 18624cde5d90SJames Feist */ 18631668ce6dSEd Tanous nlohmann::json invalidUpload(std::string_view arg1, std::string_view arg2) 18644cde5d90SJames Feist { 18651668ce6dSEd Tanous std::string msg = "Invalid file uploaded to "; 18661668ce6dSEd Tanous msg += arg1; 18671668ce6dSEd Tanous msg += ": "; 18681668ce6dSEd Tanous msg += arg2; 18691668ce6dSEd Tanous msg += "."; 1870613dabeaSEd Tanous 1871613dabeaSEd Tanous nlohmann::json::object_t ret; 1872613dabeaSEd Tanous ret["@odata.type"] = "/redfish/v1/$metadata#Message.v1_1_1.Message"; 1873613dabeaSEd Tanous ret["MessageId"] = "OpenBMC.0.2.InvalidUpload"; 1874613dabeaSEd Tanous ret["Message"] = std::move(msg); 1875613dabeaSEd Tanous nlohmann::json::array_t args; 1876ad539545SPatrick Williams args.emplace_back(arg1); 1877ad539545SPatrick Williams args.emplace_back(arg2); 1878613dabeaSEd Tanous ret["MessageArgs"] = std::move(args); 1879613dabeaSEd Tanous ret["MessageSeverity"] = "Warning"; 1880613dabeaSEd Tanous ret["Resolution"] = "None."; 1881613dabeaSEd Tanous return ret; 18824cde5d90SJames Feist } 1883ae688313SNan Zhou 1884f4c4dcf4SKowalski, Kamil } // namespace messages 1885f4c4dcf4SKowalski, Kamil 1886d425c6f6SEd Tanous } // namespace redfish 1887