diff --git a/extensions/openpower-pels/pel_entry.hpp b/extensions/openpower-pels/pel_entry.hpp
new file mode 100644
index 0000000..7decb42
--- /dev/null
+++ b/extensions/openpower-pels/pel_entry.hpp
@@ -0,0 +1,68 @@
+#pragma once
+
+#include "manager.hpp"
+namespace openpower
+{
+namespace pels
+{
+
+using PELEntryIface = sdbusplus::org::open_power::Logging::PEL::server::Entry;
+using PropertiesVariant = PELEntryIface::PropertiesVariant;
+
+class PELEntry : public PELEntryIface
+{
+
+  public:
+    PELEntry() = delete;
+    PELEntry(const PELEntry&) = delete;
+    PELEntry& operator=(const PELEntry&) = delete;
+    PELEntry(PELEntry&&) = delete;
+    PELEntry& operator=(PELEntry&&) = delete;
+    virtual ~PELEntry() = default;
+
+    /** @brief Constructor to put an object onto the bus at a dbus path.
+     *  @param[in] bus - Bus to attach to.
+     *  @param[in] path - Path to attach at.
+     *  @param[in] prop - Default property values to be set when this interface
+     * is added to the bus.
+     *  @param[in] id - obmc id for this instance.
+     *  @param[in] repo - Repository pointer to lookup PEL to set appropriate
+     * attributes.
+     */
+
+    PELEntry(sdbusplus::bus::bus& bus, const std::string& path,
+             const std::map<std::string, PropertiesVariant>& prop, uint32_t id,
+             Repository* repo) :
+        PELEntryIface(bus, path.c_str(), prop),
+        _obmcId(id), _repo(repo)
+    {
+    }
+
+    /** @brief Update managementSystemAck flag.
+     *  @param[in] value - A true value says HMC acknowledged the PEL.
+     *  @returns New property value
+     */
+    bool managementSystemAck(bool value) override;
+
+    /**
+     * @brief Returns OpenBMC event log ID associated with this interface.
+     */
+    uint32_t getMyId(void) const
+    {
+        return _obmcId;
+    }
+
+  private:
+    /**
+     * @brief Corresponding OpenBMC event log id of this interface.
+     */
+    uint32_t _obmcId;
+
+    /**
+     * @brief Repository pointer to look for updating PEL fields.
+     */
+    Repository* _repo;
+};
+
+} // namespace pels
+} // namespace openpower
\ No newline at end of file
