diff --git a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/DefaultMappingKey.java b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/DefaultMappingKey.java
index e18435b..f8125aa 100644
--- a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/DefaultMappingKey.java
+++ b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/DefaultMappingKey.java
@@ -74,6 +74,12 @@
         return new Builder();
     }
 
+    /**
+     * Returns a new mapping key builder.
+     *
+     * @param key mapping key
+     * @return mapping key builder
+     */
     public static MappingKey.Builder builder(MappingKey key) {
         return new Builder(key);
     }
diff --git a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingEntry.java b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingEntry.java
index 6e6ef94..178f105 100644
--- a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingEntry.java
+++ b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingEntry.java
@@ -20,6 +20,9 @@
  */
 public interface MappingEntry extends Mapping {
 
+    /**
+     * Represents the type of mapping entry state.
+     */
     enum MappingEntryState {
 
         /**
diff --git a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingStore.java b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingStore.java
index 5a1614c..f5f4413 100644
--- a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingStore.java
+++ b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingStore.java
@@ -22,6 +22,9 @@
  */
 public interface MappingStore extends Store<MappingEvent, MappingStoreDelegate> {
 
+    /**
+     * Represents the type of mapping store.
+     */
     enum Type {
 
         /**
diff --git a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/instructions/MappingInstructions.java b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/instructions/MappingInstructions.java
index 63e65af..0fdde7d 100644
--- a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/instructions/MappingInstructions.java
+++ b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/instructions/MappingInstructions.java
@@ -102,15 +102,31 @@
         private final ExtensionTreatment extensionTreatment;
         private final DeviceId deviceId;
 
+        /**
+         * Defaults constructor for extension mapping instruction wrapper.
+         *
+         * @param extension extension treatment
+         * @param deviceId  device identifier
+         */
         ExtensionMappingInstructionWrapper(ExtensionTreatment extension, DeviceId deviceId) {
             this.extensionTreatment = extension;
             this.deviceId = deviceId;
         }
 
+        /**
+         * Obtains the extension treatment.
+         *
+         * @return extension treatment
+         */
         public ExtensionTreatment extensionMappingInstruction() {
             return extensionTreatment;
         }
 
+        /**
+         * Obtains the device identifier.
+         *
+         * @return device identifer
+         */
         public DeviceId deviceId() {
             return deviceId;
         }
diff --git a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/instructions/MulticastMappingInstruction.java b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/instructions/MulticastMappingInstruction.java
index 7008aa5..9ee5375 100644
--- a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/instructions/MulticastMappingInstruction.java
+++ b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/instructions/MulticastMappingInstruction.java
@@ -40,6 +40,11 @@
         PRIORITY
     }
 
+    /**
+     * Obtains the subtype.
+     *
+     * @return subtype
+     */
     public abstract MulticastType subtype();
 
     @Override
@@ -55,6 +60,12 @@
         private final MulticastType subtype;
         private final int weight;
 
+        /**
+         * Default constructor for weight mapping instruction.
+         *
+         * @param subType multicast subtype
+         * @param weight  weight value
+         */
         WeightMappingInstruction(MulticastType subType, int weight) {
             this.subtype = subType;
             this.weight = weight;
@@ -106,6 +117,12 @@
         private final MulticastType subtype;
         private final int priority;
 
+        /**
+         * Default constructor for priority mapping instruction.
+         *
+         * @param subType  multicast subtype
+         * @param priority priority value
+         */
         PriorityMappingInstruction(MulticastType subType, int priority) {
             this.subtype = subType;
             this.priority = priority;
