diff --git a/apps/cpman/api/src/main/java/org/onosproject/cpman/message/ControlMessageEvent.java b/apps/cpman/api/src/main/java/org/onosproject/cpman/message/ControlMessageEvent.java
new file mode 100644
index 0000000..b2412b7
--- /dev/null
+++ b/apps/cpman/api/src/main/java/org/onosproject/cpman/message/ControlMessageEvent.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2016 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.cpman.message;
+
+import org.onosproject.event.AbstractEvent;
+import org.onosproject.cpman.ControlMessage;
+
+import static com.google.common.base.MoreObjects.toStringHelper;
+
+/**
+ * Describes control message event.
+ */
+public class ControlMessageEvent
+        extends AbstractEvent<ControlMessageEvent.Type, ControlMessage> {
+
+    /**
+     * Type of control message events.
+     */
+    public enum Type {
+        /**
+         * signifies that the control message stats has been updated.
+         */
+        STATS_UPDATE
+    }
+
+    /**
+     * Creates an event of given type and the current time.
+     *
+     * @param type  control message event type
+     * @param controlMessage event control message subject
+     */
+    public ControlMessageEvent(Type type, ControlMessage controlMessage) {
+        super(type, controlMessage);
+    }
+
+    @Override
+    public String toString() {
+        return toStringHelper(this)
+                .add("type", type())
+                .add("subject", subject())
+                .toString();
+    }
+}
