diff --git a/redfish-core/include/registries/base_message_registry.hpp b/redfish-core/include/registries/base_message_registry.hpp
index cfba904..6803a80 100644
--- a/redfish-core/include/registries/base_message_registry.hpp
+++ b/redfish-core/include/registries/base_message_registry.hpp
@@ -6,6 +6,8 @@
 #pragma once
 #include <registries.hpp>
 
+// clang-format off
+
 namespace redfish::message_registries::base
 {
 const Header header = {
@@ -23,1173 +25,1178 @@
     "https://redfish.dmtf.org/registries/Base.1.11.0.json";
 
 constexpr std::array<MessageEntry, 93> registry =
-    {
-        MessageEntry{
-            "AccessDenied",
+{
+    MessageEntry{
+        "AccessDenied",
+        {
+            "Indicates that while attempting to access, connect to, or transfer to or from another resource, the service denied access.",
+            "While attempting to establish a connection to '%1', the service denied access.",
+            "Critical",
+            "Critical",
+            1,
             {
-                "Indicates that while attempting to access, connect to, or transfer to or from another resource, the service denied access.",
-                "While attempting to establish a connection to '%1', the service denied access.",
-                "Critical",
-                "Critical",
-                1,
-                {
-                    "string",
-                },
-                "Attempt to ensure that the URI is correct and that the service has the appropriate credentials.",
-            }},
-        MessageEntry{
-            "AccountForSessionNoLongerExists",
+                "string",
+            },
+            "Attempt to ensure that the URI is correct and that the service has the appropriate credentials.",
+        }},
+    MessageEntry{
+        "AccountForSessionNoLongerExists",
+        {
+            "Indicates that the account for the session has been removed, thus the session has been removed as well.",
+            "The account for the current session has been removed, thus the current session has been removed as well.",
+            "OK",
+            "OK",
+            0,
+            {},
+            "Attempt to connect with a valid account.",
+        }},
+    MessageEntry{
+        "AccountModified",
+        {
+            "Indicates that the account was successfully modified.",
+            "The account was successfully modified.",
+            "OK",
+            "OK",
+            0,
+            {},
+            "No resolution is required.",
+        }},
+    MessageEntry{
+        "AccountNotModified",
+        {
+            "Indicates that the modification requested for the account was not successful.",
+            "The account modification request failed.",
+            "Warning",
+            "Warning",
+            0,
+            {},
+            "The modification may have failed due to permission issues or issues with the request body.",
+        }},
+    MessageEntry{
+        "AccountRemoved",
+        {
+            "Indicates that the account was successfully removed.",
+            "The account was successfully removed.",
+            "OK",
+            "OK",
+            0,
+            {},
+            "No resolution is required.",
+        }},
+    MessageEntry{
+        "ActionDeprecated",
+        {
+            "Indicates the action is deprecated.",
+            "The action %1 is deprecated.",
+            "Warning",
+            "Warning",
+            1,
             {
-                "Indicates that the account for the session has been removed, thus the session has been removed as well.",
-                "The account for the current session has been removed, thus the current session has been removed as well.",
-                "OK",
-                "OK",
-                0,
-                {},
-                "Attempt to connect with a valid account.",
-            }},
-        MessageEntry{
-            "AccountModified",
+                "string",
+            },
+            "Refer to the schema guide for more information.",
+        }},
+    MessageEntry{
+        "ActionNotSupported",
+        {
+            "Indicates that the action supplied with the POST operation is not supported by the resource.",
+            "The action %1 is not supported by the resource.",
+            "Critical",
+            "Critical",
+            1,
             {
-                "Indicates that the account was successfully modified.",
-                "The account was successfully modified.",
-                "OK",
-                "OK",
-                0,
-                {},
-                "No resolution is required.",
-            }},
-        MessageEntry{
-            "AccountNotModified",
+                "string",
+            },
+            "The action supplied cannot be resubmitted to the implementation.  Perhaps the action was invalid, the wrong resource was the target or the implementation documentation may be of assistance.",
+        }},
+    MessageEntry{
+        "ActionParameterDuplicate",
+        {
+            "Indicates that the action was supplied with a duplicated parameter in the request body.",
+            "The action %1 was submitted with more than one value for the parameter %2.",
+            "Warning",
+            "Warning",
+            2,
             {
-                "Indicates that the modification requested for the account was not successful.",
-                "The account modification request failed.",
-                "Warning",
-                "Warning",
-                0,
-                {},
-                "The modification may have failed due to permission issues or issues with the request body.",
-            }},
-        MessageEntry{"AccountRemoved",
-                     {
-                         "Indicates that the account was successfully removed.",
-                         "The account was successfully removed.",
-                         "OK",
-                         "OK",
-                         0,
-                         {},
-                         "No resolution is required.",
-                     }},
-        MessageEntry{"ActionDeprecated",
-                     {
-                         "Indicates the action is deprecated.",
-                         "The action %1 is deprecated.",
-                         "Warning",
-                         "Warning",
-                         1,
-                         {
-                             "string",
-                         },
-                         "Refer to the schema guide for more information.",
-                     }},
-        MessageEntry{
-            "ActionNotSupported",
+                "string",
+                "string",
+            },
+            "Resubmit the action with only one instance of the parameter in the request body if the operation failed.",
+        }},
+    MessageEntry{
+        "ActionParameterMissing",
+        {
+            "Indicates that the action requested was missing a parameter that is required to process the action.",
+            "The action %1 requires the parameter %2 to be present in the request body.",
+            "Critical",
+            "Critical",
+            2,
             {
-                "Indicates that the action supplied with the POST operation is not supported by the resource.",
-                "The action %1 is not supported by the resource.",
-                "Critical",
-                "Critical",
-                1,
-                {
-                    "string",
-                },
-                "The action supplied cannot be resubmitted to the implementation.  Perhaps the action was invalid, the wrong resource was the target or the implementation documentation may be of assistance.",
-            }},
-        MessageEntry{
-            "ActionParameterDuplicate",
+                "string",
+                "string",
+            },
+            "Supply the action with the required parameter in the request body when the request is resubmitted.",
+        }},
+    MessageEntry{
+        "ActionParameterNotSupported",
+        {
+            "Indicates that the parameter supplied for the action is not supported on the resource.",
+            "The parameter %1 for the action %2 is not supported on the target resource.",
+            "Warning",
+            "Warning",
+            2,
             {
-                "Indicates that the action was supplied with a duplicated parameter in the request body.",
-                "The action %1 was submitted with more than one value for the parameter %2.",
-                "Warning",
-                "Warning",
-                2,
-                {
-                    "string",
-                    "string",
-                },
-                "Resubmit the action with only one instance of the parameter in the request body if the operation failed.",
-            }},
-        MessageEntry{
-            "ActionParameterMissing",
+                "string",
+                "string",
+            },
+            "Remove the parameter supplied and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "ActionParameterUnknown",
+        {
+            "Indicates that an action was submitted but a parameter supplied did not match any of the known parameters.",
+            "The action %1 was submitted with the invalid parameter %2.",
+            "Warning",
+            "Warning",
+            2,
             {
-                "Indicates that the action requested was missing a parameter that is required to process the action.",
-                "The action %1 requires the parameter %2 to be present in the request body.",
-                "Critical",
-                "Critical",
-                2,
-                {
-                    "string",
-                    "string",
-                },
-                "Supply the action with the required parameter in the request body when the request is resubmitted.",
-            }},
-        MessageEntry{
-            "ActionParameterNotSupported",
+                "string",
+                "string",
+            },
+            "Correct the invalid parameter and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "ActionParameterValueError",
+        {
+            "Indicates that a parameter was given an invalid value.",
+            "The value for the parameter %1 in the action %2 is invalid.",
+            "Warning",
+            "Warning",
+            2,
             {
-                "Indicates that the parameter supplied for the action is not supported on the resource.",
-                "The parameter %1 for the action %2 is not supported on the target resource.",
-                "Warning",
-                "Warning",
-                2,
-                {
-                    "string",
-                    "string",
-                },
-                "Remove the parameter supplied and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "ActionParameterUnknown",
+                "string",
+                "string",
+            },
+            "Correct the value for the parameter in the request body and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "ActionParameterValueFormatError",
+        {
+            "Indicates that a parameter was given the correct value type but the value of that parameter was not supported.  This includes the value size or length has been exceeded.",
+            "The value '%1' for the parameter %2 in the action %3 is of a different format than the parameter can accept.",
+            "Warning",
+            "Warning",
+            3,
             {
-                "Indicates that an action was submitted but a parameter supplied did not match any of the known parameters.",
-                "The action %1 was submitted with the invalid parameter %2.",
-                "Warning",
-                "Warning",
-                2,
-                {
-                    "string",
-                    "string",
-                },
-                "Correct the invalid parameter and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "ActionParameterValueError",
+                "string",
+                "string",
+                "string",
+            },
+            "Correct the value for the parameter in the request body and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "ActionParameterValueNotInList",
+        {
+            "Indicates that a parameter was given the correct value type but the value of that parameter was not supported.  The value is not in an enumeration.",
+            "The value '%1' for the parameter %2 in the action %3 is not in the list of acceptable values.",
+            "Warning",
+            "Warning",
+            3,
             {
-                "Indicates that a parameter was given an invalid value.",
-                "The value for the parameter %1 in the action %2 is invalid.",
-                "Warning",
-                "Warning",
-                2,
-                {
-                    "string",
-                    "string",
-                },
-                "Correct the value for the parameter in the request body and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "ActionParameterValueFormatError",
+                "string",
+                "string",
+                "string",
+            },
+            "Choose a value from the enumeration list that the implementation can support and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "ActionParameterValueTypeError",
+        {
+            "Indicates that a parameter was given the wrong value type, such as when a number is supplied for a parameter that requires a string.",
+            "The value '%1' for the parameter %2 in the action %3 is of a different type than the parameter can accept.",
+            "Warning",
+            "Warning",
+            3,
             {
-                "Indicates that a parameter was given the correct value type but the value of that parameter was not supported.  This includes the value size or length has been exceeded.",
-                "The value '%1' for the parameter %2 in the action %3 is of a different format than the parameter can accept.",
-                "Warning",
-                "Warning",
-                3,
-                {
-                    "string",
-                    "string",
-                    "string",
-                },
-                "Correct the value for the parameter in the request body and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "ActionParameterValueNotInList",
+                "string",
+                "string",
+                "string",
+            },
+            "Correct the value for the parameter in the request body and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "ChassisPowerStateOffRequired",
+        {
+            "Indicates that the request requires a specified chassis to be powered off.",
+            "The Chassis with Id '%1' requires to be powered off to perform this request.",
+            "Warning",
+            "Warning",
+            1,
             {
-                "Indicates that a parameter was given the correct value type but the value of that parameter was not supported.  The value is not in an enumeration.",
-                "The value '%1' for the parameter %2 in the action %3 is not in the list of acceptable values.",
-                "Warning",
-                "Warning",
-                3,
-                {
-                    "string",
-                    "string",
-                    "string",
-                },
-                "Choose a value from the enumeration list that the implementation can support and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "ActionParameterValueTypeError",
+                "string",
+            },
+            "Power off the specified chassis and resubmit the request.",
+        }},
+    MessageEntry{
+        "ChassisPowerStateOnRequired",
+        {
+            "Indicates that the request requires a specified chassis to be powered on.",
+            "The chassis with Id '%1' requires to be powered on to perform this request.",
+            "Warning",
+            "Warning",
+            1,
             {
-                "Indicates that a parameter was given the wrong value type, such as when a number is supplied for a parameter that requires a string.",
-                "The value '%1' for the parameter %2 in the action %3 is of a different type than the parameter can accept.",
-                "Warning",
-                "Warning",
-                3,
-                {
-                    "string",
-                    "string",
-                    "string",
-                },
-                "Correct the value for the parameter in the request body and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "ChassisPowerStateOffRequired",
+                "string",
+            },
+            "Power on the specified chassis and resubmit the request.",
+        }},
+    MessageEntry{
+        "ConditionInRelatedResource",
+        {
+            "Indicates that one or more fault or error conditions exist in a related resource.",
+            "One or more conditions exist in a related resource.  See the OriginOfCondition property.",
+            "Warning",
+            "Warning",
+            0,
+            {},
+            "Check the Conditions array in the resource shown in the OriginOfCondition property to determine the conditions that need attention.",
+        }},
+    MessageEntry{
+        "CouldNotEstablishConnection",
+        {
+            "Indicates that the attempt to access the resource, file, or image at the URI was unsuccessful because a session could not be established.",
+            "The service failed to establish a connection with the URI '%1'.",
+            "Critical",
+            "Critical",
+            1,
             {
-                "Indicates that the request requires a specified chassis to be powered off.",
-                "The Chassis with Id '%1' requires to be powered off to perform this request.",
-                "Warning",
-                "Warning",
-                1,
-                {
-                    "string",
-                },
-                "Power off the specified chassis and resubmit the request.",
-            }},
-        MessageEntry{
-            "ChassisPowerStateOnRequired",
+                "string",
+            },
+            "Ensure that the URI contains a valid and reachable node name, protocol information and other URI components.",
+        }},
+    MessageEntry{
+        "CreateFailedMissingReqProperties",
+        {
+            "Indicates that a create was attempted on a resource but that properties that are required for the create operation were missing from the request.",
+            "The create operation failed because the required property %1 was missing from the request.",
+            "Critical",
+            "Critical",
+            1,
             {
-                "Indicates that the request requires a specified chassis to be powered on.",
-                "The chassis with Id '%1' requires to be powered on to perform this request.",
-                "Warning",
-                "Warning",
-                1,
-                {
-                    "string",
-                },
-                "Power on the specified chassis and resubmit the request.",
-            }},
-        MessageEntry{
-            "ConditionInRelatedResource",
+                "string",
+            },
+            "Correct the body to include the required property with a valid value and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "CreateLimitReachedForResource",
+        {
+            "Indicates that no more resources can be created on the resource as it has reached its create limit.",
+            "The create operation failed because the resource has reached the limit of possible resources.",
+            "Critical",
+            "Critical",
+            0,
+            {},
+            "Either delete resources and resubmit the request if the operation failed or do not resubmit the request.",
+        }},
+    MessageEntry{
+        "Created",
+        {
+            "Indicates that all conditions of a successful create operation have been met.",
+            "The resource has been created successfully.",
+            "OK",
+            "OK",
+            0,
+            {},
+            "None.",
+        }},
+    MessageEntry{
+        "EmptyJSON",
+        {
+            "Indicates that the request body contained an empty JSON object when one or more properties are expected in the body.",
+            "The request body submitted contained an empty JSON object and the service is unable to process it.",
+            "Warning",
+            "Warning",
+            0,
+            {},
+            "Add properties in the JSON object and resubmit the request.",
+        }},
+    MessageEntry{
+        "EventSubscriptionLimitExceeded",
+        {
+            "Indicates that a event subscription establishment has been requested but the operation failed due to the number of simultaneous connection exceeding the limit of the implementation.",
+            "The event subscription failed due to the number of simultaneous subscriptions exceeding the limit of the implementation.",
+            "Critical",
+            "Critical",
+            0,
+            {},
+            "Reduce the number of other subscriptions before trying to establish the event subscription or increase the limit of simultaneous subscriptions, if supported.",
+        }},
+    MessageEntry{
+        "GeneralError",
+        {
+            "Indicates that a general error has occurred.  Use in `@Message.ExtendedInfo` is discouraged.  When used in `@Message.ExtendedInfo`, implementations are expected to include a `Resolution` property with this message and provide a service-defined resolution to indicate how to resolve the error.",
+            "A general error has occurred.  See Resolution for information on how to resolve the error, or @Message.ExtendedInfo if Resolution is not provided.",
+            "Critical",
+            "Critical",
+            0,
+            {},
+            "None.",
+        }},
+    MessageEntry{
+        "InsufficientPrivilege",
+        {
+            "Indicates that the credentials associated with the established session do not have sufficient privileges for the requested operation.",
+            "There are insufficient privileges for the account or credentials associated with the current session to perform the requested operation.",
+            "Critical",
+            "Critical",
+            0,
+            {},
+            "Either abandon the operation or change the associated access rights and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "InternalError",
+        {
+            "Indicates that the request failed for an unknown internal error but that the service is still operational.",
+            "The request failed due to an internal service error.  The service is still operational.",
+            "Critical",
+            "Critical",
+            0,
+            {},
+            "Resubmit the request.  If the problem persists, consider resetting the service.",
+        }},
+    MessageEntry{
+        "InvalidIndex",
+        {
+            "The index is not valid.",
+            "The index %1 is not a valid offset into the array.",
+            "Warning",
+            "Warning",
+            1,
             {
-                "Indicates that one or more fault or error conditions exist in a related resource.",
-                "One or more conditions exist in a related resource.  See the OriginOfCondition property.",
-                "Warning",
-                "Warning",
-                0,
-                {},
-                "Check the Conditions array in the resource shown in the OriginOfCondition property to determine the conditions that need attention.",
-            }},
-        MessageEntry{
-            "CouldNotEstablishConnection",
+                "number",
+            },
+            "Verify the index value provided is within the bounds of the array.",
+        }},
+    MessageEntry{
+        "InvalidJSON",
+        {
+            "Indicates that the request body contains invalid JSON.",
+            "The request body submitted is invalid JSON starting at line $1 and could not be parsed by the receiving service.",
+            "Critical",
+            "Critical",
+            1,
             {
-                "Indicates that the attempt to access the resource, file, or image at the URI was unsuccessful because a session could not be established.",
-                "The service failed to establish a connection with the URI '%1'.",
-                "Critical",
-                "Critical",
-                1,
-                {
-                    "string",
-                },
-                "Ensure that the URI contains a valid and reachable node name, protocol information and other URI components.",
-            }},
-        MessageEntry{
-            "CreateFailedMissingReqProperties",
+                "number",
+            },
+            "Ensure that the request body is valid JSON and resubmit the request.",
+        }},
+    MessageEntry{
+        "InvalidObject",
+        {
+            "Indicates that the object in question is invalid according to the implementation.  Examples include a firmware update malformed URI.",
+            "The object at '%1' is invalid.",
+            "Critical",
+            "Critical",
+            1,
             {
-                "Indicates that a create was attempted on a resource but that properties that are required for the create operation were missing from the request.",
-                "The create operation failed because the required property %1 was missing from the request.",
-                "Critical",
-                "Critical",
-                1,
-                {
-                    "string",
-                },
-                "Correct the body to include the required property with a valid value and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "CreateLimitReachedForResource",
+                "string",
+            },
+            "Either the object is malformed or the URI is not correct.  Correct the condition and resubmit the request if it failed.",
+        }},
+    MessageEntry{
+        "InvalidURI",
+        {
+            "Indicates that the operation encountered a URI that does not correspond to a valid resource.",
+            "The URI %1 was not found.",
+            "Critical",
+            "Critical",
+            1,
             {
-                "Indicates that no more resources can be created on the resource as it has reached its create limit.",
-                "The create operation failed because the resource has reached the limit of possible resources.",
-                "Critical",
-                "Critical",
-                0,
-                {},
-                "Either delete resources and resubmit the request if the operation failed or do not resubmit the request.",
-            }},
-        MessageEntry{
-            "Created",
+                "string",
+            },
+            "Provide a valid URI and resubmit the request.",
+        }},
+    MessageEntry{
+        "MalformedJSON",
+        {
+            "Indicates that the request body was malformed JSON.",
+            "The request body submitted was malformed JSON and could not be parsed by the receiving service.",
+            "Critical",
+            "Critical",
+            0,
+            {},
+            "Ensure that the request body is valid JSON and resubmit the request.",
+        }},
+    MessageEntry{
+        "MaximumErrorsExceeded",
+        {
+            "Indicates that sufficient errors have occurred that the reporting service cannot return them all.",
+            "Too many errors have occurred to report them all.",
+            "Critical",
+            "Critical",
+            0,
+            {},
+            "Resolve other reported errors and retry the current operation.",
+        }},
+    MessageEntry{
+        "NetworkNameResolutionNotConfigured",
+        {
+            "Indicates that network-based name resolution has not been configured on the service.",
+            "Network name resolution has not been configured on this service.",
+            "Warning",
+            "Warning",
+            0,
+            {},
+            "Configure the network name resolution protocol support on this service, or update any URI values to include an IP address instead of a network name and resubmit the request.",
+        }},
+    MessageEntry{
+        "NetworkNameResolutionNotSupported",
+        {
+            "Indicates the service does not support network-based name resolution.",
+            "Resolution of network-based names is not supported by this service.",
+            "Warning",
+            "Warning",
+            0,
+            {},
+            "Update any URI values to include an IP address instead of a network name and resubmit the request.",
+        }},
+    MessageEntry{
+        "NoOperation",
+        {
+            "Indicates that the requested operation will not perform any changes on the service.",
+            "The request body submitted contain no data to act upon and no changes to the resource took place.",
+            "Warning",
+            "Warning",
+            0,
+            {},
+            "Add properties in the JSON object and resubmit the request.",
+        }},
+    MessageEntry{
+        "NoValidSession",
+        {
+            "Indicates that the operation failed because a valid session is required in order to access any resources.",
+            "There is no valid session established with the implementation.",
+            "Critical",
+            "Critical",
+            0,
+            {},
+            "Establish a session before attempting any operations.",
+        }},
+    MessageEntry{
+        "OperationFailed",
+        {
+            "Indicates that one of the internal operations necessary to complete the request failed.  Examples of this are when an internal service provider is unable to complete the request, such as in aggregation or RDE.",
+            "An error occurred internal to the service as part of the overall request.  Partial results may have been returned.",
+            "Warning",
+            "Warning",
+            0,
+            {},
+            "Resubmit the request.  If the problem persists, consider resetting the service or provider.",
+        }},
+    MessageEntry{
+        "OperationTimeout",
+        {
+            "Indicates that one of the internal operations necessary to complete the request timed out.  Examples of this are when an internal service provider is unable to complete the request, such as in aggregation or RDE.",
+            "A timeout internal to the service occured as part of the request.  Partial results may have been returned.",
+            "Warning",
+            "Warning",
+            0,
+            {},
+            "Resubmit the request.  If the problem persists, consider resetting the service or provider.",
+        }},
+    MessageEntry{
+        "PasswordChangeRequired",
+        {
+            "Indicates that the password for the account provided must be changed before accessing the service.  The password can be changed with a PATCH to the `Password` property in the manager account resource instance.  Implementations that provide a default password for an account may require a password change prior to first access to the service.",
+            "The password provided for this account must be changed before access is granted.  PATCH the Password property for this account located at the target URI '%1' to complete this process.",
+            "Critical",
+            "Critical",
+            1,
             {
-                "Indicates that all conditions of a successful create operation have been met.",
-                "The resource has been created successfully.",
-                "OK",
-                "OK",
-                0,
-                {},
-                "None.",
-            }},
-        MessageEntry{
-            "EmptyJSON",
+                "string",
+            },
+            "Change the password for this account using a PATCH to the Password property at the URI provided.",
+        }},
+    MessageEntry{
+        "PreconditionFailed",
+        {
+            "Indicates that the ETag supplied did not match the current ETag of the resource.",
+            "The ETag supplied did not match the ETag required to change this resource.",
+            "Critical",
+            "Critical",
+            0,
+            {},
+            "Try the operation again using the appropriate ETag.",
+        }},
+    MessageEntry{
+        "PreconditionRequired",
+        {
+            "Indicates that the request did not provide the required precondition such as an `If-Match` or `If-None-Match` header, or `@odata.etag` annotations.",
+            "A precondition header or annotation is required to change this resource.",
+            "Critical",
+            "Critical",
+            0,
+            {},
+            "Try the operation again using an If-Match or If-None-Match header and appropriate ETag.",
+        }},
+    MessageEntry{
+        "PropertyDeprecated",
+        {
+            "Indicates the property is deprecated.",
+            "The deprecated property %1 was included in the request body.",
+            "Warning",
+            "Warning",
+            1,
             {
-                "Indicates that the request body contained an empty JSON object when one or more properties are expected in the body.",
-                "The request body submitted contained an empty JSON object and the service is unable to process it.",
-                "Warning",
-                "Warning",
-                0,
-                {},
-                "Add properties in the JSON object and resubmit the request.",
-            }},
-        MessageEntry{
-            "EventSubscriptionLimitExceeded",
+                "string",
+            },
+            "Refer to the schema guide for more information.",
+        }},
+    MessageEntry{
+        "PropertyDuplicate",
+        {
+            "Indicates that a duplicate property was included in the request body.",
+            "The property %1 was duplicated in the request.",
+            "Warning",
+            "Warning",
+            1,
             {
-                "Indicates that a event subscription establishment has been requested but the operation failed due to the number of simultaneous connection exceeding the limit of the implementation.",
-                "The event subscription failed due to the number of simultaneous subscriptions exceeding the limit of the implementation.",
-                "Critical",
-                "Critical",
-                0,
-                {},
-                "Reduce the number of other subscriptions before trying to establish the event subscription or increase the limit of simultaneous subscriptions, if supported.",
-            }},
-        MessageEntry{
-            "GeneralError",
+                "string",
+            },
+            "Remove the duplicate property from the request body and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "PropertyMissing",
+        {
+            "Indicates that a required property was not supplied as part of the request.",
+            "The property %1 is a required property and must be included in the request.",
+            "Warning",
+            "Warning",
+            1,
             {
-                "Indicates that a general error has occurred.  Use in `@Message.ExtendedInfo` is discouraged.  When used in `@Message.ExtendedInfo`, implementations are expected to include a `Resolution` property with this message and provide a service-defined resolution to indicate how to resolve the error.",
-                "A general error has occurred.  See Resolution for information on how to resolve the error, or @Message.ExtendedInfo if Resolution is not provided.",
-                "Critical",
-                "Critical",
-                0,
-                {},
-                "None.",
-            }},
-        MessageEntry{
-            "InsufficientPrivilege",
+                "string",
+            },
+            "Ensure that the property is in the request body and has a valid value and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "PropertyNotWritable",
+        {
+            "Indicates that a property was given a value in the request body, but the property is a readonly property.",
+            "The property %1 is a read only property and cannot be assigned a value.",
+            "Warning",
+            "Warning",
+            1,
             {
-                "Indicates that the credentials associated with the established session do not have sufficient privileges for the requested operation.",
-                "There are insufficient privileges for the account or credentials associated with the current session to perform the requested operation.",
-                "Critical",
-                "Critical",
-                0,
-                {},
-                "Either abandon the operation or change the associated access rights and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "InternalError",
+                "string",
+            },
+            "Remove the property from the request body and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "PropertyUnknown",
+        {
+            "Indicates that an unknown property was included in the request body.",
+            "The property %1 is not in the list of valid properties for the resource.",
+            "Warning",
+            "Warning",
+            1,
             {
-                "Indicates that the request failed for an unknown internal error but that the service is still operational.",
-                "The request failed due to an internal service error.  The service is still operational.",
-                "Critical",
-                "Critical",
-                0,
-                {},
-                "Resubmit the request.  If the problem persists, consider resetting the service.",
-            }},
-        MessageEntry{
-            "InvalidIndex",
+                "string",
+            },
+            "Remove the unknown property from the request body and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "PropertyValueConflict",
+        {
+            "Indicates that the requested write of a property value could not be completed, because of a conflict with another property value.",
+            "The property '%1' could not be written because its value would conflict with the value of the '%2' property.",
+            "Warning",
+            "Warning",
+            2,
             {
-                "The index is not valid.",
-                "The index %1 is not a valid offset into the array.",
-                "Warning",
-                "Warning",
-                1,
-                {
-                    "number",
-                },
-                "Verify the index value provided is within the bounds of the array.",
-            }},
-        MessageEntry{
-            "InvalidJSON",
+                "string",
+                "string",
+            },
+            "No resolution is required.",
+        }},
+    MessageEntry{
+        "PropertyValueDeprecated",
+        {
+            "Indicates that a property was given a deprecated value.",
+            "The value '%1' for the property %2 is deprecated.",
+            "Warning",
+            "Warning",
+            1,
             {
-                "Indicates that the request body contains invalid JSON.",
-                "The request body submitted is invalid JSON starting at line $1 and could not be parsed by the receiving service.",
-                "Critical",
-                "Critical",
-                1,
-                {
-                    "number",
-                },
-                "Ensure that the request body is valid JSON and resubmit the request.",
-            }},
-        MessageEntry{
-            "InvalidObject",
+                "string",
+                "string",
+            },
+            "Refer to the schema guide for more information.",
+        }},
+    MessageEntry{
+        "PropertyValueError",
+        {
+            "Indicates that a property was given an invalid value.",
+            "The value provided for the property %1 is not valid.",
+            "Warning",
+            "Warning",
+            1,
             {
-                "Indicates that the object in question is invalid according to the implementation.  Examples include a firmware update malformed URI.",
-                "The object at '%1' is invalid.",
-                "Critical",
-                "Critical",
-                1,
-                {
-                    "string",
-                },
-                "Either the object is malformed or the URI is not correct.  Correct the condition and resubmit the request if it failed.",
-            }},
-        MessageEntry{
-            "InvalidURI",
+                "string",
+            },
+            "Correct the value for the property in the request body and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "PropertyValueExternalConflict",
+        {
+            "Indicates that the requested write of a property value could not be completed, due to the current state or configuration of the resource.  This can include configuration conflicts with other resources or parameters that are not exposed by this interface.",
+            "The property '%1' with the requested value of '%2' could not be written because the value is not available due to a configuration conflict.",
+            "Warning",
+            "Warning",
+            2,
             {
-                "Indicates that the operation encountered a URI that does not correspond to a valid resource.",
-                "The URI %1 was not found.",
-                "Critical",
-                "Critical",
-                1,
-                {
-                    "string",
-                },
-                "Provide a valid URI and resubmit the request.",
-            }},
-        MessageEntry{
-            "MalformedJSON",
+                "string",
+                "string",
+            },
+            "No resolution is required.",
+        }},
+    MessageEntry{
+        "PropertyValueFormatError",
+        {
+            "Indicates that a property was given the correct value type but the value of that property was not supported.",
+            "The value '%1' for the property %2 is of a different format than the property can accept.",
+            "Warning",
+            "Warning",
+            2,
             {
-                "Indicates that the request body was malformed JSON.",
-                "The request body submitted was malformed JSON and could not be parsed by the receiving service.",
-                "Critical",
-                "Critical",
-                0,
-                {},
-                "Ensure that the request body is valid JSON and resubmit the request.",
-            }},
-        MessageEntry{
-            "MaximumErrorsExceeded",
+                "string",
+                "string",
+            },
+            "Correct the value for the property in the request body and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "PropertyValueIncorrect",
+        {
+            "Indicates that the requested write of a property value could not be completed, because of an incorrect value of the property.  Examples include values that do not match a regular expression requirement or passwords that do not match the implementation constraints.",
+            "The property '%1' with the requested value of '%2' could not be written because the value does not meet the constraints of the implementation.",
+            "Warning",
+            "Warning",
+            2,
             {
-                "Indicates that sufficient errors have occurred that the reporting service cannot return them all.",
-                "Too many errors have occurred to report them all.",
-                "Critical",
-                "Critical",
-                0,
-                {},
-                "Resolve other reported errors and retry the current operation.",
-            }},
-        MessageEntry{
-            "NetworkNameResolutionNotConfigured",
+                "string",
+                "string",
+            },
+            "No resolution is required.",
+        }},
+    MessageEntry{
+        "PropertyValueModified",
+        {
+            "Indicates that a property was given the correct value type but the value of that property was modified.  Examples are truncated or rounded values.",
+            "The property %1 was assigned the value '%2' due to modification by the service.",
+            "Warning",
+            "Warning",
+            2,
             {
-                "Indicates that network-based name resolution has not been configured on the service.",
-                "Network name resolution has not been configured on this service.",
-                "Warning",
-                "Warning",
-                0,
-                {},
-                "Configure the network name resolution protocol support on this service, or update any URI values to include an IP address instead of a network name and resubmit the request.",
-            }},
-        MessageEntry{
-            "NetworkNameResolutionNotSupported",
+                "string",
+                "string",
+            },
+            "No resolution is required.",
+        }},
+    MessageEntry{
+        "PropertyValueNotInList",
+        {
+            "Indicates that a property was given the correct value type but the value of that property was not supported.  The value is not in an enumeration.",
+            "The value '%1' for the property %2 is not in the list of acceptable values.",
+            "Warning",
+            "Warning",
+            2,
             {
-                "Indicates the service does not support network-based name resolution.",
-                "Resolution of network-based names is not supported by this service.",
-                "Warning",
-                "Warning",
-                0,
-                {},
-                "Update any URI values to include an IP address instead of a network name and resubmit the request.",
-            }},
-        MessageEntry{
-            "NoOperation",
+                "string",
+                "string",
+            },
+            "Choose a value from the enumeration list that the implementation can support and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "PropertyValueResourceConflict",
+        {
+            "Indicates that the requested write of a property value could not be completed, due to the current state or configuration of another resource.",
+            "The property '%1' with the requested value of '%2' could not be written because the value conflicts with the state or configuration of the resource at '%3'.",
+            "Warning",
+            "Warning",
+            3,
             {
-                "Indicates that the requested operation will not perform any changes on the service.",
-                "The request body submitted contain no data to act upon and no changes to the resource took place.",
-                "Warning",
-                "Warning",
-                0,
-                {},
-                "Add properties in the JSON object and resubmit the request.",
-            }},
-        MessageEntry{
-            "NoValidSession",
+                "string",
+                "string",
+                "string",
+            },
+            "No resolution is required.",
+        }},
+    MessageEntry{
+        "PropertyValueTypeError",
+        {
+            "Indicates that a property was given the wrong value type, such as when a number is supplied for a property that requires a string.",
+            "The value '%1' for the property %2 is of a different type than the property can accept.",
+            "Warning",
+            "Warning",
+            2,
             {
-                "Indicates that the operation failed because a valid session is required in order to access any resources.",
-                "There is no valid session established with the implementation.",
-                "Critical",
-                "Critical",
-                0,
-                {},
-                "Establish a session before attempting any operations.",
-            }},
-        MessageEntry{
-            "OperationFailed",
-            {
-                "Indicates that one of the internal operations necessary to complete the request failed.  Examples of this are when an internal service provider is unable to complete the request, such as in aggregation or RDE.",
-                "An error occurred internal to the service as part of the overall request.  Partial results may have been returned.",
-                "Warning",
-                "Warning",
-                0,
-                {},
-                "Resubmit the request.  If the problem persists, consider resetting the service or provider.",
-            }},
-        MessageEntry{
-            "OperationTimeout",
-            {
-                "Indicates that one of the internal operations necessary to complete the request timed out.  Examples of this are when an internal service provider is unable to complete the request, such as in aggregation or RDE.",
-                "A timeout internal to the service occured as part of the request.  Partial results may have been returned.",
-                "Warning",
-                "Warning",
-                0,
-                {},
-                "Resubmit the request.  If the problem persists, consider resetting the service or provider.",
-            }},
-        MessageEntry{"PasswordChangeRequired",
-                     {
-                         "Indicates that the password for the account provided must be changed before accessing the service.  The password can be changed with a PATCH to the `Password` property in the manager account resource instance.  Implementations that provide a default password for an account may require a password change prior to first access to the service.",
-                         "The password provided for this account must be changed before access is granted.  PATCH the Password property for this account located at the target URI '%1' to complete this process.",
-                         "Critical",
-                         "Critical",
-                         1,
-                         {
-                             "string",
-                         },
-                         "Change the password for this account using a PATCH to the Password property at the URI provided.",
-                     }},
-        MessageEntry{
-            "PreconditionFailed",
-            {
-                "Indicates that the ETag supplied did not match the current ETag of the resource.",
-                "The ETag supplied did not match the ETag required to change this resource.",
-                "Critical",
-                "Critical",
-                0,
-                {},
-                "Try the operation again using the appropriate ETag.",
-            }},
-        MessageEntry{
-            "PreconditionRequired",
-            {
-                "Indicates that the request did not provide the required precondition such as an `If-Match` or `If-None-Match` header, or `@odata.etag` annotations.",
-                "A precondition header or annotation is required to change this resource.",
-                "Critical",
-                "Critical",
-                0,
-                {},
-                "Try the operation again using an If-Match or If-None-Match header and appropriate ETag.",
-            }},
-        MessageEntry{
-            "PropertyDeprecated",
-            {
-                "Indicates the property is deprecated.",
-                "The deprecated property %1 was included in the request body.",
-                "Warning",
-                "Warning",
-                1,
-                {
-                    "string",
-                },
-                "Refer to the schema guide for more information.",
-            }},
-        MessageEntry{
-            "PropertyDuplicate",
-            {
-                "Indicates that a duplicate property was included in the request body.",
-                "The property %1 was duplicated in the request.",
-                "Warning",
-                "Warning",
-                1,
-                {
-                    "string",
-                },
-                "Remove the duplicate property from the request body and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "PropertyMissing",
-            {
-                "Indicates that a required property was not supplied as part of the request.",
-                "The property %1 is a required property and must be included in the request.",
-                "Warning",
-                "Warning",
-                1,
-                {
-                    "string",
-                },
-                "Ensure that the property is in the request body and has a valid value and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "PropertyNotWritable",
-            {
-                "Indicates that a property was given a value in the request body, but the property is a readonly property.",
-                "The property %1 is a read only property and cannot be assigned a value.",
-                "Warning",
-                "Warning",
-                1,
-                {
-                    "string",
-                },
-                "Remove the property from the request body and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "PropertyUnknown",
-            {
-                "Indicates that an unknown property was included in the request body.",
-                "The property %1 is not in the list of valid properties for the resource.",
-                "Warning",
-                "Warning",
-                1,
-                {
-                    "string",
-                },
-                "Remove the unknown property from the request body and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "PropertyValueConflict",
-            {
-                "Indicates that the requested write of a property value could not be completed, because of a conflict with another property value.",
-                "The property '%1' could not be written because its value would conflict with the value of the '%2' property.",
-                "Warning",
-                "Warning",
-                2,
-                {
-                    "string",
-                    "string",
-                },
-                "No resolution is required.",
-            }},
-        MessageEntry{
-            "PropertyValueDeprecated",
-            {
-                "Indicates that a property was given a deprecated value.",
-                "The value '%1' for the property %2 is deprecated.",
-                "Warning",
-                "Warning",
-                1,
-                {
-                    "string",
-                    "string",
-                },
-                "Refer to the schema guide for more information.",
-            }},
-        MessageEntry{
-            "PropertyValueError",
-            {
-                "Indicates that a property was given an invalid value.",
-                "The value provided for the property %1 is not valid.",
-                "Warning",
-                "Warning",
-                1,
-                {
-                    "string",
-                },
-                "Correct the value for the property in the request body and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "PropertyValueExternalConflict",
-            {
-                "Indicates that the requested write of a property value could not be completed, due to the current state or configuration of the resource.  This can include configuration conflicts with other resources or parameters that are not exposed by this interface.",
-                "The property '%1' with the requested value of '%2' could not be written because the value is not available due to a configuration conflict.",
-                "Warning",
-                "Warning",
-                2,
-                {
-                    "string",
-                    "string",
-                },
-                "No resolution is required.",
-            }},
-        MessageEntry{
-            "PropertyValueFormatError",
-            {
-                "Indicates that a property was given the correct value type but the value of that property was not supported.",
-                "The value '%1' for the property %2 is of a different format than the property can accept.",
-                "Warning",
-                "Warning",
-                2,
-                {
-                    "string",
-                    "string",
-                },
-                "Correct the value for the property in the request body and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "PropertyValueIncorrect",
-            {
-                "Indicates that the requested write of a property value could not be completed, because of an incorrect value of the property.  Examples include values that do not match a regular expression requirement or passwords that do not match the implementation constraints.",
-                "The property '%1' with the requested value of '%2' could not be written because the value does not meet the constraints of the implementation.",
-                "Warning",
-                "Warning",
-                2,
-                {
-                    "string",
-                    "string",
-                },
-                "No resolution is required.",
-            }},
-        MessageEntry{
-            "PropertyValueModified",
-            {
-                "Indicates that a property was given the correct value type but the value of that property was modified.  Examples are truncated or rounded values.",
-                "The property %1 was assigned the value '%2' due to modification by the service.",
-                "Warning",
-                "Warning",
-                2,
-                {
-                    "string",
-                    "string",
-                },
-                "No resolution is required.",
-            }},
-        MessageEntry{
-            "PropertyValueNotInList",
-            {
-                "Indicates that a property was given the correct value type but the value of that property was not supported.  The value is not in an enumeration.",
-                "The value '%1' for the property %2 is not in the list of acceptable values.",
-                "Warning",
-                "Warning",
-                2,
-                {
-                    "string",
-                    "string",
-                },
-                "Choose a value from the enumeration list that the implementation can support and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "PropertyValueResourceConflict",
-            {
-                "Indicates that the requested write of a property value could not be completed, due to the current state or configuration of another resource.",
-                "The property '%1' with the requested value of '%2' could not be written because the value conflicts with the state or configuration of the resource at '%3'.",
-                "Warning",
-                "Warning",
-                3,
-                {
-                    "string",
-                    "string",
-                    "string",
-                },
-                "No resolution is required.",
-            }},
-        MessageEntry{
-            "PropertyValueTypeError",
-            {
-                "Indicates that a property was given the wrong value type, such as when a number is supplied for a property that requires a string.",
-                "The value '%1' for the property %2 is of a different type than the property can accept.",
-                "Warning",
-                "Warning",
-                2,
-                {
-                    "string",
-                    "string",
-                },
-                "Correct the value for the property in the request body and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "QueryCombinationInvalid",
-            {
-                "Indicates the request contains multiple query parameters, and that two or more of them cannot be used together.",
-                "Two or more query parameters in the request cannot be used together.",
-                "Warning",
-                "Warning",
-                0,
-                {},
-                "Remove one or more of the query parameters and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "QueryNotSupported",
-            {
-                "Indicates that query is not supported on the implementation.",
-                "Querying is not supported by the implementation.",
-                "Warning",
-                "Warning",
-                0,
-                {},
-                "Remove the query parameters and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "QueryNotSupportedOnOperation",
-            {
-                "Indicates that query is not supported with the given operation, such as when the `$expand` query is attempted with a PATCH operation.",
-                "Querying is not supported with the requested operation.",
-                "Warning",
-                "Warning",
-                0,
-                {},
-                "Remove the query parameters and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "QueryNotSupportedOnResource",
-            {
-                "Indicates that query is not supported on the given resource, such as when the `$skip` query is attempted on a resource that is not a collection.",
-                "Querying is not supported on the requested resource.",
-                "Warning",
-                "Warning",
-                0,
-                {},
-                "Remove the query parameters and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{"QueryParameterOutOfRange",
-                     {
-                         "Indicates that a query parameter was provided that is out of range for the given resource.  This can happen with values that are too low or beyond that possible for the supplied resource, such as when a page is requested that is beyond the last page.",
-                         "The value '%1' for the query parameter %2 is out of range %3.",
-                         "Warning",
-                         "Warning",
-                         3,
-                         {
-                             "string",
-                             "string",
-                             "string",
-                         },
-                         "Reduce the value for the query parameter to a value that is within range, such as a start or count value that is within bounds of the number of resources in a collection or a page that is within the range of valid pages.",
-                     }},
-        MessageEntry{
-            "QueryParameterValueError",
-            {
-                "Indicates that a query parameter was given an invalid value.",
-                "The value for the parameter %1 is invalid.",
-                "Warning",
-                "Warning",
-                1,
-                {
-                    "string",
-                },
-                "Correct the value for the query parameter in the request and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "QueryParameterValueFormatError",
-            {
-                "Indicates that a query parameter was given the correct value type but the value of that parameter was not supported.  This includes the value size or length has been exceeded.",
-                "The value '%1' for the parameter %2 is of a different format than the parameter can accept.",
-                "Warning",
-                "Warning",
-                2,
-                {
-                    "string",
-                    "string",
-                },
-                "Correct the value for the query parameter in the request and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "QueryParameterValueTypeError",
-            {
-                "Indicates that a query parameter was given the wrong value type, such as when a number is supplied for a query parameter that requires a string.",
-                "The value '%1' for the query parameter %2 is of a different type than the parameter can accept.",
-                "Warning",
-                "Warning",
-                2,
-                {
-                    "string",
-                    "string",
-                },
-                "Correct the value for the query parameter in the request and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "ResetRequired",
-            {
-                "Indicates that a component reset is required for changes or operations to complete.",
-                "In order to complete the operation, a component reset is required with the Reset action URI '%1' and ResetType '%2'.",
-                "Warning",
-                "Warning",
-                2,
-                {
-                    "string",
-                    "string",
-                },
-                "Perform the required reset action on the specified component.",
-            }},
-        MessageEntry{
-            "ResourceAlreadyExists",
-            {
-                "Indicates that a resource change or creation was attempted but that the operation cannot proceed because the resource already exists.",
-                "The requested resource of type %1 with the property %2 with the value '%3' already exists.",
-                "Critical",
-                "Critical",
-                3,
-                {
-                    "string",
-                    "string",
-                    "string",
-                },
-                "Do not repeat the create operation as the resource has already been created.",
-            }},
-        MessageEntry{
-            "ResourceAtUriInUnknownFormat",
-            {
-                "Indicates that the URI was valid but the resource or image at that URI was in a format not supported by the service.",
-                "The resource at '%1' is in a format not recognized by the service.",
-                "Critical",
-                "Critical",
-                1,
-                {
-                    "string",
-                },
-                "Place an image or resource or file that is recognized by the service at the URI.",
-            }},
-        MessageEntry{
-            "ResourceAtUriUnauthorized",
-            {
-                "Indicates that the attempt to access the resource, file, or image at the URI was unauthorized.",
-                "While accessing the resource at '%1', the service received an authorization error '%2'.",
-                "Critical",
-                "Critical",
-                2,
-                {
-                    "string",
-                    "string",
-                },
-                "Ensure that the appropriate access is provided for the service in order for it to access the URI.",
-            }},
-        MessageEntry{
-            "ResourceCannotBeDeleted",
-            {
-                "Indicates that a delete operation was attempted on a resource that cannot be deleted.",
-                "The delete request failed because the resource requested cannot be deleted.",
-                "Critical",
-                "Critical",
-                0,
-                {},
-                "Do not attempt to delete a non-deletable resource.",
-            }},
-        MessageEntry{
-            "ResourceCreationConflict",
-            {
-                "Indicates that the requested resource creation could not be completed because the service has a resource that conflicts with the request.",
-                "The resource could not be created.  The service has a resource at URI '%1' that conflicts with the creation request.",
-                "Warning",
-                "Warning",
-                1,
-                {
-                    "string",
-                },
-                "No resolution is required.",
-            }},
-        MessageEntry{
-            "ResourceDeprecated",
+                "string",
+                "string",
+            },
+            "Correct the value for the property in the request body and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "QueryCombinationInvalid",
+        {
+            "Indicates the request contains multiple query parameters, and that two or more of them cannot be used together.",
+            "Two or more query parameters in the request cannot be used together.",
+            "Warning",
+            "Warning",
+            0,
+            {},
+            "Remove one or more of the query parameters and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "QueryNotSupported",
+        {
+            "Indicates that query is not supported on the implementation.",
+            "Querying is not supported by the implementation.",
+            "Warning",
+            "Warning",
+            0,
+            {},
+            "Remove the query parameters and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "QueryNotSupportedOnOperation",
+        {
+            "Indicates that query is not supported with the given operation, such as when the `$expand` query is attempted with a PATCH operation.",
+            "Querying is not supported with the requested operation.",
+            "Warning",
+            "Warning",
+            0,
+            {},
+            "Remove the query parameters and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "QueryNotSupportedOnResource",
+        {
+            "Indicates that query is not supported on the given resource, such as when the `$skip` query is attempted on a resource that is not a collection.",
+            "Querying is not supported on the requested resource.",
+            "Warning",
+            "Warning",
+            0,
+            {},
+            "Remove the query parameters and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "QueryParameterOutOfRange",
+        {
+            "Indicates that a query parameter was provided that is out of range for the given resource.  This can happen with values that are too low or beyond that possible for the supplied resource, such as when a page is requested that is beyond the last page.",
+            "The value '%1' for the query parameter %2 is out of range %3.",
+            "Warning",
+            "Warning",
+            3,
             {
-                "Indicates the resource is deprecated.",
-                "The operation was performed on a deprecated resource '%1'.",
-                "Warning",
-                "Warning",
-                1,
-                {
-                    "string",
-                },
-                "Refer to the schema guide for more information.",
-            }},
-        MessageEntry{
-            "ResourceExhaustion",
+                "string",
+                "string",
+                "string",
+            },
+            "Reduce the value for the query parameter to a value that is within range, such as a start or count value that is within bounds of the number of resources in a collection or a page that is within the range of valid pages.",
+        }},
+    MessageEntry{
+        "QueryParameterValueError",
+        {
+            "Indicates that a query parameter was given an invalid value.",
+            "The value for the parameter %1 is invalid.",
+            "Warning",
+            "Warning",
+            1,
             {
-                "Indicates that a resource could not satisfy the request due to some unavailability of resources.  An example is that available capacity has been allocated.",
-                "The resource '%1' was unable to satisfy the request due to unavailability of resources.",
-                "Critical",
-                "Critical",
-                1,
-                {
-                    "string",
-                },
-                "Ensure that the resources are available and resubmit the request.",
-            }},
-        MessageEntry{
-            "ResourceInStandby",
+                "string",
+            },
+            "Correct the value for the query parameter in the request and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "QueryParameterValueFormatError",
+        {
+            "Indicates that a query parameter was given the correct value type but the value of that parameter was not supported.  This includes the value size or length has been exceeded.",
+            "The value '%1' for the parameter %2 is of a different format than the parameter can accept.",
+            "Warning",
+            "Warning",
+            2,
             {
-                "Indicates that the request could not be performed because the resource is in standby.",
-                "The request could not be performed because the resource is in standby.",
-                "Critical",
-                "Critical",
-                0,
-                {},
-                "Ensure that the resource is in the correct power state and resubmit the request.",
-            }},
-        MessageEntry{
-            "ResourceInUse",
+                "string",
+                "string",
+            },
+            "Correct the value for the query parameter in the request and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "QueryParameterValueTypeError",
+        {
+            "Indicates that a query parameter was given the wrong value type, such as when a number is supplied for a query parameter that requires a string.",
+            "The value '%1' for the query parameter %2 is of a different type than the parameter can accept.",
+            "Warning",
+            "Warning",
+            2,
             {
-                "Indicates that a change was requested to a resource but the change was rejected due to the resource being in use or transition.",
-                "The change to the requested resource failed because the resource is in use or in transition.",
-                "Warning",
-                "Warning",
-                0,
-                {},
-                "Remove the condition and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "ResourceMissingAtURI",
+                "string",
+                "string",
+            },
+            "Correct the value for the query parameter in the request and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "ResetRequired",
+        {
+            "Indicates that a component reset is required for changes or operations to complete.",
+            "In order to complete the operation, a component reset is required with the Reset action URI '%1' and ResetType '%2'.",
+            "Warning",
+            "Warning",
+            2,
             {
-                "Indicates that the operation expected an image or other resource at the provided URI but none was found.  Examples of this are in requests that require URIs like firmware update.",
-                "The resource at the URI '%1' was not found.",
-                "Critical",
-                "Critical",
-                1,
-                {
-                    "string",
-                },
-                "Place a valid resource at the URI or correct the URI and resubmit the request.",
-            }},
-        MessageEntry{
-            "ResourceNotFound",
+                "string",
+                "string",
+            },
+            "Perform the required reset action on the specified component.",
+        }},
+    MessageEntry{
+        "ResourceAlreadyExists",
+        {
+            "Indicates that a resource change or creation was attempted but that the operation cannot proceed because the resource already exists.",
+            "The requested resource of type %1 with the property %2 with the value '%3' already exists.",
+            "Critical",
+            "Critical",
+            3,
             {
-                "Indicates that the operation expected a resource identifier that corresponds to an existing resource but one was not found.",
-                "The requested resource of type %1 named '%2' was not found.",
-                "Critical",
-                "Critical",
-                2,
-                {
-                    "string",
-                    "string",
-                },
-                "Provide a valid resource identifier and resubmit the request.",
-            }},
-        MessageEntry{
-            "ResourceTypeIncompatible",
+                "string",
+                "string",
+                "string",
+            },
+            "Do not repeat the create operation as the resource has already been created.",
+        }},
+    MessageEntry{
+        "ResourceAtUriInUnknownFormat",
+        {
+            "Indicates that the URI was valid but the resource or image at that URI was in a format not supported by the service.",
+            "The resource at '%1' is in a format not recognized by the service.",
+            "Critical",
+            "Critical",
+            1,
             {
-                "Indicates that the resource type of the operation does not match that for the operation destination.  Examples of when this can happen include during a POST to a resource collection using the wrong resource type, an update where the `@odata.type` properties do not match, or on a major version incompatibility.",
-                "The @odata.type of the request body %1 is incompatible with the @odata.type of the resource, which is %2.",
-                "Critical",
-                "Critical",
-                2,
-                {
-                    "string",
-                    "string",
-                },
-                "Resubmit the request with a payload compatible with the resource's schema.",
-            }},
-        MessageEntry{
-            "RestrictedPrivilege",
+                "string",
+            },
+            "Place an image or resource or file that is recognized by the service at the URI.",
+        }},
+    MessageEntry{
+        "ResourceAtUriUnauthorized",
+        {
+            "Indicates that the attempt to access the resource, file, or image at the URI was unauthorized.",
+            "While accessing the resource at '%1', the service received an authorization error '%2'.",
+            "Critical",
+            "Critical",
+            2,
             {
-                "Indicates that the operation was not successful because a privilege is restricted.",
-                "The operation was not successful because the privilege '%1' is restricted.",
-                "Warning",
-                "Warning",
-                1,
-                {
-                    "string",
-                },
-                "Remove restricted privileges from the request body and resubmit the request.",
-            }},
-        MessageEntry{
-            "RestrictedRole",
+                "string",
+                "string",
+            },
+            "Ensure that the appropriate access is provided for the service in order for it to access the URI.",
+        }},
+    MessageEntry{
+        "ResourceCannotBeDeleted",
+        {
+            "Indicates that a delete operation was attempted on a resource that cannot be deleted.",
+            "The delete request failed because the resource requested cannot be deleted.",
+            "Critical",
+            "Critical",
+            0,
+            {},
+            "Do not attempt to delete a non-deletable resource.",
+        }},
+    MessageEntry{
+        "ResourceCreationConflict",
+        {
+            "Indicates that the requested resource creation could not be completed because the service has a resource that conflicts with the request.",
+            "The resource could not be created.  The service has a resource at URI '%1' that conflicts with the creation request.",
+            "Warning",
+            "Warning",
+            1,
             {
-                "Indicates that the operation was not successful because the role is restricted.",
-                "The operation was not successful because the role '%1' is restricted.",
-                "Warning",
-                "Warning",
-                1,
-                {
-                    "string",
-                },
-                "No resolution is required.  For standard roles, consider using the role specified in the AlternateRoleId property in the Role resource.",
-            }},
-        MessageEntry{
-            "ServiceDisabled",
+                "string",
+            },
+            "No resolution is required.",
+        }},
+    MessageEntry{
+        "ResourceDeprecated",
+        {
+            "Indicates the resource is deprecated.",
+            "The operation was performed on a deprecated resource '%1'.",
+            "Warning",
+            "Warning",
+            1,
             {
-                "Indicates that the operation failed because the service, such as the account service, is disabled and cannot accept requests.",
-                "The operation failed because the service at %1 is disabled and cannot accept requests.",
-                "Warning",
-                "Warning",
-                1,
-                {
-                    "string",
-                },
-                "Enable the service and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "ServiceInUnknownState",
+                "string",
+            },
+            "Refer to the schema guide for more information.",
+        }},
+    MessageEntry{
+        "ResourceExhaustion",
+        {
+            "Indicates that a resource could not satisfy the request due to some unavailability of resources.  An example is that available capacity has been allocated.",
+            "The resource '%1' was unable to satisfy the request due to unavailability of resources.",
+            "Critical",
+            "Critical",
+            1,
             {
-                "Indicates that the operation failed because the service is in an unknown state and cannot accept additional requests.",
-                "The operation failed because the service is in an unknown state and can no longer take incoming requests.",
-                "Critical",
-                "Critical",
-                0,
-                {},
-                "Restart the service and resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "ServiceShuttingDown",
+                "string",
+            },
+            "Ensure that the resources are available and resubmit the request.",
+        }},
+    MessageEntry{
+        "ResourceInStandby",
+        {
+            "Indicates that the request could not be performed because the resource is in standby.",
+            "The request could not be performed because the resource is in standby.",
+            "Critical",
+            "Critical",
+            0,
+            {},
+            "Ensure that the resource is in the correct power state and resubmit the request.",
+        }},
+    MessageEntry{
+        "ResourceInUse",
+        {
+            "Indicates that a change was requested to a resource but the change was rejected due to the resource being in use or transition.",
+            "The change to the requested resource failed because the resource is in use or in transition.",
+            "Warning",
+            "Warning",
+            0,
+            {},
+            "Remove the condition and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "ResourceMissingAtURI",
+        {
+            "Indicates that the operation expected an image or other resource at the provided URI but none was found.  Examples of this are in requests that require URIs like firmware update.",
+            "The resource at the URI '%1' was not found.",
+            "Critical",
+            "Critical",
+            1,
             {
-                "Indicates that the operation failed as the service is shutting down, such as when the service reboots.",
-                "The operation failed because the service is shutting down and can no longer take incoming requests.",
-                "Critical",
-                "Critical",
-                0,
-                {},
-                "When the service becomes available, resubmit the request if the operation failed.",
-            }},
-        MessageEntry{
-            "ServiceTemporarilyUnavailable",
+                "string",
+            },
+            "Place a valid resource at the URI or correct the URI and resubmit the request.",
+        }},
+    MessageEntry{
+        "ResourceNotFound",
+        {
+            "Indicates that the operation expected a resource identifier that corresponds to an existing resource but one was not found.",
+            "The requested resource of type %1 named '%2' was not found.",
+            "Critical",
+            "Critical",
+            2,
             {
-                "Indicates the service is temporarily unavailable.",
-                "The service is temporarily unavailable.  Retry in %1 seconds.",
-                "Critical",
-                "Critical",
-                1,
-                {
-                    "string",
-                },
-                "Wait for the indicated retry duration and retry the operation.",
-            }},
-        MessageEntry{
-            "SessionLimitExceeded",
+                "string",
+                "string",
+            },
+            "Provide a valid resource identifier and resubmit the request.",
+        }},
+    MessageEntry{
+        "ResourceTypeIncompatible",
+        {
+            "Indicates that the resource type of the operation does not match that for the operation destination.  Examples of when this can happen include during a POST to a resource collection using the wrong resource type, an update where the `@odata.type` properties do not match, or on a major version incompatibility.",
+            "The @odata.type of the request body %1 is incompatible with the @odata.type of the resource, which is %2.",
+            "Critical",
+            "Critical",
+            2,
             {
-                "Indicates that a session establishment has been requested but the operation failed due to the number of simultaneous sessions exceeding the limit of the implementation.",
-                "The session establishment failed due to the number of simultaneous sessions exceeding the limit of the implementation.",
-                "Critical",
-                "Critical",
-                0,
-                {},
-                "Reduce the number of other sessions before trying to establish the session or increase the limit of simultaneous sessions, if supported.",
-            }},
-        MessageEntry{
-            "SessionTerminated",
+                "string",
+                "string",
+            },
+            "Resubmit the request with a payload compatible with the resource's schema.",
+        }},
+    MessageEntry{
+        "RestrictedPrivilege",
+        {
+            "Indicates that the operation was not successful because a privilege is restricted.",
+            "The operation was not successful because the privilege '%1' is restricted.",
+            "Warning",
+            "Warning",
+            1,
             {
-                "Indicates that the DELETE operation on the session resource resulted in the successful termination of the session.",
-                "The session was successfully terminated.",
-                "OK",
-                "OK",
-                0,
-                {},
-                "No resolution is required.",
-            }},
-        MessageEntry{
-            "SourceDoesNotSupportProtocol",
+                "string",
+            },
+            "Remove restricted privileges from the request body and resubmit the request.",
+        }},
+    MessageEntry{
+        "RestrictedRole",
+        {
+            "Indicates that the operation was not successful because the role is restricted.",
+            "The operation was not successful because the role '%1' is restricted.",
+            "Warning",
+            "Warning",
+            1,
             {
-                "Indicates that while attempting to access, connect to or transfer a resource, file, or image from another location that the other end of the connection did not support the protocol.",
-                "The other end of the connection at '%1' does not support the specified protocol %2.",
-                "Critical",
-                "Critical",
-                2,
-                {
-                    "string",
-                    "string",
-                },
-                "Change protocols or URIs.",
-            }},
-        MessageEntry{
-            "StrictAccountTypes",
+                "string",
+            },
+            "No resolution is required.  For standard roles, consider using the role specified in the AlternateRoleId property in the Role resource.",
+        }},
+    MessageEntry{
+        "ServiceDisabled",
+        {
+            "Indicates that the operation failed because the service, such as the account service, is disabled and cannot accept requests.",
+            "The operation failed because the service at %1 is disabled and cannot accept requests.",
+            "Warning",
+            "Warning",
+            1,
             {
-                "Indicates the request failed because a set of `AccountTypes` or `OEMAccountTypes` was not accepted while `StrictAccountTypes` is set to `true`.",
-                "The request was not possible to fulfill with the account types included in property '%1' and property StrictAccountTypes set to true.",
-                "Warning",
-                "Warning",
-                1,
-                {
-                    "string",
-                },
-                "Resubmit the request either with an acceptable set of AccountTypes and OEMAccountTypes or with StrictAccountTypes set to false.",
-            }},
-        MessageEntry{
-            "StringValueTooLong",
+                "string",
+            },
+            "Enable the service and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "ServiceInUnknownState",
+        {
+            "Indicates that the operation failed because the service is in an unknown state and cannot accept additional requests.",
+            "The operation failed because the service is in an unknown state and can no longer take incoming requests.",
+            "Critical",
+            "Critical",
+            0,
+            {},
+            "Restart the service and resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "ServiceShuttingDown",
+        {
+            "Indicates that the operation failed as the service is shutting down, such as when the service reboots.",
+            "The operation failed because the service is shutting down and can no longer take incoming requests.",
+            "Critical",
+            "Critical",
+            0,
+            {},
+            "When the service becomes available, resubmit the request if the operation failed.",
+        }},
+    MessageEntry{
+        "ServiceTemporarilyUnavailable",
+        {
+            "Indicates the service is temporarily unavailable.",
+            "The service is temporarily unavailable.  Retry in %1 seconds.",
+            "Critical",
+            "Critical",
+            1,
             {
-                "Indicates that a string value passed to the given resource exceeded its length limit.  An example is when a shorter limit is imposed by an implementation than that allowed by the specification.",
-                "The string '%1' exceeds the length limit %2.",
-                "Warning",
-                "Warning",
-                2,
-                {
-                    "string",
-                    "number",
-                },
-                "Resubmit the request with an appropriate string length.",
-            }},
-        MessageEntry{
-            "SubscriptionTerminated",
+                "string",
+            },
+            "Wait for the indicated retry duration and retry the operation.",
+        }},
+    MessageEntry{
+        "SessionLimitExceeded",
+        {
+            "Indicates that a session establishment has been requested but the operation failed due to the number of simultaneous sessions exceeding the limit of the implementation.",
+            "The session establishment failed due to the number of simultaneous sessions exceeding the limit of the implementation.",
+            "Critical",
+            "Critical",
+            0,
+            {},
+            "Reduce the number of other sessions before trying to establish the session or increase the limit of simultaneous sessions, if supported.",
+        }},
+    MessageEntry{
+        "SessionTerminated",
+        {
+            "Indicates that the DELETE operation on the session resource resulted in the successful termination of the session.",
+            "The session was successfully terminated.",
+            "OK",
+            "OK",
+            0,
+            {},
+            "No resolution is required.",
+        }},
+    MessageEntry{
+        "SourceDoesNotSupportProtocol",
+        {
+            "Indicates that while attempting to access, connect to or transfer a resource, file, or image from another location that the other end of the connection did not support the protocol.",
+            "The other end of the connection at '%1' does not support the specified protocol %2.",
+            "Critical",
+            "Critical",
+            2,
             {
-                "An event subscription has been terminated by the service.  No further events will be delivered.",
-                "The event subscription has been terminated.",
-                "OK",
-                "OK",
-                0,
-                {},
-                "No resolution is required.",
-            }},
-        MessageEntry{
-            "Success",
+                "string",
+                "string",
+            },
+            "Change protocols or URIs.",
+        }},
+    MessageEntry{
+        "StrictAccountTypes",
+        {
+            "Indicates the request failed because a set of `AccountTypes` or `OEMAccountTypes` was not accepted while `StrictAccountTypes` is set to `true`.",
+            "The request was not possible to fulfill with the account types included in property '%1' and property StrictAccountTypes set to true.",
+            "Warning",
+            "Warning",
+            1,
             {
-                "Indicates that all conditions of a successful operation have been met.",
-                "The request completed successfully.",
-                "OK",
-                "OK",
-                0,
-                {},
-                "None",
-            }},
-        MessageEntry{
-            "UndeterminedFault",
+                "string",
+            },
+            "Resubmit the request either with an acceptable set of AccountTypes and OEMAccountTypes or with StrictAccountTypes set to false.",
+        }},
+    MessageEntry{
+        "StringValueTooLong",
+        {
+            "Indicates that a string value passed to the given resource exceeded its length limit.  An example is when a shorter limit is imposed by an implementation than that allowed by the specification.",
+            "The string '%1' exceeds the length limit %2.",
+            "Warning",
+            "Warning",
+            2,
             {
-                "Indicates that a fault or error condition exists but the source of the fault cannot be determined or is unknown to the service.",
-                "A undetermined fault condition has been reported by '%1'.",
-                "Critical",
-                "Critical",
-                1,
-                {
-                    "string",
-                },
-                "None.",
-            }},
-        MessageEntry{
-            "UnrecognizedRequestBody",
+                "string",
+                "number",
+            },
+            "Resubmit the request with an appropriate string length.",
+        }},
+    MessageEntry{
+        "SubscriptionTerminated",
+        {
+            "An event subscription has been terminated by the service.  No further events will be delivered.",
+            "The event subscription has been terminated.",
+            "OK",
+            "OK",
+            0,
+            {},
+            "No resolution is required.",
+        }},
+    MessageEntry{
+        "Success",
+        {
+            "Indicates that all conditions of a successful operation have been met.",
+            "The request completed successfully.",
+            "OK",
+            "OK",
+            0,
+            {},
+            "None",
+        }},
+    MessageEntry{
+        "UndeterminedFault",
+        {
+            "Indicates that a fault or error condition exists but the source of the fault cannot be determined or is unknown to the service.",
+            "A undetermined fault condition has been reported by '%1'.",
+            "Critical",
+            "Critical",
+            1,
             {
-                "Indicates that the service encountered an unrecognizable request body that could not even be interpreted as malformed JSON.",
-                "The service detected a malformed request body that it was unable to interpret.",
-                "Warning",
-                "Warning",
-                0,
-                {},
-                "Correct the request body and resubmit the request if it failed.",
-            }},
+                "string",
+            },
+            "None.",
+        }},
+    MessageEntry{
+        "UnrecognizedRequestBody",
+        {
+            "Indicates that the service encountered an unrecognizable request body that could not even be interpreted as malformed JSON.",
+            "The service detected a malformed request body that it was unable to interpret.",
+            "Warning",
+            "Warning",
+            0,
+            {},
+            "Correct the request body and resubmit the request if it failed.",
+        }},
+
 };
 
 enum class Index
@@ -1288,4 +1295,4 @@
     undeterminedFault = 91,
     unrecognizedRequestBody = 92,
 };
-} // namespace redfish::message_registries::base
\ No newline at end of file
+} // namespace redfish::message_registries::base
diff --git a/redfish-core/include/registries/privilege_registry.hpp b/redfish-core/include/registries/privilege_registry.hpp
index a046934..d2f8fd8 100644
--- a/redfish-core/include/registries/privilege_registry.hpp
+++ b/redfish-core/include/registries/privilege_registry.hpp
@@ -1,10 +1,11 @@
 #pragma once
 // privilege_registry.hpp is generated.  Do not edit directly
+// clang-format off
+
 #include <privileges.hpp>
 
 namespace redfish::privileges
 {
-// clang-format off
 const std::array<Privileges, 1> privilegeSetLogin = {{
     {"Login"}
 }};
@@ -34,8 +35,6 @@
     {"Login"},
     {}
 }};
