xref: /openbmc/bmcweb/features/redfish/src/error_messages.cpp (revision bd79bce8c3f1deb1fb2773868b9ece25233cf27b)
1f4c4dcf4SKowalski, Kamil /*
2f4c4dcf4SKowalski, Kamil // Copyright (c) 2018 Intel Corporation
3f4c4dcf4SKowalski, Kamil //
4f4c4dcf4SKowalski, Kamil // Licensed under the Apache License, Version 2.0 (the "License");
5f4c4dcf4SKowalski, Kamil // you may not use this file except in compliance with the License.
6f4c4dcf4SKowalski, Kamil // You may obtain a copy of the License at
7f4c4dcf4SKowalski, Kamil //
8f4c4dcf4SKowalski, Kamil //      http://www.apache.org/licenses/LICENSE-2.0
9f4c4dcf4SKowalski, Kamil //
10f4c4dcf4SKowalski, Kamil // Unless required by applicable law or agreed to in writing, software
11f4c4dcf4SKowalski, Kamil // distributed under the License is distributed on an "AS IS" BASIS,
12f4c4dcf4SKowalski, Kamil // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f4c4dcf4SKowalski, Kamil // See the License for the specific language governing permissions and
14f4c4dcf4SKowalski, Kamil // limitations under the License.
15f4c4dcf4SKowalski, Kamil */
160442ef92SNan Zhou #include "error_messages.hpp"
179ea15c35SEd Tanous 
180442ef92SNan Zhou #include "http_response.hpp"
190442ef92SNan Zhou #include "logging.hpp"
200442ef92SNan Zhou #include "registries.hpp"
210442ef92SNan Zhou #include "registries/base_message_registry.hpp"
220442ef92SNan Zhou 
230442ef92SNan Zhou #include <boost/beast/http/field.hpp>
249ea15c35SEd Tanous #include <boost/beast/http/status.hpp>
254a7fbefdSEd Tanous #include <boost/url/url_view_base.hpp>
26faf100f9SEd Tanous #include <nlohmann/json.hpp>
27f4c4dcf4SKowalski, Kamil 
281668ce6dSEd Tanous #include <array>
290442ef92SNan Zhou #include <cstddef>
30f0b59af4SEd Tanous #include <cstdint>
31d85418e3SPatrick Williams #include <source_location>
320442ef92SNan Zhou #include <span>
330442ef92SNan Zhou #include <string>
34f0b59af4SEd Tanous #include <string_view>
350442ef92SNan Zhou #include <utility>
360442ef92SNan Zhou 
370442ef92SNan Zhou // IWYU pragma: no_include <stddef.h>
381668ce6dSEd Tanous 
391abe55efSEd Tanous namespace redfish
401abe55efSEd Tanous {
411abe55efSEd Tanous 
421abe55efSEd Tanous namespace messages
431abe55efSEd Tanous {
44f4c4dcf4SKowalski, Kamil 
45f12894f8SJason M. Bills static void addMessageToErrorJson(nlohmann::json& target,
461abe55efSEd Tanous                                   const nlohmann::json& message)
471abe55efSEd Tanous {
48f4c4dcf4SKowalski, Kamil     auto& error = target["error"];
49f4c4dcf4SKowalski, Kamil 
501abe55efSEd Tanous     // If this is the first error message, fill in the information from the
511abe55efSEd Tanous     // first error message to the top level struct
521abe55efSEd Tanous     if (!error.is_object())
531abe55efSEd Tanous     {
54c074230bSJason M. Bills         auto messageIdIterator = message.find("MessageId");
55c074230bSJason M. Bills         if (messageIdIterator == message.end())
561abe55efSEd Tanous         {
5762598e31SEd Tanous             BMCWEB_LOG_CRITICAL(
5862598e31SEd Tanous                 "Attempt to add error message without MessageId");
59f4c4dcf4SKowalski, Kamil             return;
60f4c4dcf4SKowalski, Kamil         }
61f4c4dcf4SKowalski, Kamil 
62c074230bSJason M. Bills         auto messageFieldIterator = message.find("Message");
63c074230bSJason M. Bills         if (messageFieldIterator == message.end())
641abe55efSEd Tanous         {
6562598e31SEd Tanous             BMCWEB_LOG_CRITICAL("Attempt to add error message without Message");
66f4c4dcf4SKowalski, Kamil             return;
67f4c4dcf4SKowalski, Kamil         }
681476687dSEd Tanous         error["code"] = *messageIdIterator;
691476687dSEd Tanous         error["message"] = *messageFieldIterator;
701abe55efSEd Tanous     }
711abe55efSEd Tanous     else
721abe55efSEd Tanous     {
73f4c4dcf4SKowalski, Kamil         // More than 1 error occurred, so the message has to be generic
7455c7b7a2SEd Tanous         error["code"] = std::string(messageVersionPrefix) + "GeneralError";
75cc9139ecSJason M. Bills         error["message"] = "A general error has occurred. See Resolution for "
76cc9139ecSJason M. Bills                            "information on how to resolve the error.";
77f4c4dcf4SKowalski, Kamil     }
78f4c4dcf4SKowalski, Kamil 
793590bd1dSNan Zhou     // This check could technically be done in the default construction
80f4c4dcf4SKowalski, Kamil     // branch above, but because we need the pointer to the extended info field
81f4c4dcf4SKowalski, Kamil     // anyway, it's more efficient to do it here.
82c074230bSJason M. Bills     auto& extendedInfo = error[messages::messageAnnotation];
83c074230bSJason M. Bills     if (!extendedInfo.is_array())
841abe55efSEd Tanous     {
85c074230bSJason M. Bills         extendedInfo = nlohmann::json::array();
86f4c4dcf4SKowalski, Kamil     }
87f4c4dcf4SKowalski, Kamil 
88c074230bSJason M. Bills     extendedInfo.push_back(message);
89f4c4dcf4SKowalski, Kamil }
90f4c4dcf4SKowalski, Kamil 
913590bd1dSNan Zhou void moveErrorsToErrorJson(nlohmann::json& target, nlohmann::json& source)
923590bd1dSNan Zhou {
933590bd1dSNan Zhou     if (!source.is_object())
943590bd1dSNan Zhou     {
953590bd1dSNan Zhou         return;
963590bd1dSNan Zhou     }
973590bd1dSNan Zhou     auto errorIt = source.find("error");
983590bd1dSNan Zhou     if (errorIt == source.end())
993590bd1dSNan Zhou     {
1003590bd1dSNan Zhou         // caller puts error message in root
1013590bd1dSNan Zhou         messages::addMessageToErrorJson(target, source);
1023590bd1dSNan Zhou         source.clear();
1033590bd1dSNan Zhou         return;
1043590bd1dSNan Zhou     }
1053590bd1dSNan Zhou     auto extendedInfoIt = errorIt->find(messages::messageAnnotation);
1063590bd1dSNan Zhou     if (extendedInfoIt == errorIt->end())
1073590bd1dSNan Zhou     {
1083590bd1dSNan Zhou         return;
1093590bd1dSNan Zhou     }
1103590bd1dSNan Zhou     const nlohmann::json::array_t* extendedInfo =
1113590bd1dSNan Zhou         (*extendedInfoIt).get_ptr<const nlohmann::json::array_t*>();
1123590bd1dSNan Zhou     if (extendedInfo == nullptr)
1133590bd1dSNan Zhou     {
1143590bd1dSNan Zhou         source.erase(errorIt);
1153590bd1dSNan Zhou         return;
1163590bd1dSNan Zhou     }
1173590bd1dSNan Zhou     for (const nlohmann::json& message : *extendedInfo)
1183590bd1dSNan Zhou     {
1193590bd1dSNan Zhou         addMessageToErrorJson(target, message);
1203590bd1dSNan Zhou     }
1213590bd1dSNan Zhou     source.erase(errorIt);
1223590bd1dSNan Zhou }
1233590bd1dSNan Zhou 
124f12894f8SJason M. Bills static void addMessageToJsonRoot(nlohmann::json& target,
125f12894f8SJason M. Bills                                  const nlohmann::json& message)
1261abe55efSEd Tanous {
1271abe55efSEd Tanous     if (!target[messages::messageAnnotation].is_array())
1281abe55efSEd Tanous     {
129f4c4dcf4SKowalski, Kamil         // Force object to be an array
13055c7b7a2SEd Tanous         target[messages::messageAnnotation] = nlohmann::json::array();
131f4c4dcf4SKowalski, Kamil     }
132f4c4dcf4SKowalski, Kamil 
13355c7b7a2SEd Tanous     target[messages::messageAnnotation].push_back(message);
134f4c4dcf4SKowalski, Kamil }
135f4c4dcf4SKowalski, Kamil 
136f12894f8SJason M. Bills static void addMessageToJson(nlohmann::json& target,
137f12894f8SJason M. Bills                              const nlohmann::json& message,
1381668ce6dSEd Tanous                              std::string_view fieldPath)
1391abe55efSEd Tanous {
1401668ce6dSEd Tanous     std::string extendedInfo(fieldPath);
1411668ce6dSEd Tanous     extendedInfo += messages::messageAnnotation;
142f4c4dcf4SKowalski, Kamil 
1431668ce6dSEd Tanous     nlohmann::json& field = target[extendedInfo];
1441668ce6dSEd Tanous     if (!field.is_array())
1451abe55efSEd Tanous     {
146f4c4dcf4SKowalski, Kamil         // Force object to be an array
1471668ce6dSEd Tanous         field = nlohmann::json::array();
148f4c4dcf4SKowalski, Kamil     }
149f4c4dcf4SKowalski, Kamil 
150f4c4dcf4SKowalski, Kamil     // Object exists and it is an array so we can just push in the message
1511668ce6dSEd Tanous     field.push_back(message);
152f4c4dcf4SKowalski, Kamil }
153f4c4dcf4SKowalski, Kamil 
154f7725d79SEd Tanous static nlohmann::json getLog(redfish::registries::base::Index name,
155b6cd31e1SEd Tanous                              std::span<const std::string_view> args)
156b6cd31e1SEd Tanous {
157b6cd31e1SEd Tanous     size_t index = static_cast<size_t>(name);
158fffb8c1fSEd Tanous     if (index >= redfish::registries::base::registry.size())
159b6cd31e1SEd Tanous     {
160b6cd31e1SEd Tanous         return {};
161b6cd31e1SEd Tanous     }
16265e4f1f7SEd Tanous     return getLogFromRegistry(redfish::registries::base::header,
16365e4f1f7SEd Tanous                               redfish::registries::base::registry, index, args);
164b6cd31e1SEd Tanous }
165b6cd31e1SEd Tanous 
166f4c4dcf4SKowalski, Kamil /**
167f4c4dcf4SKowalski, Kamil  * @internal
168f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceInUse message into JSON
169f4c4dcf4SKowalski, Kamil  *
170f4c4dcf4SKowalski, Kamil  * See header file for more information
171f4c4dcf4SKowalski, Kamil  * @endinternal
172f4c4dcf4SKowalski, Kamil  */
173d9fcfcc1SEd Tanous nlohmann::json resourceInUse()
1741abe55efSEd Tanous {
175fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceInUse, {});
176b5c07418SJames Feist }
177b5c07418SJames Feist 
178b5c07418SJames Feist void resourceInUse(crow::Response& res)
179b5c07418SJames Feist {
180b5c07418SJames Feist     res.result(boost::beast::http::status::service_unavailable);
181b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceInUse());
182f4c4dcf4SKowalski, Kamil }
183f4c4dcf4SKowalski, Kamil 
184f4c4dcf4SKowalski, Kamil /**
185f4c4dcf4SKowalski, Kamil  * @internal
186f4c4dcf4SKowalski, Kamil  * @brief Formats MalformedJSON message into JSON
187f4c4dcf4SKowalski, Kamil  *
188f4c4dcf4SKowalski, Kamil  * See header file for more information
189f4c4dcf4SKowalski, Kamil  * @endinternal
190f4c4dcf4SKowalski, Kamil  */
191d9fcfcc1SEd Tanous nlohmann::json malformedJSON()
1921abe55efSEd Tanous {
193fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::malformedJSON, {});
194b5c07418SJames Feist }
195b5c07418SJames Feist 
196b5c07418SJames Feist void malformedJSON(crow::Response& res)
197b5c07418SJames Feist {
198b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
199b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, malformedJSON());
200f4c4dcf4SKowalski, Kamil }
201f4c4dcf4SKowalski, Kamil 
202f4c4dcf4SKowalski, Kamil /**
203f4c4dcf4SKowalski, Kamil  * @internal
204f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceMissingAtURI message into JSON
205f4c4dcf4SKowalski, Kamil  *
206f4c4dcf4SKowalski, Kamil  * See header file for more information
207f4c4dcf4SKowalski, Kamil  * @endinternal
208f4c4dcf4SKowalski, Kamil  */
2094a7fbefdSEd Tanous nlohmann::json resourceMissingAtURI(const boost::urls::url_view_base& arg1)
2101abe55efSEd Tanous {
211079360aeSEd Tanous     std::array<std::string_view, 1> args{arg1.buffer()};
212fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceMissingAtURI, args);
213b5c07418SJames Feist }
214b5c07418SJames Feist 
2154a7fbefdSEd Tanous void resourceMissingAtURI(crow::Response& res,
2164a7fbefdSEd Tanous                           const boost::urls::url_view_base& arg1)
217b5c07418SJames Feist {
218b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
219b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceMissingAtURI(arg1));
220f4c4dcf4SKowalski, Kamil }
221f4c4dcf4SKowalski, Kamil 
222f4c4dcf4SKowalski, Kamil /**
223f4c4dcf4SKowalski, Kamil  * @internal
224f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterValueFormatError message into JSON
225f4c4dcf4SKowalski, Kamil  *
226f4c4dcf4SKowalski, Kamil  * See header file for more information
227f4c4dcf4SKowalski, Kamil  * @endinternal
228f4c4dcf4SKowalski, Kamil  */
229*bd79bce8SPatrick Williams nlohmann::json actionParameterValueFormatError(
230*bd79bce8SPatrick Williams     const nlohmann::json& arg1, std::string_view arg2, std::string_view arg3)
2311abe55efSEd Tanous {
232*bd79bce8SPatrick Williams     std::string arg1Str =
233*bd79bce8SPatrick Williams         arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
234fffb8c1fSEd Tanous     return getLog(
235fffb8c1fSEd Tanous         redfish::registries::base::Index::actionParameterValueFormatError,
23695b3ad73SEd Tanous         std::to_array<std::string_view>({arg1Str, arg2, arg3}));
237b5c07418SJames Feist }
238b5c07418SJames Feist 
239*bd79bce8SPatrick Williams void actionParameterValueFormatError(
240*bd79bce8SPatrick Williams     crow::Response& res, const nlohmann::json& arg1, std::string_view arg2,
2411668ce6dSEd Tanous     std::string_view arg3)
242b5c07418SJames Feist {
243b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
244b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
245b5c07418SJames Feist                           actionParameterValueFormatError(arg1, arg2, arg3));
246f4c4dcf4SKowalski, Kamil }
247f4c4dcf4SKowalski, Kamil 
248f4c4dcf4SKowalski, Kamil /**
249f4c4dcf4SKowalski, Kamil  * @internal
2504ef82a15SAlex Schendel  * @brief Formats ActionParameterValueNotInList message into JSON
2514ef82a15SAlex Schendel  *
2524ef82a15SAlex Schendel  * See header file for more information
2534ef82a15SAlex Schendel  * @endinternal
2544ef82a15SAlex Schendel  */
255*bd79bce8SPatrick Williams nlohmann::json actionParameterValueNotInList(
256*bd79bce8SPatrick Williams     std::string_view arg1, std::string_view arg2, std::string_view arg3)
2574ef82a15SAlex Schendel {
2584ef82a15SAlex Schendel     return getLog(
2594ef82a15SAlex Schendel         redfish::registries::base::Index::actionParameterValueNotInList,
2604ef82a15SAlex Schendel         std::to_array({arg1, arg2, arg3}));
2614ef82a15SAlex Schendel }
2624ef82a15SAlex Schendel 
2634ef82a15SAlex Schendel void actionParameterValueNotInList(crow::Response& res, std::string_view arg1,
2644ef82a15SAlex Schendel                                    std::string_view arg2, std::string_view arg3)
2654ef82a15SAlex Schendel {
2664ef82a15SAlex Schendel     res.result(boost::beast::http::status::bad_request);
2674ef82a15SAlex Schendel     addMessageToErrorJson(res.jsonValue,
2684ef82a15SAlex Schendel                           actionParameterValueNotInList(arg1, arg2, arg3));
2694ef82a15SAlex Schendel }
2704ef82a15SAlex Schendel 
2714ef82a15SAlex Schendel /**
2724ef82a15SAlex Schendel  * @internal
273f4c4dcf4SKowalski, Kamil  * @brief Formats InternalError message into JSON
274f4c4dcf4SKowalski, Kamil  *
275f4c4dcf4SKowalski, Kamil  * See header file for more information
276f4c4dcf4SKowalski, Kamil  * @endinternal
277f4c4dcf4SKowalski, Kamil  */
278d9fcfcc1SEd Tanous nlohmann::json internalError()
2791abe55efSEd Tanous {
280fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::internalError, {});
281b5c07418SJames Feist }
282b5c07418SJames Feist 
283d85418e3SPatrick Williams void internalError(crow::Response& res, const std::source_location location)
284b5c07418SJames Feist {
28562598e31SEd Tanous     BMCWEB_LOG_CRITICAL("Internal Error {}({}:{}) `{}`: ", location.file_name(),
28662598e31SEd Tanous                         location.line(), location.column(),
28762598e31SEd Tanous                         location.function_name());
288b5c07418SJames Feist     res.result(boost::beast::http::status::internal_server_error);
289b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, internalError());
290f12894f8SJason M. Bills }
291f12894f8SJason M. Bills 
292f12894f8SJason M. Bills /**
293f12894f8SJason M. Bills  * @internal
294f4c4dcf4SKowalski, Kamil  * @brief Formats UnrecognizedRequestBody message into JSON
295f4c4dcf4SKowalski, Kamil  *
296f4c4dcf4SKowalski, Kamil  * See header file for more information
297f4c4dcf4SKowalski, Kamil  * @endinternal
298f4c4dcf4SKowalski, Kamil  */
299d9fcfcc1SEd Tanous nlohmann::json unrecognizedRequestBody()
3001abe55efSEd Tanous {
301fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::unrecognizedRequestBody,
302fffb8c1fSEd Tanous                   {});
303b5c07418SJames Feist }
304b5c07418SJames Feist 
305b5c07418SJames Feist void unrecognizedRequestBody(crow::Response& res)
306b5c07418SJames Feist {
307b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
308b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, unrecognizedRequestBody());
309f4c4dcf4SKowalski, Kamil }
310f4c4dcf4SKowalski, Kamil 
311f4c4dcf4SKowalski, Kamil /**
312f4c4dcf4SKowalski, Kamil  * @internal
313f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceAtUriUnauthorized message into JSON
314f4c4dcf4SKowalski, Kamil  *
315f4c4dcf4SKowalski, Kamil  * See header file for more information
316f4c4dcf4SKowalski, Kamil  * @endinternal
317f4c4dcf4SKowalski, Kamil  */
3184a7fbefdSEd Tanous nlohmann::json resourceAtUriUnauthorized(const boost::urls::url_view_base& arg1,
3191668ce6dSEd Tanous                                          std::string_view arg2)
3201abe55efSEd Tanous {
321079360aeSEd Tanous     return getLog(redfish::registries::base::Index::resourceAtUriUnauthorized,
322079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer(), arg2}));
323b5c07418SJames Feist }
324b5c07418SJames Feist 
3254a7fbefdSEd Tanous void resourceAtUriUnauthorized(crow::Response& res,
3264a7fbefdSEd Tanous                                const boost::urls::url_view_base& arg1,
3271668ce6dSEd Tanous                                std::string_view arg2)
328b5c07418SJames Feist {
329b5c07418SJames Feist     res.result(boost::beast::http::status::unauthorized);
330b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceAtUriUnauthorized(arg1, arg2));
331f4c4dcf4SKowalski, Kamil }
332f4c4dcf4SKowalski, Kamil 
333f4c4dcf4SKowalski, Kamil /**
334f4c4dcf4SKowalski, Kamil  * @internal
335f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterUnknown message into JSON
336f4c4dcf4SKowalski, Kamil  *
337f4c4dcf4SKowalski, Kamil  * See header file for more information
338f4c4dcf4SKowalski, Kamil  * @endinternal
339f4c4dcf4SKowalski, Kamil  */
3401668ce6dSEd Tanous nlohmann::json actionParameterUnknown(std::string_view arg1,
3411668ce6dSEd Tanous                                       std::string_view arg2)
342b5c07418SJames Feist {
343fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::actionParameterUnknown,
3441668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
345b5c07418SJames Feist }
346b5c07418SJames Feist 
3471668ce6dSEd Tanous void actionParameterUnknown(crow::Response& res, std::string_view arg1,
3481668ce6dSEd Tanous                             std::string_view arg2)
3491abe55efSEd Tanous {
350f12894f8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
351b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, actionParameterUnknown(arg1, arg2));
352f4c4dcf4SKowalski, Kamil }
353f4c4dcf4SKowalski, Kamil 
354f4c4dcf4SKowalski, Kamil /**
355f4c4dcf4SKowalski, Kamil  * @internal
356f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceCannotBeDeleted message into JSON
357f4c4dcf4SKowalski, Kamil  *
358f4c4dcf4SKowalski, Kamil  * See header file for more information
359f4c4dcf4SKowalski, Kamil  * @endinternal
360f4c4dcf4SKowalski, Kamil  */
361d9fcfcc1SEd Tanous nlohmann::json resourceCannotBeDeleted()
3621abe55efSEd Tanous {
363fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceCannotBeDeleted,
364fffb8c1fSEd Tanous                   {});
365b5c07418SJames Feist }
366b5c07418SJames Feist 
367b5c07418SJames Feist void resourceCannotBeDeleted(crow::Response& res)
368b5c07418SJames Feist {
36944c70412SEd Tanous     res.result(boost::beast::http::status::method_not_allowed);
370b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceCannotBeDeleted());
371f4c4dcf4SKowalski, Kamil }
372f4c4dcf4SKowalski, Kamil 
373f4c4dcf4SKowalski, Kamil /**
374f4c4dcf4SKowalski, Kamil  * @internal
375f4c4dcf4SKowalski, Kamil  * @brief Formats PropertyDuplicate message into JSON
376f4c4dcf4SKowalski, Kamil  *
377f4c4dcf4SKowalski, Kamil  * See header file for more information
378f4c4dcf4SKowalski, Kamil  * @endinternal
379f4c4dcf4SKowalski, Kamil  */
3801668ce6dSEd Tanous nlohmann::json propertyDuplicate(std::string_view arg1)
3811abe55efSEd Tanous {
382fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyDuplicate,
3831668ce6dSEd Tanous                   std::to_array({arg1}));
384b5c07418SJames Feist }
385b5c07418SJames Feist 
3861668ce6dSEd Tanous void propertyDuplicate(crow::Response& res, std::string_view arg1)
387b5c07418SJames Feist {
388b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
389b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyDuplicate(arg1), arg1);
390f4c4dcf4SKowalski, Kamil }
391f4c4dcf4SKowalski, Kamil 
392f4c4dcf4SKowalski, Kamil /**
393f4c4dcf4SKowalski, Kamil  * @internal
394f4c4dcf4SKowalski, Kamil  * @brief Formats ServiceTemporarilyUnavailable message into JSON
395f4c4dcf4SKowalski, Kamil  *
396f4c4dcf4SKowalski, Kamil  * See header file for more information
397f4c4dcf4SKowalski, Kamil  * @endinternal
398f4c4dcf4SKowalski, Kamil  */
3991668ce6dSEd Tanous nlohmann::json serviceTemporarilyUnavailable(std::string_view arg1)
4001abe55efSEd Tanous {
401b6cd31e1SEd Tanous     return getLog(
402fffb8c1fSEd Tanous         redfish::registries::base::Index::serviceTemporarilyUnavailable,
4031668ce6dSEd Tanous         std::to_array({arg1}));
404b5c07418SJames Feist }
405b5c07418SJames Feist 
4061668ce6dSEd Tanous void serviceTemporarilyUnavailable(crow::Response& res, std::string_view arg1)
407b5c07418SJames Feist {
408d9f6c621SEd Tanous     res.addHeader(boost::beast::http::field::retry_after, arg1);
409b5c07418SJames Feist     res.result(boost::beast::http::status::service_unavailable);
410b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, serviceTemporarilyUnavailable(arg1));
411f4c4dcf4SKowalski, Kamil }
412f4c4dcf4SKowalski, Kamil 
413f4c4dcf4SKowalski, Kamil /**
414f4c4dcf4SKowalski, Kamil  * @internal
415f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceAlreadyExists message into JSON
416f4c4dcf4SKowalski, Kamil  *
417f4c4dcf4SKowalski, Kamil  * See header file for more information
418f4c4dcf4SKowalski, Kamil  * @endinternal
419f4c4dcf4SKowalski, Kamil  */
420*bd79bce8SPatrick Williams nlohmann::json resourceAlreadyExists(
421*bd79bce8SPatrick Williams     std::string_view arg1, std::string_view arg2, std::string_view arg3)
4221abe55efSEd Tanous {
423fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceAlreadyExists,
4241668ce6dSEd Tanous                   std::to_array({arg1, arg2, arg3}));
425b5c07418SJames Feist }
426b5c07418SJames Feist 
4271668ce6dSEd Tanous void resourceAlreadyExists(crow::Response& res, std::string_view arg1,
4281668ce6dSEd Tanous                            std::string_view arg2, std::string_view arg3)
429b5c07418SJames Feist {
430b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
431b5c07418SJames Feist     addMessageToJson(res.jsonValue, resourceAlreadyExists(arg1, arg2, arg3),
432a08b46ccSJason M. Bills                      arg2);
433f4c4dcf4SKowalski, Kamil }
434f4c4dcf4SKowalski, Kamil 
435f4c4dcf4SKowalski, Kamil /**
436f4c4dcf4SKowalski, Kamil  * @internal
437f4c4dcf4SKowalski, Kamil  * @brief Formats AccountForSessionNoLongerExists message into JSON
438f4c4dcf4SKowalski, Kamil  *
439f4c4dcf4SKowalski, Kamil  * See header file for more information
440f4c4dcf4SKowalski, Kamil  * @endinternal
441f4c4dcf4SKowalski, Kamil  */
442d9fcfcc1SEd Tanous nlohmann::json accountForSessionNoLongerExists()
4431abe55efSEd Tanous {
444fffb8c1fSEd Tanous     return getLog(
445fffb8c1fSEd Tanous         redfish::registries::base::Index::accountForSessionNoLongerExists, {});
446b5c07418SJames Feist }
447b5c07418SJames Feist 
448b5c07418SJames Feist void accountForSessionNoLongerExists(crow::Response& res)
449b5c07418SJames Feist {
450b5c07418SJames Feist     res.result(boost::beast::http::status::forbidden);
451b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, accountForSessionNoLongerExists());
452f4c4dcf4SKowalski, Kamil }
453f4c4dcf4SKowalski, Kamil 
454f4c4dcf4SKowalski, Kamil /**
455f4c4dcf4SKowalski, Kamil  * @internal
456f4c4dcf4SKowalski, Kamil  * @brief Formats CreateFailedMissingReqProperties message into JSON
457f4c4dcf4SKowalski, Kamil  *
458f4c4dcf4SKowalski, Kamil  * See header file for more information
459f4c4dcf4SKowalski, Kamil  * @endinternal
460f4c4dcf4SKowalski, Kamil  */
4611668ce6dSEd Tanous nlohmann::json createFailedMissingReqProperties(std::string_view arg1)
4621abe55efSEd Tanous {
463fffb8c1fSEd Tanous     return getLog(
464fffb8c1fSEd Tanous         redfish::registries::base::Index::createFailedMissingReqProperties,
4651668ce6dSEd Tanous         std::to_array({arg1}));
466b5c07418SJames Feist }
467b5c07418SJames Feist 
468b5c07418SJames Feist void createFailedMissingReqProperties(crow::Response& res,
4691668ce6dSEd Tanous                                       std::string_view arg1)
470b5c07418SJames Feist {
471b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
472b5c07418SJames Feist     addMessageToJson(res.jsonValue, createFailedMissingReqProperties(arg1),
473a08b46ccSJason M. Bills                      arg1);
474f12894f8SJason M. Bills }
475f12894f8SJason M. Bills 
476f12894f8SJason M. Bills /**
477f12894f8SJason M. Bills  * @internal
478f12894f8SJason M. Bills  * @brief Formats PropertyValueFormatError message into JSON for the specified
479f12894f8SJason M. Bills  * property
480f12894f8SJason M. Bills  *
481f12894f8SJason M. Bills  * See header file for more information
482f12894f8SJason M. Bills  * @endinternal
483f12894f8SJason M. Bills  */
484f818b04dSEd Tanous nlohmann::json propertyValueFormatError(const nlohmann::json& arg1,
4851668ce6dSEd Tanous                                         std::string_view arg2)
486f12894f8SJason M. Bills {
487*bd79bce8SPatrick Williams     std::string arg1Str =
488*bd79bce8SPatrick Williams         arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
489fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyValueFormatError,
490f818b04dSEd Tanous                   std::to_array<std::string_view>({arg1Str, arg2}));
491b5c07418SJames Feist }
492b5c07418SJames Feist 
493f818b04dSEd Tanous void propertyValueFormatError(crow::Response& res, const nlohmann::json& arg1,
4941668ce6dSEd Tanous                               std::string_view arg2)
495b5c07418SJames Feist {
496b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
497b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyValueFormatError(arg1, arg2), arg2);
498f12894f8SJason M. Bills }
499f12894f8SJason M. Bills 
500f12894f8SJason M. Bills /**
501f12894f8SJason M. Bills  * @internal
502f12894f8SJason M. Bills  * @brief Formats PropertyValueNotInList message into JSON for the specified
503f12894f8SJason M. Bills  * property
504f12894f8SJason M. Bills  *
505f12894f8SJason M. Bills  * See header file for more information
506f12894f8SJason M. Bills  * @endinternal
507f12894f8SJason M. Bills  */
508e2616cc5SEd Tanous 
509e2616cc5SEd Tanous nlohmann::json propertyValueNotInList(const nlohmann::json& arg1,
5101668ce6dSEd Tanous                                       std::string_view arg2)
511f12894f8SJason M. Bills {
512*bd79bce8SPatrick Williams     std::string arg1Str =
513*bd79bce8SPatrick Williams         arg1.dump(-1, ' ', true, nlohmann::json::error_handler_t::replace);
514fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyValueNotInList,
515e2616cc5SEd Tanous                   std::to_array<std::string_view>({arg1Str, arg2}));
516b5c07418SJames Feist }
517b5c07418SJames Feist 
518e2616cc5SEd Tanous void propertyValueNotInList(crow::Response& res, const nlohmann::json& arg1,
5191668ce6dSEd Tanous                             std::string_view arg2)
520b5c07418SJames Feist {
521b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
522b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyValueNotInList(arg1, arg2), arg2);
523f4c4dcf4SKowalski, Kamil }
524f4c4dcf4SKowalski, Kamil 
525f4c4dcf4SKowalski, Kamil /**
526f4c4dcf4SKowalski, Kamil  * @internal
527227a2b0aSJiaqing Zhao  * @brief Formats PropertyValueOutOfRange message into JSON
528227a2b0aSJiaqing Zhao  *
529227a2b0aSJiaqing Zhao  * See header file for more information
530227a2b0aSJiaqing Zhao  * @endinternal
531227a2b0aSJiaqing Zhao  */
53295b3ad73SEd Tanous nlohmann::json propertyValueOutOfRange(const nlohmann::json& arg1,
533227a2b0aSJiaqing Zhao                                        std::string_view arg2)
534227a2b0aSJiaqing Zhao {
535*bd79bce8SPatrick Williams     std::string arg1Str =
536*bd79bce8SPatrick Williams         arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
537227a2b0aSJiaqing Zhao     return getLog(redfish::registries::base::Index::propertyValueOutOfRange,
53895b3ad73SEd Tanous                   std::to_array<std::string_view>({arg1Str, arg2}));
539227a2b0aSJiaqing Zhao }
540227a2b0aSJiaqing Zhao 
54195b3ad73SEd Tanous void propertyValueOutOfRange(crow::Response& res, const nlohmann::json& arg1,
542227a2b0aSJiaqing Zhao                              std::string_view arg2)
543227a2b0aSJiaqing Zhao {
544227a2b0aSJiaqing Zhao     res.result(boost::beast::http::status::bad_request);
545227a2b0aSJiaqing Zhao     addMessageToErrorJson(res.jsonValue, propertyValueOutOfRange(arg1, arg2));
546227a2b0aSJiaqing Zhao }
547227a2b0aSJiaqing Zhao 
548227a2b0aSJiaqing Zhao /**
549227a2b0aSJiaqing Zhao  * @internal
550f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceAtUriInUnknownFormat message into JSON
551f4c4dcf4SKowalski, Kamil  *
552f4c4dcf4SKowalski, Kamil  * See header file for more information
553f4c4dcf4SKowalski, Kamil  * @endinternal
554f4c4dcf4SKowalski, Kamil  */
5554a7fbefdSEd Tanous nlohmann::json
5564a7fbefdSEd Tanous     resourceAtUriInUnknownFormat(const boost::urls::url_view_base& arg1)
5571abe55efSEd Tanous {
558b6cd31e1SEd Tanous     return getLog(
559fffb8c1fSEd Tanous         redfish::registries::base::Index::resourceAtUriInUnknownFormat,
560079360aeSEd Tanous         std::to_array<std::string_view>({arg1.buffer()}));
561b5c07418SJames Feist }
562b5c07418SJames Feist 
563ace85d60SEd Tanous void resourceAtUriInUnknownFormat(crow::Response& res,
5644a7fbefdSEd Tanous                                   const boost::urls::url_view_base& arg1)
565b5c07418SJames Feist {
566b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
567b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceAtUriInUnknownFormat(arg1));
568f4c4dcf4SKowalski, Kamil }
569f4c4dcf4SKowalski, Kamil 
570f4c4dcf4SKowalski, Kamil /**
571f4c4dcf4SKowalski, Kamil  * @internal
57281856681SAsmitha Karunanithi  * @brief Formats ServiceDisabled message into JSON
57381856681SAsmitha Karunanithi  *
57481856681SAsmitha Karunanithi  * See header file for more information
57581856681SAsmitha Karunanithi  * @endinternal
57681856681SAsmitha Karunanithi  */
5771668ce6dSEd Tanous nlohmann::json serviceDisabled(std::string_view arg1)
57881856681SAsmitha Karunanithi {
579fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::serviceDisabled,
5801668ce6dSEd Tanous                   std::to_array({arg1}));
58181856681SAsmitha Karunanithi }
58281856681SAsmitha Karunanithi 
5831668ce6dSEd Tanous void serviceDisabled(crow::Response& res, std::string_view arg1)
58481856681SAsmitha Karunanithi {
58581856681SAsmitha Karunanithi     res.result(boost::beast::http::status::service_unavailable);
58681856681SAsmitha Karunanithi     addMessageToErrorJson(res.jsonValue, serviceDisabled(arg1));
58781856681SAsmitha Karunanithi }
58881856681SAsmitha Karunanithi 
58981856681SAsmitha Karunanithi /**
59081856681SAsmitha Karunanithi  * @internal
591f4c4dcf4SKowalski, Kamil  * @brief Formats ServiceInUnknownState message into JSON
592f4c4dcf4SKowalski, Kamil  *
593f4c4dcf4SKowalski, Kamil  * See header file for more information
594f4c4dcf4SKowalski, Kamil  * @endinternal
595f4c4dcf4SKowalski, Kamil  */
596d9fcfcc1SEd Tanous nlohmann::json serviceInUnknownState()
5971abe55efSEd Tanous {
598fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::serviceInUnknownState, {});
599b5c07418SJames Feist }
600b5c07418SJames Feist 
601b5c07418SJames Feist void serviceInUnknownState(crow::Response& res)
602b5c07418SJames Feist {
603b5c07418SJames Feist     res.result(boost::beast::http::status::service_unavailable);
604b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, serviceInUnknownState());
605f4c4dcf4SKowalski, Kamil }
606f4c4dcf4SKowalski, Kamil 
607f4c4dcf4SKowalski, Kamil /**
608f4c4dcf4SKowalski, Kamil  * @internal
609f4c4dcf4SKowalski, Kamil  * @brief Formats EventSubscriptionLimitExceeded message into JSON
610f4c4dcf4SKowalski, Kamil  *
611f4c4dcf4SKowalski, Kamil  * See header file for more information
612f4c4dcf4SKowalski, Kamil  * @endinternal
613f4c4dcf4SKowalski, Kamil  */
614d9fcfcc1SEd Tanous nlohmann::json eventSubscriptionLimitExceeded()
6151abe55efSEd Tanous {
616fffb8c1fSEd Tanous     return getLog(
617fffb8c1fSEd Tanous         redfish::registries::base::Index::eventSubscriptionLimitExceeded, {});
618b5c07418SJames Feist }
619b5c07418SJames Feist 
620b5c07418SJames Feist void eventSubscriptionLimitExceeded(crow::Response& res)
621b5c07418SJames Feist {
622789fdab3SEd Tanous     res.result(boost::beast::http::status::service_unavailable);
623b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, eventSubscriptionLimitExceeded());
624f4c4dcf4SKowalski, Kamil }
625f4c4dcf4SKowalski, Kamil 
626f4c4dcf4SKowalski, Kamil /**
627f4c4dcf4SKowalski, Kamil  * @internal
628f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterMissing message into JSON
629f4c4dcf4SKowalski, Kamil  *
630f4c4dcf4SKowalski, Kamil  * See header file for more information
631f4c4dcf4SKowalski, Kamil  * @endinternal
632f4c4dcf4SKowalski, Kamil  */
6331668ce6dSEd Tanous nlohmann::json actionParameterMissing(std::string_view arg1,
6341668ce6dSEd Tanous                                       std::string_view arg2)
6351abe55efSEd Tanous {
636fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::actionParameterMissing,
6371668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
638b5c07418SJames Feist }
639b5c07418SJames Feist 
6401668ce6dSEd Tanous void actionParameterMissing(crow::Response& res, std::string_view arg1,
6411668ce6dSEd Tanous                             std::string_view arg2)
642b5c07418SJames Feist {
643b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
644b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, actionParameterMissing(arg1, arg2));
645f4c4dcf4SKowalski, Kamil }
646f4c4dcf4SKowalski, Kamil 
647f4c4dcf4SKowalski, Kamil /**
648f4c4dcf4SKowalski, Kamil  * @internal
649f4c4dcf4SKowalski, Kamil  * @brief Formats StringValueTooLong message into JSON
650f4c4dcf4SKowalski, Kamil  *
651f4c4dcf4SKowalski, Kamil  * See header file for more information
652f4c4dcf4SKowalski, Kamil  * @endinternal
653f4c4dcf4SKowalski, Kamil  */
6541668ce6dSEd Tanous nlohmann::json stringValueTooLong(std::string_view arg1, int arg2)
6551abe55efSEd Tanous {
656b6cd31e1SEd Tanous     std::string arg2String = std::to_string(arg2);
657fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::stringValueTooLong,
6581668ce6dSEd Tanous                   std::to_array({arg1, std::string_view(arg2String)}));
659b5c07418SJames Feist }
660b5c07418SJames Feist 
6611668ce6dSEd Tanous void stringValueTooLong(crow::Response& res, std::string_view arg1, int arg2)
662b5c07418SJames Feist {
663b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
664b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, stringValueTooLong(arg1, arg2));
665f4c4dcf4SKowalski, Kamil }
666f4c4dcf4SKowalski, Kamil 
667f4c4dcf4SKowalski, Kamil /**
668f4c4dcf4SKowalski, Kamil  * @internal
669cc9139ecSJason M. Bills  * @brief Formats SessionTerminated message into JSON
670cc9139ecSJason M. Bills  *
671cc9139ecSJason M. Bills  * See header file for more information
672cc9139ecSJason M. Bills  * @endinternal
673cc9139ecSJason M. Bills  */
674d9fcfcc1SEd Tanous nlohmann::json sessionTerminated()
675cc9139ecSJason M. Bills {
676fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::sessionTerminated, {});
677b5c07418SJames Feist }
678b5c07418SJames Feist 
679b5c07418SJames Feist void sessionTerminated(crow::Response& res)
680b5c07418SJames Feist {
681b5c07418SJames Feist     res.result(boost::beast::http::status::ok);
682b5c07418SJames Feist     addMessageToJsonRoot(res.jsonValue, sessionTerminated());
683cc9139ecSJason M. Bills }
684cc9139ecSJason M. Bills 
685cc9139ecSJason M. Bills /**
686cc9139ecSJason M. Bills  * @internal
687684bb4b8SJason M. Bills  * @brief Formats SubscriptionTerminated message into JSON
688684bb4b8SJason M. Bills  *
689684bb4b8SJason M. Bills  * See header file for more information
690684bb4b8SJason M. Bills  * @endinternal
691684bb4b8SJason M. Bills  */
692d9fcfcc1SEd Tanous nlohmann::json subscriptionTerminated()
693684bb4b8SJason M. Bills {
694fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::subscriptionTerminated, {});
695684bb4b8SJason M. Bills }
696684bb4b8SJason M. Bills 
697684bb4b8SJason M. Bills void subscriptionTerminated(crow::Response& res)
698684bb4b8SJason M. Bills {
699684bb4b8SJason M. Bills     res.result(boost::beast::http::status::ok);
700684bb4b8SJason M. Bills     addMessageToJsonRoot(res.jsonValue, subscriptionTerminated());
701684bb4b8SJason M. Bills }
702684bb4b8SJason M. Bills 
703684bb4b8SJason M. Bills /**
704684bb4b8SJason M. Bills  * @internal
705cc9139ecSJason M. Bills  * @brief Formats ResourceTypeIncompatible message into JSON
706cc9139ecSJason M. Bills  *
707cc9139ecSJason M. Bills  * See header file for more information
708cc9139ecSJason M. Bills  * @endinternal
709cc9139ecSJason M. Bills  */
7101668ce6dSEd Tanous nlohmann::json resourceTypeIncompatible(std::string_view arg1,
7111668ce6dSEd Tanous                                         std::string_view arg2)
712cc9139ecSJason M. Bills {
713fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceTypeIncompatible,
7141668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
715b5c07418SJames Feist }
716b5c07418SJames Feist 
7171668ce6dSEd Tanous void resourceTypeIncompatible(crow::Response& res, std::string_view arg1,
7181668ce6dSEd Tanous                               std::string_view arg2)
719b5c07418SJames Feist {
720b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
721b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceTypeIncompatible(arg1, arg2));
722cc9139ecSJason M. Bills }
723cc9139ecSJason M. Bills 
724cc9139ecSJason M. Bills /**
725cc9139ecSJason M. Bills  * @internal
726684bb4b8SJason M. Bills  * @brief Formats ResetRequired message into JSON
727684bb4b8SJason M. Bills  *
728684bb4b8SJason M. Bills  * See header file for more information
729684bb4b8SJason M. Bills  * @endinternal
730684bb4b8SJason M. Bills  */
7314a7fbefdSEd Tanous nlohmann::json resetRequired(const boost::urls::url_view_base& arg1,
7324a7fbefdSEd Tanous                              std::string_view arg2)
733684bb4b8SJason M. Bills {
734fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resetRequired,
735079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer(), arg2}));
736684bb4b8SJason M. Bills }
737684bb4b8SJason M. Bills 
7384a7fbefdSEd Tanous void resetRequired(crow::Response& res, const boost::urls::url_view_base& arg1,
7391668ce6dSEd Tanous                    std::string_view arg2)
740684bb4b8SJason M. Bills {
741684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
742684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, resetRequired(arg1, arg2));
743684bb4b8SJason M. Bills }
744684bb4b8SJason M. Bills 
745684bb4b8SJason M. Bills /**
746684bb4b8SJason M. Bills  * @internal
747684bb4b8SJason M. Bills  * @brief Formats ChassisPowerStateOnRequired message into JSON
748684bb4b8SJason M. Bills  *
749684bb4b8SJason M. Bills  * See header file for more information
750684bb4b8SJason M. Bills  * @endinternal
751684bb4b8SJason M. Bills  */
7521668ce6dSEd Tanous nlohmann::json chassisPowerStateOnRequired(std::string_view arg1)
753684bb4b8SJason M. Bills {
754fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resetRequired,
7551668ce6dSEd Tanous                   std::to_array({arg1}));
756684bb4b8SJason M. Bills }
757684bb4b8SJason M. Bills 
7581668ce6dSEd Tanous void chassisPowerStateOnRequired(crow::Response& res, std::string_view arg1)
759684bb4b8SJason M. Bills {
760684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
761684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, chassisPowerStateOnRequired(arg1));
762684bb4b8SJason M. Bills }
763684bb4b8SJason M. Bills 
764684bb4b8SJason M. Bills /**
765684bb4b8SJason M. Bills  * @internal
766684bb4b8SJason M. Bills  * @brief Formats ChassisPowerStateOffRequired message into JSON
767684bb4b8SJason M. Bills  *
768684bb4b8SJason M. Bills  * See header file for more information
769684bb4b8SJason M. Bills  * @endinternal
770684bb4b8SJason M. Bills  */
7711668ce6dSEd Tanous nlohmann::json chassisPowerStateOffRequired(std::string_view arg1)
772684bb4b8SJason M. Bills {
773b6cd31e1SEd Tanous     return getLog(
774fffb8c1fSEd Tanous         redfish::registries::base::Index::chassisPowerStateOffRequired,
7751668ce6dSEd Tanous         std::to_array({arg1}));
776684bb4b8SJason M. Bills }
777684bb4b8SJason M. Bills 
7781668ce6dSEd Tanous void chassisPowerStateOffRequired(crow::Response& res, std::string_view arg1)
779684bb4b8SJason M. Bills {
780684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
781684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, chassisPowerStateOffRequired(arg1));
782684bb4b8SJason M. Bills }
783684bb4b8SJason M. Bills 
784684bb4b8SJason M. Bills /**
785684bb4b8SJason M. Bills  * @internal
786684bb4b8SJason M. Bills  * @brief Formats PropertyValueConflict message into JSON
787684bb4b8SJason M. Bills  *
788684bb4b8SJason M. Bills  * See header file for more information
789684bb4b8SJason M. Bills  * @endinternal
790684bb4b8SJason M. Bills  */
7911668ce6dSEd Tanous nlohmann::json propertyValueConflict(std::string_view arg1,
7921668ce6dSEd Tanous                                      std::string_view arg2)
793684bb4b8SJason M. Bills {
794fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyValueConflict,
7951668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
796684bb4b8SJason M. Bills }
797684bb4b8SJason M. Bills 
7981668ce6dSEd Tanous void propertyValueConflict(crow::Response& res, std::string_view arg1,
7991668ce6dSEd Tanous                            std::string_view arg2)
800684bb4b8SJason M. Bills {
801684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
802684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, propertyValueConflict(arg1, arg2));
803684bb4b8SJason M. Bills }
804684bb4b8SJason M. Bills 
805684bb4b8SJason M. Bills /**
806684bb4b8SJason M. Bills  * @internal
8072a6af81cSRamesh Iyyar  * @brief Formats PropertyValueResourceConflict message into JSON
8082a6af81cSRamesh Iyyar  *
8092a6af81cSRamesh Iyyar  * See header file for more information
8102a6af81cSRamesh Iyyar  * @endinternal
8112a6af81cSRamesh Iyyar  */
812*bd79bce8SPatrick Williams nlohmann::json propertyValueResourceConflict(
813*bd79bce8SPatrick Williams     std::string_view arg1, const nlohmann::json& arg2,
8144a7fbefdSEd Tanous     const boost::urls::url_view_base& arg3)
8152a6af81cSRamesh Iyyar {
816*bd79bce8SPatrick Williams     std::string arg2Str =
817*bd79bce8SPatrick Williams         arg2.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
81895b3ad73SEd Tanous 
8192a6af81cSRamesh Iyyar     return getLog(
8202a6af81cSRamesh Iyyar         redfish::registries::base::Index::propertyValueResourceConflict,
82195b3ad73SEd Tanous         std::to_array<std::string_view>({arg1, arg2Str, arg3.buffer()}));
8222a6af81cSRamesh Iyyar }
8232a6af81cSRamesh Iyyar 
8242a6af81cSRamesh Iyyar void propertyValueResourceConflict(crow::Response& res, std::string_view arg1,
82595b3ad73SEd Tanous                                    const nlohmann::json& arg2,
8264a7fbefdSEd Tanous                                    const boost::urls::url_view_base& arg3)
8272a6af81cSRamesh Iyyar {
8282a6af81cSRamesh Iyyar     res.result(boost::beast::http::status::conflict);
8292a6af81cSRamesh Iyyar     addMessageToErrorJson(res.jsonValue,
8302a6af81cSRamesh Iyyar                           propertyValueResourceConflict(arg1, arg2, arg3));
8312a6af81cSRamesh Iyyar }
8322a6af81cSRamesh Iyyar 
8332a6af81cSRamesh Iyyar /**
8342a6af81cSRamesh Iyyar  * @internal
83524861a28SRamesh Iyyar  * @brief Formats PropertyValueExternalConflict message into JSON
83624861a28SRamesh Iyyar  *
83724861a28SRamesh Iyyar  * See header file for more information
83824861a28SRamesh Iyyar  * @endinternal
83924861a28SRamesh Iyyar  */
84024861a28SRamesh Iyyar nlohmann::json propertyValueExternalConflict(std::string_view arg1,
84195b3ad73SEd Tanous                                              const nlohmann::json& arg2)
84224861a28SRamesh Iyyar {
843*bd79bce8SPatrick Williams     std::string arg2Str =
844*bd79bce8SPatrick Williams         arg2.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
84595b3ad73SEd Tanous 
84624861a28SRamesh Iyyar     return getLog(
84724861a28SRamesh Iyyar         redfish::registries::base::Index::propertyValueExternalConflict,
84895b3ad73SEd Tanous         std::to_array<std::string_view>({arg1, arg2Str}));
84924861a28SRamesh Iyyar }
85024861a28SRamesh Iyyar 
85124861a28SRamesh Iyyar void propertyValueExternalConflict(crow::Response& res, std::string_view arg1,
85295b3ad73SEd Tanous                                    const nlohmann::json& arg2)
85324861a28SRamesh Iyyar {
85424861a28SRamesh Iyyar     res.result(boost::beast::http::status::conflict);
85524861a28SRamesh Iyyar     addMessageToErrorJson(res.jsonValue,
85624861a28SRamesh Iyyar                           propertyValueExternalConflict(arg1, arg2));
85724861a28SRamesh Iyyar }
85824861a28SRamesh Iyyar 
85924861a28SRamesh Iyyar /**
86024861a28SRamesh Iyyar  * @internal
861684bb4b8SJason M. Bills  * @brief Formats PropertyValueIncorrect message into JSON
862684bb4b8SJason M. Bills  *
863684bb4b8SJason M. Bills  * See header file for more information
864684bb4b8SJason M. Bills  * @endinternal
865684bb4b8SJason M. Bills  */
866367b3dceSGinu George nlohmann::json propertyValueIncorrect(std::string_view arg1,
867367b3dceSGinu George                                       const nlohmann::json& arg2)
868684bb4b8SJason M. Bills {
869*bd79bce8SPatrick Williams     std::string arg2Str =
870*bd79bce8SPatrick Williams         arg2.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
871fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyValueIncorrect,
872367b3dceSGinu George                   std::to_array<std::string_view>({arg1, arg2Str}));
873684bb4b8SJason M. Bills }
874684bb4b8SJason M. Bills 
875367b3dceSGinu George void propertyValueIncorrect(crow::Response& res, std::string_view arg1,
876367b3dceSGinu George                             const nlohmann::json& arg2)
877684bb4b8SJason M. Bills {
878684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
879684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, propertyValueIncorrect(arg1, arg2));
880684bb4b8SJason M. Bills }
881684bb4b8SJason M. Bills 
882684bb4b8SJason M. Bills /**
883684bb4b8SJason M. Bills  * @internal
884684bb4b8SJason M. Bills  * @brief Formats ResourceCreationConflict message into JSON
885684bb4b8SJason M. Bills  *
886684bb4b8SJason M. Bills  * See header file for more information
887684bb4b8SJason M. Bills  * @endinternal
888684bb4b8SJason M. Bills  */
8894a7fbefdSEd Tanous nlohmann::json resourceCreationConflict(const boost::urls::url_view_base& arg1)
890684bb4b8SJason M. Bills {
891fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceCreationConflict,
892079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer()}));
893684bb4b8SJason M. Bills }
894684bb4b8SJason M. Bills 
8954a7fbefdSEd Tanous void resourceCreationConflict(crow::Response& res,
8964a7fbefdSEd Tanous                               const boost::urls::url_view_base& arg1)
897684bb4b8SJason M. Bills {
898684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
899684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, resourceCreationConflict(arg1));
900684bb4b8SJason M. Bills }
901684bb4b8SJason M. Bills 
902684bb4b8SJason M. Bills /**
903684bb4b8SJason M. Bills  * @internal
904684bb4b8SJason M. Bills  * @brief Formats MaximumErrorsExceeded message into JSON
905684bb4b8SJason M. Bills  *
906684bb4b8SJason M. Bills  * See header file for more information
907684bb4b8SJason M. Bills  * @endinternal
908684bb4b8SJason M. Bills  */
909d9fcfcc1SEd Tanous nlohmann::json maximumErrorsExceeded()
910684bb4b8SJason M. Bills {
911fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::maximumErrorsExceeded, {});
912684bb4b8SJason M. Bills }
913684bb4b8SJason M. Bills 
914684bb4b8SJason M. Bills void maximumErrorsExceeded(crow::Response& res)
915684bb4b8SJason M. Bills {
916684bb4b8SJason M. Bills     res.result(boost::beast::http::status::internal_server_error);
917684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, maximumErrorsExceeded());
918684bb4b8SJason M. Bills }
919684bb4b8SJason M. Bills 
920684bb4b8SJason M. Bills /**
921684bb4b8SJason M. Bills  * @internal
922684bb4b8SJason M. Bills  * @brief Formats PreconditionFailed message into JSON
923684bb4b8SJason M. Bills  *
924684bb4b8SJason M. Bills  * See header file for more information
925684bb4b8SJason M. Bills  * @endinternal
926684bb4b8SJason M. Bills  */
927d9fcfcc1SEd Tanous nlohmann::json preconditionFailed()
928684bb4b8SJason M. Bills {
929fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::preconditionFailed, {});
930684bb4b8SJason M. Bills }
931684bb4b8SJason M. Bills 
932684bb4b8SJason M. Bills void preconditionFailed(crow::Response& res)
933684bb4b8SJason M. Bills {
9344df1bee0SEd Tanous     res.result(boost::beast::http::status::precondition_failed);
935684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, preconditionFailed());
936684bb4b8SJason M. Bills }
937684bb4b8SJason M. Bills 
938684bb4b8SJason M. Bills /**
939684bb4b8SJason M. Bills  * @internal
940684bb4b8SJason M. Bills  * @brief Formats PreconditionRequired message into JSON
941684bb4b8SJason M. Bills  *
942684bb4b8SJason M. Bills  * See header file for more information
943684bb4b8SJason M. Bills  * @endinternal
944684bb4b8SJason M. Bills  */
945d9fcfcc1SEd Tanous nlohmann::json preconditionRequired()
946684bb4b8SJason M. Bills {
947fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::preconditionRequired, {});
948684bb4b8SJason M. Bills }
949684bb4b8SJason M. Bills 
950684bb4b8SJason M. Bills void preconditionRequired(crow::Response& res)
951684bb4b8SJason M. Bills {
952684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
953684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, preconditionRequired());
954684bb4b8SJason M. Bills }
955684bb4b8SJason M. Bills 
956684bb4b8SJason M. Bills /**
957684bb4b8SJason M. Bills  * @internal
958684bb4b8SJason M. Bills  * @brief Formats OperationFailed message into JSON
959684bb4b8SJason M. Bills  *
960684bb4b8SJason M. Bills  * See header file for more information
961684bb4b8SJason M. Bills  * @endinternal
962684bb4b8SJason M. Bills  */
963d9fcfcc1SEd Tanous nlohmann::json operationFailed()
964684bb4b8SJason M. Bills {
965fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::operationFailed, {});
966684bb4b8SJason M. Bills }
967684bb4b8SJason M. Bills 
968684bb4b8SJason M. Bills void operationFailed(crow::Response& res)
969684bb4b8SJason M. Bills {
9708868776eSEd Tanous     res.result(boost::beast::http::status::bad_gateway);
971684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, operationFailed());
972684bb4b8SJason M. Bills }
973684bb4b8SJason M. Bills 
974684bb4b8SJason M. Bills /**
975684bb4b8SJason M. Bills  * @internal
976684bb4b8SJason M. Bills  * @brief Formats OperationTimeout message into JSON
977684bb4b8SJason M. Bills  *
978684bb4b8SJason M. Bills  * See header file for more information
979684bb4b8SJason M. Bills  * @endinternal
980684bb4b8SJason M. Bills  */
981d9fcfcc1SEd Tanous nlohmann::json operationTimeout()
982684bb4b8SJason M. Bills {
983fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::operationTimeout, {});
984684bb4b8SJason M. Bills }
985684bb4b8SJason M. Bills 
986684bb4b8SJason M. Bills void operationTimeout(crow::Response& res)
987684bb4b8SJason M. Bills {
988684bb4b8SJason M. Bills     res.result(boost::beast::http::status::internal_server_error);
989684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, operationTimeout());
990684bb4b8SJason M. Bills }
991684bb4b8SJason M. Bills 
992684bb4b8SJason M. Bills /**
993684bb4b8SJason M. Bills  * @internal
994f12894f8SJason M. Bills  * @brief Formats PropertyValueTypeError message into JSON for the specified
995f12894f8SJason M. Bills  * property
996f12894f8SJason M. Bills  *
997f12894f8SJason M. Bills  * See header file for more information
998f12894f8SJason M. Bills  * @endinternal
999f12894f8SJason M. Bills  */
10002e8c4bdaSEd Tanous nlohmann::json propertyValueTypeError(const nlohmann::json& arg1,
10011668ce6dSEd Tanous                                       std::string_view arg2)
1002f12894f8SJason M. Bills {
1003*bd79bce8SPatrick Williams     std::string arg1Str =
1004*bd79bce8SPatrick Williams         arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
1005fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyValueTypeError,
10062e8c4bdaSEd Tanous                   std::to_array<std::string_view>({arg1Str, arg2}));
1007b5c07418SJames Feist }
1008b5c07418SJames Feist 
10092e8c4bdaSEd Tanous void propertyValueTypeError(crow::Response& res, const nlohmann::json& arg1,
10101668ce6dSEd Tanous                             std::string_view arg2)
1011b5c07418SJames Feist {
1012b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1013b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyValueTypeError(arg1, arg2), arg2);
1014f4c4dcf4SKowalski, Kamil }
1015f4c4dcf4SKowalski, Kamil 
1016f4c4dcf4SKowalski, Kamil /**
1017f4c4dcf4SKowalski, Kamil  * @internal
1018b6cd31e1SEd Tanous  * @brief Formats ResourceNotFound message into JSONd
1019f4c4dcf4SKowalski, Kamil  *
1020f4c4dcf4SKowalski, Kamil  * See header file for more information
1021f4c4dcf4SKowalski, Kamil  * @endinternal
1022f4c4dcf4SKowalski, Kamil  */
10231668ce6dSEd Tanous nlohmann::json resourceNotFound(std::string_view arg1, std::string_view arg2)
10241abe55efSEd Tanous {
1025fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceNotFound,
10261668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
1027b5c07418SJames Feist }
1028b5c07418SJames Feist 
10291668ce6dSEd Tanous void resourceNotFound(crow::Response& res, std::string_view arg1,
10301668ce6dSEd Tanous                       std::string_view arg2)
1031b5c07418SJames Feist {
1032b5c07418SJames Feist     res.result(boost::beast::http::status::not_found);
1033b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceNotFound(arg1, arg2));
1034f4c4dcf4SKowalski, Kamil }
1035f4c4dcf4SKowalski, Kamil 
1036f4c4dcf4SKowalski, Kamil /**
1037f4c4dcf4SKowalski, Kamil  * @internal
1038f4c4dcf4SKowalski, Kamil  * @brief Formats CouldNotEstablishConnection message into JSON
1039f4c4dcf4SKowalski, Kamil  *
1040f4c4dcf4SKowalski, Kamil  * See header file for more information
1041f4c4dcf4SKowalski, Kamil  * @endinternal
1042f4c4dcf4SKowalski, Kamil  */
10434a7fbefdSEd Tanous nlohmann::json
10444a7fbefdSEd Tanous     couldNotEstablishConnection(const boost::urls::url_view_base& arg1)
10451abe55efSEd Tanous {
1046fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::couldNotEstablishConnection,
1047079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer()}));
1048b5c07418SJames Feist }
1049b5c07418SJames Feist 
1050ace85d60SEd Tanous void couldNotEstablishConnection(crow::Response& res,
10514a7fbefdSEd Tanous                                  const boost::urls::url_view_base& arg1)
1052b5c07418SJames Feist {
1053b5c07418SJames Feist     res.result(boost::beast::http::status::not_found);
1054b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, couldNotEstablishConnection(arg1));
1055f4c4dcf4SKowalski, Kamil }
1056f4c4dcf4SKowalski, Kamil 
1057f4c4dcf4SKowalski, Kamil /**
1058f4c4dcf4SKowalski, Kamil  * @internal
1059f12894f8SJason M. Bills  * @brief Formats PropertyNotWritable message into JSON for the specified
1060f12894f8SJason M. Bills  * property
1061f12894f8SJason M. Bills  *
1062f12894f8SJason M. Bills  * See header file for more information
1063f12894f8SJason M. Bills  * @endinternal
1064f12894f8SJason M. Bills  */
10651668ce6dSEd Tanous nlohmann::json propertyNotWritable(std::string_view arg1)
1066f12894f8SJason M. Bills {
1067fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyNotWritable,
10681668ce6dSEd Tanous                   std::to_array({arg1}));
1069b5c07418SJames Feist }
1070b5c07418SJames Feist 
10711668ce6dSEd Tanous void propertyNotWritable(crow::Response& res, std::string_view arg1)
1072b5c07418SJames Feist {
1073b5c07418SJames Feist     res.result(boost::beast::http::status::forbidden);
1074b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyNotWritable(arg1), arg1);
1075f4c4dcf4SKowalski, Kamil }
1076f4c4dcf4SKowalski, Kamil 
1077f4c4dcf4SKowalski, Kamil /**
1078f4c4dcf4SKowalski, Kamil  * @internal
1079f4c4dcf4SKowalski, Kamil  * @brief Formats QueryParameterValueTypeError message into JSON
1080f4c4dcf4SKowalski, Kamil  *
1081f4c4dcf4SKowalski, Kamil  * See header file for more information
1082f4c4dcf4SKowalski, Kamil  * @endinternal
1083f4c4dcf4SKowalski, Kamil  */
108495b3ad73SEd Tanous nlohmann::json queryParameterValueTypeError(const nlohmann::json& arg1,
10851668ce6dSEd Tanous                                             std::string_view arg2)
10861abe55efSEd Tanous {
1087*bd79bce8SPatrick Williams     std::string arg1Str =
1088*bd79bce8SPatrick Williams         arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
1089b6cd31e1SEd Tanous     return getLog(
1090fffb8c1fSEd Tanous         redfish::registries::base::Index::queryParameterValueTypeError,
109195b3ad73SEd Tanous         std::to_array<std::string_view>({arg1Str, arg2}));
1092b5c07418SJames Feist }
1093b5c07418SJames Feist 
1094*bd79bce8SPatrick Williams void queryParameterValueTypeError(
1095*bd79bce8SPatrick Williams     crow::Response& res, const nlohmann::json& arg1, std::string_view arg2)
1096b5c07418SJames Feist {
1097b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1098b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
1099b5c07418SJames Feist                           queryParameterValueTypeError(arg1, arg2));
1100f4c4dcf4SKowalski, Kamil }
1101f4c4dcf4SKowalski, Kamil 
1102f4c4dcf4SKowalski, Kamil /**
1103f4c4dcf4SKowalski, Kamil  * @internal
1104f4c4dcf4SKowalski, Kamil  * @brief Formats ServiceShuttingDown message into JSON
1105f4c4dcf4SKowalski, Kamil  *
1106f4c4dcf4SKowalski, Kamil  * See header file for more information
1107f4c4dcf4SKowalski, Kamil  * @endinternal
1108f4c4dcf4SKowalski, Kamil  */
1109d9fcfcc1SEd Tanous nlohmann::json serviceShuttingDown()
11101abe55efSEd Tanous {
1111fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::serviceShuttingDown, {});
1112b5c07418SJames Feist }
1113b5c07418SJames Feist 
1114b5c07418SJames Feist void serviceShuttingDown(crow::Response& res)
1115b5c07418SJames Feist {
1116b5c07418SJames Feist     res.result(boost::beast::http::status::service_unavailable);
1117b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, serviceShuttingDown());
1118f4c4dcf4SKowalski, Kamil }
1119f4c4dcf4SKowalski, Kamil 
1120f4c4dcf4SKowalski, Kamil /**
1121f4c4dcf4SKowalski, Kamil  * @internal
1122f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterDuplicate message into JSON
1123f4c4dcf4SKowalski, Kamil  *
1124f4c4dcf4SKowalski, Kamil  * See header file for more information
1125f4c4dcf4SKowalski, Kamil  * @endinternal
1126f4c4dcf4SKowalski, Kamil  */
11271668ce6dSEd Tanous nlohmann::json actionParameterDuplicate(std::string_view arg1,
11281668ce6dSEd Tanous                                         std::string_view arg2)
11291abe55efSEd Tanous {
1130fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::actionParameterDuplicate,
11311668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
1132b5c07418SJames Feist }
1133b5c07418SJames Feist 
11341668ce6dSEd Tanous void actionParameterDuplicate(crow::Response& res, std::string_view arg1,
11351668ce6dSEd Tanous                               std::string_view arg2)
1136b5c07418SJames Feist {
1137b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1138b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, actionParameterDuplicate(arg1, arg2));
1139f4c4dcf4SKowalski, Kamil }
1140f4c4dcf4SKowalski, Kamil 
1141f4c4dcf4SKowalski, Kamil /**
1142f4c4dcf4SKowalski, Kamil  * @internal
1143f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterNotSupported message into JSON
1144f4c4dcf4SKowalski, Kamil  *
1145f4c4dcf4SKowalski, Kamil  * See header file for more information
1146f4c4dcf4SKowalski, Kamil  * @endinternal
1147f4c4dcf4SKowalski, Kamil  */
11481668ce6dSEd Tanous nlohmann::json actionParameterNotSupported(std::string_view arg1,
11491668ce6dSEd Tanous                                            std::string_view arg2)
11501abe55efSEd Tanous {
1151fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::actionParameterNotSupported,
11521668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
1153b5c07418SJames Feist }
1154b5c07418SJames Feist 
11551668ce6dSEd Tanous void actionParameterNotSupported(crow::Response& res, std::string_view arg1,
11561668ce6dSEd Tanous                                  std::string_view arg2)
1157b5c07418SJames Feist {
1158b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1159b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
1160b5c07418SJames Feist                           actionParameterNotSupported(arg1, arg2));
1161f4c4dcf4SKowalski, Kamil }
1162f4c4dcf4SKowalski, Kamil 
1163f4c4dcf4SKowalski, Kamil /**
1164f4c4dcf4SKowalski, Kamil  * @internal
1165f4c4dcf4SKowalski, Kamil  * @brief Formats SourceDoesNotSupportProtocol message into JSON
1166f4c4dcf4SKowalski, Kamil  *
1167f4c4dcf4SKowalski, Kamil  * See header file for more information
1168f4c4dcf4SKowalski, Kamil  * @endinternal
1169f4c4dcf4SKowalski, Kamil  */
1170*bd79bce8SPatrick Williams nlohmann::json sourceDoesNotSupportProtocol(
1171*bd79bce8SPatrick Williams     const boost::urls::url_view_base& arg1, std::string_view arg2)
11721abe55efSEd Tanous {
1173b6cd31e1SEd Tanous     return getLog(
1174fffb8c1fSEd Tanous         redfish::registries::base::Index::sourceDoesNotSupportProtocol,
1175079360aeSEd Tanous         std::to_array<std::string_view>({arg1.buffer(), arg2}));
1176b5c07418SJames Feist }
1177b5c07418SJames Feist 
1178ace85d60SEd Tanous void sourceDoesNotSupportProtocol(crow::Response& res,
11794a7fbefdSEd Tanous                                   const boost::urls::url_view_base& arg1,
11801668ce6dSEd Tanous                                   std::string_view arg2)
1181b5c07418SJames Feist {
1182b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1183b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
1184b5c07418SJames Feist                           sourceDoesNotSupportProtocol(arg1, arg2));
1185f4c4dcf4SKowalski, Kamil }
1186f4c4dcf4SKowalski, Kamil 
1187f4c4dcf4SKowalski, Kamil /**
1188f4c4dcf4SKowalski, Kamil  * @internal
1189b4ad4c05SShantappa Teekappanavar  * @brief Formats StrictAccountTypes message into JSON
1190b4ad4c05SShantappa Teekappanavar  *
1191b4ad4c05SShantappa Teekappanavar  * See header file for more information
1192b4ad4c05SShantappa Teekappanavar  * @endinternal
1193b4ad4c05SShantappa Teekappanavar  */
1194b4ad4c05SShantappa Teekappanavar nlohmann::json strictAccountTypes(std::string_view arg1)
1195b4ad4c05SShantappa Teekappanavar {
1196b4ad4c05SShantappa Teekappanavar     return getLog(redfish::registries::base::Index::strictAccountTypes,
1197b4ad4c05SShantappa Teekappanavar                   std::to_array({arg1}));
1198b4ad4c05SShantappa Teekappanavar }
1199b4ad4c05SShantappa Teekappanavar 
1200b4ad4c05SShantappa Teekappanavar void strictAccountTypes(crow::Response& res, std::string_view arg1)
1201b4ad4c05SShantappa Teekappanavar {
1202b4ad4c05SShantappa Teekappanavar     res.result(boost::beast::http::status::bad_request);
1203b4ad4c05SShantappa Teekappanavar     addMessageToErrorJson(res.jsonValue, strictAccountTypes(arg1));
1204b4ad4c05SShantappa Teekappanavar }
1205b4ad4c05SShantappa Teekappanavar 
1206b4ad4c05SShantappa Teekappanavar /**
1207b4ad4c05SShantappa Teekappanavar  * @internal
1208f4c4dcf4SKowalski, Kamil  * @brief Formats AccountRemoved message into JSON
1209f4c4dcf4SKowalski, Kamil  *
1210f4c4dcf4SKowalski, Kamil  * See header file for more information
1211f4c4dcf4SKowalski, Kamil  * @endinternal
1212f4c4dcf4SKowalski, Kamil  */
1213d9fcfcc1SEd Tanous nlohmann::json accountRemoved()
12141abe55efSEd Tanous {
1215fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::accountRemoved, {});
1216b5c07418SJames Feist }
1217b5c07418SJames Feist 
1218b5c07418SJames Feist void accountRemoved(crow::Response& res)
1219b5c07418SJames Feist {
1220b5c07418SJames Feist     res.result(boost::beast::http::status::ok);
1221b5c07418SJames Feist     addMessageToJsonRoot(res.jsonValue, accountRemoved());
1222f4c4dcf4SKowalski, Kamil }
1223f4c4dcf4SKowalski, Kamil 
1224f4c4dcf4SKowalski, Kamil /**
1225f4c4dcf4SKowalski, Kamil  * @internal
1226f4c4dcf4SKowalski, Kamil  * @brief Formats AccessDenied message into JSON
1227f4c4dcf4SKowalski, Kamil  *
1228f4c4dcf4SKowalski, Kamil  * See header file for more information
1229f4c4dcf4SKowalski, Kamil  * @endinternal
1230f4c4dcf4SKowalski, Kamil  */
12314a7fbefdSEd Tanous nlohmann::json accessDenied(const boost::urls::url_view_base& arg1)
12321abe55efSEd Tanous {
1233fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::accessDenied,
1234079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer()}));
1235b5c07418SJames Feist }
1236b5c07418SJames Feist 
12374a7fbefdSEd Tanous void accessDenied(crow::Response& res, const boost::urls::url_view_base& arg1)
1238b5c07418SJames Feist {
1239b5c07418SJames Feist     res.result(boost::beast::http::status::forbidden);
1240b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, accessDenied(arg1));
1241f4c4dcf4SKowalski, Kamil }
1242f4c4dcf4SKowalski, Kamil 
1243f4c4dcf4SKowalski, Kamil /**
1244f4c4dcf4SKowalski, Kamil  * @internal
1245f4c4dcf4SKowalski, Kamil  * @brief Formats QueryNotSupported message into JSON
1246f4c4dcf4SKowalski, Kamil  *
1247f4c4dcf4SKowalski, Kamil  * See header file for more information
1248f4c4dcf4SKowalski, Kamil  * @endinternal
1249f4c4dcf4SKowalski, Kamil  */
1250d9fcfcc1SEd Tanous nlohmann::json queryNotSupported()
12511abe55efSEd Tanous {
1252fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::queryNotSupported, {});
1253b5c07418SJames Feist }
1254b5c07418SJames Feist 
1255b5c07418SJames Feist void queryNotSupported(crow::Response& res)
1256b5c07418SJames Feist {
1257b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1258b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, queryNotSupported());
1259f4c4dcf4SKowalski, Kamil }
1260f4c4dcf4SKowalski, Kamil 
1261f4c4dcf4SKowalski, Kamil /**
1262f4c4dcf4SKowalski, Kamil  * @internal
1263f4c4dcf4SKowalski, Kamil  * @brief Formats CreateLimitReachedForResource message into JSON
1264f4c4dcf4SKowalski, Kamil  *
1265f4c4dcf4SKowalski, Kamil  * See header file for more information
1266f4c4dcf4SKowalski, Kamil  * @endinternal
1267f4c4dcf4SKowalski, Kamil  */
1268d9fcfcc1SEd Tanous nlohmann::json createLimitReachedForResource()
12691abe55efSEd Tanous {
1270b6cd31e1SEd Tanous     return getLog(
1271fffb8c1fSEd Tanous         redfish::registries::base::Index::createLimitReachedForResource, {});
1272b5c07418SJames Feist }
1273b5c07418SJames Feist 
1274b5c07418SJames Feist void createLimitReachedForResource(crow::Response& res)
1275b5c07418SJames Feist {
1276b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1277b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, createLimitReachedForResource());
1278f4c4dcf4SKowalski, Kamil }
1279f4c4dcf4SKowalski, Kamil 
1280f4c4dcf4SKowalski, Kamil /**
1281f4c4dcf4SKowalski, Kamil  * @internal
1282f4c4dcf4SKowalski, Kamil  * @brief Formats GeneralError message into JSON
1283f4c4dcf4SKowalski, Kamil  *
1284f4c4dcf4SKowalski, Kamil  * See header file for more information
1285f4c4dcf4SKowalski, Kamil  * @endinternal
1286f4c4dcf4SKowalski, Kamil  */
1287d9fcfcc1SEd Tanous nlohmann::json generalError()
12881abe55efSEd Tanous {
1289fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::generalError, {});
1290b5c07418SJames Feist }
1291b5c07418SJames Feist 
1292b5c07418SJames Feist void generalError(crow::Response& res)
1293b5c07418SJames Feist {
1294b5c07418SJames Feist     res.result(boost::beast::http::status::internal_server_error);
1295b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, generalError());
1296f4c4dcf4SKowalski, Kamil }
1297f4c4dcf4SKowalski, Kamil 
1298f4c4dcf4SKowalski, Kamil /**
1299f4c4dcf4SKowalski, Kamil  * @internal
1300f4c4dcf4SKowalski, Kamil  * @brief Formats Success message into JSON
1301f4c4dcf4SKowalski, Kamil  *
1302f4c4dcf4SKowalski, Kamil  * See header file for more information
1303f4c4dcf4SKowalski, Kamil  * @endinternal
1304f4c4dcf4SKowalski, Kamil  */
1305d9fcfcc1SEd Tanous nlohmann::json success()
13061abe55efSEd Tanous {
1307fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::success, {});
1308b5c07418SJames Feist }
1309b5c07418SJames Feist 
1310b5c07418SJames Feist void success(crow::Response& res)
1311b5c07418SJames Feist {
1312b5c07418SJames Feist     // don't set res.result here because success is the default and any
1313b5c07418SJames Feist     // error should overwrite the default
1314b5c07418SJames Feist     addMessageToJsonRoot(res.jsonValue, success());
1315f12894f8SJason M. Bills }
1316f12894f8SJason M. Bills 
1317f12894f8SJason M. Bills /**
1318f12894f8SJason M. Bills  * @internal
1319f4c4dcf4SKowalski, Kamil  * @brief Formats Created message into JSON
1320f4c4dcf4SKowalski, Kamil  *
1321f4c4dcf4SKowalski, Kamil  * See header file for more information
1322f4c4dcf4SKowalski, Kamil  * @endinternal
1323f4c4dcf4SKowalski, Kamil  */
1324d9fcfcc1SEd Tanous nlohmann::json created()
13251abe55efSEd Tanous {
1326fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::created, {});
1327b5c07418SJames Feist }
1328b5c07418SJames Feist 
1329b5c07418SJames Feist void created(crow::Response& res)
1330b5c07418SJames Feist {
1331b5c07418SJames Feist     res.result(boost::beast::http::status::created);
1332b5c07418SJames Feist     addMessageToJsonRoot(res.jsonValue, created());
1333f4c4dcf4SKowalski, Kamil }
1334f4c4dcf4SKowalski, Kamil 
1335f4c4dcf4SKowalski, Kamil /**
1336f4c4dcf4SKowalski, Kamil  * @internal
1337cc9139ecSJason M. Bills  * @brief Formats NoOperation message into JSON
1338cc9139ecSJason M. Bills  *
1339cc9139ecSJason M. Bills  * See header file for more information
1340cc9139ecSJason M. Bills  * @endinternal
1341cc9139ecSJason M. Bills  */
1342d9fcfcc1SEd Tanous nlohmann::json noOperation()
1343cc9139ecSJason M. Bills {
1344fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::noOperation, {});
1345b5c07418SJames Feist }
1346b5c07418SJames Feist 
1347b5c07418SJames Feist void noOperation(crow::Response& res)
1348b5c07418SJames Feist {
1349b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1350b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, noOperation());
1351cc9139ecSJason M. Bills }
1352cc9139ecSJason M. Bills 
1353cc9139ecSJason M. Bills /**
1354cc9139ecSJason M. Bills  * @internal
1355b5c07418SJames Feist  * @brief Formats PropertyUnknown message into JSON for the specified
1356b5c07418SJames Feist  * property
1357f12894f8SJason M. Bills  *
1358f12894f8SJason M. Bills  * See header file for more information
1359f12894f8SJason M. Bills  * @endinternal
1360f12894f8SJason M. Bills  */
13611668ce6dSEd Tanous nlohmann::json propertyUnknown(std::string_view arg1)
1362b5c07418SJames Feist {
1363fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyUnknown,
13641668ce6dSEd Tanous                   std::to_array({arg1}));
1365b5c07418SJames Feist }
1366b5c07418SJames Feist 
13671668ce6dSEd Tanous void propertyUnknown(crow::Response& res, std::string_view arg1)
1368f12894f8SJason M. Bills {
1369f12894f8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
13707b1dd2f9SEd Tanous     addMessageToErrorJson(res.jsonValue, propertyUnknown(arg1));
1371f4c4dcf4SKowalski, Kamil }
1372f4c4dcf4SKowalski, Kamil 
1373f4c4dcf4SKowalski, Kamil /**
1374f4c4dcf4SKowalski, Kamil  * @internal
1375f4c4dcf4SKowalski, Kamil  * @brief Formats NoValidSession message into JSON
1376f4c4dcf4SKowalski, Kamil  *
1377f4c4dcf4SKowalski, Kamil  * See header file for more information
1378f4c4dcf4SKowalski, Kamil  * @endinternal
1379f4c4dcf4SKowalski, Kamil  */
1380d9fcfcc1SEd Tanous nlohmann::json noValidSession()
13811abe55efSEd Tanous {
1382fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::noValidSession, {});
1383b5c07418SJames Feist }
1384b5c07418SJames Feist 
1385b5c07418SJames Feist void noValidSession(crow::Response& res)
1386b5c07418SJames Feist {
1387b5c07418SJames Feist     res.result(boost::beast::http::status::forbidden);
1388b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, noValidSession());
1389f4c4dcf4SKowalski, Kamil }
1390f4c4dcf4SKowalski, Kamil 
1391f4c4dcf4SKowalski, Kamil /**
1392f4c4dcf4SKowalski, Kamil  * @internal
1393f4c4dcf4SKowalski, Kamil  * @brief Formats InvalidObject message into JSON
1394f4c4dcf4SKowalski, Kamil  *
1395f4c4dcf4SKowalski, Kamil  * See header file for more information
1396f4c4dcf4SKowalski, Kamil  * @endinternal
1397f4c4dcf4SKowalski, Kamil  */
13984a7fbefdSEd Tanous nlohmann::json invalidObject(const boost::urls::url_view_base& arg1)
13991abe55efSEd Tanous {
1400fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::invalidObject,
1401079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer()}));
1402b5c07418SJames Feist }
1403b5c07418SJames Feist 
14044a7fbefdSEd Tanous void invalidObject(crow::Response& res, const boost::urls::url_view_base& arg1)
1405b5c07418SJames Feist {
1406b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1407b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, invalidObject(arg1));
1408f4c4dcf4SKowalski, Kamil }
1409f4c4dcf4SKowalski, Kamil 
1410f4c4dcf4SKowalski, Kamil /**
1411f4c4dcf4SKowalski, Kamil  * @internal
1412f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceInStandby message into JSON
1413f4c4dcf4SKowalski, Kamil  *
1414f4c4dcf4SKowalski, Kamil  * See header file for more information
1415f4c4dcf4SKowalski, Kamil  * @endinternal
1416f4c4dcf4SKowalski, Kamil  */
1417d9fcfcc1SEd Tanous nlohmann::json resourceInStandby()
14181abe55efSEd Tanous {
1419fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceInStandby, {});
1420b5c07418SJames Feist }
1421b5c07418SJames Feist 
1422b5c07418SJames Feist void resourceInStandby(crow::Response& res)
1423b5c07418SJames Feist {
1424b5c07418SJames Feist     res.result(boost::beast::http::status::service_unavailable);
1425b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceInStandby());
1426f4c4dcf4SKowalski, Kamil }
1427f4c4dcf4SKowalski, Kamil 
1428f4c4dcf4SKowalski, Kamil /**
1429f4c4dcf4SKowalski, Kamil  * @internal
1430f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterValueTypeError message into JSON
1431f4c4dcf4SKowalski, Kamil  *
1432f4c4dcf4SKowalski, Kamil  * See header file for more information
1433f4c4dcf4SKowalski, Kamil  * @endinternal
1434f4c4dcf4SKowalski, Kamil  */
1435*bd79bce8SPatrick Williams nlohmann::json actionParameterValueTypeError(
1436*bd79bce8SPatrick Williams     const nlohmann::json& arg1, std::string_view arg2, std::string_view arg3)
14371abe55efSEd Tanous {
1438*bd79bce8SPatrick Williams     std::string arg1Str =
1439*bd79bce8SPatrick Williams         arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
1440b6cd31e1SEd Tanous     return getLog(
1441fffb8c1fSEd Tanous         redfish::registries::base::Index::actionParameterValueTypeError,
144295b3ad73SEd Tanous         std::to_array<std::string_view>({arg1Str, arg2, arg3}));
1443b5c07418SJames Feist }
1444b5c07418SJames Feist 
144595b3ad73SEd Tanous void actionParameterValueTypeError(crow::Response& res,
144695b3ad73SEd Tanous                                    const nlohmann::json& arg1,
14471668ce6dSEd Tanous                                    std::string_view arg2, std::string_view arg3)
1448b5c07418SJames Feist {
1449b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1450b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
1451b5c07418SJames Feist                           actionParameterValueTypeError(arg1, arg2, arg3));
1452f4c4dcf4SKowalski, Kamil }
1453f4c4dcf4SKowalski, Kamil 
1454f4c4dcf4SKowalski, Kamil /**
1455f4c4dcf4SKowalski, Kamil  * @internal
14561827b4f1SAsmitha Karunanithi  * @brief Formats actionParameterValueError message into JSON
14571827b4f1SAsmitha Karunanithi  *
14581827b4f1SAsmitha Karunanithi  * See header file for more information
14591827b4f1SAsmitha Karunanithi  * @endinternal
14601827b4f1SAsmitha Karunanithi  */
14611827b4f1SAsmitha Karunanithi nlohmann::json actionParameterValueError(const nlohmann::json& arg1,
14621827b4f1SAsmitha Karunanithi                                          std::string_view arg2)
14631827b4f1SAsmitha Karunanithi {
1464*bd79bce8SPatrick Williams     std::string arg1Str =
1465*bd79bce8SPatrick Williams         arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
14661827b4f1SAsmitha Karunanithi     return getLog(redfish::registries::base::Index::actionParameterValueError,
14671827b4f1SAsmitha Karunanithi                   std::to_array<std::string_view>({arg1Str, arg2}));
14681827b4f1SAsmitha Karunanithi }
14691827b4f1SAsmitha Karunanithi 
14701827b4f1SAsmitha Karunanithi void actionParameterValueError(crow::Response& res, const nlohmann::json& arg1,
14711827b4f1SAsmitha Karunanithi                                std::string_view arg2)
14721827b4f1SAsmitha Karunanithi {
14731827b4f1SAsmitha Karunanithi     res.result(boost::beast::http::status::bad_request);
14741827b4f1SAsmitha Karunanithi     addMessageToErrorJson(res.jsonValue, actionParameterValueError(arg1, arg2));
14751827b4f1SAsmitha Karunanithi }
14761827b4f1SAsmitha Karunanithi 
14771827b4f1SAsmitha Karunanithi /**
14781827b4f1SAsmitha Karunanithi  * @internal
1479f4c4dcf4SKowalski, Kamil  * @brief Formats SessionLimitExceeded message into JSON
1480f4c4dcf4SKowalski, Kamil  *
1481f4c4dcf4SKowalski, Kamil  * See header file for more information
1482f4c4dcf4SKowalski, Kamil  * @endinternal
1483f4c4dcf4SKowalski, Kamil  */
1484d9fcfcc1SEd Tanous nlohmann::json sessionLimitExceeded()
14851abe55efSEd Tanous {
1486fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::sessionLimitExceeded, {});
1487b5c07418SJames Feist }
1488b5c07418SJames Feist 
1489b5c07418SJames Feist void sessionLimitExceeded(crow::Response& res)
1490b5c07418SJames Feist {
1491b5c07418SJames Feist     res.result(boost::beast::http::status::service_unavailable);
1492b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, sessionLimitExceeded());
1493f4c4dcf4SKowalski, Kamil }
1494f4c4dcf4SKowalski, Kamil 
1495f4c4dcf4SKowalski, Kamil /**
1496f4c4dcf4SKowalski, Kamil  * @internal
1497f4c4dcf4SKowalski, Kamil  * @brief Formats ActionNotSupported message into JSON
1498f4c4dcf4SKowalski, Kamil  *
1499f4c4dcf4SKowalski, Kamil  * See header file for more information
1500f4c4dcf4SKowalski, Kamil  * @endinternal
1501f4c4dcf4SKowalski, Kamil  */
15021668ce6dSEd Tanous nlohmann::json actionNotSupported(std::string_view arg1)
15031abe55efSEd Tanous {
1504fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::actionNotSupported,
15051668ce6dSEd Tanous                   std::to_array({arg1}));
1506b5c07418SJames Feist }
1507b5c07418SJames Feist 
15081668ce6dSEd Tanous void actionNotSupported(crow::Response& res, std::string_view arg1)
1509b5c07418SJames Feist {
1510b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1511b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, actionNotSupported(arg1));
1512f4c4dcf4SKowalski, Kamil }
1513f4c4dcf4SKowalski, Kamil 
1514f4c4dcf4SKowalski, Kamil /**
1515f4c4dcf4SKowalski, Kamil  * @internal
1516f4c4dcf4SKowalski, Kamil  * @brief Formats InvalidIndex message into JSON
1517f4c4dcf4SKowalski, Kamil  *
1518f4c4dcf4SKowalski, Kamil  * See header file for more information
1519f4c4dcf4SKowalski, Kamil  * @endinternal
1520f4c4dcf4SKowalski, Kamil  */
15215187e09bSJosh Lehan nlohmann::json invalidIndex(int64_t arg1)
15221abe55efSEd Tanous {
1523b6cd31e1SEd Tanous     std::string arg1Str = std::to_string(arg1);
1524fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::invalidIndex,
15251668ce6dSEd Tanous                   std::to_array<std::string_view>({arg1Str}));
1526b5c07418SJames Feist }
1527b5c07418SJames Feist 
15285187e09bSJosh Lehan void invalidIndex(crow::Response& res, int64_t arg1)
1529b5c07418SJames Feist {
1530b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1531b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, invalidIndex(arg1));
1532f4c4dcf4SKowalski, Kamil }
1533f4c4dcf4SKowalski, Kamil 
1534f4c4dcf4SKowalski, Kamil /**
1535f4c4dcf4SKowalski, Kamil  * @internal
1536f4c4dcf4SKowalski, Kamil  * @brief Formats EmptyJSON message into JSON
1537f4c4dcf4SKowalski, Kamil  *
1538f4c4dcf4SKowalski, Kamil  * See header file for more information
1539f4c4dcf4SKowalski, Kamil  * @endinternal
1540f4c4dcf4SKowalski, Kamil  */
1541d9fcfcc1SEd Tanous nlohmann::json emptyJSON()
15421abe55efSEd Tanous {
1543fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::emptyJSON, {});
1544b5c07418SJames Feist }
1545b5c07418SJames Feist 
1546b5c07418SJames Feist void emptyJSON(crow::Response& res)
1547b5c07418SJames Feist {
1548b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1549b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, emptyJSON());
1550f4c4dcf4SKowalski, Kamil }
1551f4c4dcf4SKowalski, Kamil 
1552f4c4dcf4SKowalski, Kamil /**
1553f4c4dcf4SKowalski, Kamil  * @internal
1554f4c4dcf4SKowalski, Kamil  * @brief Formats QueryNotSupportedOnResource message into JSON
1555f4c4dcf4SKowalski, Kamil  *
1556f4c4dcf4SKowalski, Kamil  * See header file for more information
1557f4c4dcf4SKowalski, Kamil  * @endinternal
1558f4c4dcf4SKowalski, Kamil  */
1559d9fcfcc1SEd Tanous nlohmann::json queryNotSupportedOnResource()
15601abe55efSEd Tanous {
1561fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::queryNotSupportedOnResource,
1562b6cd31e1SEd Tanous                   {});
1563b5c07418SJames Feist }
1564b5c07418SJames Feist 
1565b5c07418SJames Feist void queryNotSupportedOnResource(crow::Response& res)
1566b5c07418SJames Feist {
15676a409c12SEd Tanous     res.result(boost::beast::http::status::bad_request);
1568b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, queryNotSupportedOnResource());
1569f4c4dcf4SKowalski, Kamil }
1570f4c4dcf4SKowalski, Kamil 
1571f4c4dcf4SKowalski, Kamil /**
1572f4c4dcf4SKowalski, Kamil  * @internal
1573684bb4b8SJason M. Bills  * @brief Formats QueryNotSupportedOnOperation message into JSON
1574684bb4b8SJason M. Bills  *
1575684bb4b8SJason M. Bills  * See header file for more information
1576684bb4b8SJason M. Bills  * @endinternal
1577684bb4b8SJason M. Bills  */
1578d9fcfcc1SEd Tanous nlohmann::json queryNotSupportedOnOperation()
1579684bb4b8SJason M. Bills {
1580b6cd31e1SEd Tanous     return getLog(
1581fffb8c1fSEd Tanous         redfish::registries::base::Index::queryNotSupportedOnOperation, {});
1582684bb4b8SJason M. Bills }
1583684bb4b8SJason M. Bills 
1584684bb4b8SJason M. Bills void queryNotSupportedOnOperation(crow::Response& res)
1585684bb4b8SJason M. Bills {
15866a409c12SEd Tanous     res.result(boost::beast::http::status::bad_request);
1587684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, queryNotSupportedOnOperation());
1588684bb4b8SJason M. Bills }
1589684bb4b8SJason M. Bills 
1590684bb4b8SJason M. Bills /**
1591684bb4b8SJason M. Bills  * @internal
1592684bb4b8SJason M. Bills  * @brief Formats QueryCombinationInvalid message into JSON
1593684bb4b8SJason M. Bills  *
1594684bb4b8SJason M. Bills  * See header file for more information
1595684bb4b8SJason M. Bills  * @endinternal
1596684bb4b8SJason M. Bills  */
1597d9fcfcc1SEd Tanous nlohmann::json queryCombinationInvalid()
1598684bb4b8SJason M. Bills {
1599fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::queryCombinationInvalid,
1600fffb8c1fSEd Tanous                   {});
1601684bb4b8SJason M. Bills }
1602684bb4b8SJason M. Bills 
1603684bb4b8SJason M. Bills void queryCombinationInvalid(crow::Response& res)
1604684bb4b8SJason M. Bills {
1605684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
1606684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, queryCombinationInvalid());
1607684bb4b8SJason M. Bills }
1608684bb4b8SJason M. Bills 
1609684bb4b8SJason M. Bills /**
1610684bb4b8SJason M. Bills  * @internal
1611fa345c78SEd Tanous  * @brief Formats EventBufferExceeded message into JSON
1612fa345c78SEd Tanous  *
1613fa345c78SEd Tanous  * See header file for more information
1614fa345c78SEd Tanous  * @endinternal
1615fa345c78SEd Tanous  */
1616fa345c78SEd Tanous nlohmann::json eventBufferExceeded()
1617fa345c78SEd Tanous {
1618fa345c78SEd Tanous     return getLog(redfish::registries::base::Index::eventBufferExceeded, {});
1619fa345c78SEd Tanous }
1620fa345c78SEd Tanous 
1621fa345c78SEd Tanous void eventBufferExceeded(crow::Response& res)
1622fa345c78SEd Tanous {
1623fa345c78SEd Tanous     res.result(boost::beast::http::status::bad_request);
1624fa345c78SEd Tanous     addMessageToErrorJson(res.jsonValue, eventBufferExceeded());
1625fa345c78SEd Tanous }
1626fa345c78SEd Tanous 
1627fa345c78SEd Tanous /**
1628fa345c78SEd Tanous  * @internal
1629f4c4dcf4SKowalski, Kamil  * @brief Formats InsufficientPrivilege message into JSON
1630f4c4dcf4SKowalski, Kamil  *
1631f4c4dcf4SKowalski, Kamil  * See header file for more information
1632f4c4dcf4SKowalski, Kamil  * @endinternal
1633f4c4dcf4SKowalski, Kamil  */
1634d9fcfcc1SEd Tanous nlohmann::json insufficientPrivilege()
16351abe55efSEd Tanous {
1636fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::insufficientPrivilege, {});
1637b5c07418SJames Feist }
1638b5c07418SJames Feist 
1639b5c07418SJames Feist void insufficientPrivilege(crow::Response& res)
1640b5c07418SJames Feist {
1641b5c07418SJames Feist     res.result(boost::beast::http::status::forbidden);
1642b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, insufficientPrivilege());
1643f4c4dcf4SKowalski, Kamil }
1644f4c4dcf4SKowalski, Kamil 
1645f4c4dcf4SKowalski, Kamil /**
1646f4c4dcf4SKowalski, Kamil  * @internal
1647f4c4dcf4SKowalski, Kamil  * @brief Formats PropertyValueModified message into JSON
1648f4c4dcf4SKowalski, Kamil  *
1649f4c4dcf4SKowalski, Kamil  * See header file for more information
1650f4c4dcf4SKowalski, Kamil  * @endinternal
1651f4c4dcf4SKowalski, Kamil  */
16521668ce6dSEd Tanous nlohmann::json propertyValueModified(std::string_view arg1,
165395b3ad73SEd Tanous                                      const nlohmann::json& arg2)
1654b5c07418SJames Feist {
1655*bd79bce8SPatrick Williams     std::string arg2Str =
1656*bd79bce8SPatrick Williams         arg2.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
1657fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyValueModified,
165895b3ad73SEd Tanous                   std::to_array<std::string_view>({arg1, arg2Str}));
1659b5c07418SJames Feist }
1660b5c07418SJames Feist 
16611668ce6dSEd Tanous void propertyValueModified(crow::Response& res, std::string_view arg1,
166295b3ad73SEd Tanous                            const nlohmann::json& arg2)
16631abe55efSEd Tanous {
1664f12894f8SJason M. Bills     res.result(boost::beast::http::status::ok);
1665b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyValueModified(arg1, arg2), arg1);
1666f4c4dcf4SKowalski, Kamil }
1667f4c4dcf4SKowalski, Kamil 
1668f4c4dcf4SKowalski, Kamil /**
1669f4c4dcf4SKowalski, Kamil  * @internal
1670f4c4dcf4SKowalski, Kamil  * @brief Formats AccountNotModified message into JSON
1671f4c4dcf4SKowalski, Kamil  *
1672f4c4dcf4SKowalski, Kamil  * See header file for more information
1673f4c4dcf4SKowalski, Kamil  * @endinternal
1674f4c4dcf4SKowalski, Kamil  */
1675d9fcfcc1SEd Tanous nlohmann::json accountNotModified()
16761abe55efSEd Tanous {
1677fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::accountNotModified, {});
1678b5c07418SJames Feist }
1679b5c07418SJames Feist 
1680b5c07418SJames Feist void accountNotModified(crow::Response& res)
1681b5c07418SJames Feist {
1682b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1683b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, accountNotModified());
1684f4c4dcf4SKowalski, Kamil }
1685f4c4dcf4SKowalski, Kamil 
1686f4c4dcf4SKowalski, Kamil /**
1687f4c4dcf4SKowalski, Kamil  * @internal
1688f4c4dcf4SKowalski, Kamil  * @brief Formats QueryParameterValueFormatError message into JSON
1689f4c4dcf4SKowalski, Kamil  *
1690f4c4dcf4SKowalski, Kamil  * See header file for more information
1691f4c4dcf4SKowalski, Kamil  * @endinternal
1692f4c4dcf4SKowalski, Kamil  */
169395b3ad73SEd Tanous nlohmann::json queryParameterValueFormatError(const nlohmann::json& arg1,
16941668ce6dSEd Tanous                                               std::string_view arg2)
16951abe55efSEd Tanous {
1696*bd79bce8SPatrick Williams     std::string arg1Str =
1697*bd79bce8SPatrick Williams         arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
1698fffb8c1fSEd Tanous     return getLog(
1699fffb8c1fSEd Tanous         redfish::registries::base::Index::queryParameterValueFormatError,
170095b3ad73SEd Tanous         std::to_array<std::string_view>({arg1Str, arg2}));
1701b5c07418SJames Feist }
1702b5c07418SJames Feist 
1703*bd79bce8SPatrick Williams void queryParameterValueFormatError(
1704*bd79bce8SPatrick Williams     crow::Response& res, const nlohmann::json& arg1, std::string_view arg2)
1705b5c07418SJames Feist {
1706b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1707b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
1708b5c07418SJames Feist                           queryParameterValueFormatError(arg1, arg2));
1709f4c4dcf4SKowalski, Kamil }
1710f4c4dcf4SKowalski, Kamil 
1711f4c4dcf4SKowalski, Kamil /**
1712f4c4dcf4SKowalski, Kamil  * @internal
1713b5c07418SJames Feist  * @brief Formats PropertyMissing message into JSON for the specified
1714b5c07418SJames Feist  * property
1715f12894f8SJason M. Bills  *
1716f12894f8SJason M. Bills  * See header file for more information
1717f12894f8SJason M. Bills  * @endinternal
1718f12894f8SJason M. Bills  */
17191668ce6dSEd Tanous nlohmann::json propertyMissing(std::string_view arg1)
1720f12894f8SJason M. Bills {
1721fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyMissing,
17221668ce6dSEd Tanous                   std::to_array({arg1}));
1723b5c07418SJames Feist }
1724b5c07418SJames Feist 
17251668ce6dSEd Tanous void propertyMissing(crow::Response& res, std::string_view arg1)
1726b5c07418SJames Feist {
1727b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1728b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyMissing(arg1), arg1);
1729f4c4dcf4SKowalski, Kamil }
1730f4c4dcf4SKowalski, Kamil 
1731f4c4dcf4SKowalski, Kamil /**
1732f4c4dcf4SKowalski, Kamil  * @internal
1733f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceExhaustion message into JSON
1734f4c4dcf4SKowalski, Kamil  *
1735f4c4dcf4SKowalski, Kamil  * See header file for more information
1736f4c4dcf4SKowalski, Kamil  * @endinternal
1737f4c4dcf4SKowalski, Kamil  */
17381668ce6dSEd Tanous nlohmann::json resourceExhaustion(std::string_view arg1)
17391abe55efSEd Tanous {
1740fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceExhaustion,
17411668ce6dSEd Tanous                   std::to_array({arg1}));
1742b5c07418SJames Feist }
1743b5c07418SJames Feist 
17441668ce6dSEd Tanous void resourceExhaustion(crow::Response& res, std::string_view arg1)
1745b5c07418SJames Feist {
1746b5c07418SJames Feist     res.result(boost::beast::http::status::service_unavailable);
1747b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceExhaustion(arg1));
1748f4c4dcf4SKowalski, Kamil }
1749f4c4dcf4SKowalski, Kamil 
1750f4c4dcf4SKowalski, Kamil /**
1751f4c4dcf4SKowalski, Kamil  * @internal
1752f4c4dcf4SKowalski, Kamil  * @brief Formats AccountModified message into JSON
1753f4c4dcf4SKowalski, Kamil  *
1754f4c4dcf4SKowalski, Kamil  * See header file for more information
1755f4c4dcf4SKowalski, Kamil  * @endinternal
1756f4c4dcf4SKowalski, Kamil  */
1757d9fcfcc1SEd Tanous nlohmann::json accountModified()
17581abe55efSEd Tanous {
1759fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::accountModified, {});
1760b5c07418SJames Feist }
1761b5c07418SJames Feist 
1762b5c07418SJames Feist void accountModified(crow::Response& res)
1763b5c07418SJames Feist {
1764b5c07418SJames Feist     res.result(boost::beast::http::status::ok);
1765b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, accountModified());
1766f4c4dcf4SKowalski, Kamil }
1767f4c4dcf4SKowalski, Kamil 
1768f4c4dcf4SKowalski, Kamil /**
1769f4c4dcf4SKowalski, Kamil  * @internal
1770f4c4dcf4SKowalski, Kamil  * @brief Formats QueryParameterOutOfRange message into JSON
1771f4c4dcf4SKowalski, Kamil  *
1772f4c4dcf4SKowalski, Kamil  * See header file for more information
1773f4c4dcf4SKowalski, Kamil  * @endinternal
1774f4c4dcf4SKowalski, Kamil  */
1775*bd79bce8SPatrick Williams nlohmann::json queryParameterOutOfRange(
1776*bd79bce8SPatrick Williams     std::string_view arg1, std::string_view arg2, std::string_view arg3)
17771abe55efSEd Tanous {
1778fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::queryParameterOutOfRange,
17791668ce6dSEd Tanous                   std::to_array({arg1, arg2, arg3}));
1780b5c07418SJames Feist }
1781b5c07418SJames Feist 
17821668ce6dSEd Tanous void queryParameterOutOfRange(crow::Response& res, std::string_view arg1,
17831668ce6dSEd Tanous                               std::string_view arg2, std::string_view arg3)
1784b5c07418SJames Feist {
1785b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1786b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
1787b5c07418SJames Feist                           queryParameterOutOfRange(arg1, arg2, arg3));
1788f4c4dcf4SKowalski, Kamil }
1789f4c4dcf4SKowalski, Kamil 
17904a7fbefdSEd Tanous nlohmann::json passwordChangeRequired(const boost::urls::url_view_base& arg1)
1791b6cd31e1SEd Tanous {
1792fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::passwordChangeRequired,
1793079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer()}));
1794b6cd31e1SEd Tanous }
1795b6cd31e1SEd Tanous 
17963bf4e632SJoseph Reynolds /**
17973bf4e632SJoseph Reynolds  * @internal
17983bf4e632SJoseph Reynolds  * @brief Formats PasswordChangeRequired message into JSON
17993bf4e632SJoseph Reynolds  *
18003bf4e632SJoseph Reynolds  * See header file for more information
18013bf4e632SJoseph Reynolds  * @endinternal
18023bf4e632SJoseph Reynolds  */
18034a7fbefdSEd Tanous void passwordChangeRequired(crow::Response& res,
18044a7fbefdSEd Tanous                             const boost::urls::url_view_base& arg1)
18053bf4e632SJoseph Reynolds {
1806b6cd31e1SEd Tanous     messages::addMessageToJsonRoot(res.jsonValue, passwordChangeRequired(arg1));
18073bf4e632SJoseph Reynolds }
18083bf4e632SJoseph Reynolds 
18094cde5d90SJames Feist /**
18104cde5d90SJames Feist  * @internal
1811ae688313SNan Zhou  * @brief Formats InsufficientStorage message into JSON
1812ae688313SNan Zhou  *
1813ae688313SNan Zhou  * See header file for more information
1814ae688313SNan Zhou  * @endinternal
1815ae688313SNan Zhou  */
1816ae688313SNan Zhou nlohmann::json insufficientStorage()
1817ae688313SNan Zhou {
1818ae688313SNan Zhou     return getLog(redfish::registries::base::Index::insufficientStorage, {});
1819ae688313SNan Zhou }
1820ae688313SNan Zhou 
1821ae688313SNan Zhou void insufficientStorage(crow::Response& res)
1822ae688313SNan Zhou {
1823ae688313SNan Zhou     res.result(boost::beast::http::status::insufficient_storage);
1824ae688313SNan Zhou     addMessageToErrorJson(res.jsonValue, insufficientStorage());
1825ae688313SNan Zhou }
1826ae688313SNan Zhou 
1827ae688313SNan Zhou /**
1828ae688313SNan Zhou  * @internal
182944c70412SEd Tanous  * @brief Formats OperationNotAllowed message into JSON
183044c70412SEd Tanous  *
183144c70412SEd Tanous  * See header file for more information
183244c70412SEd Tanous  * @endinternal
183344c70412SEd Tanous  */
183444c70412SEd Tanous nlohmann::json operationNotAllowed()
183544c70412SEd Tanous {
183644c70412SEd Tanous     return getLog(redfish::registries::base::Index::operationNotAllowed, {});
183744c70412SEd Tanous }
183844c70412SEd Tanous 
183944c70412SEd Tanous void operationNotAllowed(crow::Response& res)
184044c70412SEd Tanous {
184144c70412SEd Tanous     res.result(boost::beast::http::status::method_not_allowed);
184244c70412SEd Tanous     addMessageToErrorJson(res.jsonValue, operationNotAllowed());
184344c70412SEd Tanous }
184444c70412SEd Tanous 
1845600af5f1SAppaRao Puli /**
1846600af5f1SAppaRao Puli  * @internal
1847600af5f1SAppaRao Puli  * @brief Formats ArraySizeTooLong message into JSON
1848600af5f1SAppaRao Puli  *
1849600af5f1SAppaRao Puli  * See header file for more information
1850600af5f1SAppaRao Puli  * @endinternal
1851600af5f1SAppaRao Puli  */
1852600af5f1SAppaRao Puli nlohmann::json arraySizeTooLong(std::string_view property, uint64_t length)
1853600af5f1SAppaRao Puli {
1854600af5f1SAppaRao Puli     std::string valStr = std::to_string(length);
1855600af5f1SAppaRao Puli     return getLog(redfish::registries::base::Index::arraySizeTooLong,
1856600af5f1SAppaRao Puli                   std::to_array<std::string_view>({property, valStr}));
1857600af5f1SAppaRao Puli }
1858600af5f1SAppaRao Puli 
1859600af5f1SAppaRao Puli void arraySizeTooLong(crow::Response& res, std::string_view property,
1860600af5f1SAppaRao Puli                       uint64_t length)
1861600af5f1SAppaRao Puli {
186299bf0262SDivya Jyoti     res.result(boost::beast::http::status::bad_request);
1863600af5f1SAppaRao Puli     addMessageToErrorJson(res.jsonValue, arraySizeTooLong(property, length));
1864600af5f1SAppaRao Puli }
1865600af5f1SAppaRao Puli 
186644c70412SEd Tanous void invalidUpload(crow::Response& res, std::string_view arg1,
186744c70412SEd Tanous                    std::string_view arg2)
186844c70412SEd Tanous {
186944c70412SEd Tanous     res.result(boost::beast::http::status::bad_request);
187044c70412SEd Tanous     addMessageToErrorJson(res.jsonValue, invalidUpload(arg1, arg2));
187144c70412SEd Tanous }
187244c70412SEd Tanous 
187344c70412SEd Tanous /**
187444c70412SEd Tanous  * @internal
18754cde5d90SJames Feist  * @brief Formats Invalid File message into JSON
18764cde5d90SJames Feist  *
18774cde5d90SJames Feist  * See header file for more information
18784cde5d90SJames Feist  * @endinternal
18794cde5d90SJames Feist  */
18801668ce6dSEd Tanous nlohmann::json invalidUpload(std::string_view arg1, std::string_view arg2)
18814cde5d90SJames Feist {
18821668ce6dSEd Tanous     std::string msg = "Invalid file uploaded to ";
18831668ce6dSEd Tanous     msg += arg1;
18841668ce6dSEd Tanous     msg += ": ";
18851668ce6dSEd Tanous     msg += arg2;
18861668ce6dSEd Tanous     msg += ".";
1887613dabeaSEd Tanous 
1888613dabeaSEd Tanous     nlohmann::json::object_t ret;
1889613dabeaSEd Tanous     ret["@odata.type"] = "/redfish/v1/$metadata#Message.v1_1_1.Message";
1890613dabeaSEd Tanous     ret["MessageId"] = "OpenBMC.0.2.InvalidUpload";
1891613dabeaSEd Tanous     ret["Message"] = std::move(msg);
1892613dabeaSEd Tanous     nlohmann::json::array_t args;
1893ad539545SPatrick Williams     args.emplace_back(arg1);
1894ad539545SPatrick Williams     args.emplace_back(arg2);
1895613dabeaSEd Tanous     ret["MessageArgs"] = std::move(args);
1896613dabeaSEd Tanous     ret["MessageSeverity"] = "Warning";
1897613dabeaSEd Tanous     ret["Resolution"] = "None.";
1898613dabeaSEd Tanous     return ret;
18994cde5d90SJames Feist }
1900ae688313SNan Zhou 
1901f4c4dcf4SKowalski, Kamil } // namespace messages
1902f4c4dcf4SKowalski, Kamil 
1903d425c6f6SEd Tanous } // namespace redfish
1904