diff --git a/include/google/google_service_root.hpp b/include/google/google_service_root.hpp
index 6169899..8b0d36c 100644
--- a/include/google/google_service_root.hpp
+++ b/include/google/google_service_root.hpp
@@ -33,9 +33,9 @@
 namespace google_api
 {
 
-inline void
-    handleGoogleV1Get(const crow::Request& /*req*/,
-                      const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
+inline void handleGoogleV1Get(
+    const crow::Request& /*req*/,
+    const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
 {
     asyncResp->res.jsonValue["@odata.type"] =
         "#GoogleServiceRoot.v1_0_0.GoogleServiceRoot";
@@ -148,19 +148,19 @@
         "Embedded";
 }
 
-inline void
-    handleRootOfTrustGet(const crow::Request& /*req*/,
-                         const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
-                         const std::string& param)
+inline void handleRootOfTrustGet(
+    const crow::Request& /*req*/,
+    const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
+    const std::string& param)
 {
     std::string emptyCommand;
     resolveRoT(emptyCommand, asyncResp, param, populateRootOfTrustEntity);
 }
 
-inline void
-    invocationCallback(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
-                       const boost::system::error_code& ec,
-                       const std::vector<uint8_t>& responseBytes)
+inline void invocationCallback(
+    const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
+    const boost::system::error_code& ec,
+    const std::vector<uint8_t>& responseBytes)
 {
     if (ec)
     {
@@ -174,10 +174,10 @@
         bytesToHexString(responseBytes);
 }
 
-inline void
-    invokeRoTCommand(const std::string& command,
-                     const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
-                     const ResolvedEntity& resolvedEntity)
+inline void invokeRoTCommand(
+    const std::string& command,
+    const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
+    const ResolvedEntity& resolvedEntity)
 {
     std::vector<uint8_t> bytes = hexStringToBytes(command);
     if (bytes.empty())