-// clang-format on
-
 // AccelerationFunction
 const static auto& getAccelerationFunction = privilegeSetLogin;
 const static auto& headAccelerationFunction = privilegeSetLogin;
@@ -47,14 +46,10 @@
 // AccelerationFunctionCollection
 const static auto& getAccelerationFunctionCollection = privilegeSetLogin;
 const static auto& headAccelerationFunctionCollection = privilegeSetLogin;
-const static auto& patchAccelerationFunctionCollection =
-    privilegeSetConfigureComponents;
-const static auto& putAccelerationFunctionCollection =
-    privilegeSetConfigureComponents;
-const static auto& deleteAccelerationFunctionCollection =
-    privilegeSetConfigureComponents;
-const static auto& postAccelerationFunctionCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchAccelerationFunctionCollection = privilegeSetConfigureComponents;
+const static auto& putAccelerationFunctionCollection = privilegeSetConfigureComponents;
+const static auto& deleteAccelerationFunctionCollection = privilegeSetConfigureComponents;
+const static auto& postAccelerationFunctionCollection = privilegeSetConfigureComponents;
 
 // AccountService
 const static auto& getAccountService = privilegeSetLogin;
@@ -85,33 +80,24 @@
 const static auto& headAddressPoolCollection = privilegeSetLogin;
 const static auto& patchAddressPoolCollection = privilegeSetConfigureComponents;
 const static auto& putAddressPoolCollection = privilegeSetConfigureComponents;
