diff --git a/include/ibm/management_console_rest.hpp b/include/ibm/management_console_rest.hpp
index edf64a4..579d46c 100644
--- a/include/ibm/management_console_rest.hpp
+++ b/include/ibm/management_console_rest.hpp
@@ -219,17 +219,11 @@
     {
         BMCWEB_LOG_DEBUG << "config file is updated";
         asyncResp->res.jsonValue["Description"] = "File Updated";
-
-        redfish::EventServiceManager::getInstance().sendEvent(
-            redfish::messages::resourceChanged(), origin, "IBMConfigFile");
     }
     else
     {
         BMCWEB_LOG_DEBUG << "config file is created";
         asyncResp->res.jsonValue["Description"] = "File Created";
-
-        redfish::EventServiceManager::getInstance().sendEvent(
-            redfish::messages::resourceCreated(), origin, "IBMConfigFile");
     }
 }
 
@@ -383,7 +377,6 @@
         asyncResp->res.result(boost::beast::http::status::bad_request);
         return;
     }
-    redfish::EventServiceManager::getInstance().sendBroadcastMsg(broadcastMsg);
 }
 
 inline void handleFileUrl(const crow::Request& req,
diff --git a/redfish-core/include/event_service_manager.hpp b/redfish-core/include/event_service_manager.hpp
index c0c57ac..3a20a79 100644
--- a/redfish-core/include/event_service_manager.hpp
+++ b/redfish-core/include/event_service_manager.hpp
@@ -1107,23 +1107,6 @@
             }
         }
     }
-    void sendBroadcastMsg(const std::string& broadcastMsg)
-    {
-        for (const auto& it : subscriptionsMap)
-        {
-            std::shared_ptr<Subscription> entry = it.second;
-            nlohmann::json msgJson;
-            msgJson["Timestamp"] =
-                redfish::time_utils::getDateTimeOffsetNow().first;
-            msgJson["OriginOfCondition"] = "/ibm/v1/HMC/BroadcastService";
-            msgJson["Name"] = "Broadcast Message";
-            msgJson["Message"] = broadcastMsg;
-
-            std::string strMsg = msgJson.dump(
-                2, ' ', true, nlohmann::json::error_handler_t::replace);
-            entry->sendEvent(std::move(strMsg));
-        }
-    }
 
 #ifndef BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES
 
diff --git a/redfish-core/lib/event_service.hpp b/redfish-core/lib/event_service.hpp
index 9e2d0fe..4919dec 100644
--- a/redfish-core/lib/event_service.hpp
+++ b/redfish-core/lib/event_service.hpp
@@ -42,13 +42,8 @@
 static constexpr const std::array<const char*, 3> supportedRetryPolicies = {
     "TerminateAfterRetries", "SuspendRetries", "RetryForever"};
 
-#ifdef BMCWEB_ENABLE_IBM_MANAGEMENT_CONSOLE
-static constexpr const std::array<const char*, 2> supportedResourceTypes = {
-    "IBMConfigFile", "Task"};
-#else
 static constexpr const std::array<const char*, 1> supportedResourceTypes = {
     "Task"};
-#endif
 
 inline void requestRoutesEventService(App& app)
 {
