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> 254a7fbefdSEd Tanous #include <boost/url/url_view_base.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 */ 2094a7fbefdSEd Tanous nlohmann::json resourceMissingAtURI(const boost::urls::url_view_base& 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 2154a7fbefdSEd Tanous void resourceMissingAtURI(crow::Response& res, 2164a7fbefdSEd Tanous const boost::urls::url_view_base& arg1) 217b5c07418SJames Feist { 218b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 219b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, resourceMissingAtURI(arg1)); 220f4c4dcf4SKowalski, Kamil } 221f4c4dcf4SKowalski, Kamil 222f4c4dcf4SKowalski, Kamil /** 223f4c4dcf4SKowalski, Kamil * @internal 224f4c4dcf4SKowalski, Kamil * @brief Formats ActionParameterValueFormatError message into JSON 225f4c4dcf4SKowalski, Kamil * 226f4c4dcf4SKowalski, Kamil * See header file for more information 227f4c4dcf4SKowalski, Kamil * @endinternal 228f4c4dcf4SKowalski, Kamil */ 229*bd79bce8SPatrick Williams nlohmann::json actionParameterValueFormatError( 230*bd79bce8SPatrick Williams const nlohmann::json& arg1, std::string_view arg2, std::string_view arg3) 2311abe55efSEd Tanous { 232*bd79bce8SPatrick Williams std::string arg1Str = 233*bd79bce8SPatrick Williams arg1.dump(2, ' ', true, 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 239*bd79bce8SPatrick Williams void actionParameterValueFormatError( 240*bd79bce8SPatrick Williams crow::Response& res, const nlohmann::json& arg1, std::string_view arg2, 2411668ce6dSEd Tanous std::string_view arg3) 242b5c07418SJames Feist { 243b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 244b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, 245b5c07418SJames Feist actionParameterValueFormatError(arg1, arg2, arg3)); 246f4c4dcf4SKowalski, Kamil } 247f4c4dcf4SKowalski, Kamil 248f4c4dcf4SKowalski, Kamil /** 249f4c4dcf4SKowalski, Kamil * @internal 2504ef82a15SAlex Schendel * @brief Formats ActionParameterValueNotInList message into JSON 2514ef82a15SAlex Schendel * 2524ef82a15SAlex Schendel * See header file for more information 2534ef82a15SAlex Schendel * @endinternal 2544ef82a15SAlex Schendel */ 255*bd79bce8SPatrick Williams nlohmann::json actionParameterValueNotInList( 256*bd79bce8SPatrick Williams std::string_view arg1, std::string_view arg2, std::string_view arg3) 2574ef82a15SAlex Schendel { 2584ef82a15SAlex Schendel return getLog( 2594ef82a15SAlex Schendel redfish::registries::base::Index::actionParameterValueNotInList, 2604ef82a15SAlex Schendel std::to_array({arg1, arg2, arg3})); 2614ef82a15SAlex Schendel } 2624ef82a15SAlex Schendel 2634ef82a15SAlex Schendel void actionParameterValueNotInList(crow::Response& res, std::string_view arg1, 2644ef82a15SAlex Schendel std::string_view arg2, std::string_view arg3) 2654ef82a15SAlex Schendel { 2664ef82a15SAlex Schendel res.result(boost::beast::http::status::bad_request); 2674ef82a15SAlex Schendel addMessageToErrorJson(res.jsonValue, 2684ef82a15SAlex Schendel actionParameterValueNotInList(arg1, arg2, arg3)); 2694ef82a15SAlex Schendel } 2704ef82a15SAlex Schendel 2714ef82a15SAlex Schendel /** 2724ef82a15SAlex Schendel * @internal 273f4c4dcf4SKowalski, Kamil * @brief Formats InternalError message into JSON 274f4c4dcf4SKowalski, Kamil * 275f4c4dcf4SKowalski, Kamil * See header file for more information 276f4c4dcf4SKowalski, Kamil * @endinternal 277f4c4dcf4SKowalski, Kamil */ 278d9fcfcc1SEd Tanous nlohmann::json internalError() 2791abe55efSEd Tanous { 280fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::internalError, {}); 281b5c07418SJames Feist } 282b5c07418SJames Feist 283d85418e3SPatrick Williams void internalError(crow::Response& res, const std::source_location location) 284b5c07418SJames Feist { 28562598e31SEd Tanous BMCWEB_LOG_CRITICAL("Internal Error {}({}:{}) `{}`: ", location.file_name(), 28662598e31SEd Tanous location.line(), location.column(), 28762598e31SEd Tanous location.function_name()); 288b5c07418SJames Feist res.result(boost::beast::http::status::internal_server_error); 289b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, internalError()); 290f12894f8SJason M. Bills } 291f12894f8SJason M. Bills 292f12894f8SJason M. Bills /** 293f12894f8SJason M. Bills * @internal 294f4c4dcf4SKowalski, Kamil * @brief Formats UnrecognizedRequestBody message into JSON 295f4c4dcf4SKowalski, Kamil * 296f4c4dcf4SKowalski, Kamil * See header file for more information 297f4c4dcf4SKowalski, Kamil * @endinternal 298f4c4dcf4SKowalski, Kamil */ 299d9fcfcc1SEd Tanous nlohmann::json unrecognizedRequestBody() 3001abe55efSEd Tanous { 301fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::unrecognizedRequestBody, 302fffb8c1fSEd Tanous {}); 303b5c07418SJames Feist } 304b5c07418SJames Feist 305b5c07418SJames Feist void unrecognizedRequestBody(crow::Response& res) 306b5c07418SJames Feist { 307b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 308b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, unrecognizedRequestBody()); 309f4c4dcf4SKowalski, Kamil } 310f4c4dcf4SKowalski, Kamil 311f4c4dcf4SKowalski, Kamil /** 312f4c4dcf4SKowalski, Kamil * @internal 313f4c4dcf4SKowalski, Kamil * @brief Formats ResourceAtUriUnauthorized message into JSON 314f4c4dcf4SKowalski, Kamil * 315f4c4dcf4SKowalski, Kamil * See header file for more information 316f4c4dcf4SKowalski, Kamil * @endinternal 317f4c4dcf4SKowalski, Kamil */ 3184a7fbefdSEd Tanous nlohmann::json resourceAtUriUnauthorized(const boost::urls::url_view_base& arg1, 3191668ce6dSEd Tanous std::string_view arg2) 3201abe55efSEd Tanous { 321079360aeSEd Tanous return getLog(redfish::registries::base::Index::resourceAtUriUnauthorized, 322079360aeSEd Tanous std::to_array<std::string_view>({arg1.buffer(), arg2})); 323b5c07418SJames Feist } 324b5c07418SJames Feist 3254a7fbefdSEd Tanous void resourceAtUriUnauthorized(crow::Response& res, 3264a7fbefdSEd Tanous const boost::urls::url_view_base& arg1, 3271668ce6dSEd Tanous std::string_view arg2) 328b5c07418SJames Feist { 329b5c07418SJames Feist res.result(boost::beast::http::status::unauthorized); 330b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, resourceAtUriUnauthorized(arg1, arg2)); 331f4c4dcf4SKowalski, Kamil } 332f4c4dcf4SKowalski, Kamil 333f4c4dcf4SKowalski, Kamil /** 334f4c4dcf4SKowalski, Kamil * @internal 335f4c4dcf4SKowalski, Kamil * @brief Formats ActionParameterUnknown message into JSON 336f4c4dcf4SKowalski, Kamil * 337f4c4dcf4SKowalski, Kamil * See header file for more information 338f4c4dcf4SKowalski, Kamil * @endinternal 339f4c4dcf4SKowalski, Kamil */ 3401668ce6dSEd Tanous nlohmann::json actionParameterUnknown(std::string_view arg1, 3411668ce6dSEd Tanous std::string_view arg2) 342b5c07418SJames Feist { 343fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::actionParameterUnknown, 3441668ce6dSEd Tanous std::to_array({arg1, arg2})); 345b5c07418SJames Feist } 346b5c07418SJames Feist 3471668ce6dSEd Tanous void actionParameterUnknown(crow::Response& res, std::string_view arg1, 3481668ce6dSEd Tanous std::string_view arg2) 3491abe55efSEd Tanous { 350f12894f8SJason M. Bills res.result(boost::beast::http::status::bad_request); 351b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, actionParameterUnknown(arg1, arg2)); 352f4c4dcf4SKowalski, Kamil } 353f4c4dcf4SKowalski, Kamil 354f4c4dcf4SKowalski, Kamil /** 355f4c4dcf4SKowalski, Kamil * @internal 356f4c4dcf4SKowalski, Kamil * @brief Formats ResourceCannotBeDeleted message into JSON 357f4c4dcf4SKowalski, Kamil * 358f4c4dcf4SKowalski, Kamil * See header file for more information 359f4c4dcf4SKowalski, Kamil * @endinternal 360f4c4dcf4SKowalski, Kamil */ 361d9fcfcc1SEd Tanous nlohmann::json resourceCannotBeDeleted() 3621abe55efSEd Tanous { 363fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::resourceCannotBeDeleted, 364fffb8c1fSEd Tanous {}); 365b5c07418SJames Feist } 366b5c07418SJames Feist 367b5c07418SJames Feist void resourceCannotBeDeleted(crow::Response& res) 368b5c07418SJames Feist { 36944c70412SEd Tanous res.result(boost::beast::http::status::method_not_allowed); 370b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, resourceCannotBeDeleted()); 371f4c4dcf4SKowalski, Kamil } 372f4c4dcf4SKowalski, Kamil 373f4c4dcf4SKowalski, Kamil /** 374f4c4dcf4SKowalski, Kamil * @internal 375f4c4dcf4SKowalski, Kamil * @brief Formats PropertyDuplicate message into JSON 376f4c4dcf4SKowalski, Kamil * 377f4c4dcf4SKowalski, Kamil * See header file for more information 378f4c4dcf4SKowalski, Kamil * @endinternal 379f4c4dcf4SKowalski, Kamil */ 3801668ce6dSEd Tanous nlohmann::json propertyDuplicate(std::string_view arg1) 3811abe55efSEd Tanous { 382fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::propertyDuplicate, 3831668ce6dSEd Tanous std::to_array({arg1})); 384b5c07418SJames Feist } 385b5c07418SJames Feist 3861668ce6dSEd Tanous void propertyDuplicate(crow::Response& res, std::string_view arg1) 387b5c07418SJames Feist { 388b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 389b5c07418SJames Feist addMessageToJson(res.jsonValue, propertyDuplicate(arg1), arg1); 390f4c4dcf4SKowalski, Kamil } 391f4c4dcf4SKowalski, Kamil 392f4c4dcf4SKowalski, Kamil /** 393f4c4dcf4SKowalski, Kamil * @internal 394f4c4dcf4SKowalski, Kamil * @brief Formats ServiceTemporarilyUnavailable message into JSON 395f4c4dcf4SKowalski, Kamil * 396f4c4dcf4SKowalski, Kamil * See header file for more information 397f4c4dcf4SKowalski, Kamil * @endinternal 398f4c4dcf4SKowalski, Kamil */ 3991668ce6dSEd Tanous nlohmann::json serviceTemporarilyUnavailable(std::string_view arg1) 4001abe55efSEd Tanous { 401b6cd31e1SEd Tanous return getLog( 402fffb8c1fSEd Tanous redfish::registries::base::Index::serviceTemporarilyUnavailable, 4031668ce6dSEd Tanous std::to_array({arg1})); 404b5c07418SJames Feist } 405b5c07418SJames Feist 4061668ce6dSEd Tanous void serviceTemporarilyUnavailable(crow::Response& res, std::string_view arg1) 407b5c07418SJames Feist { 408d9f6c621SEd Tanous res.addHeader(boost::beast::http::field::retry_after, arg1); 409b5c07418SJames Feist res.result(boost::beast::http::status::service_unavailable); 410b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, serviceTemporarilyUnavailable(arg1)); 411f4c4dcf4SKowalski, Kamil } 412f4c4dcf4SKowalski, Kamil 413f4c4dcf4SKowalski, Kamil /** 414f4c4dcf4SKowalski, Kamil * @internal 415f4c4dcf4SKowalski, Kamil * @brief Formats ResourceAlreadyExists message into JSON 416f4c4dcf4SKowalski, Kamil * 417f4c4dcf4SKowalski, Kamil * See header file for more information 418f4c4dcf4SKowalski, Kamil * @endinternal 419f4c4dcf4SKowalski, Kamil */ 420*bd79bce8SPatrick Williams nlohmann::json resourceAlreadyExists( 421*bd79bce8SPatrick Williams std::string_view arg1, std::string_view arg2, std::string_view arg3) 4221abe55efSEd Tanous { 423fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::resourceAlreadyExists, 4241668ce6dSEd Tanous std::to_array({arg1, arg2, arg3})); 425b5c07418SJames Feist } 426b5c07418SJames Feist 4271668ce6dSEd Tanous void resourceAlreadyExists(crow::Response& res, std::string_view arg1, 4281668ce6dSEd Tanous std::string_view arg2, std::string_view arg3) 429b5c07418SJames Feist { 430b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 431b5c07418SJames Feist addMessageToJson(res.jsonValue, resourceAlreadyExists(arg1, arg2, arg3), 432a08b46ccSJason M. Bills arg2); 433f4c4dcf4SKowalski, Kamil } 434f4c4dcf4SKowalski, Kamil 435f4c4dcf4SKowalski, Kamil /** 436f4c4dcf4SKowalski, Kamil * @internal 437f4c4dcf4SKowalski, Kamil * @brief Formats AccountForSessionNoLongerExists message into JSON 438f4c4dcf4SKowalski, Kamil * 439f4c4dcf4SKowalski, Kamil * See header file for more information 440f4c4dcf4SKowalski, Kamil * @endinternal 441f4c4dcf4SKowalski, Kamil */ 442d9fcfcc1SEd Tanous nlohmann::json accountForSessionNoLongerExists() 4431abe55efSEd Tanous { 444fffb8c1fSEd Tanous return getLog( 445fffb8c1fSEd Tanous redfish::registries::base::Index::accountForSessionNoLongerExists, {}); 446b5c07418SJames Feist } 447b5c07418SJames Feist 448b5c07418SJames Feist void accountForSessionNoLongerExists(crow::Response& res) 449b5c07418SJames Feist { 450b5c07418SJames Feist res.result(boost::beast::http::status::forbidden); 451b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, accountForSessionNoLongerExists()); 452f4c4dcf4SKowalski, Kamil } 453f4c4dcf4SKowalski, Kamil 454f4c4dcf4SKowalski, Kamil /** 455f4c4dcf4SKowalski, Kamil * @internal 456f4c4dcf4SKowalski, Kamil * @brief Formats CreateFailedMissingReqProperties message into JSON 457f4c4dcf4SKowalski, Kamil * 458f4c4dcf4SKowalski, Kamil * See header file for more information 459f4c4dcf4SKowalski, Kamil * @endinternal 460f4c4dcf4SKowalski, Kamil */ 4611668ce6dSEd Tanous nlohmann::json createFailedMissingReqProperties(std::string_view arg1) 4621abe55efSEd Tanous { 463fffb8c1fSEd Tanous return getLog( 464fffb8c1fSEd Tanous redfish::registries::base::Index::createFailedMissingReqProperties, 4651668ce6dSEd Tanous std::to_array({arg1})); 466b5c07418SJames Feist } 467b5c07418SJames Feist 468b5c07418SJames Feist void createFailedMissingReqProperties(crow::Response& res, 4691668ce6dSEd Tanous std::string_view arg1) 470b5c07418SJames Feist { 471b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 472b5c07418SJames Feist addMessageToJson(res.jsonValue, createFailedMissingReqProperties(arg1), 473a08b46ccSJason M. Bills arg1); 474f12894f8SJason M. Bills } 475f12894f8SJason M. Bills 476f12894f8SJason M. Bills /** 477f12894f8SJason M. Bills * @internal 478f12894f8SJason M. Bills * @brief Formats PropertyValueFormatError message into JSON for the specified 479f12894f8SJason M. Bills * property 480f12894f8SJason M. Bills * 481f12894f8SJason M. Bills * See header file for more information 482f12894f8SJason M. Bills * @endinternal 483f12894f8SJason M. Bills */ 484f818b04dSEd Tanous nlohmann::json propertyValueFormatError(const nlohmann::json& arg1, 4851668ce6dSEd Tanous std::string_view arg2) 486f12894f8SJason M. Bills { 487*bd79bce8SPatrick Williams std::string arg1Str = 488*bd79bce8SPatrick Williams arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace); 489fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::propertyValueFormatError, 490f818b04dSEd Tanous std::to_array<std::string_view>({arg1Str, arg2})); 491b5c07418SJames Feist } 492b5c07418SJames Feist 493f818b04dSEd Tanous void propertyValueFormatError(crow::Response& res, const nlohmann::json& arg1, 4941668ce6dSEd Tanous std::string_view arg2) 495b5c07418SJames Feist { 496b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 497b5c07418SJames Feist addMessageToJson(res.jsonValue, propertyValueFormatError(arg1, arg2), arg2); 498f12894f8SJason M. Bills } 499f12894f8SJason M. Bills 500f12894f8SJason M. Bills /** 501f12894f8SJason M. Bills * @internal 502f12894f8SJason M. Bills * @brief Formats PropertyValueNotInList message into JSON for the specified 503f12894f8SJason M. Bills * property 504f12894f8SJason M. Bills * 505f12894f8SJason M. Bills * See header file for more information 506f12894f8SJason M. Bills * @endinternal 507f12894f8SJason M. Bills */ 508e2616cc5SEd Tanous 509e2616cc5SEd Tanous nlohmann::json propertyValueNotInList(const nlohmann::json& arg1, 5101668ce6dSEd Tanous std::string_view arg2) 511f12894f8SJason M. Bills { 512*bd79bce8SPatrick Williams std::string arg1Str = 513*bd79bce8SPatrick Williams arg1.dump(-1, ' ', true, nlohmann::json::error_handler_t::replace); 514fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::propertyValueNotInList, 515e2616cc5SEd Tanous std::to_array<std::string_view>({arg1Str, arg2})); 516b5c07418SJames Feist } 517b5c07418SJames Feist 518e2616cc5SEd Tanous void propertyValueNotInList(crow::Response& res, const nlohmann::json& arg1, 5191668ce6dSEd Tanous std::string_view arg2) 520b5c07418SJames Feist { 521b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 522b5c07418SJames Feist addMessageToJson(res.jsonValue, propertyValueNotInList(arg1, arg2), arg2); 523f4c4dcf4SKowalski, Kamil } 524f4c4dcf4SKowalski, Kamil 525f4c4dcf4SKowalski, Kamil /** 526f4c4dcf4SKowalski, Kamil * @internal 527227a2b0aSJiaqing Zhao * @brief Formats PropertyValueOutOfRange message into JSON 528227a2b0aSJiaqing Zhao * 529227a2b0aSJiaqing Zhao * See header file for more information 530227a2b0aSJiaqing Zhao * @endinternal 531227a2b0aSJiaqing Zhao */ 53295b3ad73SEd Tanous nlohmann::json propertyValueOutOfRange(const nlohmann::json& arg1, 533227a2b0aSJiaqing Zhao std::string_view arg2) 534227a2b0aSJiaqing Zhao { 535*bd79bce8SPatrick Williams std::string arg1Str = 536*bd79bce8SPatrick Williams arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace); 537227a2b0aSJiaqing Zhao return getLog(redfish::registries::base::Index::propertyValueOutOfRange, 53895b3ad73SEd Tanous std::to_array<std::string_view>({arg1Str, arg2})); 539227a2b0aSJiaqing Zhao } 540227a2b0aSJiaqing Zhao 54195b3ad73SEd Tanous void propertyValueOutOfRange(crow::Response& res, const nlohmann::json& arg1, 542227a2b0aSJiaqing Zhao std::string_view arg2) 543227a2b0aSJiaqing Zhao { 544227a2b0aSJiaqing Zhao res.result(boost::beast::http::status::bad_request); 545227a2b0aSJiaqing Zhao addMessageToErrorJson(res.jsonValue, propertyValueOutOfRange(arg1, arg2)); 546227a2b0aSJiaqing Zhao } 547227a2b0aSJiaqing Zhao 548227a2b0aSJiaqing Zhao /** 549227a2b0aSJiaqing Zhao * @internal 550f4c4dcf4SKowalski, Kamil * @brief Formats ResourceAtUriInUnknownFormat message into JSON 551f4c4dcf4SKowalski, Kamil * 552f4c4dcf4SKowalski, Kamil * See header file for more information 553f4c4dcf4SKowalski, Kamil * @endinternal 554f4c4dcf4SKowalski, Kamil */ 5554a7fbefdSEd Tanous nlohmann::json 5564a7fbefdSEd Tanous resourceAtUriInUnknownFormat(const boost::urls::url_view_base& arg1) 5571abe55efSEd Tanous { 558b6cd31e1SEd Tanous return getLog( 559fffb8c1fSEd Tanous redfish::registries::base::Index::resourceAtUriInUnknownFormat, 560079360aeSEd Tanous std::to_array<std::string_view>({arg1.buffer()})); 561b5c07418SJames Feist } 562b5c07418SJames Feist 563ace85d60SEd Tanous void resourceAtUriInUnknownFormat(crow::Response& res, 5644a7fbefdSEd Tanous const boost::urls::url_view_base& arg1) 565b5c07418SJames Feist { 566b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 567b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, resourceAtUriInUnknownFormat(arg1)); 568f4c4dcf4SKowalski, Kamil } 569f4c4dcf4SKowalski, Kamil 570f4c4dcf4SKowalski, Kamil /** 571f4c4dcf4SKowalski, Kamil * @internal 57281856681SAsmitha Karunanithi * @brief Formats ServiceDisabled message into JSON 57381856681SAsmitha Karunanithi * 57481856681SAsmitha Karunanithi * See header file for more information 57581856681SAsmitha Karunanithi * @endinternal 57681856681SAsmitha Karunanithi */ 5771668ce6dSEd Tanous nlohmann::json serviceDisabled(std::string_view arg1) 57881856681SAsmitha Karunanithi { 579fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::serviceDisabled, 5801668ce6dSEd Tanous std::to_array({arg1})); 58181856681SAsmitha Karunanithi } 58281856681SAsmitha Karunanithi 5831668ce6dSEd Tanous void serviceDisabled(crow::Response& res, std::string_view arg1) 58481856681SAsmitha Karunanithi { 58581856681SAsmitha Karunanithi res.result(boost::beast::http::status::service_unavailable); 58681856681SAsmitha Karunanithi addMessageToErrorJson(res.jsonValue, serviceDisabled(arg1)); 58781856681SAsmitha Karunanithi } 58881856681SAsmitha Karunanithi 58981856681SAsmitha Karunanithi /** 59081856681SAsmitha Karunanithi * @internal 591f4c4dcf4SKowalski, Kamil * @brief Formats ServiceInUnknownState message into JSON 592f4c4dcf4SKowalski, Kamil * 593f4c4dcf4SKowalski, Kamil * See header file for more information 594f4c4dcf4SKowalski, Kamil * @endinternal 595f4c4dcf4SKowalski, Kamil */ 596d9fcfcc1SEd Tanous nlohmann::json serviceInUnknownState() 5971abe55efSEd Tanous { 598fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::serviceInUnknownState, {}); 599b5c07418SJames Feist } 600b5c07418SJames Feist 601b5c07418SJames Feist void serviceInUnknownState(crow::Response& res) 602b5c07418SJames Feist { 603b5c07418SJames Feist res.result(boost::beast::http::status::service_unavailable); 604b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, serviceInUnknownState()); 605f4c4dcf4SKowalski, Kamil } 606f4c4dcf4SKowalski, Kamil 607f4c4dcf4SKowalski, Kamil /** 608f4c4dcf4SKowalski, Kamil * @internal 609f4c4dcf4SKowalski, Kamil * @brief Formats EventSubscriptionLimitExceeded message into JSON 610f4c4dcf4SKowalski, Kamil * 611f4c4dcf4SKowalski, Kamil * See header file for more information 612f4c4dcf4SKowalski, Kamil * @endinternal 613f4c4dcf4SKowalski, Kamil */ 614d9fcfcc1SEd Tanous nlohmann::json eventSubscriptionLimitExceeded() 6151abe55efSEd Tanous { 616fffb8c1fSEd Tanous return getLog( 617fffb8c1fSEd Tanous redfish::registries::base::Index::eventSubscriptionLimitExceeded, {}); 618b5c07418SJames Feist } 619b5c07418SJames Feist 620b5c07418SJames Feist void eventSubscriptionLimitExceeded(crow::Response& res) 621b5c07418SJames Feist { 622789fdab3SEd Tanous res.result(boost::beast::http::status::service_unavailable); 623b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, eventSubscriptionLimitExceeded()); 624f4c4dcf4SKowalski, Kamil } 625f4c4dcf4SKowalski, Kamil 626f4c4dcf4SKowalski, Kamil /** 627f4c4dcf4SKowalski, Kamil * @internal 628f4c4dcf4SKowalski, Kamil * @brief Formats ActionParameterMissing message into JSON 629f4c4dcf4SKowalski, Kamil * 630f4c4dcf4SKowalski, Kamil * See header file for more information 631f4c4dcf4SKowalski, Kamil * @endinternal 632f4c4dcf4SKowalski, Kamil */ 6331668ce6dSEd Tanous nlohmann::json actionParameterMissing(std::string_view arg1, 6341668ce6dSEd Tanous std::string_view arg2) 6351abe55efSEd Tanous { 636fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::actionParameterMissing, 6371668ce6dSEd Tanous std::to_array({arg1, arg2})); 638b5c07418SJames Feist } 639b5c07418SJames Feist 6401668ce6dSEd Tanous void actionParameterMissing(crow::Response& res, std::string_view arg1, 6411668ce6dSEd Tanous std::string_view arg2) 642b5c07418SJames Feist { 643b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 644b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, actionParameterMissing(arg1, arg2)); 645f4c4dcf4SKowalski, Kamil } 646f4c4dcf4SKowalski, Kamil 647f4c4dcf4SKowalski, Kamil /** 648f4c4dcf4SKowalski, Kamil * @internal 649f4c4dcf4SKowalski, Kamil * @brief Formats StringValueTooLong message into JSON 650f4c4dcf4SKowalski, Kamil * 651f4c4dcf4SKowalski, Kamil * See header file for more information 652f4c4dcf4SKowalski, Kamil * @endinternal 653f4c4dcf4SKowalski, Kamil */ 6541668ce6dSEd Tanous nlohmann::json stringValueTooLong(std::string_view arg1, int arg2) 6551abe55efSEd Tanous { 656b6cd31e1SEd Tanous std::string arg2String = std::to_string(arg2); 657fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::stringValueTooLong, 6581668ce6dSEd Tanous std::to_array({arg1, std::string_view(arg2String)})); 659b5c07418SJames Feist } 660b5c07418SJames Feist 6611668ce6dSEd Tanous void stringValueTooLong(crow::Response& res, std::string_view arg1, int arg2) 662b5c07418SJames Feist { 663b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 664b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, stringValueTooLong(arg1, arg2)); 665f4c4dcf4SKowalski, Kamil } 666f4c4dcf4SKowalski, Kamil 667f4c4dcf4SKowalski, Kamil /** 668f4c4dcf4SKowalski, Kamil * @internal 669cc9139ecSJason M. Bills * @brief Formats SessionTerminated message into JSON 670cc9139ecSJason M. Bills * 671cc9139ecSJason M. Bills * See header file for more information 672cc9139ecSJason M. Bills * @endinternal 673cc9139ecSJason M. Bills */ 674d9fcfcc1SEd Tanous nlohmann::json sessionTerminated() 675cc9139ecSJason M. Bills { 676fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::sessionTerminated, {}); 677b5c07418SJames Feist } 678b5c07418SJames Feist 679b5c07418SJames Feist void sessionTerminated(crow::Response& res) 680b5c07418SJames Feist { 681b5c07418SJames Feist res.result(boost::beast::http::status::ok); 682b5c07418SJames Feist addMessageToJsonRoot(res.jsonValue, sessionTerminated()); 683cc9139ecSJason M. Bills } 684cc9139ecSJason M. Bills 685cc9139ecSJason M. Bills /** 686cc9139ecSJason M. Bills * @internal 687684bb4b8SJason M. Bills * @brief Formats SubscriptionTerminated message into JSON 688684bb4b8SJason M. Bills * 689684bb4b8SJason M. Bills * See header file for more information 690684bb4b8SJason M. Bills * @endinternal 691684bb4b8SJason M. Bills */ 692d9fcfcc1SEd Tanous nlohmann::json subscriptionTerminated() 693684bb4b8SJason M. Bills { 694fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::subscriptionTerminated, {}); 695684bb4b8SJason M. Bills } 696684bb4b8SJason M. Bills 697684bb4b8SJason M. Bills void subscriptionTerminated(crow::Response& res) 698684bb4b8SJason M. Bills { 699684bb4b8SJason M. Bills res.result(boost::beast::http::status::ok); 700684bb4b8SJason M. Bills addMessageToJsonRoot(res.jsonValue, subscriptionTerminated()); 701684bb4b8SJason M. Bills } 702684bb4b8SJason M. Bills 703684bb4b8SJason M. Bills /** 704684bb4b8SJason M. Bills * @internal 705cc9139ecSJason M. Bills * @brief Formats ResourceTypeIncompatible message into JSON 706cc9139ecSJason M. Bills * 707cc9139ecSJason M. Bills * See header file for more information 708cc9139ecSJason M. Bills * @endinternal 709cc9139ecSJason M. Bills */ 7101668ce6dSEd Tanous nlohmann::json resourceTypeIncompatible(std::string_view arg1, 7111668ce6dSEd Tanous std::string_view arg2) 712cc9139ecSJason M. Bills { 713fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::resourceTypeIncompatible, 7141668ce6dSEd Tanous std::to_array({arg1, arg2})); 715b5c07418SJames Feist } 716b5c07418SJames Feist 7171668ce6dSEd Tanous void resourceTypeIncompatible(crow::Response& res, std::string_view arg1, 7181668ce6dSEd Tanous std::string_view arg2) 719b5c07418SJames Feist { 720b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 721b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, resourceTypeIncompatible(arg1, arg2)); 722cc9139ecSJason M. Bills } 723cc9139ecSJason M. Bills 724cc9139ecSJason M. Bills /** 725cc9139ecSJason M. Bills * @internal 726684bb4b8SJason M. Bills * @brief Formats ResetRequired message into JSON 727684bb4b8SJason M. Bills * 728684bb4b8SJason M. Bills * See header file for more information 729684bb4b8SJason M. Bills * @endinternal 730684bb4b8SJason M. Bills */ 7314a7fbefdSEd Tanous nlohmann::json resetRequired(const boost::urls::url_view_base& arg1, 7324a7fbefdSEd Tanous 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 7384a7fbefdSEd Tanous void resetRequired(crow::Response& res, const boost::urls::url_view_base& 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 */ 812*bd79bce8SPatrick Williams nlohmann::json propertyValueResourceConflict( 813*bd79bce8SPatrick Williams std::string_view arg1, const nlohmann::json& arg2, 8144a7fbefdSEd Tanous const boost::urls::url_view_base& arg3) 8152a6af81cSRamesh Iyyar { 816*bd79bce8SPatrick Williams std::string arg2Str = 817*bd79bce8SPatrick Williams arg2.dump(2, ' ', true, 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, 8264a7fbefdSEd Tanous const boost::urls::url_view_base& 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 { 843*bd79bce8SPatrick Williams std::string arg2Str = 844*bd79bce8SPatrick Williams arg2.dump(2, ' ', true, 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 { 869*bd79bce8SPatrick Williams std::string arg2Str = 870*bd79bce8SPatrick Williams arg2.dump(2, ' ', true, 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 */ 8894a7fbefdSEd Tanous nlohmann::json resourceCreationConflict(const boost::urls::url_view_base& 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 8954a7fbefdSEd Tanous void resourceCreationConflict(crow::Response& res, 8964a7fbefdSEd Tanous const boost::urls::url_view_base& arg1) 897684bb4b8SJason M. Bills { 898684bb4b8SJason M. Bills res.result(boost::beast::http::status::bad_request); 899684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, resourceCreationConflict(arg1)); 900684bb4b8SJason M. Bills } 901684bb4b8SJason M. Bills 902684bb4b8SJason M. Bills /** 903684bb4b8SJason M. Bills * @internal 904684bb4b8SJason M. Bills * @brief Formats MaximumErrorsExceeded message into JSON 905684bb4b8SJason M. Bills * 906684bb4b8SJason M. Bills * See header file for more information 907684bb4b8SJason M. Bills * @endinternal 908684bb4b8SJason M. Bills */ 909d9fcfcc1SEd Tanous nlohmann::json maximumErrorsExceeded() 910684bb4b8SJason M. Bills { 911fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::maximumErrorsExceeded, {}); 912684bb4b8SJason M. Bills } 913684bb4b8SJason M. Bills 914684bb4b8SJason M. Bills void maximumErrorsExceeded(crow::Response& res) 915684bb4b8SJason M. Bills { 916684bb4b8SJason M. Bills res.result(boost::beast::http::status::internal_server_error); 917684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, maximumErrorsExceeded()); 918684bb4b8SJason M. Bills } 919684bb4b8SJason M. Bills 920684bb4b8SJason M. Bills /** 921684bb4b8SJason M. Bills * @internal 922684bb4b8SJason M. Bills * @brief Formats PreconditionFailed message into JSON 923684bb4b8SJason M. Bills * 924684bb4b8SJason M. Bills * See header file for more information 925684bb4b8SJason M. Bills * @endinternal 926684bb4b8SJason M. Bills */ 927d9fcfcc1SEd Tanous nlohmann::json preconditionFailed() 928684bb4b8SJason M. Bills { 929fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::preconditionFailed, {}); 930684bb4b8SJason M. Bills } 931684bb4b8SJason M. Bills 932684bb4b8SJason M. Bills void preconditionFailed(crow::Response& res) 933684bb4b8SJason M. Bills { 9344df1bee0SEd Tanous res.result(boost::beast::http::status::precondition_failed); 935684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, preconditionFailed()); 936684bb4b8SJason M. Bills } 937684bb4b8SJason M. Bills 938684bb4b8SJason M. Bills /** 939684bb4b8SJason M. Bills * @internal 940684bb4b8SJason M. Bills * @brief Formats PreconditionRequired message into JSON 941684bb4b8SJason M. Bills * 942684bb4b8SJason M. Bills * See header file for more information 943684bb4b8SJason M. Bills * @endinternal 944684bb4b8SJason M. Bills */ 945d9fcfcc1SEd Tanous nlohmann::json preconditionRequired() 946684bb4b8SJason M. Bills { 947fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::preconditionRequired, {}); 948684bb4b8SJason M. Bills } 949684bb4b8SJason M. Bills 950684bb4b8SJason M. Bills void preconditionRequired(crow::Response& res) 951684bb4b8SJason M. Bills { 952684bb4b8SJason M. Bills res.result(boost::beast::http::status::bad_request); 953684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, preconditionRequired()); 954684bb4b8SJason M. Bills } 955684bb4b8SJason M. Bills 956684bb4b8SJason M. Bills /** 957684bb4b8SJason M. Bills * @internal 958684bb4b8SJason M. Bills * @brief Formats OperationFailed message into JSON 959684bb4b8SJason M. Bills * 960684bb4b8SJason M. Bills * See header file for more information 961684bb4b8SJason M. Bills * @endinternal 962684bb4b8SJason M. Bills */ 963d9fcfcc1SEd Tanous nlohmann::json operationFailed() 964684bb4b8SJason M. Bills { 965fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::operationFailed, {}); 966684bb4b8SJason M. Bills } 967684bb4b8SJason M. Bills 968684bb4b8SJason M. Bills void operationFailed(crow::Response& res) 969684bb4b8SJason M. Bills { 9708868776eSEd Tanous res.result(boost::beast::http::status::bad_gateway); 971684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, operationFailed()); 972684bb4b8SJason M. Bills } 973684bb4b8SJason M. Bills 974684bb4b8SJason M. Bills /** 975684bb4b8SJason M. Bills * @internal 976684bb4b8SJason M. Bills * @brief Formats OperationTimeout message into JSON 977684bb4b8SJason M. Bills * 978684bb4b8SJason M. Bills * See header file for more information 979684bb4b8SJason M. Bills * @endinternal 980684bb4b8SJason M. Bills */ 981d9fcfcc1SEd Tanous nlohmann::json operationTimeout() 982684bb4b8SJason M. Bills { 983fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::operationTimeout, {}); 984684bb4b8SJason M. Bills } 985684bb4b8SJason M. Bills 986684bb4b8SJason M. Bills void operationTimeout(crow::Response& res) 987684bb4b8SJason M. Bills { 988684bb4b8SJason M. Bills res.result(boost::beast::http::status::internal_server_error); 989684bb4b8SJason M. Bills addMessageToErrorJson(res.jsonValue, operationTimeout()); 990684bb4b8SJason M. Bills } 991684bb4b8SJason M. Bills 992684bb4b8SJason M. Bills /** 993684bb4b8SJason M. Bills * @internal 994f12894f8SJason M. Bills * @brief Formats PropertyValueTypeError message into JSON for the specified 995f12894f8SJason M. Bills * property 996f12894f8SJason M. Bills * 997f12894f8SJason M. Bills * See header file for more information 998f12894f8SJason M. Bills * @endinternal 999f12894f8SJason M. Bills */ 10002e8c4bdaSEd Tanous nlohmann::json propertyValueTypeError(const nlohmann::json& arg1, 10011668ce6dSEd Tanous std::string_view arg2) 1002f12894f8SJason M. Bills { 1003*bd79bce8SPatrick Williams std::string arg1Str = 1004*bd79bce8SPatrick Williams arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace); 1005fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::propertyValueTypeError, 10062e8c4bdaSEd Tanous std::to_array<std::string_view>({arg1Str, arg2})); 1007b5c07418SJames Feist } 1008b5c07418SJames Feist 10092e8c4bdaSEd Tanous void propertyValueTypeError(crow::Response& res, const nlohmann::json& arg1, 10101668ce6dSEd Tanous std::string_view arg2) 1011b5c07418SJames Feist { 1012b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1013b5c07418SJames Feist addMessageToJson(res.jsonValue, propertyValueTypeError(arg1, arg2), arg2); 1014f4c4dcf4SKowalski, Kamil } 1015f4c4dcf4SKowalski, Kamil 1016f4c4dcf4SKowalski, Kamil /** 1017f4c4dcf4SKowalski, Kamil * @internal 1018b6cd31e1SEd Tanous * @brief Formats ResourceNotFound message into JSONd 1019f4c4dcf4SKowalski, Kamil * 1020f4c4dcf4SKowalski, Kamil * See header file for more information 1021f4c4dcf4SKowalski, Kamil * @endinternal 1022f4c4dcf4SKowalski, Kamil */ 10231668ce6dSEd Tanous nlohmann::json resourceNotFound(std::string_view arg1, std::string_view arg2) 10241abe55efSEd Tanous { 1025fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::resourceNotFound, 10261668ce6dSEd Tanous std::to_array({arg1, arg2})); 1027b5c07418SJames Feist } 1028b5c07418SJames Feist 10291668ce6dSEd Tanous void resourceNotFound(crow::Response& res, std::string_view arg1, 10301668ce6dSEd Tanous std::string_view arg2) 1031b5c07418SJames Feist { 1032b5c07418SJames Feist res.result(boost::beast::http::status::not_found); 1033b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, resourceNotFound(arg1, arg2)); 1034f4c4dcf4SKowalski, Kamil } 1035f4c4dcf4SKowalski, Kamil 1036f4c4dcf4SKowalski, Kamil /** 1037f4c4dcf4SKowalski, Kamil * @internal 1038f4c4dcf4SKowalski, Kamil * @brief Formats CouldNotEstablishConnection message into JSON 1039f4c4dcf4SKowalski, Kamil * 1040f4c4dcf4SKowalski, Kamil * See header file for more information 1041f4c4dcf4SKowalski, Kamil * @endinternal 1042f4c4dcf4SKowalski, Kamil */ 10434a7fbefdSEd Tanous nlohmann::json 10444a7fbefdSEd Tanous couldNotEstablishConnection(const boost::urls::url_view_base& arg1) 10451abe55efSEd Tanous { 1046fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::couldNotEstablishConnection, 1047079360aeSEd Tanous std::to_array<std::string_view>({arg1.buffer()})); 1048b5c07418SJames Feist } 1049b5c07418SJames Feist 1050ace85d60SEd Tanous void couldNotEstablishConnection(crow::Response& res, 10514a7fbefdSEd Tanous const boost::urls::url_view_base& arg1) 1052b5c07418SJames Feist { 1053b5c07418SJames Feist res.result(boost::beast::http::status::not_found); 1054b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, couldNotEstablishConnection(arg1)); 1055f4c4dcf4SKowalski, Kamil } 1056f4c4dcf4SKowalski, Kamil 1057f4c4dcf4SKowalski, Kamil /** 1058f4c4dcf4SKowalski, Kamil * @internal 1059f12894f8SJason M. Bills * @brief Formats PropertyNotWritable message into JSON for the specified 1060f12894f8SJason M. Bills * property 1061f12894f8SJason M. Bills * 1062f12894f8SJason M. Bills * See header file for more information 1063f12894f8SJason M. Bills * @endinternal 1064f12894f8SJason M. Bills */ 10651668ce6dSEd Tanous nlohmann::json propertyNotWritable(std::string_view arg1) 1066f12894f8SJason M. Bills { 1067fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::propertyNotWritable, 10681668ce6dSEd Tanous std::to_array({arg1})); 1069b5c07418SJames Feist } 1070b5c07418SJames Feist 10711668ce6dSEd Tanous void propertyNotWritable(crow::Response& res, std::string_view arg1) 1072b5c07418SJames Feist { 1073b5c07418SJames Feist res.result(boost::beast::http::status::forbidden); 1074b5c07418SJames Feist addMessageToJson(res.jsonValue, propertyNotWritable(arg1), arg1); 1075f4c4dcf4SKowalski, Kamil } 1076f4c4dcf4SKowalski, Kamil 1077f4c4dcf4SKowalski, Kamil /** 1078f4c4dcf4SKowalski, Kamil * @internal 1079f4c4dcf4SKowalski, Kamil * @brief Formats QueryParameterValueTypeError message into JSON 1080f4c4dcf4SKowalski, Kamil * 1081f4c4dcf4SKowalski, Kamil * See header file for more information 1082f4c4dcf4SKowalski, Kamil * @endinternal 1083f4c4dcf4SKowalski, Kamil */ 108495b3ad73SEd Tanous nlohmann::json queryParameterValueTypeError(const nlohmann::json& arg1, 10851668ce6dSEd Tanous std::string_view arg2) 10861abe55efSEd Tanous { 1087*bd79bce8SPatrick Williams std::string arg1Str = 1088*bd79bce8SPatrick Williams arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace); 1089b6cd31e1SEd Tanous return getLog( 1090fffb8c1fSEd Tanous redfish::registries::base::Index::queryParameterValueTypeError, 109195b3ad73SEd Tanous std::to_array<std::string_view>({arg1Str, arg2})); 1092b5c07418SJames Feist } 1093b5c07418SJames Feist 1094*bd79bce8SPatrick Williams void queryParameterValueTypeError( 1095*bd79bce8SPatrick Williams crow::Response& res, const nlohmann::json& arg1, std::string_view arg2) 1096b5c07418SJames Feist { 1097b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1098b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, 1099b5c07418SJames Feist queryParameterValueTypeError(arg1, arg2)); 1100f4c4dcf4SKowalski, Kamil } 1101f4c4dcf4SKowalski, Kamil 1102f4c4dcf4SKowalski, Kamil /** 1103f4c4dcf4SKowalski, Kamil * @internal 1104f4c4dcf4SKowalski, Kamil * @brief Formats ServiceShuttingDown message into JSON 1105f4c4dcf4SKowalski, Kamil * 1106f4c4dcf4SKowalski, Kamil * See header file for more information 1107f4c4dcf4SKowalski, Kamil * @endinternal 1108f4c4dcf4SKowalski, Kamil */ 1109d9fcfcc1SEd Tanous nlohmann::json serviceShuttingDown() 11101abe55efSEd Tanous { 1111fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::serviceShuttingDown, {}); 1112b5c07418SJames Feist } 1113b5c07418SJames Feist 1114b5c07418SJames Feist void serviceShuttingDown(crow::Response& res) 1115b5c07418SJames Feist { 1116b5c07418SJames Feist res.result(boost::beast::http::status::service_unavailable); 1117b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, serviceShuttingDown()); 1118f4c4dcf4SKowalski, Kamil } 1119f4c4dcf4SKowalski, Kamil 1120f4c4dcf4SKowalski, Kamil /** 1121f4c4dcf4SKowalski, Kamil * @internal 1122f4c4dcf4SKowalski, Kamil * @brief Formats ActionParameterDuplicate message into JSON 1123f4c4dcf4SKowalski, Kamil * 1124f4c4dcf4SKowalski, Kamil * See header file for more information 1125f4c4dcf4SKowalski, Kamil * @endinternal 1126f4c4dcf4SKowalski, Kamil */ 11271668ce6dSEd Tanous nlohmann::json actionParameterDuplicate(std::string_view arg1, 11281668ce6dSEd Tanous std::string_view arg2) 11291abe55efSEd Tanous { 1130fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::actionParameterDuplicate, 11311668ce6dSEd Tanous std::to_array({arg1, arg2})); 1132b5c07418SJames Feist } 1133b5c07418SJames Feist 11341668ce6dSEd Tanous void actionParameterDuplicate(crow::Response& res, std::string_view arg1, 11351668ce6dSEd Tanous std::string_view arg2) 1136b5c07418SJames Feist { 1137b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1138b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, actionParameterDuplicate(arg1, arg2)); 1139f4c4dcf4SKowalski, Kamil } 1140f4c4dcf4SKowalski, Kamil 1141f4c4dcf4SKowalski, Kamil /** 1142f4c4dcf4SKowalski, Kamil * @internal 1143f4c4dcf4SKowalski, Kamil * @brief Formats ActionParameterNotSupported message into JSON 1144f4c4dcf4SKowalski, Kamil * 1145f4c4dcf4SKowalski, Kamil * See header file for more information 1146f4c4dcf4SKowalski, Kamil * @endinternal 1147f4c4dcf4SKowalski, Kamil */ 11481668ce6dSEd Tanous nlohmann::json actionParameterNotSupported(std::string_view arg1, 11491668ce6dSEd Tanous std::string_view arg2) 11501abe55efSEd Tanous { 1151fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::actionParameterNotSupported, 11521668ce6dSEd Tanous std::to_array({arg1, arg2})); 1153b5c07418SJames Feist } 1154b5c07418SJames Feist 11551668ce6dSEd Tanous void actionParameterNotSupported(crow::Response& res, std::string_view arg1, 11561668ce6dSEd Tanous std::string_view arg2) 1157b5c07418SJames Feist { 1158b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1159b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, 1160b5c07418SJames Feist actionParameterNotSupported(arg1, arg2)); 1161f4c4dcf4SKowalski, Kamil } 1162f4c4dcf4SKowalski, Kamil 1163f4c4dcf4SKowalski, Kamil /** 1164f4c4dcf4SKowalski, Kamil * @internal 1165f4c4dcf4SKowalski, Kamil * @brief Formats SourceDoesNotSupportProtocol message into JSON 1166f4c4dcf4SKowalski, Kamil * 1167f4c4dcf4SKowalski, Kamil * See header file for more information 1168f4c4dcf4SKowalski, Kamil * @endinternal 1169f4c4dcf4SKowalski, Kamil */ 1170*bd79bce8SPatrick Williams nlohmann::json sourceDoesNotSupportProtocol( 1171*bd79bce8SPatrick Williams const boost::urls::url_view_base& arg1, std::string_view arg2) 11721abe55efSEd Tanous { 1173b6cd31e1SEd Tanous return getLog( 1174fffb8c1fSEd Tanous redfish::registries::base::Index::sourceDoesNotSupportProtocol, 1175079360aeSEd Tanous std::to_array<std::string_view>({arg1.buffer(), arg2})); 1176b5c07418SJames Feist } 1177b5c07418SJames Feist 1178ace85d60SEd Tanous void sourceDoesNotSupportProtocol(crow::Response& res, 11794a7fbefdSEd Tanous const boost::urls::url_view_base& arg1, 11801668ce6dSEd Tanous std::string_view arg2) 1181b5c07418SJames Feist { 1182b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1183b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, 1184b5c07418SJames Feist sourceDoesNotSupportProtocol(arg1, arg2)); 1185f4c4dcf4SKowalski, Kamil } 1186f4c4dcf4SKowalski, Kamil 1187f4c4dcf4SKowalski, Kamil /** 1188f4c4dcf4SKowalski, Kamil * @internal 1189b4ad4c05SShantappa Teekappanavar * @brief Formats StrictAccountTypes message into JSON 1190b4ad4c05SShantappa Teekappanavar * 1191b4ad4c05SShantappa Teekappanavar * See header file for more information 1192b4ad4c05SShantappa Teekappanavar * @endinternal 1193b4ad4c05SShantappa Teekappanavar */ 1194b4ad4c05SShantappa Teekappanavar nlohmann::json strictAccountTypes(std::string_view arg1) 1195b4ad4c05SShantappa Teekappanavar { 1196b4ad4c05SShantappa Teekappanavar return getLog(redfish::registries::base::Index::strictAccountTypes, 1197b4ad4c05SShantappa Teekappanavar std::to_array({arg1})); 1198b4ad4c05SShantappa Teekappanavar } 1199b4ad4c05SShantappa Teekappanavar 1200b4ad4c05SShantappa Teekappanavar void strictAccountTypes(crow::Response& res, std::string_view arg1) 1201b4ad4c05SShantappa Teekappanavar { 1202b4ad4c05SShantappa Teekappanavar res.result(boost::beast::http::status::bad_request); 1203b4ad4c05SShantappa Teekappanavar addMessageToErrorJson(res.jsonValue, strictAccountTypes(arg1)); 1204b4ad4c05SShantappa Teekappanavar } 1205b4ad4c05SShantappa Teekappanavar 1206b4ad4c05SShantappa Teekappanavar /** 1207b4ad4c05SShantappa Teekappanavar * @internal 1208f4c4dcf4SKowalski, Kamil * @brief Formats AccountRemoved message into JSON 1209f4c4dcf4SKowalski, Kamil * 1210f4c4dcf4SKowalski, Kamil * See header file for more information 1211f4c4dcf4SKowalski, Kamil * @endinternal 1212f4c4dcf4SKowalski, Kamil */ 1213d9fcfcc1SEd Tanous nlohmann::json accountRemoved() 12141abe55efSEd Tanous { 1215fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::accountRemoved, {}); 1216b5c07418SJames Feist } 1217b5c07418SJames Feist 1218b5c07418SJames Feist void accountRemoved(crow::Response& res) 1219b5c07418SJames Feist { 1220b5c07418SJames Feist res.result(boost::beast::http::status::ok); 1221b5c07418SJames Feist addMessageToJsonRoot(res.jsonValue, accountRemoved()); 1222f4c4dcf4SKowalski, Kamil } 1223f4c4dcf4SKowalski, Kamil 1224f4c4dcf4SKowalski, Kamil /** 1225f4c4dcf4SKowalski, Kamil * @internal 1226f4c4dcf4SKowalski, Kamil * @brief Formats AccessDenied message into JSON 1227f4c4dcf4SKowalski, Kamil * 1228f4c4dcf4SKowalski, Kamil * See header file for more information 1229f4c4dcf4SKowalski, Kamil * @endinternal 1230f4c4dcf4SKowalski, Kamil */ 12314a7fbefdSEd Tanous nlohmann::json accessDenied(const boost::urls::url_view_base& arg1) 12321abe55efSEd Tanous { 1233fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::accessDenied, 1234079360aeSEd Tanous std::to_array<std::string_view>({arg1.buffer()})); 1235b5c07418SJames Feist } 1236b5c07418SJames Feist 12374a7fbefdSEd Tanous void accessDenied(crow::Response& res, const boost::urls::url_view_base& arg1) 1238b5c07418SJames Feist { 1239b5c07418SJames Feist res.result(boost::beast::http::status::forbidden); 1240b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, accessDenied(arg1)); 1241f4c4dcf4SKowalski, Kamil } 1242f4c4dcf4SKowalski, Kamil 1243f4c4dcf4SKowalski, Kamil /** 1244f4c4dcf4SKowalski, Kamil * @internal 1245f4c4dcf4SKowalski, Kamil * @brief Formats QueryNotSupported message into JSON 1246f4c4dcf4SKowalski, Kamil * 1247f4c4dcf4SKowalski, Kamil * See header file for more information 1248f4c4dcf4SKowalski, Kamil * @endinternal 1249f4c4dcf4SKowalski, Kamil */ 1250d9fcfcc1SEd Tanous nlohmann::json queryNotSupported() 12511abe55efSEd Tanous { 1252fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::queryNotSupported, {}); 1253b5c07418SJames Feist } 1254b5c07418SJames Feist 1255b5c07418SJames Feist void queryNotSupported(crow::Response& res) 1256b5c07418SJames Feist { 1257b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1258b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, queryNotSupported()); 1259f4c4dcf4SKowalski, Kamil } 1260f4c4dcf4SKowalski, Kamil 1261f4c4dcf4SKowalski, Kamil /** 1262f4c4dcf4SKowalski, Kamil * @internal 1263f4c4dcf4SKowalski, Kamil * @brief Formats CreateLimitReachedForResource message into JSON 1264f4c4dcf4SKowalski, Kamil * 1265f4c4dcf4SKowalski, Kamil * See header file for more information 1266f4c4dcf4SKowalski, Kamil * @endinternal 1267f4c4dcf4SKowalski, Kamil */ 1268d9fcfcc1SEd Tanous nlohmann::json createLimitReachedForResource() 12691abe55efSEd Tanous { 1270b6cd31e1SEd Tanous return getLog( 1271fffb8c1fSEd Tanous redfish::registries::base::Index::createLimitReachedForResource, {}); 1272b5c07418SJames Feist } 1273b5c07418SJames Feist 1274b5c07418SJames Feist void createLimitReachedForResource(crow::Response& res) 1275b5c07418SJames Feist { 1276b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1277b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, createLimitReachedForResource()); 1278f4c4dcf4SKowalski, Kamil } 1279f4c4dcf4SKowalski, Kamil 1280f4c4dcf4SKowalski, Kamil /** 1281f4c4dcf4SKowalski, Kamil * @internal 1282f4c4dcf4SKowalski, Kamil * @brief Formats GeneralError message into JSON 1283f4c4dcf4SKowalski, Kamil * 1284f4c4dcf4SKowalski, Kamil * See header file for more information 1285f4c4dcf4SKowalski, Kamil * @endinternal 1286f4c4dcf4SKowalski, Kamil */ 1287d9fcfcc1SEd Tanous nlohmann::json generalError() 12881abe55efSEd Tanous { 1289fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::generalError, {}); 1290b5c07418SJames Feist } 1291b5c07418SJames Feist 1292b5c07418SJames Feist void generalError(crow::Response& res) 1293b5c07418SJames Feist { 1294b5c07418SJames Feist res.result(boost::beast::http::status::internal_server_error); 1295b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, generalError()); 1296f4c4dcf4SKowalski, Kamil } 1297f4c4dcf4SKowalski, Kamil 1298f4c4dcf4SKowalski, Kamil /** 1299f4c4dcf4SKowalski, Kamil * @internal 1300f4c4dcf4SKowalski, Kamil * @brief Formats Success message into JSON 1301f4c4dcf4SKowalski, Kamil * 1302f4c4dcf4SKowalski, Kamil * See header file for more information 1303f4c4dcf4SKowalski, Kamil * @endinternal 1304f4c4dcf4SKowalski, Kamil */ 1305d9fcfcc1SEd Tanous nlohmann::json success() 13061abe55efSEd Tanous { 1307fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::success, {}); 1308b5c07418SJames Feist } 1309b5c07418SJames Feist 1310b5c07418SJames Feist void success(crow::Response& res) 1311b5c07418SJames Feist { 1312b5c07418SJames Feist // don't set res.result here because success is the default and any 1313b5c07418SJames Feist // error should overwrite the default 1314b5c07418SJames Feist addMessageToJsonRoot(res.jsonValue, success()); 1315f12894f8SJason M. Bills } 1316f12894f8SJason M. Bills 1317f12894f8SJason M. Bills /** 1318f12894f8SJason M. Bills * @internal 1319f4c4dcf4SKowalski, Kamil * @brief Formats Created message into JSON 1320f4c4dcf4SKowalski, Kamil * 1321f4c4dcf4SKowalski, Kamil * See header file for more information 1322f4c4dcf4SKowalski, Kamil * @endinternal 1323f4c4dcf4SKowalski, Kamil */ 1324d9fcfcc1SEd Tanous nlohmann::json created() 13251abe55efSEd Tanous { 1326fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::created, {}); 1327b5c07418SJames Feist } 1328b5c07418SJames Feist 1329b5c07418SJames Feist void created(crow::Response& res) 1330b5c07418SJames Feist { 1331b5c07418SJames Feist res.result(boost::beast::http::status::created); 1332b5c07418SJames Feist addMessageToJsonRoot(res.jsonValue, created()); 1333f4c4dcf4SKowalski, Kamil } 1334f4c4dcf4SKowalski, Kamil 1335f4c4dcf4SKowalski, Kamil /** 1336f4c4dcf4SKowalski, Kamil * @internal 1337cc9139ecSJason M. Bills * @brief Formats NoOperation message into JSON 1338cc9139ecSJason M. Bills * 1339cc9139ecSJason M. Bills * See header file for more information 1340cc9139ecSJason M. Bills * @endinternal 1341cc9139ecSJason M. Bills */ 1342d9fcfcc1SEd Tanous nlohmann::json noOperation() 1343cc9139ecSJason M. Bills { 1344fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::noOperation, {}); 1345b5c07418SJames Feist } 1346b5c07418SJames Feist 1347b5c07418SJames Feist void noOperation(crow::Response& res) 1348b5c07418SJames Feist { 1349b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1350b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, noOperation()); 1351cc9139ecSJason M. Bills } 1352cc9139ecSJason M. Bills 1353cc9139ecSJason M. Bills /** 1354cc9139ecSJason M. Bills * @internal 1355b5c07418SJames Feist * @brief Formats PropertyUnknown message into JSON for the specified 1356b5c07418SJames Feist * property 1357f12894f8SJason M. Bills * 1358f12894f8SJason M. Bills * See header file for more information 1359f12894f8SJason M. Bills * @endinternal 1360f12894f8SJason M. Bills */ 13611668ce6dSEd Tanous nlohmann::json propertyUnknown(std::string_view arg1) 1362b5c07418SJames Feist { 1363fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::propertyUnknown, 13641668ce6dSEd Tanous std::to_array({arg1})); 1365b5c07418SJames Feist } 1366b5c07418SJames Feist 13671668ce6dSEd Tanous void propertyUnknown(crow::Response& res, std::string_view arg1) 1368f12894f8SJason M. Bills { 1369f12894f8SJason M. Bills res.result(boost::beast::http::status::bad_request); 13707b1dd2f9SEd Tanous addMessageToErrorJson(res.jsonValue, propertyUnknown(arg1)); 1371f4c4dcf4SKowalski, Kamil } 1372f4c4dcf4SKowalski, Kamil 1373f4c4dcf4SKowalski, Kamil /** 1374f4c4dcf4SKowalski, Kamil * @internal 1375f4c4dcf4SKowalski, Kamil * @brief Formats NoValidSession message into JSON 1376f4c4dcf4SKowalski, Kamil * 1377f4c4dcf4SKowalski, Kamil * See header file for more information 1378f4c4dcf4SKowalski, Kamil * @endinternal 1379f4c4dcf4SKowalski, Kamil */ 1380d9fcfcc1SEd Tanous nlohmann::json noValidSession() 13811abe55efSEd Tanous { 1382fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::noValidSession, {}); 1383b5c07418SJames Feist } 1384b5c07418SJames Feist 1385b5c07418SJames Feist void noValidSession(crow::Response& res) 1386b5c07418SJames Feist { 1387b5c07418SJames Feist res.result(boost::beast::http::status::forbidden); 1388b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, noValidSession()); 1389f4c4dcf4SKowalski, Kamil } 1390f4c4dcf4SKowalski, Kamil 1391f4c4dcf4SKowalski, Kamil /** 1392f4c4dcf4SKowalski, Kamil * @internal 1393f4c4dcf4SKowalski, Kamil * @brief Formats InvalidObject message into JSON 1394f4c4dcf4SKowalski, Kamil * 1395f4c4dcf4SKowalski, Kamil * See header file for more information 1396f4c4dcf4SKowalski, Kamil * @endinternal 1397f4c4dcf4SKowalski, Kamil */ 13984a7fbefdSEd Tanous nlohmann::json invalidObject(const boost::urls::url_view_base& arg1) 13991abe55efSEd Tanous { 1400fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::invalidObject, 1401079360aeSEd Tanous std::to_array<std::string_view>({arg1.buffer()})); 1402b5c07418SJames Feist } 1403b5c07418SJames Feist 14044a7fbefdSEd Tanous void invalidObject(crow::Response& res, const boost::urls::url_view_base& arg1) 1405b5c07418SJames Feist { 1406b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1407b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, invalidObject(arg1)); 1408f4c4dcf4SKowalski, Kamil } 1409f4c4dcf4SKowalski, Kamil 1410f4c4dcf4SKowalski, Kamil /** 1411f4c4dcf4SKowalski, Kamil * @internal 1412f4c4dcf4SKowalski, Kamil * @brief Formats ResourceInStandby message into JSON 1413f4c4dcf4SKowalski, Kamil * 1414f4c4dcf4SKowalski, Kamil * See header file for more information 1415f4c4dcf4SKowalski, Kamil * @endinternal 1416f4c4dcf4SKowalski, Kamil */ 1417d9fcfcc1SEd Tanous nlohmann::json resourceInStandby() 14181abe55efSEd Tanous { 1419fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::resourceInStandby, {}); 1420b5c07418SJames Feist } 1421b5c07418SJames Feist 1422b5c07418SJames Feist void resourceInStandby(crow::Response& res) 1423b5c07418SJames Feist { 1424b5c07418SJames Feist res.result(boost::beast::http::status::service_unavailable); 1425b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, resourceInStandby()); 1426f4c4dcf4SKowalski, Kamil } 1427f4c4dcf4SKowalski, Kamil 1428f4c4dcf4SKowalski, Kamil /** 1429f4c4dcf4SKowalski, Kamil * @internal 1430f4c4dcf4SKowalski, Kamil * @brief Formats ActionParameterValueTypeError message into JSON 1431f4c4dcf4SKowalski, Kamil * 1432f4c4dcf4SKowalski, Kamil * See header file for more information 1433f4c4dcf4SKowalski, Kamil * @endinternal 1434f4c4dcf4SKowalski, Kamil */ 1435*bd79bce8SPatrick Williams nlohmann::json actionParameterValueTypeError( 1436*bd79bce8SPatrick Williams const nlohmann::json& arg1, std::string_view arg2, std::string_view arg3) 14371abe55efSEd Tanous { 1438*bd79bce8SPatrick Williams std::string arg1Str = 1439*bd79bce8SPatrick Williams arg1.dump(2, ' ', true, 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 14561827b4f1SAsmitha Karunanithi * @brief Formats actionParameterValueError message into JSON 14571827b4f1SAsmitha Karunanithi * 14581827b4f1SAsmitha Karunanithi * See header file for more information 14591827b4f1SAsmitha Karunanithi * @endinternal 14601827b4f1SAsmitha Karunanithi */ 14611827b4f1SAsmitha Karunanithi nlohmann::json actionParameterValueError(const nlohmann::json& arg1, 14621827b4f1SAsmitha Karunanithi std::string_view arg2) 14631827b4f1SAsmitha Karunanithi { 1464*bd79bce8SPatrick Williams std::string arg1Str = 1465*bd79bce8SPatrick Williams arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace); 14661827b4f1SAsmitha Karunanithi return getLog(redfish::registries::base::Index::actionParameterValueError, 14671827b4f1SAsmitha Karunanithi std::to_array<std::string_view>({arg1Str, arg2})); 14681827b4f1SAsmitha Karunanithi } 14691827b4f1SAsmitha Karunanithi 14701827b4f1SAsmitha Karunanithi void actionParameterValueError(crow::Response& res, const nlohmann::json& arg1, 14711827b4f1SAsmitha Karunanithi std::string_view arg2) 14721827b4f1SAsmitha Karunanithi { 14731827b4f1SAsmitha Karunanithi res.result(boost::beast::http::status::bad_request); 14741827b4f1SAsmitha Karunanithi addMessageToErrorJson(res.jsonValue, actionParameterValueError(arg1, arg2)); 14751827b4f1SAsmitha Karunanithi } 14761827b4f1SAsmitha Karunanithi 14771827b4f1SAsmitha Karunanithi /** 14781827b4f1SAsmitha 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 1611fa345c78SEd Tanous * @brief Formats EventBufferExceeded message into JSON 1612fa345c78SEd Tanous * 1613fa345c78SEd Tanous * See header file for more information 1614fa345c78SEd Tanous * @endinternal 1615fa345c78SEd Tanous */ 1616fa345c78SEd Tanous nlohmann::json eventBufferExceeded() 1617fa345c78SEd Tanous { 1618fa345c78SEd Tanous return getLog(redfish::registries::base::Index::eventBufferExceeded, {}); 1619fa345c78SEd Tanous } 1620fa345c78SEd Tanous 1621fa345c78SEd Tanous void eventBufferExceeded(crow::Response& res) 1622fa345c78SEd Tanous { 1623fa345c78SEd Tanous res.result(boost::beast::http::status::bad_request); 1624fa345c78SEd Tanous addMessageToErrorJson(res.jsonValue, eventBufferExceeded()); 1625fa345c78SEd Tanous } 1626fa345c78SEd Tanous 1627fa345c78SEd Tanous /** 1628fa345c78SEd Tanous * @internal 1629f4c4dcf4SKowalski, Kamil * @brief Formats InsufficientPrivilege message into JSON 1630f4c4dcf4SKowalski, Kamil * 1631f4c4dcf4SKowalski, Kamil * See header file for more information 1632f4c4dcf4SKowalski, Kamil * @endinternal 1633f4c4dcf4SKowalski, Kamil */ 1634d9fcfcc1SEd Tanous nlohmann::json insufficientPrivilege() 16351abe55efSEd Tanous { 1636fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::insufficientPrivilege, {}); 1637b5c07418SJames Feist } 1638b5c07418SJames Feist 1639b5c07418SJames Feist void insufficientPrivilege(crow::Response& res) 1640b5c07418SJames Feist { 1641b5c07418SJames Feist res.result(boost::beast::http::status::forbidden); 1642b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, insufficientPrivilege()); 1643f4c4dcf4SKowalski, Kamil } 1644f4c4dcf4SKowalski, Kamil 1645f4c4dcf4SKowalski, Kamil /** 1646f4c4dcf4SKowalski, Kamil * @internal 1647f4c4dcf4SKowalski, Kamil * @brief Formats PropertyValueModified message into JSON 1648f4c4dcf4SKowalski, Kamil * 1649f4c4dcf4SKowalski, Kamil * See header file for more information 1650f4c4dcf4SKowalski, Kamil * @endinternal 1651f4c4dcf4SKowalski, Kamil */ 16521668ce6dSEd Tanous nlohmann::json propertyValueModified(std::string_view arg1, 165395b3ad73SEd Tanous const nlohmann::json& arg2) 1654b5c07418SJames Feist { 1655*bd79bce8SPatrick Williams std::string arg2Str = 1656*bd79bce8SPatrick Williams arg2.dump(2, ' ', true, nlohmann::json::error_handler_t::replace); 1657fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::propertyValueModified, 165895b3ad73SEd Tanous std::to_array<std::string_view>({arg1, arg2Str})); 1659b5c07418SJames Feist } 1660b5c07418SJames Feist 16611668ce6dSEd Tanous void propertyValueModified(crow::Response& res, std::string_view arg1, 166295b3ad73SEd Tanous const nlohmann::json& arg2) 16631abe55efSEd Tanous { 1664f12894f8SJason M. Bills res.result(boost::beast::http::status::ok); 1665b5c07418SJames Feist addMessageToJson(res.jsonValue, propertyValueModified(arg1, arg2), arg1); 1666f4c4dcf4SKowalski, Kamil } 1667f4c4dcf4SKowalski, Kamil 1668f4c4dcf4SKowalski, Kamil /** 1669f4c4dcf4SKowalski, Kamil * @internal 1670f4c4dcf4SKowalski, Kamil * @brief Formats AccountNotModified message into JSON 1671f4c4dcf4SKowalski, Kamil * 1672f4c4dcf4SKowalski, Kamil * See header file for more information 1673f4c4dcf4SKowalski, Kamil * @endinternal 1674f4c4dcf4SKowalski, Kamil */ 1675d9fcfcc1SEd Tanous nlohmann::json accountNotModified() 16761abe55efSEd Tanous { 1677fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::accountNotModified, {}); 1678b5c07418SJames Feist } 1679b5c07418SJames Feist 1680b5c07418SJames Feist void accountNotModified(crow::Response& res) 1681b5c07418SJames Feist { 1682b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1683b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, accountNotModified()); 1684f4c4dcf4SKowalski, Kamil } 1685f4c4dcf4SKowalski, Kamil 1686f4c4dcf4SKowalski, Kamil /** 1687f4c4dcf4SKowalski, Kamil * @internal 1688f4c4dcf4SKowalski, Kamil * @brief Formats QueryParameterValueFormatError message into JSON 1689f4c4dcf4SKowalski, Kamil * 1690f4c4dcf4SKowalski, Kamil * See header file for more information 1691f4c4dcf4SKowalski, Kamil * @endinternal 1692f4c4dcf4SKowalski, Kamil */ 169395b3ad73SEd Tanous nlohmann::json queryParameterValueFormatError(const nlohmann::json& arg1, 16941668ce6dSEd Tanous std::string_view arg2) 16951abe55efSEd Tanous { 1696*bd79bce8SPatrick Williams std::string arg1Str = 1697*bd79bce8SPatrick Williams arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace); 1698fffb8c1fSEd Tanous return getLog( 1699fffb8c1fSEd Tanous redfish::registries::base::Index::queryParameterValueFormatError, 170095b3ad73SEd Tanous std::to_array<std::string_view>({arg1Str, arg2})); 1701b5c07418SJames Feist } 1702b5c07418SJames Feist 1703*bd79bce8SPatrick Williams void queryParameterValueFormatError( 1704*bd79bce8SPatrick Williams crow::Response& res, const nlohmann::json& arg1, std::string_view arg2) 1705b5c07418SJames Feist { 1706b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1707b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, 1708b5c07418SJames Feist queryParameterValueFormatError(arg1, arg2)); 1709f4c4dcf4SKowalski, Kamil } 1710f4c4dcf4SKowalski, Kamil 1711f4c4dcf4SKowalski, Kamil /** 1712f4c4dcf4SKowalski, Kamil * @internal 1713b5c07418SJames Feist * @brief Formats PropertyMissing message into JSON for the specified 1714b5c07418SJames Feist * property 1715f12894f8SJason M. Bills * 1716f12894f8SJason M. Bills * See header file for more information 1717f12894f8SJason M. Bills * @endinternal 1718f12894f8SJason M. Bills */ 17191668ce6dSEd Tanous nlohmann::json propertyMissing(std::string_view arg1) 1720f12894f8SJason M. Bills { 1721fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::propertyMissing, 17221668ce6dSEd Tanous std::to_array({arg1})); 1723b5c07418SJames Feist } 1724b5c07418SJames Feist 17251668ce6dSEd Tanous void propertyMissing(crow::Response& res, std::string_view arg1) 1726b5c07418SJames Feist { 1727b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1728b5c07418SJames Feist addMessageToJson(res.jsonValue, propertyMissing(arg1), arg1); 1729f4c4dcf4SKowalski, Kamil } 1730f4c4dcf4SKowalski, Kamil 1731f4c4dcf4SKowalski, Kamil /** 1732f4c4dcf4SKowalski, Kamil * @internal 1733f4c4dcf4SKowalski, Kamil * @brief Formats ResourceExhaustion message into JSON 1734f4c4dcf4SKowalski, Kamil * 1735f4c4dcf4SKowalski, Kamil * See header file for more information 1736f4c4dcf4SKowalski, Kamil * @endinternal 1737f4c4dcf4SKowalski, Kamil */ 17381668ce6dSEd Tanous nlohmann::json resourceExhaustion(std::string_view arg1) 17391abe55efSEd Tanous { 1740fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::resourceExhaustion, 17411668ce6dSEd Tanous std::to_array({arg1})); 1742b5c07418SJames Feist } 1743b5c07418SJames Feist 17441668ce6dSEd Tanous void resourceExhaustion(crow::Response& res, std::string_view arg1) 1745b5c07418SJames Feist { 1746b5c07418SJames Feist res.result(boost::beast::http::status::service_unavailable); 1747b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, resourceExhaustion(arg1)); 1748f4c4dcf4SKowalski, Kamil } 1749f4c4dcf4SKowalski, Kamil 1750f4c4dcf4SKowalski, Kamil /** 1751f4c4dcf4SKowalski, Kamil * @internal 1752f4c4dcf4SKowalski, Kamil * @brief Formats AccountModified message into JSON 1753f4c4dcf4SKowalski, Kamil * 1754f4c4dcf4SKowalski, Kamil * See header file for more information 1755f4c4dcf4SKowalski, Kamil * @endinternal 1756f4c4dcf4SKowalski, Kamil */ 1757d9fcfcc1SEd Tanous nlohmann::json accountModified() 17581abe55efSEd Tanous { 1759fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::accountModified, {}); 1760b5c07418SJames Feist } 1761b5c07418SJames Feist 1762b5c07418SJames Feist void accountModified(crow::Response& res) 1763b5c07418SJames Feist { 1764b5c07418SJames Feist res.result(boost::beast::http::status::ok); 1765b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, accountModified()); 1766f4c4dcf4SKowalski, Kamil } 1767f4c4dcf4SKowalski, Kamil 1768f4c4dcf4SKowalski, Kamil /** 1769f4c4dcf4SKowalski, Kamil * @internal 1770f4c4dcf4SKowalski, Kamil * @brief Formats QueryParameterOutOfRange message into JSON 1771f4c4dcf4SKowalski, Kamil * 1772f4c4dcf4SKowalski, Kamil * See header file for more information 1773f4c4dcf4SKowalski, Kamil * @endinternal 1774f4c4dcf4SKowalski, Kamil */ 1775*bd79bce8SPatrick Williams nlohmann::json queryParameterOutOfRange( 1776*bd79bce8SPatrick Williams std::string_view arg1, std::string_view arg2, std::string_view arg3) 17771abe55efSEd Tanous { 1778fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::queryParameterOutOfRange, 17791668ce6dSEd Tanous std::to_array({arg1, arg2, arg3})); 1780b5c07418SJames Feist } 1781b5c07418SJames Feist 17821668ce6dSEd Tanous void queryParameterOutOfRange(crow::Response& res, std::string_view arg1, 17831668ce6dSEd Tanous std::string_view arg2, std::string_view arg3) 1784b5c07418SJames Feist { 1785b5c07418SJames Feist res.result(boost::beast::http::status::bad_request); 1786b5c07418SJames Feist addMessageToErrorJson(res.jsonValue, 1787b5c07418SJames Feist queryParameterOutOfRange(arg1, arg2, arg3)); 1788f4c4dcf4SKowalski, Kamil } 1789f4c4dcf4SKowalski, Kamil 17904a7fbefdSEd Tanous nlohmann::json passwordChangeRequired(const boost::urls::url_view_base& arg1) 1791b6cd31e1SEd Tanous { 1792fffb8c1fSEd Tanous return getLog(redfish::registries::base::Index::passwordChangeRequired, 1793079360aeSEd Tanous std::to_array<std::string_view>({arg1.buffer()})); 1794b6cd31e1SEd Tanous } 1795b6cd31e1SEd Tanous 17963bf4e632SJoseph Reynolds /** 17973bf4e632SJoseph Reynolds * @internal 17983bf4e632SJoseph Reynolds * @brief Formats PasswordChangeRequired message into JSON 17993bf4e632SJoseph Reynolds * 18003bf4e632SJoseph Reynolds * See header file for more information 18013bf4e632SJoseph Reynolds * @endinternal 18023bf4e632SJoseph Reynolds */ 18034a7fbefdSEd Tanous void passwordChangeRequired(crow::Response& res, 18044a7fbefdSEd Tanous const boost::urls::url_view_base& arg1) 18053bf4e632SJoseph Reynolds { 1806b6cd31e1SEd Tanous messages::addMessageToJsonRoot(res.jsonValue, passwordChangeRequired(arg1)); 18073bf4e632SJoseph Reynolds } 18083bf4e632SJoseph Reynolds 18094cde5d90SJames Feist /** 18104cde5d90SJames Feist * @internal 1811ae688313SNan Zhou * @brief Formats InsufficientStorage message into JSON 1812ae688313SNan Zhou * 1813ae688313SNan Zhou * See header file for more information 1814ae688313SNan Zhou * @endinternal 1815ae688313SNan Zhou */ 1816ae688313SNan Zhou nlohmann::json insufficientStorage() 1817ae688313SNan Zhou { 1818ae688313SNan Zhou return getLog(redfish::registries::base::Index::insufficientStorage, {}); 1819ae688313SNan Zhou } 1820ae688313SNan Zhou 1821ae688313SNan Zhou void insufficientStorage(crow::Response& res) 1822ae688313SNan Zhou { 1823ae688313SNan Zhou res.result(boost::beast::http::status::insufficient_storage); 1824ae688313SNan Zhou addMessageToErrorJson(res.jsonValue, insufficientStorage()); 1825ae688313SNan Zhou } 1826ae688313SNan Zhou 1827ae688313SNan Zhou /** 1828ae688313SNan Zhou * @internal 182944c70412SEd Tanous * @brief Formats OperationNotAllowed message into JSON 183044c70412SEd Tanous * 183144c70412SEd Tanous * See header file for more information 183244c70412SEd Tanous * @endinternal 183344c70412SEd Tanous */ 183444c70412SEd Tanous nlohmann::json operationNotAllowed() 183544c70412SEd Tanous { 183644c70412SEd Tanous return getLog(redfish::registries::base::Index::operationNotAllowed, {}); 183744c70412SEd Tanous } 183844c70412SEd Tanous 183944c70412SEd Tanous void operationNotAllowed(crow::Response& res) 184044c70412SEd Tanous { 184144c70412SEd Tanous res.result(boost::beast::http::status::method_not_allowed); 184244c70412SEd Tanous addMessageToErrorJson(res.jsonValue, operationNotAllowed()); 184344c70412SEd Tanous } 184444c70412SEd Tanous 1845600af5f1SAppaRao Puli /** 1846600af5f1SAppaRao Puli * @internal 1847600af5f1SAppaRao Puli * @brief Formats ArraySizeTooLong message into JSON 1848600af5f1SAppaRao Puli * 1849600af5f1SAppaRao Puli * See header file for more information 1850600af5f1SAppaRao Puli * @endinternal 1851600af5f1SAppaRao Puli */ 1852600af5f1SAppaRao Puli nlohmann::json arraySizeTooLong(std::string_view property, uint64_t length) 1853600af5f1SAppaRao Puli { 1854600af5f1SAppaRao Puli std::string valStr = std::to_string(length); 1855600af5f1SAppaRao Puli return getLog(redfish::registries::base::Index::arraySizeTooLong, 1856600af5f1SAppaRao Puli std::to_array<std::string_view>({property, valStr})); 1857600af5f1SAppaRao Puli } 1858600af5f1SAppaRao Puli 1859600af5f1SAppaRao Puli void arraySizeTooLong(crow::Response& res, std::string_view property, 1860600af5f1SAppaRao Puli uint64_t length) 1861600af5f1SAppaRao Puli { 186299bf0262SDivya Jyoti res.result(boost::beast::http::status::bad_request); 1863600af5f1SAppaRao Puli addMessageToErrorJson(res.jsonValue, arraySizeTooLong(property, length)); 1864600af5f1SAppaRao Puli } 1865600af5f1SAppaRao Puli 186644c70412SEd Tanous void invalidUpload(crow::Response& res, std::string_view arg1, 186744c70412SEd Tanous std::string_view arg2) 186844c70412SEd Tanous { 186944c70412SEd Tanous res.result(boost::beast::http::status::bad_request); 187044c70412SEd Tanous addMessageToErrorJson(res.jsonValue, invalidUpload(arg1, arg2)); 187144c70412SEd Tanous } 187244c70412SEd Tanous 187344c70412SEd Tanous /** 187444c70412SEd Tanous * @internal 18754cde5d90SJames Feist * @brief Formats Invalid File message into JSON 18764cde5d90SJames Feist * 18774cde5d90SJames Feist * See header file for more information 18784cde5d90SJames Feist * @endinternal 18794cde5d90SJames Feist */ 18801668ce6dSEd Tanous nlohmann::json invalidUpload(std::string_view arg1, std::string_view arg2) 18814cde5d90SJames Feist { 18821668ce6dSEd Tanous std::string msg = "Invalid file uploaded to "; 18831668ce6dSEd Tanous msg += arg1; 18841668ce6dSEd Tanous msg += ": "; 18851668ce6dSEd Tanous msg += arg2; 18861668ce6dSEd Tanous msg += "."; 1887613dabeaSEd Tanous 1888613dabeaSEd Tanous nlohmann::json::object_t ret; 1889613dabeaSEd Tanous ret["@odata.type"] = "/redfish/v1/$metadata#Message.v1_1_1.Message"; 1890613dabeaSEd Tanous ret["MessageId"] = "OpenBMC.0.2.InvalidUpload"; 1891613dabeaSEd Tanous ret["Message"] = std::move(msg); 1892613dabeaSEd Tanous nlohmann::json::array_t args; 1893ad539545SPatrick Williams args.emplace_back(arg1); 1894ad539545SPatrick Williams args.emplace_back(arg2); 1895613dabeaSEd Tanous ret["MessageArgs"] = std::move(args); 1896613dabeaSEd Tanous ret["MessageSeverity"] = "Warning"; 1897613dabeaSEd Tanous ret["Resolution"] = "None."; 1898613dabeaSEd Tanous return ret; 18994cde5d90SJames Feist } 1900ae688313SNan Zhou 1901f4c4dcf4SKowalski, Kamil } // namespace messages 1902f4c4dcf4SKowalski, Kamil 1903d425c6f6SEd Tanous } // namespace redfish 1904