-const static auto& deleteAddressPoolCollection =
-    privilegeSetConfigureComponents;
+const static auto& deleteAddressPoolCollection = privilegeSetConfigureComponents;
 const static auto& postAddressPoolCollection = privilegeSetConfigureComponents;
 
 // Aggregate
 const static auto& getAggregate = privilegeSetLogin;
 const static auto& headAggregate = privilegeSetLogin;
-const static auto& patchAggregate =
-    privilegeSetConfigureManagerOrConfigureComponents;
-const static auto& putAggregate =
-    privilegeSetConfigureManagerOrConfigureComponents;
-const static auto& deleteAggregate =
-    privilegeSetConfigureManagerOrConfigureComponents;
-const static auto& postAggregate =
-    privilegeSetConfigureManagerOrConfigureComponents;
+const static auto& patchAggregate = privilegeSetConfigureManagerOrConfigureComponents;
+const static auto& putAggregate = privilegeSetConfigureManagerOrConfigureComponents;
+const static auto& deleteAggregate = privilegeSetConfigureManagerOrConfigureComponents;
+const static auto& postAggregate = privilegeSetConfigureManagerOrConfigureComponents;
 
 // AggregateCollection
 const static auto& getAggregateCollection = privilegeSetLogin;
 const static auto& headAggregateCollection = privilegeSetLogin;
