diff --git a/occ_status.hpp b/occ_status.hpp
new file mode 100644
index 0000000..068f83b
--- /dev/null
+++ b/occ_status.hpp
@@ -0,0 +1,48 @@
+#pragma once
+
+#include <sdbusplus/bus.hpp>
+#include <sdbusplus/server/object.hpp>
+#include <org/open_power/OCC/Status/server.hpp>
+namespace open_power
+{
+namespace occ
+{
+
+namespace Base = sdbusplus::org::open_power::OCC::server;
+using Interface = sdbusplus::server::object::object<Base::Status>;
+
+/** @class Status
+ *  @brief Implementation of OCC Active Status
+ */
+class Status : public Interface
+{
+    public:
+        Status() = delete;
+        ~Status() = default;
+        Status(const Status&) = delete;
+        Status& operator=(const Status&) = delete;
+        Status(Status&&) = default;
+        Status& operator=(Status&&) = default;
+
+        /** @brief Constructs the Status object
+         *
+         *  @param[in] bus  - DBus bus to attach to
+         *  @param[in] path - DBus object path
+         */
+        Status(sdbusplus::bus::bus& bus, const char* path)
+            : Interface(bus, path)
+        {
+            // Nothing to do here
+        }
+
+        /** @brief SET OccActive to True or False
+         *
+         *  @param[in] value - Intended value
+         *
+         *  @return          - Updated value of the property
+         */
+        bool occActive(bool value) override;
+};
+
+} // namespace occ
+} // namespace open_power
