diff --git a/apps/config/src/main/java/org/onosproject/config/DynamicConfigEvent.java b/apps/config/src/main/java/org/onosproject/config/DynamicConfigEvent.java
new file mode 100755
index 0000000..bb29b9d
--- /dev/null
+++ b/apps/config/src/main/java/org/onosproject/config/DynamicConfigEvent.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2016-present 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.config;
+
+
+import org.onosproject.config.model.ResourceIdentifier;
+import org.onosproject.event.AbstractEvent;
+
+/**
+ * Describes a DynamicConfig change event.
+ */
+public class DynamicConfigEvent extends AbstractEvent<DynamicConfigEvent.Type, ResourceIdentifier> {
+
+    /**
+     * Type of configuration events.
+     * A configuration instance could be a leaf node or a subtree,
+     * identified by the subject, ResourceIdentifier.
+     */
+    public enum Type {
+        /**
+         * Signifies that a dynamic configuration instance was added.
+         */
+        NODE_ADDED,
+
+        /**
+         * Signifies that dynamic configuration instance was updated.
+         */
+        NODE_UPDATED,
+
+        /**
+         * Signifies that dynamic configuration instance was replaced.
+         */
+        NODE_REPLACED,
+
+        /**
+         * Signifies that dynamic configuration instance was removed.
+         */
+        NODE_DELETED
+    }
+
+    /**
+     * Creates an event of a given type, config node value and config node path.
+     *
+     * @param type  config node type
+     * @param path  config node path
+     */
+    public DynamicConfigEvent(Type type, ResourceIdentifier path) {
+        super(type, path);
+    }
+}
\ No newline at end of file