-const static auto& patchAggregateCollection =
-    privilegeSetConfigureManagerOrConfigureComponents;
-const static auto& putAggregateCollection =
-    privilegeSetConfigureManagerOrConfigureComponents;
-const static auto& deleteAggregateCollection =
-    privilegeSetConfigureManagerOrConfigureComponents;
-const static auto& postAggregateCollection =
-    privilegeSetConfigureManagerOrConfigureComponents;
+const static auto& patchAggregateCollection = privilegeSetConfigureManagerOrConfigureComponents;
+const static auto& putAggregateCollection = privilegeSetConfigureManagerOrConfigureComponents;
+const static auto& deleteAggregateCollection = privilegeSetConfigureManagerOrConfigureComponents;
+const static auto& postAggregateCollection = privilegeSetConfigureManagerOrConfigureComponents;
 
 // AggregationService
 const static auto& getAggregationService = privilegeSetLogin;
@@ -132,14 +118,10 @@
 // AggregationSourceCollection
 const static auto& getAggregationSourceCollection = privilegeSetLogin;
 const static auto& headAggregationSourceCollection = privilegeSetLogin;
-const static auto& patchAggregationSourceCollection =
-    privilegeSetConfigureManager;
-const static auto& putAggregationSourceCollection =
-    privilegeSetConfigureManager;
-const static auto& deleteAggregationSourceCollection =
-    privilegeSetConfigureManager;
-const static auto& postAggregationSourceCollection =
-    privilegeSetConfigureManager;
+const static auto& patchAggregationSourceCollection = privilegeSetConfigureManager;
+const static auto& putAggregationSourceCollection = privilegeSetConfigureManager;
+const static auto& deleteAggregationSourceCollection = privilegeSetConfigureManager;
+const static auto& postAggregationSourceCollection = privilegeSetConfigureManager;
 
 // AllowDeny
 const static auto& getAllowDeny = privilegeSetLogin;
