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 
addMessageToErrorJson(nlohmann::json & target,const nlohmann::json & message)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 
moveErrorsToErrorJson(nlohmann::json & target,nlohmann::json & source)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 
addMessageToJsonRoot(nlohmann::json & target,const nlohmann::json & message)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 
addMessageToJson(nlohmann::json & target,const nlohmann::json & message,std::string_view fieldPath)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 
getLog(redfish::registries::base::Index name,std::span<const std::string_view> args)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  */
resourceInUse()173d9fcfcc1SEd Tanous nlohmann::json resourceInUse()
1741abe55efSEd Tanous {
175fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceInUse, {});
176b5c07418SJames Feist }
177b5c07418SJames Feist 
resourceInUse(crow::Response & res)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  */
malformedJSON()191d9fcfcc1SEd Tanous nlohmann::json malformedJSON()
1921abe55efSEd Tanous {
193fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::malformedJSON, {});
194b5c07418SJames Feist }
195b5c07418SJames Feist 
malformedJSON(crow::Response & res)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  */
resourceMissingAtURI(const boost::urls::url_view_base & arg1)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 
resourceMissingAtURI(crow::Response & res,const boost::urls::url_view_base & arg1)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  */
actionParameterValueFormatError(const nlohmann::json & arg1,std::string_view arg2,std::string_view arg3)22995b3ad73SEd Tanous nlohmann::json actionParameterValueFormatError(const nlohmann::json& arg1,
2301668ce6dSEd Tanous                                                std::string_view arg2,
2311668ce6dSEd Tanous                                                std::string_view arg3)
2321abe55efSEd Tanous {
23395b3ad73SEd Tanous     std::string arg1Str = arg1.dump(2, ' ', true,
23495b3ad73SEd Tanous                                     nlohmann::json::error_handler_t::replace);
235fffb8c1fSEd Tanous     return getLog(
236fffb8c1fSEd Tanous         redfish::registries::base::Index::actionParameterValueFormatError,
23795b3ad73SEd Tanous         std::to_array<std::string_view>({arg1Str, arg2, arg3}));
238b5c07418SJames Feist }
239b5c07418SJames Feist 
actionParameterValueFormatError(crow::Response & res,const nlohmann::json & arg1,std::string_view arg2,std::string_view arg3)24095b3ad73SEd Tanous void actionParameterValueFormatError(crow::Response& res,
24195b3ad73SEd Tanous                                      const nlohmann::json& arg1,
2421668ce6dSEd Tanous                                      std::string_view arg2,
2431668ce6dSEd Tanous                                      std::string_view arg3)
244b5c07418SJames Feist {
245b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
246b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
247b5c07418SJames Feist                           actionParameterValueFormatError(arg1, arg2, arg3));
248f4c4dcf4SKowalski, Kamil }
249f4c4dcf4SKowalski, Kamil 
250f4c4dcf4SKowalski, Kamil /**
251f4c4dcf4SKowalski, Kamil  * @internal
2524ef82a15SAlex Schendel  * @brief Formats ActionParameterValueNotInList message into JSON
2534ef82a15SAlex Schendel  *
2544ef82a15SAlex Schendel  * See header file for more information
2554ef82a15SAlex Schendel  * @endinternal
2564ef82a15SAlex Schendel  */
actionParameterValueNotInList(std::string_view arg1,std::string_view arg2,std::string_view arg3)2574ef82a15SAlex Schendel nlohmann::json actionParameterValueNotInList(std::string_view arg1,
2584ef82a15SAlex Schendel                                              std::string_view arg2,
2594ef82a15SAlex Schendel                                              std::string_view arg3)
2604ef82a15SAlex Schendel {
2614ef82a15SAlex Schendel     return getLog(
2624ef82a15SAlex Schendel         redfish::registries::base::Index::actionParameterValueNotInList,
2634ef82a15SAlex Schendel         std::to_array({arg1, arg2, arg3}));
2644ef82a15SAlex Schendel }
2654ef82a15SAlex Schendel 
actionParameterValueNotInList(crow::Response & res,std::string_view arg1,std::string_view arg2,std::string_view arg3)2664ef82a15SAlex Schendel void actionParameterValueNotInList(crow::Response& res, std::string_view arg1,
2674ef82a15SAlex Schendel                                    std::string_view arg2, std::string_view arg3)
2684ef82a15SAlex Schendel {
2694ef82a15SAlex Schendel     res.result(boost::beast::http::status::bad_request);
2704ef82a15SAlex Schendel     addMessageToErrorJson(res.jsonValue,
2714ef82a15SAlex Schendel                           actionParameterValueNotInList(arg1, arg2, arg3));
2724ef82a15SAlex Schendel }
2734ef82a15SAlex Schendel 
2744ef82a15SAlex Schendel /**
2754ef82a15SAlex Schendel  * @internal
276f4c4dcf4SKowalski, Kamil  * @brief Formats InternalError message into JSON
277f4c4dcf4SKowalski, Kamil  *
278f4c4dcf4SKowalski, Kamil  * See header file for more information
279f4c4dcf4SKowalski, Kamil  * @endinternal
280f4c4dcf4SKowalski, Kamil  */
internalError()281d9fcfcc1SEd Tanous nlohmann::json internalError()
2821abe55efSEd Tanous {
283fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::internalError, {});
284b5c07418SJames Feist }
285b5c07418SJames Feist 
internalError(crow::Response & res,const std::source_location location)286d85418e3SPatrick Williams void internalError(crow::Response& res, const std::source_location location)
287b5c07418SJames Feist {
28862598e31SEd Tanous     BMCWEB_LOG_CRITICAL("Internal Error {}({}:{}) `{}`: ", location.file_name(),
28962598e31SEd Tanous                         location.line(), location.column(),
29062598e31SEd Tanous                         location.function_name());
291b5c07418SJames Feist     res.result(boost::beast::http::status::internal_server_error);
292b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, internalError());
293f12894f8SJason M. Bills }
294f12894f8SJason M. Bills 
295f12894f8SJason M. Bills /**
296f12894f8SJason M. Bills  * @internal
297f4c4dcf4SKowalski, Kamil  * @brief Formats UnrecognizedRequestBody message into JSON
298f4c4dcf4SKowalski, Kamil  *
299f4c4dcf4SKowalski, Kamil  * See header file for more information
300f4c4dcf4SKowalski, Kamil  * @endinternal
301f4c4dcf4SKowalski, Kamil  */
unrecognizedRequestBody()302d9fcfcc1SEd Tanous nlohmann::json unrecognizedRequestBody()
3031abe55efSEd Tanous {
304fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::unrecognizedRequestBody,
305fffb8c1fSEd Tanous                   {});
306b5c07418SJames Feist }
307b5c07418SJames Feist 
unrecognizedRequestBody(crow::Response & res)308b5c07418SJames Feist void unrecognizedRequestBody(crow::Response& res)
309b5c07418SJames Feist {
310b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
311b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, unrecognizedRequestBody());
312f4c4dcf4SKowalski, Kamil }
313f4c4dcf4SKowalski, Kamil 
314f4c4dcf4SKowalski, Kamil /**
315f4c4dcf4SKowalski, Kamil  * @internal
316f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceAtUriUnauthorized message into JSON
317f4c4dcf4SKowalski, Kamil  *
318f4c4dcf4SKowalski, Kamil  * See header file for more information
319f4c4dcf4SKowalski, Kamil  * @endinternal
320f4c4dcf4SKowalski, Kamil  */
resourceAtUriUnauthorized(const boost::urls::url_view_base & arg1,std::string_view arg2)3214a7fbefdSEd Tanous nlohmann::json resourceAtUriUnauthorized(const boost::urls::url_view_base& arg1,
3221668ce6dSEd Tanous                                          std::string_view arg2)
3231abe55efSEd Tanous {
324079360aeSEd Tanous     return getLog(redfish::registries::base::Index::resourceAtUriUnauthorized,
325079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer(), arg2}));
326b5c07418SJames Feist }
327b5c07418SJames Feist 
resourceAtUriUnauthorized(crow::Response & res,const boost::urls::url_view_base & arg1,std::string_view arg2)3284a7fbefdSEd Tanous void resourceAtUriUnauthorized(crow::Response& res,
3294a7fbefdSEd Tanous                                const boost::urls::url_view_base& arg1,
3301668ce6dSEd Tanous                                std::string_view arg2)
331b5c07418SJames Feist {
332b5c07418SJames Feist     res.result(boost::beast::http::status::unauthorized);
333b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceAtUriUnauthorized(arg1, arg2));
334f4c4dcf4SKowalski, Kamil }
335f4c4dcf4SKowalski, Kamil 
336f4c4dcf4SKowalski, Kamil /**
337f4c4dcf4SKowalski, Kamil  * @internal
338f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterUnknown message into JSON
339f4c4dcf4SKowalski, Kamil  *
340f4c4dcf4SKowalski, Kamil  * See header file for more information
341f4c4dcf4SKowalski, Kamil  * @endinternal
342f4c4dcf4SKowalski, Kamil  */
actionParameterUnknown(std::string_view arg1,std::string_view arg2)3431668ce6dSEd Tanous nlohmann::json actionParameterUnknown(std::string_view arg1,
3441668ce6dSEd Tanous                                       std::string_view arg2)
345b5c07418SJames Feist {
346fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::actionParameterUnknown,
3471668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
348b5c07418SJames Feist }
349b5c07418SJames Feist 
actionParameterUnknown(crow::Response & res,std::string_view arg1,std::string_view arg2)3501668ce6dSEd Tanous void actionParameterUnknown(crow::Response& res, std::string_view arg1,
3511668ce6dSEd Tanous                             std::string_view arg2)
3521abe55efSEd Tanous {
353f12894f8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
354b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, actionParameterUnknown(arg1, arg2));
355f4c4dcf4SKowalski, Kamil }
356f4c4dcf4SKowalski, Kamil 
357f4c4dcf4SKowalski, Kamil /**
358f4c4dcf4SKowalski, Kamil  * @internal
359f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceCannotBeDeleted message into JSON
360f4c4dcf4SKowalski, Kamil  *
361f4c4dcf4SKowalski, Kamil  * See header file for more information
362f4c4dcf4SKowalski, Kamil  * @endinternal
363f4c4dcf4SKowalski, Kamil  */
resourceCannotBeDeleted()364d9fcfcc1SEd Tanous nlohmann::json resourceCannotBeDeleted()
3651abe55efSEd Tanous {
366fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceCannotBeDeleted,
367fffb8c1fSEd Tanous                   {});
368b5c07418SJames Feist }
369b5c07418SJames Feist 
resourceCannotBeDeleted(crow::Response & res)370b5c07418SJames Feist void resourceCannotBeDeleted(crow::Response& res)
371b5c07418SJames Feist {
37244c70412SEd Tanous     res.result(boost::beast::http::status::method_not_allowed);
373b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceCannotBeDeleted());
374f4c4dcf4SKowalski, Kamil }
375f4c4dcf4SKowalski, Kamil 
376f4c4dcf4SKowalski, Kamil /**
377f4c4dcf4SKowalski, Kamil  * @internal
378f4c4dcf4SKowalski, Kamil  * @brief Formats PropertyDuplicate message into JSON
379f4c4dcf4SKowalski, Kamil  *
380f4c4dcf4SKowalski, Kamil  * See header file for more information
381f4c4dcf4SKowalski, Kamil  * @endinternal
382f4c4dcf4SKowalski, Kamil  */
propertyDuplicate(std::string_view arg1)3831668ce6dSEd Tanous nlohmann::json propertyDuplicate(std::string_view arg1)
3841abe55efSEd Tanous {
385fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyDuplicate,
3861668ce6dSEd Tanous                   std::to_array({arg1}));
387b5c07418SJames Feist }
388b5c07418SJames Feist 
propertyDuplicate(crow::Response & res,std::string_view arg1)3891668ce6dSEd Tanous void propertyDuplicate(crow::Response& res, std::string_view arg1)
390b5c07418SJames Feist {
391b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
392b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyDuplicate(arg1), arg1);
393f4c4dcf4SKowalski, Kamil }
394f4c4dcf4SKowalski, Kamil 
395f4c4dcf4SKowalski, Kamil /**
396f4c4dcf4SKowalski, Kamil  * @internal
397f4c4dcf4SKowalski, Kamil  * @brief Formats ServiceTemporarilyUnavailable message into JSON
398f4c4dcf4SKowalski, Kamil  *
399f4c4dcf4SKowalski, Kamil  * See header file for more information
400f4c4dcf4SKowalski, Kamil  * @endinternal
401f4c4dcf4SKowalski, Kamil  */
serviceTemporarilyUnavailable(std::string_view arg1)4021668ce6dSEd Tanous nlohmann::json serviceTemporarilyUnavailable(std::string_view arg1)
4031abe55efSEd Tanous {
404b6cd31e1SEd Tanous     return getLog(
405fffb8c1fSEd Tanous         redfish::registries::base::Index::serviceTemporarilyUnavailable,
4061668ce6dSEd Tanous         std::to_array({arg1}));
407b5c07418SJames Feist }
408b5c07418SJames Feist 
serviceTemporarilyUnavailable(crow::Response & res,std::string_view arg1)4091668ce6dSEd Tanous void serviceTemporarilyUnavailable(crow::Response& res, std::string_view arg1)
410b5c07418SJames Feist {
411d9f6c621SEd Tanous     res.addHeader(boost::beast::http::field::retry_after, arg1);
412b5c07418SJames Feist     res.result(boost::beast::http::status::service_unavailable);
413b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, serviceTemporarilyUnavailable(arg1));
414f4c4dcf4SKowalski, Kamil }
415f4c4dcf4SKowalski, Kamil 
416f4c4dcf4SKowalski, Kamil /**
417f4c4dcf4SKowalski, Kamil  * @internal
418f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceAlreadyExists message into JSON
419f4c4dcf4SKowalski, Kamil  *
420f4c4dcf4SKowalski, Kamil  * See header file for more information
421f4c4dcf4SKowalski, Kamil  * @endinternal
422f4c4dcf4SKowalski, Kamil  */
resourceAlreadyExists(std::string_view arg1,std::string_view arg2,std::string_view arg3)4231668ce6dSEd Tanous nlohmann::json resourceAlreadyExists(std::string_view arg1,
4241668ce6dSEd Tanous                                      std::string_view arg2,
4251668ce6dSEd Tanous                                      std::string_view arg3)
4261abe55efSEd Tanous {
427fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceAlreadyExists,
4281668ce6dSEd Tanous                   std::to_array({arg1, arg2, arg3}));
429b5c07418SJames Feist }
430b5c07418SJames Feist 
resourceAlreadyExists(crow::Response & res,std::string_view arg1,std::string_view arg2,std::string_view arg3)4311668ce6dSEd Tanous void resourceAlreadyExists(crow::Response& res, std::string_view arg1,
4321668ce6dSEd Tanous                            std::string_view arg2, std::string_view arg3)
433b5c07418SJames Feist {
434b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
435b5c07418SJames Feist     addMessageToJson(res.jsonValue, resourceAlreadyExists(arg1, arg2, arg3),
436a08b46ccSJason M. Bills                      arg2);
437f4c4dcf4SKowalski, Kamil }
438f4c4dcf4SKowalski, Kamil 
439f4c4dcf4SKowalski, Kamil /**
440f4c4dcf4SKowalski, Kamil  * @internal
441f4c4dcf4SKowalski, Kamil  * @brief Formats AccountForSessionNoLongerExists message into JSON
442f4c4dcf4SKowalski, Kamil  *
443f4c4dcf4SKowalski, Kamil  * See header file for more information
444f4c4dcf4SKowalski, Kamil  * @endinternal
445f4c4dcf4SKowalski, Kamil  */
accountForSessionNoLongerExists()446d9fcfcc1SEd Tanous nlohmann::json accountForSessionNoLongerExists()
4471abe55efSEd Tanous {
448fffb8c1fSEd Tanous     return getLog(
449fffb8c1fSEd Tanous         redfish::registries::base::Index::accountForSessionNoLongerExists, {});
450b5c07418SJames Feist }
451b5c07418SJames Feist 
accountForSessionNoLongerExists(crow::Response & res)452b5c07418SJames Feist void accountForSessionNoLongerExists(crow::Response& res)
453b5c07418SJames Feist {
454b5c07418SJames Feist     res.result(boost::beast::http::status::forbidden);
455b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, accountForSessionNoLongerExists());
456f4c4dcf4SKowalski, Kamil }
457f4c4dcf4SKowalski, Kamil 
458f4c4dcf4SKowalski, Kamil /**
459f4c4dcf4SKowalski, Kamil  * @internal
460f4c4dcf4SKowalski, Kamil  * @brief Formats CreateFailedMissingReqProperties message into JSON
461f4c4dcf4SKowalski, Kamil  *
462f4c4dcf4SKowalski, Kamil  * See header file for more information
463f4c4dcf4SKowalski, Kamil  * @endinternal
464f4c4dcf4SKowalski, Kamil  */
createFailedMissingReqProperties(std::string_view arg1)4651668ce6dSEd Tanous nlohmann::json createFailedMissingReqProperties(std::string_view arg1)
4661abe55efSEd Tanous {
467fffb8c1fSEd Tanous     return getLog(
468fffb8c1fSEd Tanous         redfish::registries::base::Index::createFailedMissingReqProperties,
4691668ce6dSEd Tanous         std::to_array({arg1}));
470b5c07418SJames Feist }
471b5c07418SJames Feist 
createFailedMissingReqProperties(crow::Response & res,std::string_view arg1)472b5c07418SJames Feist void createFailedMissingReqProperties(crow::Response& res,
4731668ce6dSEd Tanous                                       std::string_view arg1)
474b5c07418SJames Feist {
475b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
476b5c07418SJames Feist     addMessageToJson(res.jsonValue, createFailedMissingReqProperties(arg1),
477a08b46ccSJason M. Bills                      arg1);
478f12894f8SJason M. Bills }
479f12894f8SJason M. Bills 
480f12894f8SJason M. Bills /**
481f12894f8SJason M. Bills  * @internal
482f12894f8SJason M. Bills  * @brief Formats PropertyValueFormatError message into JSON for the specified
483f12894f8SJason M. Bills  * property
484f12894f8SJason M. Bills  *
485f12894f8SJason M. Bills  * See header file for more information
486f12894f8SJason M. Bills  * @endinternal
487f12894f8SJason M. Bills  */
propertyValueFormatError(const nlohmann::json & arg1,std::string_view arg2)488f818b04dSEd Tanous nlohmann::json propertyValueFormatError(const nlohmann::json& arg1,
4891668ce6dSEd Tanous                                         std::string_view arg2)
490f12894f8SJason M. Bills {
491f818b04dSEd Tanous     std::string arg1Str = arg1.dump(2, ' ', true,
492f818b04dSEd Tanous                                     nlohmann::json::error_handler_t::replace);
493fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyValueFormatError,
494f818b04dSEd Tanous                   std::to_array<std::string_view>({arg1Str, arg2}));
495b5c07418SJames Feist }
496b5c07418SJames Feist 
propertyValueFormatError(crow::Response & res,const nlohmann::json & arg1,std::string_view arg2)497f818b04dSEd Tanous void propertyValueFormatError(crow::Response& res, const nlohmann::json& arg1,
4981668ce6dSEd Tanous                               std::string_view arg2)
499b5c07418SJames Feist {
500b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
501b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyValueFormatError(arg1, arg2), arg2);
502f12894f8SJason M. Bills }
503f12894f8SJason M. Bills 
504f12894f8SJason M. Bills /**
505f12894f8SJason M. Bills  * @internal
506f12894f8SJason M. Bills  * @brief Formats PropertyValueNotInList message into JSON for the specified
507f12894f8SJason M. Bills  * property
508f12894f8SJason M. Bills  *
509f12894f8SJason M. Bills  * See header file for more information
510f12894f8SJason M. Bills  * @endinternal
511f12894f8SJason M. Bills  */
512e2616cc5SEd Tanous 
propertyValueNotInList(const nlohmann::json & arg1,std::string_view arg2)513e2616cc5SEd Tanous nlohmann::json propertyValueNotInList(const nlohmann::json& arg1,
5141668ce6dSEd Tanous                                       std::string_view arg2)
515f12894f8SJason M. Bills {
516e2616cc5SEd Tanous     std::string arg1Str = arg1.dump(-1, ' ', true,
517e2616cc5SEd Tanous                                     nlohmann::json::error_handler_t::replace);
518fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyValueNotInList,
519e2616cc5SEd Tanous                   std::to_array<std::string_view>({arg1Str, arg2}));
520b5c07418SJames Feist }
521b5c07418SJames Feist 
propertyValueNotInList(crow::Response & res,const nlohmann::json & arg1,std::string_view arg2)522e2616cc5SEd Tanous void propertyValueNotInList(crow::Response& res, const nlohmann::json& arg1,
5231668ce6dSEd Tanous                             std::string_view arg2)
524b5c07418SJames Feist {
525b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
526b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyValueNotInList(arg1, arg2), arg2);
527f4c4dcf4SKowalski, Kamil }
528f4c4dcf4SKowalski, Kamil 
529f4c4dcf4SKowalski, Kamil /**
530f4c4dcf4SKowalski, Kamil  * @internal
531227a2b0aSJiaqing Zhao  * @brief Formats PropertyValueOutOfRange message into JSON
532227a2b0aSJiaqing Zhao  *
533227a2b0aSJiaqing Zhao  * See header file for more information
534227a2b0aSJiaqing Zhao  * @endinternal
535227a2b0aSJiaqing Zhao  */
propertyValueOutOfRange(const nlohmann::json & arg1,std::string_view arg2)53695b3ad73SEd Tanous nlohmann::json propertyValueOutOfRange(const nlohmann::json& arg1,
537227a2b0aSJiaqing Zhao                                        std::string_view arg2)
538227a2b0aSJiaqing Zhao {
53995b3ad73SEd Tanous     std::string arg1Str = arg1.dump(2, ' ', true,
54095b3ad73SEd Tanous                                     nlohmann::json::error_handler_t::replace);
541227a2b0aSJiaqing Zhao     return getLog(redfish::registries::base::Index::propertyValueOutOfRange,
54295b3ad73SEd Tanous                   std::to_array<std::string_view>({arg1Str, arg2}));
543227a2b0aSJiaqing Zhao }
544227a2b0aSJiaqing Zhao 
propertyValueOutOfRange(crow::Response & res,const nlohmann::json & arg1,std::string_view arg2)54595b3ad73SEd Tanous void propertyValueOutOfRange(crow::Response& res, const nlohmann::json& arg1,
546227a2b0aSJiaqing Zhao                              std::string_view arg2)
547227a2b0aSJiaqing Zhao {
548227a2b0aSJiaqing Zhao     res.result(boost::beast::http::status::bad_request);
549227a2b0aSJiaqing Zhao     addMessageToErrorJson(res.jsonValue, propertyValueOutOfRange(arg1, arg2));
550227a2b0aSJiaqing Zhao }
551227a2b0aSJiaqing Zhao 
552227a2b0aSJiaqing Zhao /**
553227a2b0aSJiaqing Zhao  * @internal
554f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceAtUriInUnknownFormat message into JSON
555f4c4dcf4SKowalski, Kamil  *
556f4c4dcf4SKowalski, Kamil  * See header file for more information
557f4c4dcf4SKowalski, Kamil  * @endinternal
558f4c4dcf4SKowalski, Kamil  */
5594a7fbefdSEd Tanous nlohmann::json
resourceAtUriInUnknownFormat(const boost::urls::url_view_base & arg1)5604a7fbefdSEd Tanous     resourceAtUriInUnknownFormat(const boost::urls::url_view_base& arg1)
5611abe55efSEd Tanous {
562b6cd31e1SEd Tanous     return getLog(
563fffb8c1fSEd Tanous         redfish::registries::base::Index::resourceAtUriInUnknownFormat,
564079360aeSEd Tanous         std::to_array<std::string_view>({arg1.buffer()}));
565b5c07418SJames Feist }
566b5c07418SJames Feist 
resourceAtUriInUnknownFormat(crow::Response & res,const boost::urls::url_view_base & arg1)567ace85d60SEd Tanous void resourceAtUriInUnknownFormat(crow::Response& res,
5684a7fbefdSEd Tanous                                   const boost::urls::url_view_base& arg1)
569b5c07418SJames Feist {
570b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
571b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceAtUriInUnknownFormat(arg1));
572f4c4dcf4SKowalski, Kamil }
573f4c4dcf4SKowalski, Kamil 
574f4c4dcf4SKowalski, Kamil /**
575f4c4dcf4SKowalski, Kamil  * @internal
57681856681SAsmitha Karunanithi  * @brief Formats ServiceDisabled message into JSON
57781856681SAsmitha Karunanithi  *
57881856681SAsmitha Karunanithi  * See header file for more information
57981856681SAsmitha Karunanithi  * @endinternal
58081856681SAsmitha Karunanithi  */
serviceDisabled(std::string_view arg1)5811668ce6dSEd Tanous nlohmann::json serviceDisabled(std::string_view arg1)
58281856681SAsmitha Karunanithi {
583fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::serviceDisabled,
5841668ce6dSEd Tanous                   std::to_array({arg1}));
58581856681SAsmitha Karunanithi }
58681856681SAsmitha Karunanithi 
serviceDisabled(crow::Response & res,std::string_view arg1)5871668ce6dSEd Tanous void serviceDisabled(crow::Response& res, std::string_view arg1)
58881856681SAsmitha Karunanithi {
58981856681SAsmitha Karunanithi     res.result(boost::beast::http::status::service_unavailable);
59081856681SAsmitha Karunanithi     addMessageToErrorJson(res.jsonValue, serviceDisabled(arg1));
59181856681SAsmitha Karunanithi }
59281856681SAsmitha Karunanithi 
59381856681SAsmitha Karunanithi /**
59481856681SAsmitha Karunanithi  * @internal
595f4c4dcf4SKowalski, Kamil  * @brief Formats ServiceInUnknownState message into JSON
596f4c4dcf4SKowalski, Kamil  *
597f4c4dcf4SKowalski, Kamil  * See header file for more information
598f4c4dcf4SKowalski, Kamil  * @endinternal
599f4c4dcf4SKowalski, Kamil  */
serviceInUnknownState()600d9fcfcc1SEd Tanous nlohmann::json serviceInUnknownState()
6011abe55efSEd Tanous {
602fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::serviceInUnknownState, {});
603b5c07418SJames Feist }
604b5c07418SJames Feist 
serviceInUnknownState(crow::Response & res)605b5c07418SJames Feist void serviceInUnknownState(crow::Response& res)
606b5c07418SJames Feist {
607b5c07418SJames Feist     res.result(boost::beast::http::status::service_unavailable);
608b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, serviceInUnknownState());
609f4c4dcf4SKowalski, Kamil }
610f4c4dcf4SKowalski, Kamil 
611f4c4dcf4SKowalski, Kamil /**
612f4c4dcf4SKowalski, Kamil  * @internal
613f4c4dcf4SKowalski, Kamil  * @brief Formats EventSubscriptionLimitExceeded message into JSON
614f4c4dcf4SKowalski, Kamil  *
615f4c4dcf4SKowalski, Kamil  * See header file for more information
616f4c4dcf4SKowalski, Kamil  * @endinternal
617f4c4dcf4SKowalski, Kamil  */
eventSubscriptionLimitExceeded()618d9fcfcc1SEd Tanous nlohmann::json eventSubscriptionLimitExceeded()
6191abe55efSEd Tanous {
620fffb8c1fSEd Tanous     return getLog(
621fffb8c1fSEd Tanous         redfish::registries::base::Index::eventSubscriptionLimitExceeded, {});
622b5c07418SJames Feist }
623b5c07418SJames Feist 
eventSubscriptionLimitExceeded(crow::Response & res)624b5c07418SJames Feist void eventSubscriptionLimitExceeded(crow::Response& res)
625b5c07418SJames Feist {
626789fdab3SEd Tanous     res.result(boost::beast::http::status::service_unavailable);
627b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, eventSubscriptionLimitExceeded());
628f4c4dcf4SKowalski, Kamil }
629f4c4dcf4SKowalski, Kamil 
630f4c4dcf4SKowalski, Kamil /**
631f4c4dcf4SKowalski, Kamil  * @internal
632f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterMissing message into JSON
633f4c4dcf4SKowalski, Kamil  *
634f4c4dcf4SKowalski, Kamil  * See header file for more information
635f4c4dcf4SKowalski, Kamil  * @endinternal
636f4c4dcf4SKowalski, Kamil  */
actionParameterMissing(std::string_view arg1,std::string_view arg2)6371668ce6dSEd Tanous nlohmann::json actionParameterMissing(std::string_view arg1,
6381668ce6dSEd Tanous                                       std::string_view arg2)
6391abe55efSEd Tanous {
640fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::actionParameterMissing,
6411668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
642b5c07418SJames Feist }
643b5c07418SJames Feist 
actionParameterMissing(crow::Response & res,std::string_view arg1,std::string_view arg2)6441668ce6dSEd Tanous void actionParameterMissing(crow::Response& res, std::string_view arg1,
6451668ce6dSEd Tanous                             std::string_view arg2)
646b5c07418SJames Feist {
647b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
648b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, actionParameterMissing(arg1, arg2));
649f4c4dcf4SKowalski, Kamil }
650f4c4dcf4SKowalski, Kamil 
651f4c4dcf4SKowalski, Kamil /**
652f4c4dcf4SKowalski, Kamil  * @internal
653f4c4dcf4SKowalski, Kamil  * @brief Formats StringValueTooLong message into JSON
654f4c4dcf4SKowalski, Kamil  *
655f4c4dcf4SKowalski, Kamil  * See header file for more information
656f4c4dcf4SKowalski, Kamil  * @endinternal
657f4c4dcf4SKowalski, Kamil  */
stringValueTooLong(std::string_view arg1,int arg2)6581668ce6dSEd Tanous nlohmann::json stringValueTooLong(std::string_view arg1, int arg2)
6591abe55efSEd Tanous {
660b6cd31e1SEd Tanous     std::string arg2String = std::to_string(arg2);
661fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::stringValueTooLong,
6621668ce6dSEd Tanous                   std::to_array({arg1, std::string_view(arg2String)}));
663b5c07418SJames Feist }
664b5c07418SJames Feist 
stringValueTooLong(crow::Response & res,std::string_view arg1,int arg2)6651668ce6dSEd Tanous void stringValueTooLong(crow::Response& res, std::string_view arg1, int arg2)
666b5c07418SJames Feist {
667b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
668b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, stringValueTooLong(arg1, arg2));
669f4c4dcf4SKowalski, Kamil }
670f4c4dcf4SKowalski, Kamil 
671f4c4dcf4SKowalski, Kamil /**
672f4c4dcf4SKowalski, Kamil  * @internal
673cc9139ecSJason M. Bills  * @brief Formats SessionTerminated message into JSON
674cc9139ecSJason M. Bills  *
675cc9139ecSJason M. Bills  * See header file for more information
676cc9139ecSJason M. Bills  * @endinternal
677cc9139ecSJason M. Bills  */
sessionTerminated()678d9fcfcc1SEd Tanous nlohmann::json sessionTerminated()
679cc9139ecSJason M. Bills {
680fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::sessionTerminated, {});
681b5c07418SJames Feist }
682b5c07418SJames Feist 
sessionTerminated(crow::Response & res)683b5c07418SJames Feist void sessionTerminated(crow::Response& res)
684b5c07418SJames Feist {
685b5c07418SJames Feist     res.result(boost::beast::http::status::ok);
686b5c07418SJames Feist     addMessageToJsonRoot(res.jsonValue, sessionTerminated());
687cc9139ecSJason M. Bills }
688cc9139ecSJason M. Bills 
689cc9139ecSJason M. Bills /**
690cc9139ecSJason M. Bills  * @internal
691684bb4b8SJason M. Bills  * @brief Formats SubscriptionTerminated message into JSON
692684bb4b8SJason M. Bills  *
693684bb4b8SJason M. Bills  * See header file for more information
694684bb4b8SJason M. Bills  * @endinternal
695684bb4b8SJason M. Bills  */
subscriptionTerminated()696d9fcfcc1SEd Tanous nlohmann::json subscriptionTerminated()
697684bb4b8SJason M. Bills {
698fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::subscriptionTerminated, {});
699684bb4b8SJason M. Bills }
700684bb4b8SJason M. Bills 
subscriptionTerminated(crow::Response & res)701684bb4b8SJason M. Bills void subscriptionTerminated(crow::Response& res)
702684bb4b8SJason M. Bills {
703684bb4b8SJason M. Bills     res.result(boost::beast::http::status::ok);
704684bb4b8SJason M. Bills     addMessageToJsonRoot(res.jsonValue, subscriptionTerminated());
705684bb4b8SJason M. Bills }
706684bb4b8SJason M. Bills 
707684bb4b8SJason M. Bills /**
708684bb4b8SJason M. Bills  * @internal
709cc9139ecSJason M. Bills  * @brief Formats ResourceTypeIncompatible message into JSON
710cc9139ecSJason M. Bills  *
711cc9139ecSJason M. Bills  * See header file for more information
712cc9139ecSJason M. Bills  * @endinternal
713cc9139ecSJason M. Bills  */
resourceTypeIncompatible(std::string_view arg1,std::string_view arg2)7141668ce6dSEd Tanous nlohmann::json resourceTypeIncompatible(std::string_view arg1,
7151668ce6dSEd Tanous                                         std::string_view arg2)
716cc9139ecSJason M. Bills {
717fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceTypeIncompatible,
7181668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
719b5c07418SJames Feist }
720b5c07418SJames Feist 
resourceTypeIncompatible(crow::Response & res,std::string_view arg1,std::string_view arg2)7211668ce6dSEd Tanous void resourceTypeIncompatible(crow::Response& res, std::string_view arg1,
7221668ce6dSEd Tanous                               std::string_view arg2)
723b5c07418SJames Feist {
724b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
725b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceTypeIncompatible(arg1, arg2));
726cc9139ecSJason M. Bills }
727cc9139ecSJason M. Bills 
728cc9139ecSJason M. Bills /**
729cc9139ecSJason M. Bills  * @internal
730684bb4b8SJason M. Bills  * @brief Formats ResetRequired message into JSON
731684bb4b8SJason M. Bills  *
732684bb4b8SJason M. Bills  * See header file for more information
733684bb4b8SJason M. Bills  * @endinternal
734684bb4b8SJason M. Bills  */
resetRequired(const boost::urls::url_view_base & arg1,std::string_view arg2)7354a7fbefdSEd Tanous nlohmann::json resetRequired(const boost::urls::url_view_base& arg1,
7364a7fbefdSEd Tanous                              std::string_view arg2)
737684bb4b8SJason M. Bills {
738fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resetRequired,
739079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer(), arg2}));
740684bb4b8SJason M. Bills }
741684bb4b8SJason M. Bills 
resetRequired(crow::Response & res,const boost::urls::url_view_base & arg1,std::string_view arg2)7424a7fbefdSEd Tanous void resetRequired(crow::Response& res, const boost::urls::url_view_base& arg1,
7431668ce6dSEd Tanous                    std::string_view arg2)
744684bb4b8SJason M. Bills {
745684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
746684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, resetRequired(arg1, arg2));
747684bb4b8SJason M. Bills }
748684bb4b8SJason M. Bills 
749684bb4b8SJason M. Bills /**
750684bb4b8SJason M. Bills  * @internal
751684bb4b8SJason M. Bills  * @brief Formats ChassisPowerStateOnRequired message into JSON
752684bb4b8SJason M. Bills  *
753684bb4b8SJason M. Bills  * See header file for more information
754684bb4b8SJason M. Bills  * @endinternal
755684bb4b8SJason M. Bills  */
chassisPowerStateOnRequired(std::string_view arg1)7561668ce6dSEd Tanous nlohmann::json chassisPowerStateOnRequired(std::string_view arg1)
757684bb4b8SJason M. Bills {
758fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resetRequired,
7591668ce6dSEd Tanous                   std::to_array({arg1}));
760684bb4b8SJason M. Bills }
761684bb4b8SJason M. Bills 
chassisPowerStateOnRequired(crow::Response & res,std::string_view arg1)7621668ce6dSEd Tanous void chassisPowerStateOnRequired(crow::Response& res, std::string_view arg1)
763684bb4b8SJason M. Bills {
764684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
765684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, chassisPowerStateOnRequired(arg1));
766684bb4b8SJason M. Bills }
767684bb4b8SJason M. Bills 
768684bb4b8SJason M. Bills /**
769684bb4b8SJason M. Bills  * @internal
770684bb4b8SJason M. Bills  * @brief Formats ChassisPowerStateOffRequired message into JSON
771684bb4b8SJason M. Bills  *
772684bb4b8SJason M. Bills  * See header file for more information
773684bb4b8SJason M. Bills  * @endinternal
774684bb4b8SJason M. Bills  */
chassisPowerStateOffRequired(std::string_view arg1)7751668ce6dSEd Tanous nlohmann::json chassisPowerStateOffRequired(std::string_view arg1)
776684bb4b8SJason M. Bills {
777b6cd31e1SEd Tanous     return getLog(
778fffb8c1fSEd Tanous         redfish::registries::base::Index::chassisPowerStateOffRequired,
7791668ce6dSEd Tanous         std::to_array({arg1}));
780684bb4b8SJason M. Bills }
781684bb4b8SJason M. Bills 
chassisPowerStateOffRequired(crow::Response & res,std::string_view arg1)7821668ce6dSEd Tanous void chassisPowerStateOffRequired(crow::Response& res, std::string_view arg1)
783684bb4b8SJason M. Bills {
784684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
785684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, chassisPowerStateOffRequired(arg1));
786684bb4b8SJason M. Bills }
787684bb4b8SJason M. Bills 
788684bb4b8SJason M. Bills /**
789684bb4b8SJason M. Bills  * @internal
790684bb4b8SJason M. Bills  * @brief Formats PropertyValueConflict message into JSON
791684bb4b8SJason M. Bills  *
792684bb4b8SJason M. Bills  * See header file for more information
793684bb4b8SJason M. Bills  * @endinternal
794684bb4b8SJason M. Bills  */
propertyValueConflict(std::string_view arg1,std::string_view arg2)7951668ce6dSEd Tanous nlohmann::json propertyValueConflict(std::string_view arg1,
7961668ce6dSEd Tanous                                      std::string_view arg2)
797684bb4b8SJason M. Bills {
798fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyValueConflict,
7991668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
800684bb4b8SJason M. Bills }
801684bb4b8SJason M. Bills 
propertyValueConflict(crow::Response & res,std::string_view arg1,std::string_view arg2)8021668ce6dSEd Tanous void propertyValueConflict(crow::Response& res, std::string_view arg1,
8031668ce6dSEd Tanous                            std::string_view arg2)
804684bb4b8SJason M. Bills {
805684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
806684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, propertyValueConflict(arg1, arg2));
807684bb4b8SJason M. Bills }
808684bb4b8SJason M. Bills 
809684bb4b8SJason M. Bills /**
810684bb4b8SJason M. Bills  * @internal
8112a6af81cSRamesh Iyyar  * @brief Formats PropertyValueResourceConflict message into JSON
8122a6af81cSRamesh Iyyar  *
8132a6af81cSRamesh Iyyar  * See header file for more information
8142a6af81cSRamesh Iyyar  * @endinternal
8152a6af81cSRamesh Iyyar  */
8164a7fbefdSEd Tanous nlohmann::json
propertyValueResourceConflict(std::string_view arg1,const nlohmann::json & arg2,const boost::urls::url_view_base & arg3)8174a7fbefdSEd Tanous     propertyValueResourceConflict(std::string_view arg1,
81895b3ad73SEd Tanous                                   const nlohmann::json& arg2,
8194a7fbefdSEd Tanous                                   const boost::urls::url_view_base& arg3)
8202a6af81cSRamesh Iyyar {
82195b3ad73SEd Tanous     std::string arg2Str = arg2.dump(2, ' ', true,
82295b3ad73SEd Tanous                                     nlohmann::json::error_handler_t::replace);
82395b3ad73SEd Tanous 
8242a6af81cSRamesh Iyyar     return getLog(
8252a6af81cSRamesh Iyyar         redfish::registries::base::Index::propertyValueResourceConflict,
82695b3ad73SEd Tanous         std::to_array<std::string_view>({arg1, arg2Str, arg3.buffer()}));
8272a6af81cSRamesh Iyyar }
8282a6af81cSRamesh Iyyar 
propertyValueResourceConflict(crow::Response & res,std::string_view arg1,const nlohmann::json & arg2,const boost::urls::url_view_base & arg3)8292a6af81cSRamesh Iyyar void propertyValueResourceConflict(crow::Response& res, std::string_view arg1,
83095b3ad73SEd Tanous                                    const nlohmann::json& arg2,
8314a7fbefdSEd Tanous                                    const boost::urls::url_view_base& arg3)
8322a6af81cSRamesh Iyyar {
8332a6af81cSRamesh Iyyar     res.result(boost::beast::http::status::conflict);
8342a6af81cSRamesh Iyyar     addMessageToErrorJson(res.jsonValue,
8352a6af81cSRamesh Iyyar                           propertyValueResourceConflict(arg1, arg2, arg3));
8362a6af81cSRamesh Iyyar }
8372a6af81cSRamesh Iyyar 
8382a6af81cSRamesh Iyyar /**
8392a6af81cSRamesh Iyyar  * @internal
84024861a28SRamesh Iyyar  * @brief Formats PropertyValueExternalConflict message into JSON
84124861a28SRamesh Iyyar  *
84224861a28SRamesh Iyyar  * See header file for more information
84324861a28SRamesh Iyyar  * @endinternal
84424861a28SRamesh Iyyar  */
propertyValueExternalConflict(std::string_view arg1,const nlohmann::json & arg2)84524861a28SRamesh Iyyar nlohmann::json propertyValueExternalConflict(std::string_view arg1,
84695b3ad73SEd Tanous                                              const nlohmann::json& arg2)
84724861a28SRamesh Iyyar {
84895b3ad73SEd Tanous     std::string arg2Str = arg2.dump(2, ' ', true,
84995b3ad73SEd Tanous                                     nlohmann::json::error_handler_t::replace);
85095b3ad73SEd Tanous 
85124861a28SRamesh Iyyar     return getLog(
85224861a28SRamesh Iyyar         redfish::registries::base::Index::propertyValueExternalConflict,
85395b3ad73SEd Tanous         std::to_array<std::string_view>({arg1, arg2Str}));
85424861a28SRamesh Iyyar }
85524861a28SRamesh Iyyar 
propertyValueExternalConflict(crow::Response & res,std::string_view arg1,const nlohmann::json & arg2)85624861a28SRamesh Iyyar void propertyValueExternalConflict(crow::Response& res, std::string_view arg1,
85795b3ad73SEd Tanous                                    const nlohmann::json& arg2)
85824861a28SRamesh Iyyar {
85924861a28SRamesh Iyyar     res.result(boost::beast::http::status::conflict);
86024861a28SRamesh Iyyar     addMessageToErrorJson(res.jsonValue,
86124861a28SRamesh Iyyar                           propertyValueExternalConflict(arg1, arg2));
86224861a28SRamesh Iyyar }
86324861a28SRamesh Iyyar 
86424861a28SRamesh Iyyar /**
86524861a28SRamesh Iyyar  * @internal
866684bb4b8SJason M. Bills  * @brief Formats PropertyValueIncorrect message into JSON
867684bb4b8SJason M. Bills  *
868684bb4b8SJason M. Bills  * See header file for more information
869684bb4b8SJason M. Bills  * @endinternal
870684bb4b8SJason M. Bills  */
propertyValueIncorrect(std::string_view arg1,const nlohmann::json & arg2)871367b3dceSGinu George nlohmann::json propertyValueIncorrect(std::string_view arg1,
872367b3dceSGinu George                                       const nlohmann::json& arg2)
873684bb4b8SJason M. Bills {
874367b3dceSGinu George     std::string arg2Str = arg2.dump(2, ' ', true,
87514fbced6SEd Tanous                                     nlohmann::json::error_handler_t::replace);
876fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyValueIncorrect,
877367b3dceSGinu George                   std::to_array<std::string_view>({arg1, arg2Str}));
878684bb4b8SJason M. Bills }
879684bb4b8SJason M. Bills 
propertyValueIncorrect(crow::Response & res,std::string_view arg1,const nlohmann::json & arg2)880367b3dceSGinu George void propertyValueIncorrect(crow::Response& res, std::string_view arg1,
881367b3dceSGinu George                             const nlohmann::json& arg2)
882684bb4b8SJason M. Bills {
883684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
884684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, propertyValueIncorrect(arg1, arg2));
885684bb4b8SJason M. Bills }
886684bb4b8SJason M. Bills 
887684bb4b8SJason M. Bills /**
888684bb4b8SJason M. Bills  * @internal
889684bb4b8SJason M. Bills  * @brief Formats ResourceCreationConflict message into JSON
890684bb4b8SJason M. Bills  *
891684bb4b8SJason M. Bills  * See header file for more information
892684bb4b8SJason M. Bills  * @endinternal
893684bb4b8SJason M. Bills  */
resourceCreationConflict(const boost::urls::url_view_base & arg1)8944a7fbefdSEd Tanous nlohmann::json resourceCreationConflict(const boost::urls::url_view_base& arg1)
895684bb4b8SJason M. Bills {
896fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceCreationConflict,
897079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer()}));
898684bb4b8SJason M. Bills }
899684bb4b8SJason M. Bills 
resourceCreationConflict(crow::Response & res,const boost::urls::url_view_base & arg1)9004a7fbefdSEd Tanous void resourceCreationConflict(crow::Response& res,
9014a7fbefdSEd Tanous                               const boost::urls::url_view_base& arg1)
902684bb4b8SJason M. Bills {
903684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
904684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, resourceCreationConflict(arg1));
905684bb4b8SJason M. Bills }
906684bb4b8SJason M. Bills 
907684bb4b8SJason M. Bills /**
908684bb4b8SJason M. Bills  * @internal
909684bb4b8SJason M. Bills  * @brief Formats MaximumErrorsExceeded message into JSON
910684bb4b8SJason M. Bills  *
911684bb4b8SJason M. Bills  * See header file for more information
912684bb4b8SJason M. Bills  * @endinternal
913684bb4b8SJason M. Bills  */
maximumErrorsExceeded()914d9fcfcc1SEd Tanous nlohmann::json maximumErrorsExceeded()
915684bb4b8SJason M. Bills {
916fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::maximumErrorsExceeded, {});
917684bb4b8SJason M. Bills }
918684bb4b8SJason M. Bills 
maximumErrorsExceeded(crow::Response & res)919684bb4b8SJason M. Bills void maximumErrorsExceeded(crow::Response& res)
920684bb4b8SJason M. Bills {
921684bb4b8SJason M. Bills     res.result(boost::beast::http::status::internal_server_error);
922684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, maximumErrorsExceeded());
923684bb4b8SJason M. Bills }
924684bb4b8SJason M. Bills 
925684bb4b8SJason M. Bills /**
926684bb4b8SJason M. Bills  * @internal
927684bb4b8SJason M. Bills  * @brief Formats PreconditionFailed message into JSON
928684bb4b8SJason M. Bills  *
929684bb4b8SJason M. Bills  * See header file for more information
930684bb4b8SJason M. Bills  * @endinternal
931684bb4b8SJason M. Bills  */
preconditionFailed()932d9fcfcc1SEd Tanous nlohmann::json preconditionFailed()
933684bb4b8SJason M. Bills {
934fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::preconditionFailed, {});
935684bb4b8SJason M. Bills }
936684bb4b8SJason M. Bills 
preconditionFailed(crow::Response & res)937684bb4b8SJason M. Bills void preconditionFailed(crow::Response& res)
938684bb4b8SJason M. Bills {
9394df1bee0SEd Tanous     res.result(boost::beast::http::status::precondition_failed);
940684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, preconditionFailed());
941684bb4b8SJason M. Bills }
942684bb4b8SJason M. Bills 
943684bb4b8SJason M. Bills /**
944684bb4b8SJason M. Bills  * @internal
945684bb4b8SJason M. Bills  * @brief Formats PreconditionRequired message into JSON
946684bb4b8SJason M. Bills  *
947684bb4b8SJason M. Bills  * See header file for more information
948684bb4b8SJason M. Bills  * @endinternal
949684bb4b8SJason M. Bills  */
preconditionRequired()950d9fcfcc1SEd Tanous nlohmann::json preconditionRequired()
951684bb4b8SJason M. Bills {
952fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::preconditionRequired, {});
953684bb4b8SJason M. Bills }
954684bb4b8SJason M. Bills 
preconditionRequired(crow::Response & res)955684bb4b8SJason M. Bills void preconditionRequired(crow::Response& res)
956684bb4b8SJason M. Bills {
957684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
958684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, preconditionRequired());
959684bb4b8SJason M. Bills }
960684bb4b8SJason M. Bills 
961684bb4b8SJason M. Bills /**
962684bb4b8SJason M. Bills  * @internal
963684bb4b8SJason M. Bills  * @brief Formats OperationFailed message into JSON
964684bb4b8SJason M. Bills  *
965684bb4b8SJason M. Bills  * See header file for more information
966684bb4b8SJason M. Bills  * @endinternal
967684bb4b8SJason M. Bills  */
operationFailed()968d9fcfcc1SEd Tanous nlohmann::json operationFailed()
969684bb4b8SJason M. Bills {
970fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::operationFailed, {});
971684bb4b8SJason M. Bills }
972684bb4b8SJason M. Bills 
operationFailed(crow::Response & res)973684bb4b8SJason M. Bills void operationFailed(crow::Response& res)
974684bb4b8SJason M. Bills {
9758868776eSEd Tanous     res.result(boost::beast::http::status::bad_gateway);
976684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, operationFailed());
977684bb4b8SJason M. Bills }
978684bb4b8SJason M. Bills 
979684bb4b8SJason M. Bills /**
980684bb4b8SJason M. Bills  * @internal
981684bb4b8SJason M. Bills  * @brief Formats OperationTimeout message into JSON
982684bb4b8SJason M. Bills  *
983684bb4b8SJason M. Bills  * See header file for more information
984684bb4b8SJason M. Bills  * @endinternal
985684bb4b8SJason M. Bills  */
operationTimeout()986d9fcfcc1SEd Tanous nlohmann::json operationTimeout()
987684bb4b8SJason M. Bills {
988fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::operationTimeout, {});
989684bb4b8SJason M. Bills }
990684bb4b8SJason M. Bills 
operationTimeout(crow::Response & res)991684bb4b8SJason M. Bills void operationTimeout(crow::Response& res)
992684bb4b8SJason M. Bills {
993684bb4b8SJason M. Bills     res.result(boost::beast::http::status::internal_server_error);
994684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, operationTimeout());
995684bb4b8SJason M. Bills }
996684bb4b8SJason M. Bills 
997684bb4b8SJason M. Bills /**
998684bb4b8SJason M. Bills  * @internal
999f12894f8SJason M. Bills  * @brief Formats PropertyValueTypeError message into JSON for the specified
1000f12894f8SJason M. Bills  * property
1001f12894f8SJason M. Bills  *
1002f12894f8SJason M. Bills  * See header file for more information
1003f12894f8SJason M. Bills  * @endinternal
1004f12894f8SJason M. Bills  */
propertyValueTypeError(const nlohmann::json & arg1,std::string_view arg2)10052e8c4bdaSEd Tanous nlohmann::json propertyValueTypeError(const nlohmann::json& arg1,
10061668ce6dSEd Tanous                                       std::string_view arg2)
1007f12894f8SJason M. Bills {
10082e8c4bdaSEd Tanous     std::string arg1Str = arg1.dump(2, ' ', true,
10092e8c4bdaSEd Tanous                                     nlohmann::json::error_handler_t::replace);
1010fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyValueTypeError,
10112e8c4bdaSEd Tanous                   std::to_array<std::string_view>({arg1Str, arg2}));
1012b5c07418SJames Feist }
1013b5c07418SJames Feist 
propertyValueTypeError(crow::Response & res,const nlohmann::json & arg1,std::string_view arg2)10142e8c4bdaSEd Tanous void propertyValueTypeError(crow::Response& res, const nlohmann::json& arg1,
10151668ce6dSEd Tanous                             std::string_view arg2)
1016b5c07418SJames Feist {
1017b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1018b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyValueTypeError(arg1, arg2), arg2);
1019f4c4dcf4SKowalski, Kamil }
1020f4c4dcf4SKowalski, Kamil 
1021f4c4dcf4SKowalski, Kamil /**
1022f4c4dcf4SKowalski, Kamil  * @internal
1023b6cd31e1SEd Tanous  * @brief Formats ResourceNotFound message into JSONd
1024f4c4dcf4SKowalski, Kamil  *
1025f4c4dcf4SKowalski, Kamil  * See header file for more information
1026f4c4dcf4SKowalski, Kamil  * @endinternal
1027f4c4dcf4SKowalski, Kamil  */
resourceNotFound(std::string_view arg1,std::string_view arg2)10281668ce6dSEd Tanous nlohmann::json resourceNotFound(std::string_view arg1, std::string_view arg2)
10291abe55efSEd Tanous {
1030fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceNotFound,
10311668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
1032b5c07418SJames Feist }
1033b5c07418SJames Feist 
resourceNotFound(crow::Response & res,std::string_view arg1,std::string_view arg2)10341668ce6dSEd Tanous void resourceNotFound(crow::Response& res, std::string_view arg1,
10351668ce6dSEd Tanous                       std::string_view arg2)
1036b5c07418SJames Feist {
1037b5c07418SJames Feist     res.result(boost::beast::http::status::not_found);
1038b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceNotFound(arg1, arg2));
1039f4c4dcf4SKowalski, Kamil }
1040f4c4dcf4SKowalski, Kamil 
1041f4c4dcf4SKowalski, Kamil /**
1042f4c4dcf4SKowalski, Kamil  * @internal
1043f4c4dcf4SKowalski, Kamil  * @brief Formats CouldNotEstablishConnection message into JSON
1044f4c4dcf4SKowalski, Kamil  *
1045f4c4dcf4SKowalski, Kamil  * See header file for more information
1046f4c4dcf4SKowalski, Kamil  * @endinternal
1047f4c4dcf4SKowalski, Kamil  */
10484a7fbefdSEd Tanous nlohmann::json
couldNotEstablishConnection(const boost::urls::url_view_base & arg1)10494a7fbefdSEd Tanous     couldNotEstablishConnection(const boost::urls::url_view_base& arg1)
10501abe55efSEd Tanous {
1051fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::couldNotEstablishConnection,
1052079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer()}));
1053b5c07418SJames Feist }
1054b5c07418SJames Feist 
couldNotEstablishConnection(crow::Response & res,const boost::urls::url_view_base & arg1)1055ace85d60SEd Tanous void couldNotEstablishConnection(crow::Response& res,
10564a7fbefdSEd Tanous                                  const boost::urls::url_view_base& arg1)
1057b5c07418SJames Feist {
1058b5c07418SJames Feist     res.result(boost::beast::http::status::not_found);
1059b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, couldNotEstablishConnection(arg1));
1060f4c4dcf4SKowalski, Kamil }
1061f4c4dcf4SKowalski, Kamil 
1062f4c4dcf4SKowalski, Kamil /**
1063f4c4dcf4SKowalski, Kamil  * @internal
1064f12894f8SJason M. Bills  * @brief Formats PropertyNotWritable message into JSON for the specified
1065f12894f8SJason M. Bills  * property
1066f12894f8SJason M. Bills  *
1067f12894f8SJason M. Bills  * See header file for more information
1068f12894f8SJason M. Bills  * @endinternal
1069f12894f8SJason M. Bills  */
propertyNotWritable(std::string_view arg1)10701668ce6dSEd Tanous nlohmann::json propertyNotWritable(std::string_view arg1)
1071f12894f8SJason M. Bills {
1072fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyNotWritable,
10731668ce6dSEd Tanous                   std::to_array({arg1}));
1074b5c07418SJames Feist }
1075b5c07418SJames Feist 
propertyNotWritable(crow::Response & res,std::string_view arg1)10761668ce6dSEd Tanous void propertyNotWritable(crow::Response& res, std::string_view arg1)
1077b5c07418SJames Feist {
1078b5c07418SJames Feist     res.result(boost::beast::http::status::forbidden);
1079b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyNotWritable(arg1), arg1);
1080f4c4dcf4SKowalski, Kamil }
1081f4c4dcf4SKowalski, Kamil 
1082f4c4dcf4SKowalski, Kamil /**
1083f4c4dcf4SKowalski, Kamil  * @internal
1084f4c4dcf4SKowalski, Kamil  * @brief Formats QueryParameterValueTypeError message into JSON
1085f4c4dcf4SKowalski, Kamil  *
1086f4c4dcf4SKowalski, Kamil  * See header file for more information
1087f4c4dcf4SKowalski, Kamil  * @endinternal
1088f4c4dcf4SKowalski, Kamil  */
queryParameterValueTypeError(const nlohmann::json & arg1,std::string_view arg2)108995b3ad73SEd Tanous nlohmann::json queryParameterValueTypeError(const nlohmann::json& arg1,
10901668ce6dSEd Tanous                                             std::string_view arg2)
10911abe55efSEd Tanous {
109295b3ad73SEd Tanous     std::string arg1Str = arg1.dump(2, ' ', true,
109395b3ad73SEd Tanous                                     nlohmann::json::error_handler_t::replace);
1094b6cd31e1SEd Tanous     return getLog(
1095fffb8c1fSEd Tanous         redfish::registries::base::Index::queryParameterValueTypeError,
109695b3ad73SEd Tanous         std::to_array<std::string_view>({arg1Str, arg2}));
1097b5c07418SJames Feist }
1098b5c07418SJames Feist 
queryParameterValueTypeError(crow::Response & res,const nlohmann::json & arg1,std::string_view arg2)109995b3ad73SEd Tanous void queryParameterValueTypeError(crow::Response& res,
110095b3ad73SEd Tanous                                   const nlohmann::json& arg1,
11011668ce6dSEd Tanous                                   std::string_view arg2)
1102b5c07418SJames Feist {
1103b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1104b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
1105b5c07418SJames Feist                           queryParameterValueTypeError(arg1, arg2));
1106f4c4dcf4SKowalski, Kamil }
1107f4c4dcf4SKowalski, Kamil 
1108f4c4dcf4SKowalski, Kamil /**
1109f4c4dcf4SKowalski, Kamil  * @internal
1110f4c4dcf4SKowalski, Kamil  * @brief Formats ServiceShuttingDown message into JSON
1111f4c4dcf4SKowalski, Kamil  *
1112f4c4dcf4SKowalski, Kamil  * See header file for more information
1113f4c4dcf4SKowalski, Kamil  * @endinternal
1114f4c4dcf4SKowalski, Kamil  */
serviceShuttingDown()1115d9fcfcc1SEd Tanous nlohmann::json serviceShuttingDown()
11161abe55efSEd Tanous {
1117fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::serviceShuttingDown, {});
1118b5c07418SJames Feist }
1119b5c07418SJames Feist 
serviceShuttingDown(crow::Response & res)1120b5c07418SJames Feist void serviceShuttingDown(crow::Response& res)
1121b5c07418SJames Feist {
1122b5c07418SJames Feist     res.result(boost::beast::http::status::service_unavailable);
1123b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, serviceShuttingDown());
1124f4c4dcf4SKowalski, Kamil }
1125f4c4dcf4SKowalski, Kamil 
1126f4c4dcf4SKowalski, Kamil /**
1127f4c4dcf4SKowalski, Kamil  * @internal
1128f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterDuplicate message into JSON
1129f4c4dcf4SKowalski, Kamil  *
1130f4c4dcf4SKowalski, Kamil  * See header file for more information
1131f4c4dcf4SKowalski, Kamil  * @endinternal
1132f4c4dcf4SKowalski, Kamil  */
actionParameterDuplicate(std::string_view arg1,std::string_view arg2)11331668ce6dSEd Tanous nlohmann::json actionParameterDuplicate(std::string_view arg1,
11341668ce6dSEd Tanous                                         std::string_view arg2)
11351abe55efSEd Tanous {
1136fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::actionParameterDuplicate,
11371668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
1138b5c07418SJames Feist }
1139b5c07418SJames Feist 
actionParameterDuplicate(crow::Response & res,std::string_view arg1,std::string_view arg2)11401668ce6dSEd Tanous void actionParameterDuplicate(crow::Response& res, std::string_view arg1,
11411668ce6dSEd Tanous                               std::string_view arg2)
1142b5c07418SJames Feist {
1143b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1144b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, actionParameterDuplicate(arg1, arg2));
1145f4c4dcf4SKowalski, Kamil }
1146f4c4dcf4SKowalski, Kamil 
1147f4c4dcf4SKowalski, Kamil /**
1148f4c4dcf4SKowalski, Kamil  * @internal
1149f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterNotSupported message into JSON
1150f4c4dcf4SKowalski, Kamil  *
1151f4c4dcf4SKowalski, Kamil  * See header file for more information
1152f4c4dcf4SKowalski, Kamil  * @endinternal
1153f4c4dcf4SKowalski, Kamil  */
actionParameterNotSupported(std::string_view arg1,std::string_view arg2)11541668ce6dSEd Tanous nlohmann::json actionParameterNotSupported(std::string_view arg1,
11551668ce6dSEd Tanous                                            std::string_view arg2)
11561abe55efSEd Tanous {
1157fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::actionParameterNotSupported,
11581668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
1159b5c07418SJames Feist }
1160b5c07418SJames Feist 
actionParameterNotSupported(crow::Response & res,std::string_view arg1,std::string_view arg2)11611668ce6dSEd Tanous void actionParameterNotSupported(crow::Response& res, std::string_view arg1,
11621668ce6dSEd Tanous                                  std::string_view arg2)
1163b5c07418SJames Feist {
1164b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1165b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
1166b5c07418SJames Feist                           actionParameterNotSupported(arg1, arg2));
1167f4c4dcf4SKowalski, Kamil }
1168f4c4dcf4SKowalski, Kamil 
1169f4c4dcf4SKowalski, Kamil /**
1170f4c4dcf4SKowalski, Kamil  * @internal
1171f4c4dcf4SKowalski, Kamil  * @brief Formats SourceDoesNotSupportProtocol message into JSON
1172f4c4dcf4SKowalski, Kamil  *
1173f4c4dcf4SKowalski, Kamil  * See header file for more information
1174f4c4dcf4SKowalski, Kamil  * @endinternal
1175f4c4dcf4SKowalski, Kamil  */
11764a7fbefdSEd Tanous nlohmann::json
sourceDoesNotSupportProtocol(const boost::urls::url_view_base & arg1,std::string_view arg2)11774a7fbefdSEd Tanous     sourceDoesNotSupportProtocol(const boost::urls::url_view_base& arg1,
11781668ce6dSEd Tanous                                  std::string_view arg2)
11791abe55efSEd Tanous {
1180b6cd31e1SEd Tanous     return getLog(
1181fffb8c1fSEd Tanous         redfish::registries::base::Index::sourceDoesNotSupportProtocol,
1182079360aeSEd Tanous         std::to_array<std::string_view>({arg1.buffer(), arg2}));
1183b5c07418SJames Feist }
1184b5c07418SJames Feist 
sourceDoesNotSupportProtocol(crow::Response & res,const boost::urls::url_view_base & arg1,std::string_view arg2)1185ace85d60SEd Tanous void sourceDoesNotSupportProtocol(crow::Response& res,
11864a7fbefdSEd Tanous                                   const boost::urls::url_view_base& arg1,
11871668ce6dSEd Tanous                                   std::string_view arg2)
1188b5c07418SJames Feist {
1189b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1190b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
1191b5c07418SJames Feist                           sourceDoesNotSupportProtocol(arg1, arg2));
1192f4c4dcf4SKowalski, Kamil }
1193f4c4dcf4SKowalski, Kamil 
1194f4c4dcf4SKowalski, Kamil /**
1195f4c4dcf4SKowalski, Kamil  * @internal
1196b4ad4c05SShantappa Teekappanavar  * @brief Formats StrictAccountTypes message into JSON
1197b4ad4c05SShantappa Teekappanavar  *
1198b4ad4c05SShantappa Teekappanavar  * See header file for more information
1199b4ad4c05SShantappa Teekappanavar  * @endinternal
1200b4ad4c05SShantappa Teekappanavar  */
strictAccountTypes(std::string_view arg1)1201b4ad4c05SShantappa Teekappanavar nlohmann::json strictAccountTypes(std::string_view arg1)
1202b4ad4c05SShantappa Teekappanavar {
1203b4ad4c05SShantappa Teekappanavar     return getLog(redfish::registries::base::Index::strictAccountTypes,
1204b4ad4c05SShantappa Teekappanavar                   std::to_array({arg1}));
1205b4ad4c05SShantappa Teekappanavar }
1206b4ad4c05SShantappa Teekappanavar 
strictAccountTypes(crow::Response & res,std::string_view arg1)1207b4ad4c05SShantappa Teekappanavar void strictAccountTypes(crow::Response& res, std::string_view arg1)
1208b4ad4c05SShantappa Teekappanavar {
1209b4ad4c05SShantappa Teekappanavar     res.result(boost::beast::http::status::bad_request);
1210b4ad4c05SShantappa Teekappanavar     addMessageToErrorJson(res.jsonValue, strictAccountTypes(arg1));
1211b4ad4c05SShantappa Teekappanavar }
1212b4ad4c05SShantappa Teekappanavar 
1213b4ad4c05SShantappa Teekappanavar /**
1214b4ad4c05SShantappa Teekappanavar  * @internal
1215f4c4dcf4SKowalski, Kamil  * @brief Formats AccountRemoved message into JSON
1216f4c4dcf4SKowalski, Kamil  *
1217f4c4dcf4SKowalski, Kamil  * See header file for more information
1218f4c4dcf4SKowalski, Kamil  * @endinternal
1219f4c4dcf4SKowalski, Kamil  */
accountRemoved()1220d9fcfcc1SEd Tanous nlohmann::json accountRemoved()
12211abe55efSEd Tanous {
1222fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::accountRemoved, {});
1223b5c07418SJames Feist }
1224b5c07418SJames Feist 
accountRemoved(crow::Response & res)1225b5c07418SJames Feist void accountRemoved(crow::Response& res)
1226b5c07418SJames Feist {
1227b5c07418SJames Feist     res.result(boost::beast::http::status::ok);
1228b5c07418SJames Feist     addMessageToJsonRoot(res.jsonValue, accountRemoved());
1229f4c4dcf4SKowalski, Kamil }
1230f4c4dcf4SKowalski, Kamil 
1231f4c4dcf4SKowalski, Kamil /**
1232f4c4dcf4SKowalski, Kamil  * @internal
1233f4c4dcf4SKowalski, Kamil  * @brief Formats AccessDenied message into JSON
1234f4c4dcf4SKowalski, Kamil  *
1235f4c4dcf4SKowalski, Kamil  * See header file for more information
1236f4c4dcf4SKowalski, Kamil  * @endinternal
1237f4c4dcf4SKowalski, Kamil  */
accessDenied(const boost::urls::url_view_base & arg1)12384a7fbefdSEd Tanous nlohmann::json accessDenied(const boost::urls::url_view_base& arg1)
12391abe55efSEd Tanous {
1240fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::accessDenied,
1241079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer()}));
1242b5c07418SJames Feist }
1243b5c07418SJames Feist 
accessDenied(crow::Response & res,const boost::urls::url_view_base & arg1)12444a7fbefdSEd Tanous void accessDenied(crow::Response& res, const boost::urls::url_view_base& arg1)
1245b5c07418SJames Feist {
1246b5c07418SJames Feist     res.result(boost::beast::http::status::forbidden);
1247b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, accessDenied(arg1));
1248f4c4dcf4SKowalski, Kamil }
1249f4c4dcf4SKowalski, Kamil 
1250f4c4dcf4SKowalski, Kamil /**
1251f4c4dcf4SKowalski, Kamil  * @internal
1252f4c4dcf4SKowalski, Kamil  * @brief Formats QueryNotSupported message into JSON
1253f4c4dcf4SKowalski, Kamil  *
1254f4c4dcf4SKowalski, Kamil  * See header file for more information
1255f4c4dcf4SKowalski, Kamil  * @endinternal
1256f4c4dcf4SKowalski, Kamil  */
queryNotSupported()1257d9fcfcc1SEd Tanous nlohmann::json queryNotSupported()
12581abe55efSEd Tanous {
1259fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::queryNotSupported, {});
1260b5c07418SJames Feist }
1261b5c07418SJames Feist 
queryNotSupported(crow::Response & res)1262b5c07418SJames Feist void queryNotSupported(crow::Response& res)
1263b5c07418SJames Feist {
1264b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1265b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, queryNotSupported());
1266f4c4dcf4SKowalski, Kamil }
1267f4c4dcf4SKowalski, Kamil 
1268f4c4dcf4SKowalski, Kamil /**
1269f4c4dcf4SKowalski, Kamil  * @internal
1270f4c4dcf4SKowalski, Kamil  * @brief Formats CreateLimitReachedForResource message into JSON
1271f4c4dcf4SKowalski, Kamil  *
1272f4c4dcf4SKowalski, Kamil  * See header file for more information
1273f4c4dcf4SKowalski, Kamil  * @endinternal
1274f4c4dcf4SKowalski, Kamil  */
createLimitReachedForResource()1275d9fcfcc1SEd Tanous nlohmann::json createLimitReachedForResource()
12761abe55efSEd Tanous {
1277b6cd31e1SEd Tanous     return getLog(
1278fffb8c1fSEd Tanous         redfish::registries::base::Index::createLimitReachedForResource, {});
1279b5c07418SJames Feist }
1280b5c07418SJames Feist 
createLimitReachedForResource(crow::Response & res)1281b5c07418SJames Feist void createLimitReachedForResource(crow::Response& res)
1282b5c07418SJames Feist {
1283b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1284b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, createLimitReachedForResource());
1285f4c4dcf4SKowalski, Kamil }
1286f4c4dcf4SKowalski, Kamil 
1287f4c4dcf4SKowalski, Kamil /**
1288f4c4dcf4SKowalski, Kamil  * @internal
1289f4c4dcf4SKowalski, Kamil  * @brief Formats GeneralError message into JSON
1290f4c4dcf4SKowalski, Kamil  *
1291f4c4dcf4SKowalski, Kamil  * See header file for more information
1292f4c4dcf4SKowalski, Kamil  * @endinternal
1293f4c4dcf4SKowalski, Kamil  */
generalError()1294d9fcfcc1SEd Tanous nlohmann::json generalError()
12951abe55efSEd Tanous {
1296fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::generalError, {});
1297b5c07418SJames Feist }
1298b5c07418SJames Feist 
generalError(crow::Response & res)1299b5c07418SJames Feist void generalError(crow::Response& res)
1300b5c07418SJames Feist {
1301b5c07418SJames Feist     res.result(boost::beast::http::status::internal_server_error);
1302b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, generalError());
1303f4c4dcf4SKowalski, Kamil }
1304f4c4dcf4SKowalski, Kamil 
1305f4c4dcf4SKowalski, Kamil /**
1306f4c4dcf4SKowalski, Kamil  * @internal
1307f4c4dcf4SKowalski, Kamil  * @brief Formats Success message into JSON
1308f4c4dcf4SKowalski, Kamil  *
1309f4c4dcf4SKowalski, Kamil  * See header file for more information
1310f4c4dcf4SKowalski, Kamil  * @endinternal
1311f4c4dcf4SKowalski, Kamil  */
success()1312d9fcfcc1SEd Tanous nlohmann::json success()
13131abe55efSEd Tanous {
1314fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::success, {});
1315b5c07418SJames Feist }
1316b5c07418SJames Feist 
success(crow::Response & res)1317b5c07418SJames Feist void success(crow::Response& res)
1318b5c07418SJames Feist {
1319b5c07418SJames Feist     // don't set res.result here because success is the default and any
1320b5c07418SJames Feist     // error should overwrite the default
1321b5c07418SJames Feist     addMessageToJsonRoot(res.jsonValue, success());
1322f12894f8SJason M. Bills }
1323f12894f8SJason M. Bills 
1324f12894f8SJason M. Bills /**
1325f12894f8SJason M. Bills  * @internal
1326f4c4dcf4SKowalski, Kamil  * @brief Formats Created message into JSON
1327f4c4dcf4SKowalski, Kamil  *
1328f4c4dcf4SKowalski, Kamil  * See header file for more information
1329f4c4dcf4SKowalski, Kamil  * @endinternal
1330f4c4dcf4SKowalski, Kamil  */
created()1331d9fcfcc1SEd Tanous nlohmann::json created()
13321abe55efSEd Tanous {
1333fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::created, {});
1334b5c07418SJames Feist }
1335b5c07418SJames Feist 
created(crow::Response & res)1336b5c07418SJames Feist void created(crow::Response& res)
1337b5c07418SJames Feist {
1338b5c07418SJames Feist     res.result(boost::beast::http::status::created);
1339b5c07418SJames Feist     addMessageToJsonRoot(res.jsonValue, created());
1340f4c4dcf4SKowalski, Kamil }
1341f4c4dcf4SKowalski, Kamil 
1342f4c4dcf4SKowalski, Kamil /**
1343f4c4dcf4SKowalski, Kamil  * @internal
1344cc9139ecSJason M. Bills  * @brief Formats NoOperation message into JSON
1345cc9139ecSJason M. Bills  *
1346cc9139ecSJason M. Bills  * See header file for more information
1347cc9139ecSJason M. Bills  * @endinternal
1348cc9139ecSJason M. Bills  */
noOperation()1349d9fcfcc1SEd Tanous nlohmann::json noOperation()
1350cc9139ecSJason M. Bills {
1351fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::noOperation, {});
1352b5c07418SJames Feist }
1353b5c07418SJames Feist 
noOperation(crow::Response & res)1354b5c07418SJames Feist void noOperation(crow::Response& res)
1355b5c07418SJames Feist {
1356b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1357b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, noOperation());
1358cc9139ecSJason M. Bills }
1359cc9139ecSJason M. Bills 
1360cc9139ecSJason M. Bills /**
1361cc9139ecSJason M. Bills  * @internal
1362b5c07418SJames Feist  * @brief Formats PropertyUnknown message into JSON for the specified
1363b5c07418SJames Feist  * property
1364f12894f8SJason M. Bills  *
1365f12894f8SJason M. Bills  * See header file for more information
1366f12894f8SJason M. Bills  * @endinternal
1367f12894f8SJason M. Bills  */
propertyUnknown(std::string_view arg1)13681668ce6dSEd Tanous nlohmann::json propertyUnknown(std::string_view arg1)
1369b5c07418SJames Feist {
1370fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyUnknown,
13711668ce6dSEd Tanous                   std::to_array({arg1}));
1372b5c07418SJames Feist }
1373b5c07418SJames Feist 
propertyUnknown(crow::Response & res,std::string_view arg1)13741668ce6dSEd Tanous void propertyUnknown(crow::Response& res, std::string_view arg1)
1375f12894f8SJason M. Bills {
1376f12894f8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
13777b1dd2f9SEd Tanous     addMessageToErrorJson(res.jsonValue, propertyUnknown(arg1));
1378f4c4dcf4SKowalski, Kamil }
1379f4c4dcf4SKowalski, Kamil 
1380f4c4dcf4SKowalski, Kamil /**
1381f4c4dcf4SKowalski, Kamil  * @internal
1382f4c4dcf4SKowalski, Kamil  * @brief Formats NoValidSession message into JSON
1383f4c4dcf4SKowalski, Kamil  *
1384f4c4dcf4SKowalski, Kamil  * See header file for more information
1385f4c4dcf4SKowalski, Kamil  * @endinternal
1386f4c4dcf4SKowalski, Kamil  */
noValidSession()1387d9fcfcc1SEd Tanous nlohmann::json noValidSession()
13881abe55efSEd Tanous {
1389fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::noValidSession, {});
1390b5c07418SJames Feist }
1391b5c07418SJames Feist 
noValidSession(crow::Response & res)1392b5c07418SJames Feist void noValidSession(crow::Response& res)
1393b5c07418SJames Feist {
1394b5c07418SJames Feist     res.result(boost::beast::http::status::forbidden);
1395b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, noValidSession());
1396f4c4dcf4SKowalski, Kamil }
1397f4c4dcf4SKowalski, Kamil 
1398f4c4dcf4SKowalski, Kamil /**
1399f4c4dcf4SKowalski, Kamil  * @internal
1400f4c4dcf4SKowalski, Kamil  * @brief Formats InvalidObject message into JSON
1401f4c4dcf4SKowalski, Kamil  *
1402f4c4dcf4SKowalski, Kamil  * See header file for more information
1403f4c4dcf4SKowalski, Kamil  * @endinternal
1404f4c4dcf4SKowalski, Kamil  */
invalidObject(const boost::urls::url_view_base & arg1)14054a7fbefdSEd Tanous nlohmann::json invalidObject(const boost::urls::url_view_base& arg1)
14061abe55efSEd Tanous {
1407fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::invalidObject,
1408079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer()}));
1409b5c07418SJames Feist }
1410b5c07418SJames Feist 
invalidObject(crow::Response & res,const boost::urls::url_view_base & arg1)14114a7fbefdSEd Tanous void invalidObject(crow::Response& res, const boost::urls::url_view_base& arg1)
1412b5c07418SJames Feist {
1413b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1414b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, invalidObject(arg1));
1415f4c4dcf4SKowalski, Kamil }
1416f4c4dcf4SKowalski, Kamil 
1417f4c4dcf4SKowalski, Kamil /**
1418f4c4dcf4SKowalski, Kamil  * @internal
1419f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceInStandby message into JSON
1420f4c4dcf4SKowalski, Kamil  *
1421f4c4dcf4SKowalski, Kamil  * See header file for more information
1422f4c4dcf4SKowalski, Kamil  * @endinternal
1423f4c4dcf4SKowalski, Kamil  */
resourceInStandby()1424d9fcfcc1SEd Tanous nlohmann::json resourceInStandby()
14251abe55efSEd Tanous {
1426fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceInStandby, {});
1427b5c07418SJames Feist }
1428b5c07418SJames Feist 
resourceInStandby(crow::Response & res)1429b5c07418SJames Feist void resourceInStandby(crow::Response& res)
1430b5c07418SJames Feist {
1431b5c07418SJames Feist     res.result(boost::beast::http::status::service_unavailable);
1432b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceInStandby());
1433f4c4dcf4SKowalski, Kamil }
1434f4c4dcf4SKowalski, Kamil 
1435f4c4dcf4SKowalski, Kamil /**
1436f4c4dcf4SKowalski, Kamil  * @internal
1437f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterValueTypeError message into JSON
1438f4c4dcf4SKowalski, Kamil  *
1439f4c4dcf4SKowalski, Kamil  * See header file for more information
1440f4c4dcf4SKowalski, Kamil  * @endinternal
1441f4c4dcf4SKowalski, Kamil  */
actionParameterValueTypeError(const nlohmann::json & arg1,std::string_view arg2,std::string_view arg3)144295b3ad73SEd Tanous nlohmann::json actionParameterValueTypeError(const nlohmann::json& arg1,
14431668ce6dSEd Tanous                                              std::string_view arg2,
14441668ce6dSEd Tanous                                              std::string_view arg3)
14451abe55efSEd Tanous {
144695b3ad73SEd Tanous     std::string arg1Str = arg1.dump(2, ' ', true,
144795b3ad73SEd Tanous                                     nlohmann::json::error_handler_t::replace);
1448b6cd31e1SEd Tanous     return getLog(
1449fffb8c1fSEd Tanous         redfish::registries::base::Index::actionParameterValueTypeError,
145095b3ad73SEd Tanous         std::to_array<std::string_view>({arg1Str, arg2, arg3}));
1451b5c07418SJames Feist }
1452b5c07418SJames Feist 
actionParameterValueTypeError(crow::Response & res,const nlohmann::json & arg1,std::string_view arg2,std::string_view arg3)145395b3ad73SEd Tanous void actionParameterValueTypeError(crow::Response& res,
145495b3ad73SEd Tanous                                    const nlohmann::json& arg1,
14551668ce6dSEd Tanous                                    std::string_view arg2, std::string_view arg3)
1456b5c07418SJames Feist {
1457b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1458b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
1459b5c07418SJames Feist                           actionParameterValueTypeError(arg1, arg2, arg3));
1460f4c4dcf4SKowalski, Kamil }
1461f4c4dcf4SKowalski, Kamil 
1462f4c4dcf4SKowalski, Kamil /**
1463f4c4dcf4SKowalski, Kamil  * @internal
14641827b4f1SAsmitha Karunanithi  * @brief Formats actionParameterValueError message into JSON
14651827b4f1SAsmitha Karunanithi  *
14661827b4f1SAsmitha Karunanithi  * See header file for more information
14671827b4f1SAsmitha Karunanithi  * @endinternal
14681827b4f1SAsmitha Karunanithi  */
actionParameterValueError(const nlohmann::json & arg1,std::string_view arg2)14691827b4f1SAsmitha Karunanithi nlohmann::json actionParameterValueError(const nlohmann::json& arg1,
14701827b4f1SAsmitha Karunanithi                                          std::string_view arg2)
14711827b4f1SAsmitha Karunanithi {
14721827b4f1SAsmitha Karunanithi     std::string arg1Str = arg1.dump(2, ' ', true,
14731827b4f1SAsmitha Karunanithi                                     nlohmann::json::error_handler_t::replace);
14741827b4f1SAsmitha Karunanithi     return getLog(redfish::registries::base::Index::actionParameterValueError,
14751827b4f1SAsmitha Karunanithi                   std::to_array<std::string_view>({arg1Str, arg2}));
14761827b4f1SAsmitha Karunanithi }
14771827b4f1SAsmitha Karunanithi 
actionParameterValueError(crow::Response & res,const nlohmann::json & arg1,std::string_view arg2)14781827b4f1SAsmitha Karunanithi void actionParameterValueError(crow::Response& res, const nlohmann::json& arg1,
14791827b4f1SAsmitha Karunanithi                                std::string_view arg2)
14801827b4f1SAsmitha Karunanithi {
14811827b4f1SAsmitha Karunanithi     res.result(boost::beast::http::status::bad_request);
14821827b4f1SAsmitha Karunanithi     addMessageToErrorJson(res.jsonValue, actionParameterValueError(arg1, arg2));
14831827b4f1SAsmitha Karunanithi }
14841827b4f1SAsmitha Karunanithi 
14851827b4f1SAsmitha Karunanithi /**
14861827b4f1SAsmitha Karunanithi  * @internal
1487f4c4dcf4SKowalski, Kamil  * @brief Formats SessionLimitExceeded message into JSON
1488f4c4dcf4SKowalski, Kamil  *
1489f4c4dcf4SKowalski, Kamil  * See header file for more information
1490f4c4dcf4SKowalski, Kamil  * @endinternal
1491f4c4dcf4SKowalski, Kamil  */
sessionLimitExceeded()1492d9fcfcc1SEd Tanous nlohmann::json sessionLimitExceeded()
14931abe55efSEd Tanous {
1494fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::sessionLimitExceeded, {});
1495b5c07418SJames Feist }
1496b5c07418SJames Feist 
sessionLimitExceeded(crow::Response & res)1497b5c07418SJames Feist void sessionLimitExceeded(crow::Response& res)
1498b5c07418SJames Feist {
1499b5c07418SJames Feist     res.result(boost::beast::http::status::service_unavailable);
1500b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, sessionLimitExceeded());
1501f4c4dcf4SKowalski, Kamil }
1502f4c4dcf4SKowalski, Kamil 
1503f4c4dcf4SKowalski, Kamil /**
1504f4c4dcf4SKowalski, Kamil  * @internal
1505f4c4dcf4SKowalski, Kamil  * @brief Formats ActionNotSupported message into JSON
1506f4c4dcf4SKowalski, Kamil  *
1507f4c4dcf4SKowalski, Kamil  * See header file for more information
1508f4c4dcf4SKowalski, Kamil  * @endinternal
1509f4c4dcf4SKowalski, Kamil  */
actionNotSupported(std::string_view arg1)15101668ce6dSEd Tanous nlohmann::json actionNotSupported(std::string_view arg1)
15111abe55efSEd Tanous {
1512fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::actionNotSupported,
15131668ce6dSEd Tanous                   std::to_array({arg1}));
1514b5c07418SJames Feist }
1515b5c07418SJames Feist 
actionNotSupported(crow::Response & res,std::string_view arg1)15161668ce6dSEd Tanous void actionNotSupported(crow::Response& res, std::string_view arg1)
1517b5c07418SJames Feist {
1518b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1519b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, actionNotSupported(arg1));
1520f4c4dcf4SKowalski, Kamil }
1521f4c4dcf4SKowalski, Kamil 
1522f4c4dcf4SKowalski, Kamil /**
1523f4c4dcf4SKowalski, Kamil  * @internal
1524f4c4dcf4SKowalski, Kamil  * @brief Formats InvalidIndex message into JSON
1525f4c4dcf4SKowalski, Kamil  *
1526f4c4dcf4SKowalski, Kamil  * See header file for more information
1527f4c4dcf4SKowalski, Kamil  * @endinternal
1528f4c4dcf4SKowalski, Kamil  */
invalidIndex(int64_t arg1)15295187e09bSJosh Lehan nlohmann::json invalidIndex(int64_t arg1)
15301abe55efSEd Tanous {
1531b6cd31e1SEd Tanous     std::string arg1Str = std::to_string(arg1);
1532fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::invalidIndex,
15331668ce6dSEd Tanous                   std::to_array<std::string_view>({arg1Str}));
1534b5c07418SJames Feist }
1535b5c07418SJames Feist 
invalidIndex(crow::Response & res,int64_t arg1)15365187e09bSJosh Lehan void invalidIndex(crow::Response& res, int64_t arg1)
1537b5c07418SJames Feist {
1538b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1539b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, invalidIndex(arg1));
1540f4c4dcf4SKowalski, Kamil }
1541f4c4dcf4SKowalski, Kamil 
1542f4c4dcf4SKowalski, Kamil /**
1543f4c4dcf4SKowalski, Kamil  * @internal
1544f4c4dcf4SKowalski, Kamil  * @brief Formats EmptyJSON message into JSON
1545f4c4dcf4SKowalski, Kamil  *
1546f4c4dcf4SKowalski, Kamil  * See header file for more information
1547f4c4dcf4SKowalski, Kamil  * @endinternal
1548f4c4dcf4SKowalski, Kamil  */
emptyJSON()1549d9fcfcc1SEd Tanous nlohmann::json emptyJSON()
15501abe55efSEd Tanous {
1551fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::emptyJSON, {});
1552b5c07418SJames Feist }
1553b5c07418SJames Feist 
emptyJSON(crow::Response & res)1554b5c07418SJames Feist void emptyJSON(crow::Response& res)
1555b5c07418SJames Feist {
1556b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1557b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, emptyJSON());
1558f4c4dcf4SKowalski, Kamil }
1559f4c4dcf4SKowalski, Kamil 
1560f4c4dcf4SKowalski, Kamil /**
1561f4c4dcf4SKowalski, Kamil  * @internal
1562f4c4dcf4SKowalski, Kamil  * @brief Formats QueryNotSupportedOnResource message into JSON
1563f4c4dcf4SKowalski, Kamil  *
1564f4c4dcf4SKowalski, Kamil  * See header file for more information
1565f4c4dcf4SKowalski, Kamil  * @endinternal
1566f4c4dcf4SKowalski, Kamil  */
queryNotSupportedOnResource()1567d9fcfcc1SEd Tanous nlohmann::json queryNotSupportedOnResource()
15681abe55efSEd Tanous {
1569fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::queryNotSupportedOnResource,
1570b6cd31e1SEd Tanous                   {});
1571b5c07418SJames Feist }
1572b5c07418SJames Feist 
queryNotSupportedOnResource(crow::Response & res)1573b5c07418SJames Feist void queryNotSupportedOnResource(crow::Response& res)
1574b5c07418SJames Feist {
15756a409c12SEd Tanous     res.result(boost::beast::http::status::bad_request);
1576b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, queryNotSupportedOnResource());
1577f4c4dcf4SKowalski, Kamil }
1578f4c4dcf4SKowalski, Kamil 
1579f4c4dcf4SKowalski, Kamil /**
1580f4c4dcf4SKowalski, Kamil  * @internal
1581684bb4b8SJason M. Bills  * @brief Formats QueryNotSupportedOnOperation message into JSON
1582684bb4b8SJason M. Bills  *
1583684bb4b8SJason M. Bills  * See header file for more information
1584684bb4b8SJason M. Bills  * @endinternal
1585684bb4b8SJason M. Bills  */
queryNotSupportedOnOperation()1586d9fcfcc1SEd Tanous nlohmann::json queryNotSupportedOnOperation()
1587684bb4b8SJason M. Bills {
1588b6cd31e1SEd Tanous     return getLog(
1589fffb8c1fSEd Tanous         redfish::registries::base::Index::queryNotSupportedOnOperation, {});
1590684bb4b8SJason M. Bills }
1591684bb4b8SJason M. Bills 
queryNotSupportedOnOperation(crow::Response & res)1592684bb4b8SJason M. Bills void queryNotSupportedOnOperation(crow::Response& res)
1593684bb4b8SJason M. Bills {
15946a409c12SEd Tanous     res.result(boost::beast::http::status::bad_request);
1595684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, queryNotSupportedOnOperation());
1596684bb4b8SJason M. Bills }
1597684bb4b8SJason M. Bills 
1598684bb4b8SJason M. Bills /**
1599684bb4b8SJason M. Bills  * @internal
1600684bb4b8SJason M. Bills  * @brief Formats QueryCombinationInvalid message into JSON
1601684bb4b8SJason M. Bills  *
1602684bb4b8SJason M. Bills  * See header file for more information
1603684bb4b8SJason M. Bills  * @endinternal
1604684bb4b8SJason M. Bills  */
queryCombinationInvalid()1605d9fcfcc1SEd Tanous nlohmann::json queryCombinationInvalid()
1606684bb4b8SJason M. Bills {
1607fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::queryCombinationInvalid,
1608fffb8c1fSEd Tanous                   {});
1609684bb4b8SJason M. Bills }
1610684bb4b8SJason M. Bills 
queryCombinationInvalid(crow::Response & res)1611684bb4b8SJason M. Bills void queryCombinationInvalid(crow::Response& res)
1612684bb4b8SJason M. Bills {
1613684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
1614684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, queryCombinationInvalid());
1615684bb4b8SJason M. Bills }
1616684bb4b8SJason M. Bills 
1617684bb4b8SJason M. Bills /**
1618684bb4b8SJason M. Bills  * @internal
1619*fa345c78SEd Tanous  * @brief Formats EventBufferExceeded message into JSON
1620*fa345c78SEd Tanous  *
1621*fa345c78SEd Tanous  * See header file for more information
1622*fa345c78SEd Tanous  * @endinternal
1623*fa345c78SEd Tanous  */
eventBufferExceeded()1624*fa345c78SEd Tanous nlohmann::json eventBufferExceeded()
1625*fa345c78SEd Tanous {
1626*fa345c78SEd Tanous     return getLog(redfish::registries::base::Index::eventBufferExceeded, {});
1627*fa345c78SEd Tanous }
1628*fa345c78SEd Tanous 
eventBufferExceeded(crow::Response & res)1629*fa345c78SEd Tanous void eventBufferExceeded(crow::Response& res)
1630*fa345c78SEd Tanous {
1631*fa345c78SEd Tanous     res.result(boost::beast::http::status::bad_request);
1632*fa345c78SEd Tanous     addMessageToErrorJson(res.jsonValue, eventBufferExceeded());
1633*fa345c78SEd Tanous }
1634*fa345c78SEd Tanous 
1635*fa345c78SEd Tanous /**
1636*fa345c78SEd Tanous  * @internal
1637f4c4dcf4SKowalski, Kamil  * @brief Formats InsufficientPrivilege message into JSON
1638f4c4dcf4SKowalski, Kamil  *
1639f4c4dcf4SKowalski, Kamil  * See header file for more information
1640f4c4dcf4SKowalski, Kamil  * @endinternal
1641f4c4dcf4SKowalski, Kamil  */
insufficientPrivilege()1642d9fcfcc1SEd Tanous nlohmann::json insufficientPrivilege()
16431abe55efSEd Tanous {
1644fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::insufficientPrivilege, {});
1645b5c07418SJames Feist }
1646b5c07418SJames Feist 
insufficientPrivilege(crow::Response & res)1647b5c07418SJames Feist void insufficientPrivilege(crow::Response& res)
1648b5c07418SJames Feist {
1649b5c07418SJames Feist     res.result(boost::beast::http::status::forbidden);
1650b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, insufficientPrivilege());
1651f4c4dcf4SKowalski, Kamil }
1652f4c4dcf4SKowalski, Kamil 
1653f4c4dcf4SKowalski, Kamil /**
1654f4c4dcf4SKowalski, Kamil  * @internal
1655f4c4dcf4SKowalski, Kamil  * @brief Formats PropertyValueModified message into JSON
1656f4c4dcf4SKowalski, Kamil  *
1657f4c4dcf4SKowalski, Kamil  * See header file for more information
1658f4c4dcf4SKowalski, Kamil  * @endinternal
1659f4c4dcf4SKowalski, Kamil  */
propertyValueModified(std::string_view arg1,const nlohmann::json & arg2)16601668ce6dSEd Tanous nlohmann::json propertyValueModified(std::string_view arg1,
166195b3ad73SEd Tanous                                      const nlohmann::json& arg2)
1662b5c07418SJames Feist {
166395b3ad73SEd Tanous     std::string arg2Str = arg2.dump(2, ' ', true,
166495b3ad73SEd Tanous                                     nlohmann::json::error_handler_t::replace);
1665fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyValueModified,
166695b3ad73SEd Tanous                   std::to_array<std::string_view>({arg1, arg2Str}));
1667b5c07418SJames Feist }
1668b5c07418SJames Feist 
propertyValueModified(crow::Response & res,std::string_view arg1,const nlohmann::json & arg2)16691668ce6dSEd Tanous void propertyValueModified(crow::Response& res, std::string_view arg1,
167095b3ad73SEd Tanous                            const nlohmann::json& arg2)
16711abe55efSEd Tanous {
1672f12894f8SJason M. Bills     res.result(boost::beast::http::status::ok);
1673b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyValueModified(arg1, arg2), arg1);
1674f4c4dcf4SKowalski, Kamil }
1675f4c4dcf4SKowalski, Kamil 
1676f4c4dcf4SKowalski, Kamil /**
1677f4c4dcf4SKowalski, Kamil  * @internal
1678f4c4dcf4SKowalski, Kamil  * @brief Formats AccountNotModified message into JSON
1679f4c4dcf4SKowalski, Kamil  *
1680f4c4dcf4SKowalski, Kamil  * See header file for more information
1681f4c4dcf4SKowalski, Kamil  * @endinternal
1682f4c4dcf4SKowalski, Kamil  */
accountNotModified()1683d9fcfcc1SEd Tanous nlohmann::json accountNotModified()
16841abe55efSEd Tanous {
1685fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::accountNotModified, {});
1686b5c07418SJames Feist }
1687b5c07418SJames Feist 
accountNotModified(crow::Response & res)1688b5c07418SJames Feist void accountNotModified(crow::Response& res)
1689b5c07418SJames Feist {
1690b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1691b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, accountNotModified());
1692f4c4dcf4SKowalski, Kamil }
1693f4c4dcf4SKowalski, Kamil 
1694f4c4dcf4SKowalski, Kamil /**
1695f4c4dcf4SKowalski, Kamil  * @internal
1696f4c4dcf4SKowalski, Kamil  * @brief Formats QueryParameterValueFormatError message into JSON
1697f4c4dcf4SKowalski, Kamil  *
1698f4c4dcf4SKowalski, Kamil  * See header file for more information
1699f4c4dcf4SKowalski, Kamil  * @endinternal
1700f4c4dcf4SKowalski, Kamil  */
queryParameterValueFormatError(const nlohmann::json & arg1,std::string_view arg2)170195b3ad73SEd Tanous nlohmann::json queryParameterValueFormatError(const nlohmann::json& arg1,
17021668ce6dSEd Tanous                                               std::string_view arg2)
17031abe55efSEd Tanous {
170495b3ad73SEd Tanous     std::string arg1Str = arg1.dump(2, ' ', true,
170595b3ad73SEd Tanous                                     nlohmann::json::error_handler_t::replace);
1706fffb8c1fSEd Tanous     return getLog(
1707fffb8c1fSEd Tanous         redfish::registries::base::Index::queryParameterValueFormatError,
170895b3ad73SEd Tanous         std::to_array<std::string_view>({arg1Str, arg2}));
1709b5c07418SJames Feist }
1710b5c07418SJames Feist 
queryParameterValueFormatError(crow::Response & res,const nlohmann::json & arg1,std::string_view arg2)171195b3ad73SEd Tanous void queryParameterValueFormatError(crow::Response& res,
171295b3ad73SEd Tanous                                     const nlohmann::json& arg1,
17131668ce6dSEd Tanous                                     std::string_view arg2)
1714b5c07418SJames Feist {
1715b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1716b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
1717b5c07418SJames Feist                           queryParameterValueFormatError(arg1, arg2));
1718f4c4dcf4SKowalski, Kamil }
1719f4c4dcf4SKowalski, Kamil 
1720f4c4dcf4SKowalski, Kamil /**
1721f4c4dcf4SKowalski, Kamil  * @internal
1722b5c07418SJames Feist  * @brief Formats PropertyMissing message into JSON for the specified
1723b5c07418SJames Feist  * property
1724f12894f8SJason M. Bills  *
1725f12894f8SJason M. Bills  * See header file for more information
1726f12894f8SJason M. Bills  * @endinternal
1727f12894f8SJason M. Bills  */
propertyMissing(std::string_view arg1)17281668ce6dSEd Tanous nlohmann::json propertyMissing(std::string_view arg1)
1729f12894f8SJason M. Bills {
1730fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyMissing,
17311668ce6dSEd Tanous                   std::to_array({arg1}));
1732b5c07418SJames Feist }
1733b5c07418SJames Feist 
propertyMissing(crow::Response & res,std::string_view arg1)17341668ce6dSEd Tanous void propertyMissing(crow::Response& res, std::string_view arg1)
1735b5c07418SJames Feist {
1736b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1737b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyMissing(arg1), arg1);
1738f4c4dcf4SKowalski, Kamil }
1739f4c4dcf4SKowalski, Kamil 
1740f4c4dcf4SKowalski, Kamil /**
1741f4c4dcf4SKowalski, Kamil  * @internal
1742f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceExhaustion message into JSON
1743f4c4dcf4SKowalski, Kamil  *
1744f4c4dcf4SKowalski, Kamil  * See header file for more information
1745f4c4dcf4SKowalski, Kamil  * @endinternal
1746f4c4dcf4SKowalski, Kamil  */
resourceExhaustion(std::string_view arg1)17471668ce6dSEd Tanous nlohmann::json resourceExhaustion(std::string_view arg1)
17481abe55efSEd Tanous {
1749fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceExhaustion,
17501668ce6dSEd Tanous                   std::to_array({arg1}));
1751b5c07418SJames Feist }
1752b5c07418SJames Feist 
resourceExhaustion(crow::Response & res,std::string_view arg1)17531668ce6dSEd Tanous void resourceExhaustion(crow::Response& res, std::string_view arg1)
1754b5c07418SJames Feist {
1755b5c07418SJames Feist     res.result(boost::beast::http::status::service_unavailable);
1756b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceExhaustion(arg1));
1757f4c4dcf4SKowalski, Kamil }
1758f4c4dcf4SKowalski, Kamil 
1759f4c4dcf4SKowalski, Kamil /**
1760f4c4dcf4SKowalski, Kamil  * @internal
1761f4c4dcf4SKowalski, Kamil  * @brief Formats AccountModified message into JSON
1762f4c4dcf4SKowalski, Kamil  *
1763f4c4dcf4SKowalski, Kamil  * See header file for more information
1764f4c4dcf4SKowalski, Kamil  * @endinternal
1765f4c4dcf4SKowalski, Kamil  */
accountModified()1766d9fcfcc1SEd Tanous nlohmann::json accountModified()
17671abe55efSEd Tanous {
1768fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::accountModified, {});
1769b5c07418SJames Feist }
1770b5c07418SJames Feist 
accountModified(crow::Response & res)1771b5c07418SJames Feist void accountModified(crow::Response& res)
1772b5c07418SJames Feist {
1773b5c07418SJames Feist     res.result(boost::beast::http::status::ok);
1774b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, accountModified());
1775f4c4dcf4SKowalski, Kamil }
1776f4c4dcf4SKowalski, Kamil 
1777f4c4dcf4SKowalski, Kamil /**
1778f4c4dcf4SKowalski, Kamil  * @internal
1779f4c4dcf4SKowalski, Kamil  * @brief Formats QueryParameterOutOfRange message into JSON
1780f4c4dcf4SKowalski, Kamil  *
1781f4c4dcf4SKowalski, Kamil  * See header file for more information
1782f4c4dcf4SKowalski, Kamil  * @endinternal
1783f4c4dcf4SKowalski, Kamil  */
queryParameterOutOfRange(std::string_view arg1,std::string_view arg2,std::string_view arg3)17841668ce6dSEd Tanous nlohmann::json queryParameterOutOfRange(std::string_view arg1,
17851668ce6dSEd Tanous                                         std::string_view arg2,
17861668ce6dSEd Tanous                                         std::string_view arg3)
17871abe55efSEd Tanous {
1788fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::queryParameterOutOfRange,
17891668ce6dSEd Tanous                   std::to_array({arg1, arg2, arg3}));
1790b5c07418SJames Feist }
1791b5c07418SJames Feist 
queryParameterOutOfRange(crow::Response & res,std::string_view arg1,std::string_view arg2,std::string_view arg3)17921668ce6dSEd Tanous void queryParameterOutOfRange(crow::Response& res, std::string_view arg1,
17931668ce6dSEd Tanous                               std::string_view arg2, std::string_view arg3)
1794b5c07418SJames Feist {
1795b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1796b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
1797b5c07418SJames Feist                           queryParameterOutOfRange(arg1, arg2, arg3));
1798f4c4dcf4SKowalski, Kamil }
1799f4c4dcf4SKowalski, Kamil 
passwordChangeRequired(const boost::urls::url_view_base & arg1)18004a7fbefdSEd Tanous nlohmann::json passwordChangeRequired(const boost::urls::url_view_base& arg1)
1801b6cd31e1SEd Tanous {
1802fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::passwordChangeRequired,
1803079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer()}));
1804b6cd31e1SEd Tanous }
1805b6cd31e1SEd Tanous 
18063bf4e632SJoseph Reynolds /**
18073bf4e632SJoseph Reynolds  * @internal
18083bf4e632SJoseph Reynolds  * @brief Formats PasswordChangeRequired message into JSON
18093bf4e632SJoseph Reynolds  *
18103bf4e632SJoseph Reynolds  * See header file for more information
18113bf4e632SJoseph Reynolds  * @endinternal
18123bf4e632SJoseph Reynolds  */
passwordChangeRequired(crow::Response & res,const boost::urls::url_view_base & arg1)18134a7fbefdSEd Tanous void passwordChangeRequired(crow::Response& res,
18144a7fbefdSEd Tanous                             const boost::urls::url_view_base& arg1)
18153bf4e632SJoseph Reynolds {
1816b6cd31e1SEd Tanous     messages::addMessageToJsonRoot(res.jsonValue, passwordChangeRequired(arg1));
18173bf4e632SJoseph Reynolds }
18183bf4e632SJoseph Reynolds 
18194cde5d90SJames Feist /**
18204cde5d90SJames Feist  * @internal
1821ae688313SNan Zhou  * @brief Formats InsufficientStorage message into JSON
1822ae688313SNan Zhou  *
1823ae688313SNan Zhou  * See header file for more information
1824ae688313SNan Zhou  * @endinternal
1825ae688313SNan Zhou  */
insufficientStorage()1826ae688313SNan Zhou nlohmann::json insufficientStorage()
1827ae688313SNan Zhou {
1828ae688313SNan Zhou     return getLog(redfish::registries::base::Index::insufficientStorage, {});
1829ae688313SNan Zhou }
1830ae688313SNan Zhou 
insufficientStorage(crow::Response & res)1831ae688313SNan Zhou void insufficientStorage(crow::Response& res)
1832ae688313SNan Zhou {
1833ae688313SNan Zhou     res.result(boost::beast::http::status::insufficient_storage);
1834ae688313SNan Zhou     addMessageToErrorJson(res.jsonValue, insufficientStorage());
1835ae688313SNan Zhou }
1836ae688313SNan Zhou 
1837ae688313SNan Zhou /**
1838ae688313SNan Zhou  * @internal
183944c70412SEd Tanous  * @brief Formats OperationNotAllowed message into JSON
184044c70412SEd Tanous  *
184144c70412SEd Tanous  * See header file for more information
184244c70412SEd Tanous  * @endinternal
184344c70412SEd Tanous  */
operationNotAllowed()184444c70412SEd Tanous nlohmann::json operationNotAllowed()
184544c70412SEd Tanous {
184644c70412SEd Tanous     return getLog(redfish::registries::base::Index::operationNotAllowed, {});
184744c70412SEd Tanous }
184844c70412SEd Tanous 
operationNotAllowed(crow::Response & res)184944c70412SEd Tanous void operationNotAllowed(crow::Response& res)
185044c70412SEd Tanous {
185144c70412SEd Tanous     res.result(boost::beast::http::status::method_not_allowed);
185244c70412SEd Tanous     addMessageToErrorJson(res.jsonValue, operationNotAllowed());
185344c70412SEd Tanous }
185444c70412SEd Tanous 
1855600af5f1SAppaRao Puli /**
1856600af5f1SAppaRao Puli  * @internal
1857600af5f1SAppaRao Puli  * @brief Formats ArraySizeTooLong message into JSON
1858600af5f1SAppaRao Puli  *
1859600af5f1SAppaRao Puli  * See header file for more information
1860600af5f1SAppaRao Puli  * @endinternal
1861600af5f1SAppaRao Puli  */
arraySizeTooLong(std::string_view property,uint64_t length)1862600af5f1SAppaRao Puli nlohmann::json arraySizeTooLong(std::string_view property, uint64_t length)
1863600af5f1SAppaRao Puli {
1864600af5f1SAppaRao Puli     std::string valStr = std::to_string(length);
1865600af5f1SAppaRao Puli     return getLog(redfish::registries::base::Index::arraySizeTooLong,
1866600af5f1SAppaRao Puli                   std::to_array<std::string_view>({property, valStr}));
1867600af5f1SAppaRao Puli }
1868600af5f1SAppaRao Puli 
arraySizeTooLong(crow::Response & res,std::string_view property,uint64_t length)1869600af5f1SAppaRao Puli void arraySizeTooLong(crow::Response& res, std::string_view property,
1870600af5f1SAppaRao Puli                       uint64_t length)
1871600af5f1SAppaRao Puli {
187299bf0262SDivya Jyoti     res.result(boost::beast::http::status::bad_request);
1873600af5f1SAppaRao Puli     addMessageToErrorJson(res.jsonValue, arraySizeTooLong(property, length));
1874600af5f1SAppaRao Puli }
1875600af5f1SAppaRao Puli 
invalidUpload(crow::Response & res,std::string_view arg1,std::string_view arg2)187644c70412SEd Tanous void invalidUpload(crow::Response& res, std::string_view arg1,
187744c70412SEd Tanous                    std::string_view arg2)
187844c70412SEd Tanous {
187944c70412SEd Tanous     res.result(boost::beast::http::status::bad_request);
188044c70412SEd Tanous     addMessageToErrorJson(res.jsonValue, invalidUpload(arg1, arg2));
188144c70412SEd Tanous }
188244c70412SEd Tanous 
188344c70412SEd Tanous /**
188444c70412SEd Tanous  * @internal
18854cde5d90SJames Feist  * @brief Formats Invalid File message into JSON
18864cde5d90SJames Feist  *
18874cde5d90SJames Feist  * See header file for more information
18884cde5d90SJames Feist  * @endinternal
18894cde5d90SJames Feist  */
invalidUpload(std::string_view arg1,std::string_view arg2)18901668ce6dSEd Tanous nlohmann::json invalidUpload(std::string_view arg1, std::string_view arg2)
18914cde5d90SJames Feist {
18921668ce6dSEd Tanous     std::string msg = "Invalid file uploaded to ";
18931668ce6dSEd Tanous     msg += arg1;
18941668ce6dSEd Tanous     msg += ": ";
18951668ce6dSEd Tanous     msg += arg2;
18961668ce6dSEd Tanous     msg += ".";
1897613dabeaSEd Tanous 
1898613dabeaSEd Tanous     nlohmann::json::object_t ret;
1899613dabeaSEd Tanous     ret["@odata.type"] = "/redfish/v1/$metadata#Message.v1_1_1.Message";
1900613dabeaSEd Tanous     ret["MessageId"] = "OpenBMC.0.2.InvalidUpload";
1901613dabeaSEd Tanous     ret["Message"] = std::move(msg);
1902613dabeaSEd Tanous     nlohmann::json::array_t args;
1903ad539545SPatrick Williams     args.emplace_back(arg1);
1904ad539545SPatrick Williams     args.emplace_back(arg2);
1905613dabeaSEd Tanous     ret["MessageArgs"] = std::move(args);
1906613dabeaSEd Tanous     ret["MessageSeverity"] = "Warning";
1907613dabeaSEd Tanous     ret["Resolution"] = "None.";
1908613dabeaSEd Tanous     return ret;
19094cde5d90SJames Feist }
1910ae688313SNan Zhou 
1911f4c4dcf4SKowalski, Kamil } // namespace messages
1912f4c4dcf4SKowalski, Kamil 
1913d425c6f6SEd Tanous } // namespace redfish
1914