diff --git a/extensions/openpower-pels/data_interface.hpp b/extensions/openpower-pels/data_interface.hpp
index 0e322fa..41a6d86 100644
--- a/extensions/openpower-pels/data_interface.hpp
+++ b/extensions/openpower-pels/data_interface.hpp
@@ -691,10 +691,10 @@
   public:
     DataInterface() = delete;
     ~DataInterface() = default;
-    DataInterface(const DataInterface&) = default;
-    DataInterface& operator=(const DataInterface&) = default;
-    DataInterface(DataInterface&&) = default;
-    DataInterface& operator=(DataInterface&&) = default;
+    DataInterface(const DataInterface&) = delete;
+    DataInterface& operator=(const DataInterface&) = delete;
+    DataInterface(DataInterface&&) = delete;
+    DataInterface& operator=(DataInterface&&) = delete;
 
     /**
      * @brief Constructor
diff --git a/extensions/openpower-pels/host_interface.hpp b/extensions/openpower-pels/host_interface.hpp
index 857b1fc..064f44c 100644
--- a/extensions/openpower-pels/host_interface.hpp
+++ b/extensions/openpower-pels/host_interface.hpp
@@ -50,9 +50,9 @@
     HostInterface() = delete;
     virtual ~HostInterface() = default;
     HostInterface(const HostInterface&) = default;
-    HostInterface& operator=(const HostInterface&) = default;
-    HostInterface(HostInterface&&) = default;
-    HostInterface& operator=(HostInterface&&) = default;
+    HostInterface& operator=(const HostInterface&) = delete;
+    HostInterface(HostInterface&&) = delete;
+    HostInterface& operator=(HostInterface&&) = delete;
 
     /**
      * @brief Constructor
diff --git a/extensions/openpower-pels/manager.hpp b/extensions/openpower-pels/manager.hpp
index 787bb02..58f378a 100644
--- a/extensions/openpower-pels/manager.hpp
+++ b/extensions/openpower-pels/manager.hpp
@@ -34,10 +34,10 @@
 {
   public:
     Manager() = delete;
-    Manager(const Manager&) = default;
-    Manager& operator=(const Manager&) = default;
-    Manager(Manager&&) = default;
-    Manager& operator=(Manager&&) = default;
+    Manager(const Manager&) = delete;
+    Manager& operator=(const Manager&) = delete;
+    Manager(Manager&&) = delete;
+    Manager& operator=(Manager&&) = delete;
 
     /**
      * @brief constructor
diff --git a/extensions/openpower-pels/pldm_interface.hpp b/extensions/openpower-pels/pldm_interface.hpp
index 5d090db..30ff749 100644
--- a/extensions/openpower-pels/pldm_interface.hpp
+++ b/extensions/openpower-pels/pldm_interface.hpp
@@ -29,10 +29,10 @@
 {
   public:
     PLDMInterface() = delete;
-    PLDMInterface(const PLDMInterface&) = default;
-    PLDMInterface& operator=(const PLDMInterface&) = default;
-    PLDMInterface(PLDMInterface&&) = default;
-    PLDMInterface& operator=(PLDMInterface&&) = default;
+    PLDMInterface(const PLDMInterface&) = delete;
+    PLDMInterface& operator=(const PLDMInterface&) = delete;
+    PLDMInterface(PLDMInterface&&) = delete;
+    PLDMInterface& operator=(PLDMInterface&&) = delete;
 
     /**
      * @brief Constructor
diff --git a/extensions/openpower-pels/repository.hpp b/extensions/openpower-pels/repository.hpp
index 483f619..a3fcf91 100644
--- a/extensions/openpower-pels/repository.hpp
+++ b/extensions/openpower-pels/repository.hpp
@@ -135,9 +135,9 @@
     Repository() = delete;
     ~Repository() = default;
     Repository(const Repository&) = default;
-    Repository& operator=(const Repository&) = default;
-    Repository(Repository&&) = default;
-    Repository& operator=(Repository&&) = default;
+    Repository& operator=(const Repository&) = delete;
+    Repository(Repository&&) = delete;
+    Repository& operator=(Repository&&) = delete;
 
     /**
      * @brief Constructor
diff --git a/extensions/openpower-pels/service_indicators.hpp b/extensions/openpower-pels/service_indicators.hpp
index 46e7b1f..5375e13 100644
--- a/extensions/openpower-pels/service_indicators.hpp
+++ b/extensions/openpower-pels/service_indicators.hpp
@@ -17,9 +17,9 @@
     Policy() = delete;
     virtual ~Policy() = default;
     Policy(const Policy&) = default;
-    Policy& operator=(const Policy&) = default;
-    Policy(Policy&&) = default;
-    Policy& operator=(Policy&&) = default;
+    Policy& operator=(const Policy&) = delete;
+    Policy(Policy&&) = delete;
+    Policy& operator=(Policy&&) = delete;
 
     /**
      * @brief Constructor
@@ -59,9 +59,9 @@
     LightPath() = delete;
     virtual ~LightPath() = default;
     LightPath(const LightPath&) = default;
-    LightPath& operator=(const LightPath&) = default;
-    LightPath(LightPath&&) = default;
-    LightPath& operator=(LightPath&&) = default;
+    LightPath& operator=(const LightPath&) = delete;
+    LightPath(LightPath&&) = delete;
+    LightPath& operator=(LightPath&&) = delete;
 
     /**
      * @brief Constructor
diff --git a/extensions/openpower-pels/stream.hpp b/extensions/openpower-pels/stream.hpp
index c19b387..014cc3d 100644
--- a/extensions/openpower-pels/stream.hpp
+++ b/extensions/openpower-pels/stream.hpp
@@ -52,9 +52,9 @@
     Stream() = delete;
     ~Stream() = default;
     Stream(const Stream&) = default;
-    Stream& operator=(const Stream&) = default;
-    Stream(Stream&&) = default;
-    Stream& operator=(Stream&&) = default;
+    Stream& operator=(const Stream&) = delete;
+    Stream(Stream&&) = delete;
+    Stream& operator=(Stream&&) = delete;
 
     /**
      * @brief Constructor