@@ -304,14 +286,10 @@
 // CompositionReservationCollection
 const static auto& getCompositionReservationCollection = privilegeSetLogin;
 const static auto& headCompositionReservationCollection = privilegeSetLogin;
-const static auto& patchCompositionReservationCollection =
-    privilegeSetConfigureManager;
-const static auto& putCompositionReservationCollection =
-    privilegeSetConfigureManager;
-const static auto& deleteCompositionReservationCollection =
-    privilegeSetConfigureManager;
-const static auto& postCompositionReservationCollection =
-    privilegeSetConfigureManager;
+const static auto& patchCompositionReservationCollection = privilegeSetConfigureManager;
+const static auto& putCompositionReservationCollection = privilegeSetConfigureManager;
+const static auto& deleteCompositionReservationCollection = privilegeSetConfigureManager;
+const static auto& postCompositionReservationCollection = privilegeSetConfigureManager;
 
 // CompositionService
 const static auto& getCompositionService = privilegeSetLogin;
@@ -332,14 +310,10 @@
 // ComputerSystemCollection
 const static auto& getComputerSystemCollection = privilegeSetLogin;
 const static auto& headComputerSystemCollection = privilegeSetLogin;
-const static auto& patchComputerSystemCollection =
-    privilegeSetConfigureComponents;
-const static auto& postComputerSystemCollection =
-    privilegeSetConfigureComponents;
-const static auto& putComputerSystemCollection =
-    privilegeSetConfigureComponents;
-const static auto& deleteComputerSystemCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchComputerSystemCollection = privilegeSetConfigureComponents;
+const static auto& postComputerSystemCollection = privilegeSetConfigureComponents;
+const static auto& putComputerSystemCollection = privilegeSetConfigureComponents;
+const static auto& deleteComputerSystemCollection = privilegeSetConfigureComponents;
 
 // Connection
 const static auto& getConnection = privilegeSetLogin;
