diff --git a/include/manager.hpp b/include/manager.hpp
index 3f91c88..680ad6d 100644
--- a/include/manager.hpp
+++ b/include/manager.hpp
@@ -43,11 +43,12 @@
   public:
     using BaseTable = std::map<
         std::string,
-        std::tuple<AttributeType, bool, std::string, std::string, std::string,
-                   std::variant<int64_t, std::string>,
-                   std::variant<int64_t, std::string>,
-                   std::vector<std::tuple<
-                       BoundType, std::variant<int64_t, std::string>>>>>;
+        std::tuple<
+            AttributeType, bool, std::string, std::string, std::string,
+            std::variant<int64_t, std::string>,
+            std::variant<int64_t, std::string>,
+            std::vector<std::tuple<
+                BoundType, std::variant<int64_t, std::string>, std::string>>>>;
 
     using ResetFlag = std::map<std::string, ResetFlag>;
 
@@ -140,20 +141,20 @@
 
     bool validateEnumOption(
         const std::string& attrValue,
-        const std::vector<
-            std::tuple<BoundType, std::variant<int64_t, std::string>>>&
+        const std::vector<std::tuple<
+            BoundType, std::variant<int64_t, std::string>, std::string>>&
             options);
 
     bool validateStringOption(
         const std::string& attrValue,
-        const std::vector<
-            std::tuple<BoundType, std::variant<int64_t, std::string>>>&
+        const std::vector<std::tuple<
+            BoundType, std::variant<int64_t, std::string>, std::string>>&
             options);
 
     bool validateIntegerOption(
         const int64_t& attrValue,
-        const std::vector<
-            std::tuple<BoundType, std::variant<int64_t, std::string>>>&
+        const std::vector<std::tuple<
+            BoundType, std::variant<int64_t, std::string>, std::string>>&
             options);
 
     sdbusplus::asio::object_server& objServer;
diff --git a/src/manager.cpp b/src/manager.cpp
index fa619a8..cccd433 100644
--- a/src/manager.cpp
+++ b/src/manager.cpp
@@ -104,8 +104,8 @@
 
 bool Manager::validateEnumOption(
     const std::string& attrValue,
-    const std::vector<
-        std::tuple<BoundType, std::variant<int64_t, std::string>>>& options)
+    const std::vector<std::tuple<BoundType, std::variant<int64_t, std::string>,
+                                 std::string>>& options)
 {
     for (const auto& enumOptions : options)
     {
@@ -122,8 +122,8 @@
 
 bool Manager::validateStringOption(
     const std::string& attrValue,
-    const std::vector<
-        std::tuple<BoundType, std::variant<int64_t, std::string>>>& options)
+    const std::vector<std::tuple<BoundType, std::variant<int64_t, std::string>,
+                                 std::string>>& options)
 {
     size_t minStringLength = 0;
     size_t maxStringLength = 0;
@@ -158,8 +158,8 @@
 
 bool Manager::validateIntegerOption(
     const int64_t& attrValue,
-    const std::vector<
-        std::tuple<BoundType, std::variant<int64_t, std::string>>>& options)
+    const std::vector<std::tuple<BoundType, std::variant<int64_t, std::string>,
+                                 std::string>>& options)
 {
     int64_t lowerBound = 0;
     int64_t upperBound = 0;
