diff --git a/utility.hpp b/utility.hpp
index 32d055e..bb23dea 100644
--- a/utility.hpp
+++ b/utility.hpp
@@ -20,6 +20,17 @@
 namespace util
 {
 
+constexpr auto MAPPER_BUSNAME = "xyz.openbmc_project.ObjectMapper";
+constexpr auto MAPPER_PATH = "/xyz/openbmc_project/object_mapper";
+constexpr auto MAPPER_INTERFACE = "xyz.openbmc_project.ObjectMapper";
+
+constexpr auto INVENTORY_PATH = "/xyz/openbmc_project/inventory";
+constexpr auto INVENTORY_INTF = "xyz.openbmc_project.Inventory.Manager";
+
+constexpr auto OPERATIONAL_STATUS_INTF =
+    "xyz.openbmc_project.State.Decorator.OperationalStatus";
+constexpr auto FUNCTIONAL_PROPERTY = "Functional";
+
 class FileDescriptor
 {
     public:
@@ -90,6 +101,43 @@
                        const std::string& interface,
                        sdbusplus::bus::bus& bus);
 
+/**
+ * @brief Get the object map for creating or updating an object property
+ *
+ * @param[in] path - The dbus object path name
+ * @param[in] intf - The dbus interface
+ * @param[in] prop - The dbus property
+ * @param[in] value - The property value
+ *
+ * @return - The full object path containing the property value
+ */
+template <typename T>
+auto getObjMap(const std::string& path,
+               const std::string& intf,
+               const std::string& prop,
+               const T& value)
+{
+    using Property = std::string;
+    using Value = sdbusplus::message::variant<T>;
+    using PropertyMap = std::map<Property, Value>;
+
+    using Interface = std::string;
+    using InterfaceMap = std::map<Interface, PropertyMap>;
+
+    using Object = sdbusplus::message::object_path;
+    using ObjectMap = std::map<Object, InterfaceMap>;
+
+    ObjectMap objectMap;
+    InterfaceMap interfaceMap;
+    PropertyMap propertyMap;
+
+    propertyMap.emplace(prop, value);
+    interfaceMap.emplace(intf, std::move(propertyMap));
+    objectMap.emplace(path, std::move(interfaceMap));
+
+    return objectMap;
+}
+
 }
 }
 }