@@ -368,13 +342,10 @@
 // ConnectionMethodCollection
 const static auto& getConnectionMethodCollection = privilegeSetLogin;
 const static auto& headConnectionMethodCollection = privilegeSetLogin;
-const static auto& patchConnectionMethodCollection =
-    privilegeSetConfigureManager;
+const static auto& patchConnectionMethodCollection = privilegeSetConfigureManager;
 const static auto& putConnectionMethodCollection = privilegeSetConfigureManager;
-const static auto& deleteConnectionMethodCollection =
-    privilegeSetConfigureManager;
-const static auto& postConnectionMethodCollection =
-    privilegeSetConfigureManager;
+const static auto& deleteConnectionMethodCollection = privilegeSetConfigureManager;
+const static auto& postConnectionMethodCollection = privilegeSetConfigureManager;
 
 // Control
 const static auto& getControl = privilegeSetLogin;
@@ -435,13 +406,10 @@
 // EndpointGroupCollection
 const static auto& getEndpointGroupCollection = privilegeSetLogin;
 const static auto& headEndpointGroupCollection = privilegeSetLogin;
-const static auto& patchEndpointGroupCollection =
-    privilegeSetConfigureComponents;
-const static auto& postEndpointGroupCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchEndpointGroupCollection = privilegeSetConfigureComponents;
+const static auto& postEndpointGroupCollection = privilegeSetConfigureComponents;
 const static auto& putEndpointGroupCollection = privilegeSetConfigureComponents;
-const static auto& deleteEndpointGroupCollection =
-    privilegeSetConfigureComponents;
+const static auto& deleteEndpointGroupCollection = privilegeSetConfigureComponents;
 
 // EnvironmentMetrics
 const static auto& getEnvironmentMetrics = privilegeSetLogin;
@@ -462,38 +430,26 @@
 // EthernetInterfaceCollection
 const static auto& getEthernetInterfaceCollection = privilegeSetLogin;
 const static auto& headEthernetInterfaceCollection = privilegeSetLogin;
-const static auto& patchEthernetInterfaceCollection =
-    privilegeSetConfigureComponents;
-const static auto& postEthernetInterfaceCollection =
-    privilegeSetConfigureComponents;
-const static auto& putEthernetInterfaceCollection =
-    privilegeSetConfigureComponents;
-const static auto& deleteEthernetInterfaceCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchEthernetInterfaceCollection = privilegeSetConfigureComponents;
+const static auto& postEthernetInterfaceCollection = privilegeSetConfigureComponents;
+const static auto& putEthernetInterfaceCollection = privilegeSetConfigureComponents;
+const static auto& deleteEthernetInterfaceCollection = privilegeSetConfigureComponents;
 
 // EventDestination
 const static auto& getEventDestination = privilegeSetLogin;
 const static auto& headEventDestination = privilegeSetLogin;
-const static auto& patchEventDestination =
-    privilegeSetConfigureManagerOrConfigureSelf;
-const static auto& postEventDestination =
-    privilegeSetConfigureManagerOrConfigureSelf;
-const static auto& putEventDestination =
-    privilegeSetConfigureManagerOrConfigureSelf;
-const static auto& deleteEventDestination =
-    privilegeSetConfigureManagerOrConfigureSelf;
+const static auto& patchEventDestination = privilegeSetConfigureManagerOrConfigureSelf;
+const static auto& postEventDestination = privilegeSetConfigureManagerOrConfigureSelf;
+const static auto& putEventDestination = privilegeSetConfigureManagerOrConfigureSelf;
+const static auto& deleteEventDestination = privilegeSetConfigureManagerOrConfigureSelf;
 
 // EventDestinationCollection
 const static auto& getEventDestinationCollection = privilegeSetLogin;
 const static auto& headEventDestinationCollection = privilegeSetLogin;
-const static auto& patchEventDestinationCollection =
-    privilegeSetConfigureManagerOrConfigureComponents;
-const static auto& postEventDestinationCollection =
-    privilegeSetConfigureManagerOrConfigureComponents;
-const static auto& putEventDestinationCollection =
-    privilegeSetConfigureManagerOrConfigureComponents;
-const static auto& deleteEventDestinationCollection =
-    privilegeSetConfigureManagerOrConfigureComponents;
+const static auto& patchEventDestinationCollection = privilegeSetConfigureManagerOrConfigureComponents;
+const static auto& postEventDestinationCollection = privilegeSetConfigureManagerOrConfigureComponents;
+const static auto& putEventDestinationCollection = privilegeSetConfigureManagerOrConfigureComponents;
+const static auto& deleteEventDestinationCollection = privilegeSetConfigureManagerOrConfigureComponents;
 
 // EventService
 const static auto& getEventService = privilegeSetLogin;
@@ -514,14 +470,10 @@
 // ExternalAccountProviderCollection
 const static auto& getExternalAccountProviderCollection = privilegeSetLogin;
 const static auto& headExternalAccountProviderCollection = privilegeSetLogin;
-const static auto& patchExternalAccountProviderCollection =
-    privilegeSetConfigureManager;
-const static auto& putExternalAccountProviderCollection =
-    privilegeSetConfigureManager;
-const static auto& deleteExternalAccountProviderCollection =
-    privilegeSetConfigureManager;
-const static auto& postExternalAccountProviderCollection =
-    privilegeSetConfigureManager;
+const static auto& patchExternalAccountProviderCollection = privilegeSetConfigureManager;
+const static auto& putExternalAccountProviderCollection = privilegeSetConfigureManager;
+const static auto& deleteExternalAccountProviderCollection = privilegeSetConfigureManager;
+const static auto& postExternalAccountProviderCollection = privilegeSetConfigureManager;
 
 // Fabric
 const static auto& getFabric = privilegeSetLogin;
@@ -550,13 +502,10 @@
 // FabricAdapterCollection
 const static auto& getFabricAdapterCollection = privilegeSetLogin;
 const static auto& headFabricAdapterCollection = privilegeSetLogin;
-const static auto& patchFabricAdapterCollection =
-    privilegeSetConfigureComponents;
-const static auto& postFabricAdapterCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchFabricAdapterCollection = privilegeSetConfigureComponents;
+const static auto& postFabricAdapterCollection = privilegeSetConfigureComponents;
 const static auto& putFabricAdapterCollection = privilegeSetConfigureComponents;
-const static auto& deleteFabricAdapterCollection =
-    privilegeSetConfigureComponents;
+const static auto& deleteFabricAdapterCollection = privilegeSetConfigureComponents;
 
 // Facility
 const static auto& getFacility = privilegeSetLogin;
@@ -601,14 +550,10 @@
 // GraphicsControllerCollection
 const static auto& getGraphicsControllerCollection = privilegeSetLogin;
 const static auto& headGraphicsControllerCollection = privilegeSetLogin;
-const static auto& patchGraphicsControllerCollection =
-    privilegeSetConfigureComponents;
-const static auto& putGraphicsControllerCollection =
-    privilegeSetConfigureComponents;
-const static auto& deleteGraphicsControllerCollection =
-    privilegeSetConfigureComponents;
-const static auto& postGraphicsControllerCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchGraphicsControllerCollection = privilegeSetConfigureComponents;
+const static auto& putGraphicsControllerCollection = privilegeSetConfigureComponents;
+const static auto& deleteGraphicsControllerCollection = privilegeSetConfigureComponents;
+const static auto& postGraphicsControllerCollection = privilegeSetConfigureComponents;
 
 // HostInterface
 const static auto& getHostInterface = privilegeSetLogin;
@@ -664,8 +609,7 @@
 const static auto& patchJsonSchemaFileCollection = privilegeSetConfigureManager;
 const static auto& postJsonSchemaFileCollection = privilegeSetConfigureManager;
 const static auto& putJsonSchemaFileCollection = privilegeSetConfigureManager;
-const static auto& deleteJsonSchemaFileCollection =
-    privilegeSetConfigureManager;
+const static auto& deleteJsonSchemaFileCollection = privilegeSetConfigureManager;
 
 // Key
 const static auto& getKey = privilegeSetLogin;
@@ -756,8 +700,7 @@
 const static auto& deleteManagerCollection = privilegeSetConfigureManager;
 
 // ManagerAccount
-const static auto& getManagerAccount =
-    privilegeSetConfigureManagerOrConfigureUsersOrConfigureSelf;
+const static auto& getManagerAccount = privilegeSetConfigureManagerOrConfigureUsersOrConfigureSelf;
 const static auto& headManagerAccount = privilegeSetLogin;
 const static auto& patchManagerAccount = privilegeSetConfigureUsers;
 const static auto& postManagerAccount = privilegeSetConfigureUsers;
@@ -791,14 +734,10 @@
 // MediaControllerCollection
 const static auto& getMediaControllerCollection = privilegeSetLogin;
 const static auto& headMediaControllerCollection = privilegeSetLogin;
-const static auto& patchMediaControllerCollection =
-    privilegeSetConfigureComponents;
-const static auto& postMediaControllerCollection =
-    privilegeSetConfigureComponents;
-const static auto& putMediaControllerCollection =
-    privilegeSetConfigureComponents;
-const static auto& deleteMediaControllerCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchMediaControllerCollection = privilegeSetConfigureComponents;
+const static auto& postMediaControllerCollection = privilegeSetConfigureComponents;
+const static auto& putMediaControllerCollection = privilegeSetConfigureComponents;
+const static auto& deleteMediaControllerCollection = privilegeSetConfigureComponents;
 
 // Memory
 const static auto& getMemory = privilegeSetLogin;
@@ -827,12 +766,10 @@
 // MemoryChunksCollection
 const static auto& getMemoryChunksCollection = privilegeSetLogin;
 const static auto& headMemoryChunksCollection = privilegeSetLogin;
-const static auto& patchMemoryChunksCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchMemoryChunksCollection = privilegeSetConfigureComponents;
 const static auto& postMemoryChunksCollection = privilegeSetConfigureComponents;
 const static auto& putMemoryChunksCollection = privilegeSetConfigureComponents;
-const static auto& deleteMemoryChunksCollection =
-    privilegeSetConfigureComponents;
+const static auto& deleteMemoryChunksCollection = privilegeSetConfigureComponents;
 
 // MemoryDomain
 const static auto& getMemoryDomain = privilegeSetLogin;
@@ -845,12 +782,10 @@
 // MemoryDomainCollection
 const static auto& getMemoryDomainCollection = privilegeSetLogin;
 const static auto& headMemoryDomainCollection = privilegeSetLogin;
-const static auto& patchMemoryDomainCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchMemoryDomainCollection = privilegeSetConfigureComponents;
 const static auto& postMemoryDomainCollection = privilegeSetConfigureComponents;
 const static auto& putMemoryDomainCollection = privilegeSetConfigureComponents;
-const static auto& deleteMemoryDomainCollection =
-    privilegeSetConfigureComponents;
+const static auto& deleteMemoryDomainCollection = privilegeSetConfigureComponents;
 
 // MemoryMetrics
 const static auto& getMemoryMetrics = privilegeSetLogin;
@@ -871,14 +806,10 @@
 // MessageRegistryFileCollection
 const static auto& getMessageRegistryFileCollection = privilegeSetLogin;
 const static auto& headMessageRegistryFileCollection = privilegeSetLogin;
-const static auto& patchMessageRegistryFileCollection =
-    privilegeSetConfigureManager;
-const static auto& postMessageRegistryFileCollection =
-    privilegeSetConfigureManager;
-const static auto& putMessageRegistryFileCollection =
-    privilegeSetConfigureManager;
-const static auto& deleteMessageRegistryFileCollection =
-    privilegeSetConfigureManager;
+const static auto& patchMessageRegistryFileCollection = privilegeSetConfigureManager;
+const static auto& postMessageRegistryFileCollection = privilegeSetConfigureManager;
+const static auto& putMessageRegistryFileCollection = privilegeSetConfigureManager;
+const static auto& deleteMessageRegistryFileCollection = privilegeSetConfigureManager;
 
 // MetricDefinition
 const static auto& getMetricDefinition = privilegeSetLogin;
@@ -891,13 +822,10 @@
 // MetricDefinitionCollection
 const static auto& getMetricDefinitionCollection = privilegeSetLogin;
 const static auto& headMetricDefinitionCollection = privilegeSetLogin;
-const static auto& patchMetricDefinitionCollection =
-    privilegeSetConfigureManager;
+const static auto& patchMetricDefinitionCollection = privilegeSetConfigureManager;
 const static auto& putMetricDefinitionCollection = privilegeSetConfigureManager;
-const static auto& deleteMetricDefinitionCollection =
-    privilegeSetConfigureManager;
-const static auto& postMetricDefinitionCollection =
-    privilegeSetConfigureManager;
+const static auto& deleteMetricDefinitionCollection = privilegeSetConfigureManager;
+const static auto& postMetricDefinitionCollection = privilegeSetConfigureManager;
 
 // MetricReport
 const static auto& getMetricReport = privilegeSetLogin;
@@ -926,14 +854,10 @@
 // MetricReportDefinitionCollection
 const static auto& getMetricReportDefinitionCollection = privilegeSetLogin;
 const static auto& headMetricReportDefinitionCollection = privilegeSetLogin;
-const static auto& patchMetricReportDefinitionCollection =
-    privilegeSetConfigureManager;
-const static auto& putMetricReportDefinitionCollection =
-    privilegeSetConfigureManager;
-const static auto& deleteMetricReportDefinitionCollection =
-    privilegeSetConfigureManager;
-const static auto& postMetricReportDefinitionCollection =
-    privilegeSetConfigureManager;
+const static auto& patchMetricReportDefinitionCollection = privilegeSetConfigureManager;
+const static auto& putMetricReportDefinitionCollection = privilegeSetConfigureManager;
+const static auto& deleteMetricReportDefinitionCollection = privilegeSetConfigureManager;
+const static auto& postMetricReportDefinitionCollection = privilegeSetConfigureManager;
 
 // NetworkAdapter
 const static auto& getNetworkAdapter = privilegeSetLogin;
@@ -946,14 +870,10 @@
 // NetworkAdapterCollection
 const static auto& getNetworkAdapterCollection = privilegeSetLogin;
 const static auto& headNetworkAdapterCollection = privilegeSetLogin;
-const static auto& patchNetworkAdapterCollection =
-    privilegeSetConfigureComponents;
-const static auto& postNetworkAdapterCollection =
-    privilegeSetConfigureComponents;
-const static auto& putNetworkAdapterCollection =
-    privilegeSetConfigureComponents;
-const static auto& deleteNetworkAdapterCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchNetworkAdapterCollection = privilegeSetConfigureComponents;
+const static auto& postNetworkAdapterCollection = privilegeSetConfigureComponents;
+const static auto& putNetworkAdapterCollection = privilegeSetConfigureComponents;
+const static auto& deleteNetworkAdapterCollection = privilegeSetConfigureComponents;
 
 // NetworkAdapterMetrics
 const static auto& getNetworkAdapterMetrics = privilegeSetLogin;
@@ -969,32 +889,23 @@
 const static auto& patchNetworkDeviceFunction = privilegeSetConfigureComponents;
 const static auto& postNetworkDeviceFunction = privilegeSetConfigureComponents;
 const static auto& putNetworkDeviceFunction = privilegeSetConfigureComponents;
-const static auto& deleteNetworkDeviceFunction =
-    privilegeSetConfigureComponents;
+const static auto& deleteNetworkDeviceFunction = privilegeSetConfigureComponents;
 
 // NetworkDeviceFunctionCollection
 const static auto& getNetworkDeviceFunctionCollection = privilegeSetLogin;
 const static auto& headNetworkDeviceFunctionCollection = privilegeSetLogin;
-const static auto& patchNetworkDeviceFunctionCollection =
-    privilegeSetConfigureComponents;
-const static auto& postNetworkDeviceFunctionCollection =
-    privilegeSetConfigureComponents;
-const static auto& putNetworkDeviceFunctionCollection =
-    privilegeSetConfigureComponents;
-const static auto& deleteNetworkDeviceFunctionCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchNetworkDeviceFunctionCollection = privilegeSetConfigureComponents;
+const static auto& postNetworkDeviceFunctionCollection = privilegeSetConfigureComponents;
+const static auto& putNetworkDeviceFunctionCollection = privilegeSetConfigureComponents;
+const static auto& deleteNetworkDeviceFunctionCollection = privilegeSetConfigureComponents;
 
 // NetworkDeviceFunctionMetrics
 const static auto& getNetworkDeviceFunctionMetrics = privilegeSetLogin;
 const static auto& headNetworkDeviceFunctionMetrics = privilegeSetLogin;
-const static auto& patchNetworkDeviceFunctionMetrics =
-    privilegeSetConfigureManager;
-const static auto& putNetworkDeviceFunctionMetrics =
-    privilegeSetConfigureManager;
-const static auto& deleteNetworkDeviceFunctionMetrics =
-    privilegeSetConfigureManager;
-const static auto& postNetworkDeviceFunctionMetrics =
-    privilegeSetConfigureManager;
+const static auto& patchNetworkDeviceFunctionMetrics = privilegeSetConfigureManager;
+const static auto& putNetworkDeviceFunctionMetrics = privilegeSetConfigureManager;
+const static auto& deleteNetworkDeviceFunctionMetrics = privilegeSetConfigureManager;
+const static auto& postNetworkDeviceFunctionMetrics = privilegeSetConfigureManager;
 
 // NetworkInterface
 const static auto& getNetworkInterface = privilegeSetLogin;
@@ -1007,14 +918,10 @@
 // NetworkInterfaceCollection
 const static auto& getNetworkInterfaceCollection = privilegeSetLogin;
 const static auto& headNetworkInterfaceCollection = privilegeSetLogin;
-const static auto& patchNetworkInterfaceCollection =
-    privilegeSetConfigureComponents;
-const static auto& postNetworkInterfaceCollection =
-    privilegeSetConfigureComponents;
-const static auto& putNetworkInterfaceCollection =
-    privilegeSetConfigureComponents;
-const static auto& deleteNetworkInterfaceCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchNetworkInterfaceCollection = privilegeSetConfigureComponents;
+const static auto& postNetworkInterfaceCollection = privilegeSetConfigureComponents;
+const static auto& putNetworkInterfaceCollection = privilegeSetConfigureComponents;
+const static auto& deleteNetworkInterfaceCollection = privilegeSetConfigureComponents;
 
 // NetworkPort
 const static auto& getNetworkPort = privilegeSetLogin;
@@ -1030,8 +937,7 @@
 const static auto& patchNetworkPortCollection = privilegeSetConfigureComponents;
 const static auto& postNetworkPortCollection = privilegeSetConfigureComponents;
 const static auto& putNetworkPortCollection = privilegeSetConfigureComponents;
-const static auto& deleteNetworkPortCollection =
-    privilegeSetConfigureComponents;
+const static auto& deleteNetworkPortCollection = privilegeSetConfigureComponents;
 
 // OperatingConfig
 const static auto& getOperatingConfig = privilegeSetLogin;
@@ -1044,14 +950,10 @@
 // OperatingConfigCollection
 const static auto& getOperatingConfigCollection = privilegeSetLogin;
 const static auto& headOperatingConfigCollection = privilegeSetLogin;
-const static auto& patchOperatingConfigCollection =
-    privilegeSetConfigureComponents;
-const static auto& postOperatingConfigCollection =
-    privilegeSetConfigureComponents;
-const static auto& putOperatingConfigCollection =
-    privilegeSetConfigureComponents;
-const static auto& deleteOperatingConfigCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchOperatingConfigCollection = privilegeSetConfigureComponents;
+const static auto& postOperatingConfigCollection = privilegeSetConfigureComponents;
+const static auto& putOperatingConfigCollection = privilegeSetConfigureComponents;
+const static auto& deleteOperatingConfigCollection = privilegeSetConfigureComponents;
 
 // Outlet
 const static auto& getOutlet = privilegeSetLogin;
@@ -1083,8 +985,7 @@
 const static auto& patchOutletGroupCollection = privilegeSetConfigureComponents;
 const static auto& postOutletGroupCollection = privilegeSetConfigureComponents;
 const static auto& putOutletGroupCollection = privilegeSetConfigureComponents;
-const static auto& deleteOutletGroupCollection =
-    privilegeSetConfigureComponents;
+const static auto& deleteOutletGroupCollection = privilegeSetConfigureComponents;
 
 // PCIeDevice
 const static auto& getPCIeDevice = privilegeSetLogin;
@@ -1113,12 +1014,10 @@
 // PCIeFunctionCollection
 const static auto& getPCIeFunctionCollection = privilegeSetLogin;
 const static auto& headPCIeFunctionCollection = privilegeSetLogin;
-const static auto& patchPCIeFunctionCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchPCIeFunctionCollection = privilegeSetConfigureComponents;
 const static auto& postPCIeFunctionCollection = privilegeSetConfigureComponents;
 const static auto& putPCIeFunctionCollection = privilegeSetConfigureComponents;
-const static auto& deletePCIeFunctionCollection =
-    privilegeSetConfigureComponents;
+const static auto& deletePCIeFunctionCollection = privilegeSetConfigureComponents;
 
 // PCIeSlots
 const static auto& getPCIeSlots = privilegeSetLogin;
@@ -1171,26 +1070,18 @@
 // PowerDistributionCollection
 const static auto& getPowerDistributionCollection = privilegeSetLogin;
 const static auto& headPowerDistributionCollection = privilegeSetLogin;
-const static auto& patchPowerDistributionCollection =
-    privilegeSetConfigureComponents;
-const static auto& postPowerDistributionCollection =
-    privilegeSetConfigureComponents;
-const static auto& putPowerDistributionCollection =
-    privilegeSetConfigureComponents;
-const static auto& deletePowerDistributionCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchPowerDistributionCollection = privilegeSetConfigureComponents;
+const static auto& postPowerDistributionCollection = privilegeSetConfigureComponents;
+const static auto& putPowerDistributionCollection = privilegeSetConfigureComponents;
+const static auto& deletePowerDistributionCollection = privilegeSetConfigureComponents;
 
 // PowerDistributionMetrics
 const static auto& getPowerDistributionMetrics = privilegeSetLogin;
 const static auto& headPowerDistributionMetrics = privilegeSetLogin;
-const static auto& patchPowerDistributionMetrics =
-    privilegeSetConfigureComponents;
-const static auto& postPowerDistributionMetrics =
-    privilegeSetConfigureComponents;
-const static auto& putPowerDistributionMetrics =
-    privilegeSetConfigureComponents;
-const static auto& deletePowerDistributionMetrics =
-    privilegeSetConfigureComponents;
+const static auto& patchPowerDistributionMetrics = privilegeSetConfigureComponents;
+const static auto& postPowerDistributionMetrics = privilegeSetConfigureComponents;
+const static auto& putPowerDistributionMetrics = privilegeSetConfigureComponents;
+const static auto& deletePowerDistributionMetrics = privilegeSetConfigureComponents;
 
 // PowerDomain
 const static auto& getPowerDomain = privilegeSetLogin;
@@ -1283,13 +1174,10 @@
 // ResourceBlockCollection
 const static auto& getResourceBlockCollection = privilegeSetLogin;
 const static auto& headResourceBlockCollection = privilegeSetLogin;
-const static auto& patchResourceBlockCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchResourceBlockCollection = privilegeSetConfigureComponents;
 const static auto& putResourceBlockCollection = privilegeSetConfigureComponents;
-const static auto& deleteResourceBlockCollection =
-    privilegeSetConfigureComponents;
-const static auto& postResourceBlockCollection =
-    privilegeSetConfigureComponents;
+const static auto& deleteResourceBlockCollection = privilegeSetConfigureComponents;
+const static auto& postResourceBlockCollection = privilegeSetConfigureComponents;
 
 // Role
 const static auto& getRole = privilegeSetLogin;
@@ -1334,13 +1222,10 @@
 // RouteSetEntryCollection
 const static auto& getRouteSetEntryCollection = privilegeSetLogin;
 const static auto& headRouteSetEntryCollection = privilegeSetLogin;
-const static auto& patchRouteSetEntryCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchRouteSetEntryCollection = privilegeSetConfigureComponents;
 const static auto& putRouteSetEntryCollection = privilegeSetConfigureComponents;
-const static auto& deleteRouteSetEntryCollection =
-    privilegeSetConfigureComponents;
-const static auto& postRouteSetEntryCollection =
-    privilegeSetConfigureComponents;
+const static auto& deleteRouteSetEntryCollection = privilegeSetConfigureComponents;
+const static auto& postRouteSetEntryCollection = privilegeSetConfigureComponents;
 
 // SecureBoot
 const static auto& getSecureBoot = privilegeSetLogin;
@@ -1361,14 +1246,10 @@
 // SecureBootDatabaseCollection
 const static auto& getSecureBootDatabaseCollection = privilegeSetLogin;
 const static auto& headSecureBootDatabaseCollection = privilegeSetLogin;
-const static auto& patchSecureBootDatabaseCollection =
-    privilegeSetConfigureComponents;
-const static auto& postSecureBootDatabaseCollection =
-    privilegeSetConfigureComponents;
-const static auto& putSecureBootDatabaseCollection =
-    privilegeSetConfigureComponents;
-const static auto& deleteSecureBootDatabaseCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchSecureBootDatabaseCollection = privilegeSetConfigureComponents;
+const static auto& postSecureBootDatabaseCollection = privilegeSetConfigureComponents;
+const static auto& putSecureBootDatabaseCollection = privilegeSetConfigureComponents;
+const static auto& deleteSecureBootDatabaseCollection = privilegeSetConfigureComponents;
 
 // Sensor
 const static auto& getSensor = privilegeSetLogin;
@@ -1397,11 +1278,9 @@
 // SerialInterfaceCollection
 const static auto& getSerialInterfaceCollection = privilegeSetLogin;
 const static auto& headSerialInterfaceCollection = privilegeSetLogin;
-const static auto& patchSerialInterfaceCollection =
-    privilegeSetConfigureManager;
+const static auto& patchSerialInterfaceCollection = privilegeSetConfigureManager;
 const static auto& putSerialInterfaceCollection = privilegeSetConfigureManager;
-const static auto& deleteSerialInterfaceCollection =
-    privilegeSetConfigureManager;
+const static auto& deleteSerialInterfaceCollection = privilegeSetConfigureManager;
 const static auto& postSerialInterfaceCollection = privilegeSetConfigureManager;
 
 // ServiceRoot
@@ -1463,13 +1342,10 @@
 // SimpleStorageCollection
 const static auto& getSimpleStorageCollection = privilegeSetLogin;
 const static auto& headSimpleStorageCollection = privilegeSetLogin;
-const static auto& patchSimpleStorageCollection =
-    privilegeSetConfigureComponents;
-const static auto& postSimpleStorageCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchSimpleStorageCollection = privilegeSetConfigureComponents;
+const static auto& postSimpleStorageCollection = privilegeSetConfigureComponents;
 const static auto& putSimpleStorageCollection = privilegeSetConfigureComponents;
-const static auto& deleteSimpleStorageCollection =
-    privilegeSetConfigureComponents;
+const static auto& deleteSimpleStorageCollection = privilegeSetConfigureComponents;
 
 // SoftwareInventory
 const static auto& getSoftwareInventory = privilegeSetLogin;
@@ -1482,14 +1358,10 @@
 // SoftwareInventoryCollection
 const static auto& getSoftwareInventoryCollection = privilegeSetLogin;
 const static auto& headSoftwareInventoryCollection = privilegeSetLogin;
-const static auto& patchSoftwareInventoryCollection =
-    privilegeSetConfigureComponents;
-const static auto& postSoftwareInventoryCollection =
-    privilegeSetConfigureComponents;
-const static auto& putSoftwareInventoryCollection =
-    privilegeSetConfigureComponents;
-const static auto& deleteSoftwareInventoryCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchSoftwareInventoryCollection = privilegeSetConfigureComponents;
+const static auto& postSoftwareInventoryCollection = privilegeSetConfigureComponents;
+const static auto& putSoftwareInventoryCollection = privilegeSetConfigureComponents;
+const static auto& deleteSoftwareInventoryCollection = privilegeSetConfigureComponents;
 
 // Storage
 const static auto& getStorage = privilegeSetLogin;
@@ -1518,14 +1390,10 @@
 // StorageControllerCollection
 const static auto& getStorageControllerCollection = privilegeSetLogin;
 const static auto& headStorageControllerCollection = privilegeSetLogin;
-const static auto& patchStorageControllerCollection =
-    privilegeSetConfigureComponents;
-const static auto& postStorageControllerCollection =
-    privilegeSetConfigureComponents;
-const static auto& putStorageControllerCollection =
-    privilegeSetConfigureComponents;
-const static auto& deleteStorageControllerCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchStorageControllerCollection = privilegeSetConfigureComponents;
+const static auto& postStorageControllerCollection = privilegeSetConfigureComponents;
+const static auto& putStorageControllerCollection = privilegeSetConfigureComponents;
+const static auto& deleteStorageControllerCollection = privilegeSetConfigureComponents;
 
 // Switch
 const static auto& getSwitch = privilegeSetLogin;
@@ -1634,13 +1502,10 @@
 // USBControllerCollection
 const static auto& getUSBControllerCollection = privilegeSetLogin;
 const static auto& headUSBControllerCollection = privilegeSetLogin;
-const static auto& patchUSBControllerCollection =
-    privilegeSetConfigureComponents;
+const static auto& patchUSBControllerCollection = privilegeSetConfigureComponents;
 const static auto& putUSBControllerCollection = privilegeSetConfigureComponents;
-const static auto& deleteUSBControllerCollection =
-    privilegeSetConfigureComponents;
-const static auto& postUSBControllerCollection =
-    privilegeSetConfigureComponents;
+const static auto& deleteUSBControllerCollection = privilegeSetConfigureComponents;
+const static auto& postUSBControllerCollection = privilegeSetConfigureComponents;
 
 // VCATEntry
 const static auto& getVCATEntry = privilegeSetLogin;
@@ -1669,14 +1534,10 @@
 // VLanNetworkInterfaceCollection
 const static auto& getVLanNetworkInterfaceCollection = privilegeSetLogin;
 const static auto& headVLanNetworkInterfaceCollection = privilegeSetLogin;
-const static auto& patchVLanNetworkInterfaceCollection =
-    privilegeSetConfigureManager;
-const static auto& putVLanNetworkInterfaceCollection =
-    privilegeSetConfigureManager;
-const static auto& deleteVLanNetworkInterfaceCollection =
-    privilegeSetConfigureManager;
-const static auto& postVLanNetworkInterfaceCollection =
-    privilegeSetConfigureManager;
+const static auto& patchVLanNetworkInterfaceCollection = privilegeSetConfigureManager;
+const static auto& putVLanNetworkInterfaceCollection = privilegeSetConfigureManager;
+const static auto& deleteVLanNetworkInterfaceCollection = privilegeSetConfigureManager;
+const static auto& postVLanNetworkInterfaceCollection = privilegeSetConfigureManager;
 
 // VirtualMedia
 const static auto& getVirtualMedia = privilegeSetLogin;
@@ -1727,3 +1588,4 @@
 const static auto& deleteZoneCollection = privilegeSetConfigureComponents;
 
 } // namespace redfish::privileges
+// clang-format on
diff --git a/redfish-core/include/registries/resource_event_message_registry.hpp b/redfish-core/include/registries/resource_event_message_registry.hpp
index e02aece..4566003 100644
--- a/redfish-core/include/registries/resource_event_message_registry.hpp
+++ b/redfish-core/include/registries/resource_event_message_registry.hpp
@@ -6,6 +6,8 @@
 #pragma once
 #include <registries.hpp>
 
+// clang-format off
+
 namespace redfish::message_registries::resource_event
 {
 const Header header = {
@@ -22,7 +24,8 @@
 constexpr const char* url =
     "https://redfish.dmtf.org/registries/ResourceEvent.1.0.3.json";
 
-constexpr std::array<MessageEntry, 19> registry = {
+constexpr std::array<MessageEntry, 19> registry =
+{
     MessageEntry{
         "LicenseAdded",
         {
@@ -154,16 +157,17 @@
             {},
             "None",
         }},
-    MessageEntry{"ResourceSelfTestCompleted",
-                 {
-                     "Indicates that a self-test has completed.",
-                     "A self-test has completed.",
-                     "OK",
-                     "OK",
-                     0,
-                     {},
-                     "None.",
-                 }},
+    MessageEntry{
+        "ResourceSelfTestCompleted",
+        {
+            "Indicates that a self-test has completed.",
+            "A self-test has completed.",
+            "OK",
+            "OK",
+            0,
+            {},
+            "None.",
+        }},
     MessageEntry{
         "ResourceSelfTestFailed",
         {
@@ -271,6 +275,7 @@
             {},
             "None.",
         }},
+
 };
 
 enum class Index
@@ -295,4 +300,4 @@
     resourceWarningThresholdExceeded = 17,
     uRIForResourceChanged = 18,
 };
-} // namespace redfish::message_registries::resource_event
\ No newline at end of file
+} // namespace redfish::message_registries::resource_event
diff --git a/redfish-core/include/registries/task_event_message_registry.hpp b/redfish-core/include/registries/task_event_message_registry.hpp
index 421bc35..d99d7ce 100644
--- a/redfish-core/include/registries/task_event_message_registry.hpp
+++ b/redfish-core/include/registries/task_event_message_registry.hpp
@@ -6,6 +6,8 @@
 #pragma once
 #include <registries.hpp>
 
+// clang-format off
+
 namespace redfish::message_registries::task_event
 {
 const Header header = {
@@ -22,19 +24,21 @@
 constexpr const char* url =
     "https://redfish.dmtf.org/registries/TaskEvent.1.0.3.json";
 
-constexpr std::array<MessageEntry, 9> registry = {
-    MessageEntry{"TaskAborted",
-                 {
-                     "A task has completed with errors.",
-                     "The task with Id '%1' has completed with errors.",
-                     "Critical",
-                     "Critical",
-                     1,
-                     {
-                         "string",
-                     },
-                     "None.",
-                 }},
+constexpr std::array<MessageEntry, 9> registry =
+{
+    MessageEntry{
+        "TaskAborted",
+        {
+            "A task has completed with errors.",
+            "The task with Id '%1' has completed with errors.",
+            "Critical",
+            "Critical",
+            1,
+            {
+                "string",
+            },
+            "None.",
+        }},
     MessageEntry{
         "TaskCancelled",
         {
@@ -48,42 +52,45 @@
             },
             "None.",
         }},
-    MessageEntry{"TaskCompletedOK",
-                 {
-                     "A task has completed.",
-                     "The task with Id '%1' has completed.",
-                     "OK",
-                     "OK",
-                     1,
-                     {
-                         "string",
-                     },
-                     "None.",
-                 }},
-    MessageEntry{"TaskCompletedWarning",
-                 {
-                     "A task has completed with warnings.",
-                     "The task with Id '%1' has completed with warnings.",
-                     "Warning",
-                     "Warning",
-                     1,
-                     {
-                         "string",
-                     },
-                     "None.",
-                 }},
-    MessageEntry{"TaskPaused",
-                 {
-                     "A task has been paused.",
-                     "The task with Id '%1' has been paused.",
-                     "Warning",
-                     "Warning",
-                     1,
-                     {
-                         "string",
-                     },
-                     "None.",
-                 }},
+    MessageEntry{
+        "TaskCompletedOK",
+        {
+            "A task has completed.",
+            "The task with Id '%1' has completed.",
+            "OK",
+            "OK",
+            1,
+            {
+                "string",
+            },
+            "None.",
+        }},
+    MessageEntry{
+        "TaskCompletedWarning",
+        {
+            "A task has completed with warnings.",
+            "The task with Id '%1' has completed with warnings.",
+            "Warning",
+            "Warning",
+            1,
+            {
+                "string",
+            },
+            "None.",
+        }},
+    MessageEntry{
+        "TaskPaused",
+        {
+            "A task has been paused.",
+            "The task with Id '%1' has been paused.",
+            "Warning",
+            "Warning",
+            1,
+            {
+                "string",
+            },
+            "None.",
+        }},
     MessageEntry{
         "TaskProgressChanged",
         {
@@ -98,42 +105,46 @@
             },
             "None.",
         }},
-    MessageEntry{"TaskRemoved",
-                 {
-                     "A task has been removed.",
-                     "The task with Id '%1' has been removed.",
-                     "Warning",
-                     "Warning",
-                     1,
-                     {
-                         "string",
-                     },
-                     "None.",
-                 }},
-    MessageEntry{"TaskResumed",
-                 {
-                     "A task has been resumed.",
-                     "The task with Id '%1' has been resumed.",
-                     "OK",
-                     "OK",
-                     1,
-                     {
-                         "string",
-                     },
-                     "None.",
-                 }},
-    MessageEntry{"TaskStarted",
-                 {
-                     "A task has started.",
-                     "The task with Id '%1' has started.",
-                     "OK",
-                     "OK",
-                     1,
-                     {
-                         "string",
-                     },
-                     "None.",
-                 }},
+    MessageEntry{
+        "TaskRemoved",
+        {
+            "A task has been removed.",
+            "The task with Id '%1' has been removed.",
+            "Warning",
+            "Warning",
+            1,
+            {
+                "string",
+            },
+            "None.",
+        }},
+    MessageEntry{
+        "TaskResumed",
+        {
+            "A task has been resumed.",
+            "The task with Id '%1' has been resumed.",
+            "OK",
+            "OK",
+            1,
+            {
+                "string",
+            },
+            "None.",
+        }},
+    MessageEntry{
+        "TaskStarted",
+        {
+            "A task has started.",
+            "The task with Id '%1' has started.",
+            "OK",
+            "OK",
+            1,
+            {
+                "string",
+            },
+            "None.",
+        }},
+
 };
 
 enum class Index
@@ -148,4 +159,4 @@
     taskResumed = 7,
     taskStarted = 8,
 };
-} // namespace redfish::message_registries::task_event
\ No newline at end of file
+} // namespace redfish::message_registries::task_event
diff --git a/scripts/parse_registries.py b/scripts/parse_registries.py
index 8334eae..4973633 100755
--- a/scripts/parse_registries.py
+++ b/scripts/parse_registries.py
@@ -21,6 +21,8 @@
 #pragma once
 #include <registries.hpp>
 
+// clang-format off
+
 namespace redfish::message_registries::{}
 {{
 '''
@@ -49,10 +51,6 @@
     return (path, json_file, type_name, url)
 
 
-def clang_format(filename):
-    subprocess.check_call(["clang-format", "-i", filename])
-
-
 files = []
 files.append(make_getter('Base.1.11.0.json',
                          'base_message_registry.hpp',
@@ -74,54 +72,59 @@
     with open(file, 'w') as registry:
         registry.write(REGISTRY_HEADER.format(namespace))
         # Parse the Registry header info
-        registry.write("const Header header = {")
-        registry.write("\"{}\",".format(json_dict["@Redfish.Copyright"]))
-        registry.write("\"{}\",".format(json_dict["@odata.type"]))
-        registry.write("\"{}\",".format(json_dict["Id"]))
-        registry.write("\"{}\",".format(json_dict["Name"]))
-        registry.write("\"{}\",".format(json_dict["Language"]))
-        registry.write("\"{}\",".format(json_dict["Description"]))
-        registry.write("\"{}\",".format(json_dict["RegistryPrefix"]))
-        registry.write("\"{}\",".format(json_dict["RegistryVersion"]))
-        registry.write("\"{}\",".format(json_dict["OwningEntity"]))
-        registry.write("};")
+        registry.write("const Header header = {\n")
+        registry.write("    \"{}\",\n".format(json_dict["@Redfish.Copyright"]))
+        registry.write("    \"{}\",\n".format(json_dict["@odata.type"]))
+        registry.write("    \"{}\",\n".format(json_dict["Id"]))
+        registry.write("    \"{}\",\n".format(json_dict["Name"]))
+        registry.write("    \"{}\",\n".format(json_dict["Language"]))
+        registry.write("    \"{}\",\n".format(json_dict["Description"]))
+        registry.write("    \"{}\",\n".format(json_dict["RegistryPrefix"]))
+        registry.write("    \"{}\",\n".format(json_dict["RegistryVersion"]))
+        registry.write("    \"{}\",\n".format(json_dict["OwningEntity"]))
+        registry.write("};\n")
 
-        registry.write('constexpr const char * url = "{}";\n\n'.format(url))
+        registry.write(
+            'constexpr const char* url =\n    "{}";\n\n'.format(url))
         # Parse each Message entry
         registry.write(
-            "constexpr std::array<MessageEntry, {}> registry = {{".format(
+            "constexpr std::array<MessageEntry, {}> registry =\n".format(
                 len(json_dict["Messages"])))
-
+        registry.write("{\n")
         messages_sorted = sorted(json_dict["Messages"].items())
         for messageId, message in messages_sorted:
-            registry.write("MessageEntry{")
-            registry.write("\"{}\",".format(messageId))
-            registry.write("{")
-            registry.write("\"{}\",".format(message["Description"]))
-            registry.write("\"{}\",".format(message["Message"]))
-            registry.write("\"{}\",".format(message["Severity"]))
-            registry.write("\"{}\",".format(message["MessageSeverity"]))
-            registry.write("{},".format(message["NumberOfArgs"]))
-            registry.write("{")
+            registry.write("    MessageEntry{\n")
+            registry.write("        \"{}\",\n".format(messageId))
+            registry.write("        {\n")
+            registry.write("            \"{}\",\n".format(
+                message["Description"]))
+            registry.write("            \"{}\",\n".format(message["Message"]))
+            registry.write("            \"{}\",\n".format(message["Severity"]))
+            registry.write("            \"{}\",\n".format(
+                message["MessageSeverity"]))
+            registry.write("            {},\n".format(message["NumberOfArgs"]))
+            registry.write("            {")
             paramTypes = message.get("ParamTypes")
             if paramTypes:
                 for paramType in paramTypes:
-                    registry.write("\"{}\",".format(paramType))
-            registry.write("},")
-            registry.write("\"{}\",".format(message["Resolution"]))
-            registry.write("}},")
-
+                    registry.write(
+                        "\n                \"{}\",".format(paramType))
+                registry.write("\n            ")
+            registry.write("},\n")
+            registry.write("            \"{}\",\n".format(
+                message["Resolution"]))
+            registry.write("        }},\n")
         registry.write("\n};")
 
-        registry.write("\n\nenum class Index {\n")
+        registry.write("\n\nenum class Index\n{\n")
         for index, (messageId, message) in enumerate(messages_sorted):
             messageId = messageId[0].lower() + messageId[1:]
             registry.write(
-                "{} = {},\n".format(messageId, index))
-        registry.write("};")
-        registry.write("}")
-
-    clang_format(file)
+                "    {} = {},\n".format(messageId, index))
+        registry.write("};\n")
+        registry.write(
+            "} // namespace redfish::message_registries::")
+        registry.write("{}\n".format(namespace))
 
 
 def get_privilege_string_from_list(privilege_list):
@@ -159,11 +162,13 @@
     with open(path, 'w') as registry:
         registry.write("#pragma once\n")
         registry.write(
-            "//{} is generated.  Do not edit directly\n".format(
+            "// {} is generated.  Do not edit directly\n".format(
                 os.path.basename(path)))
 
-        registry.write("#include <privileges.hpp>\n\n")
-        registry.write("namespace redfish::privileges{\n")
+        registry.write("// clang-format off\n")
+        registry.write("\n#include <privileges.hpp>\n\n")
+        registry.write("namespace redfish::privileges\n")
+        registry.write("{\n")
 
         privilege_dict = {}
         for mapping in json_file["Mappings"]:
@@ -171,7 +176,6 @@
             for operation, privilege_list in mapping["OperationMap"].items():
                 privilege_dict[get_privilege_string_from_list(
                     privilege_list)] = (privilege_list, )
-        registry.write("// clang-format off\n")
         for index, key in enumerate(privilege_dict):
             (privilege_list, ) = privilege_dict[key]
             name = get_variable_name_for_privilege_set(privilege_list)
@@ -181,11 +185,10 @@
             registry.write(
                 "privilegeSet{} = {};\n".format(name, key))
             privilege_dict[key] = (privilege_list, name)
-        registry.write("// clang-format on\n\n")
 
         for mapping in json_file["Mappings"]:
             entity = mapping["Entity"]
-            registry.write("//{}\n".format(entity))
+            registry.write("// {}\n".format(entity))
             for operation, privilege_list in mapping["OperationMap"].items():
                 privilege_string = get_privilege_string_from_list(
                     privilege_list)
@@ -198,7 +201,7 @@
                         privilege_dict[privilege_string][1]))
             registry.write("\n")
         registry.write("} // namespace redfish::privileges\n")
-    clang_format(path)
+        registry.write("// clang-format on\n")
 
 
 make_privilege_registry()
