diff --git a/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalConfigProvider.java b/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalConfigProvider.java
index f23b5f2..dbe0b54 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalConfigProvider.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalConfigProvider.java
@@ -57,6 +57,7 @@
  * optical links and any other state that needs to be configured for correct network
  * operations.
  *
+ * @deprecated in Cardinal Release
  */
 @Deprecated
 @JsonIgnoreProperties(ignoreUnknown = true)
diff --git a/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalLinkDescription.java b/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalLinkDescription.java
index b3adb0a..1673335 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalLinkDescription.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalLinkDescription.java
@@ -21,6 +21,8 @@
 
 /**
  * Public class corresponding to JSON described data model.
+ *
+ * @deprecated in Cardinal Release
  */
 @Deprecated
 public class OpticalLinkDescription {
diff --git a/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalNetworkConfig.java b/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalNetworkConfig.java
index bfc8ab9..f3f8d17 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalNetworkConfig.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalNetworkConfig.java
@@ -23,6 +23,8 @@
 
 /**
  * Public class corresponding to JSON described data model.
+ *
+ * @deprecated in Cardinal Release
  */
 @Deprecated
 public class OpticalNetworkConfig {
diff --git a/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalSwitchDescription.java b/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalSwitchDescription.java
index 63d0188..346088f 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalSwitchDescription.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalSwitchDescription.java
@@ -22,6 +22,8 @@
 
 /**
  * Public class corresponding to JSON described data model.
+ *
+ * @deprecated in Cardinal Release
  */
 @Deprecated
 public class OpticalSwitchDescription {
diff --git a/apps/optical/src/main/java/org/onosproject/optical/cfg/PktOptLink.java b/apps/optical/src/main/java/org/onosproject/optical/cfg/PktOptLink.java
index b3d0dae..0621cb0 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/cfg/PktOptLink.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/cfg/PktOptLink.java
@@ -17,6 +17,8 @@
 
 /**
  * Packet-optical link Java data object.
+ *
+ * @deprecated in Cardinal Release
  */
 @Deprecated
 class PktOptLink {
diff --git a/apps/optical/src/main/java/org/onosproject/optical/cfg/Roadm.java b/apps/optical/src/main/java/org/onosproject/optical/cfg/Roadm.java
index 84a7844..677555e 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/cfg/Roadm.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/cfg/Roadm.java
@@ -17,6 +17,8 @@
 
 /**
  * ROADM java data object converted from a JSON file.
+ *
+ * @deprecated in Cardinal Release
  */
 @Deprecated
 class Roadm {
diff --git a/apps/optical/src/main/java/org/onosproject/optical/cfg/WdmLink.java b/apps/optical/src/main/java/org/onosproject/optical/cfg/WdmLink.java
index d3e7ba0..63cd775 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/cfg/WdmLink.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/cfg/WdmLink.java
@@ -17,6 +17,8 @@
 
 /**
  * WDM Link Java data object converted from a JSON file.
+ *
+ * @deprecated in Cardinal Release
  */
 @Deprecated
 class WdmLink {
diff --git a/apps/xos-integration/src/main/java/org/onosproject/xosintegration/OnosXOSIntegrationManager.java b/apps/xos-integration/src/main/java/org/onosproject/xosintegration/OnosXOSIntegrationManager.java
index 0dc6f8e..e43cf0c 100644
--- a/apps/xos-integration/src/main/java/org/onosproject/xosintegration/OnosXOSIntegrationManager.java
+++ b/apps/xos-integration/src/main/java/org/onosproject/xosintegration/OnosXOSIntegrationManager.java
@@ -199,6 +199,7 @@
      * with no additional URI.
      *
      * @return web resource builder
+     * @deprecated in Cardinal Release
      */
     @Deprecated
     private WebResource.Builder getClientBuilder() {
@@ -210,6 +211,7 @@
      * with an optional additional URI.
      *
      * @return web resource builder
+     * @deprecated in Cardinal Release
      */
     @Deprecated
     private WebResource.Builder getClientBuilder(String uri) {
@@ -227,6 +229,7 @@
      * Performs a REST GET operation on the base XOS REST URI.
      *
      * @return JSON string fetched by the GET operation
+     * @deprecated in Cardinal Release
      */
     @Deprecated
     private String getRest() {
@@ -238,6 +241,7 @@
      * an optional additional URI.
      *
      * @return JSON string fetched by the GET operation
+     * @deprecated in Cardinal Release
      */
     @Deprecated
     private String getRest(String uri) {
@@ -259,6 +263,7 @@
      * XOS REST URI with an optional additional URI.
      *
      * @param json JSON string to post
+     * @deprecated in Cardinal Release
      */
     @Deprecated
     private String postRest(String json) {
@@ -284,6 +289,7 @@
      * XOS REST URI with an optional additional URI.
      *
      * @param uri optional additional URI
+     * @deprecated in Cardinal Release
      */
     @Deprecated
     private void deleteRest(String uri) {
diff --git a/core/api/src/main/java/org/onosproject/net/flow/FlowRule.java b/core/api/src/main/java/org/onosproject/net/flow/FlowRule.java
index 9a32d0f..397149b 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/FlowRule.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/FlowRule.java
@@ -32,6 +32,8 @@
      * The FlowRule type is used to determine in which table the flow rule needs
      * to be put for multi-table support switch. For single table switch,
      * Default is used.
+     *
+     * @deprecated in Cardinal Release
      */
     @Deprecated
     static enum Type {
diff --git a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleStore.java b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleStore.java
index 558221f..cece989 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleStore.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleStore.java
@@ -51,6 +51,7 @@
      * Stores a new flow rule without generating events.
      *
      * @param rule the flow rule to add
+     * @deprecated in Cardinal Release
      */
     @Deprecated
     void storeFlowRule(FlowRule rule);
diff --git a/core/api/src/main/java/org/onosproject/net/flow/instructions/Instructions.java b/core/api/src/main/java/org/onosproject/net/flow/instructions/Instructions.java
index 9703e1c..e8101f1 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/instructions/Instructions.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/instructions/Instructions.java
@@ -284,6 +284,7 @@
      *
      * @param etherType Ethernet type to set
      * @return a L2 modification.
+     * @deprecated in Cardinal Release
      */
     @Deprecated
     public static Instruction popMpls(int etherType) {
diff --git a/core/api/src/main/java/org/onosproject/net/topology/DefaultGraphDescription.java b/core/api/src/main/java/org/onosproject/net/topology/DefaultGraphDescription.java
index 54865b3..ed4ae32 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/DefaultGraphDescription.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/DefaultGraphDescription.java
@@ -57,7 +57,7 @@
      * @param links collection of infrastructure links
      *
      * @param annotations optional key/value annotations map
-     *
+     * @deprecated in Cardinal Release
      */
     @Deprecated
     public DefaultGraphDescription(long nanos, Iterable<Device> devices,
diff --git a/core/api/src/main/java/org/onosproject/store/cluster/messaging/ClusterCommunicationService.java b/core/api/src/main/java/org/onosproject/store/cluster/messaging/ClusterCommunicationService.java
index f547a47..161a852 100644
--- a/core/api/src/main/java/org/onosproject/store/cluster/messaging/ClusterCommunicationService.java
+++ b/core/api/src/main/java/org/onosproject/store/cluster/messaging/ClusterCommunicationService.java
@@ -35,6 +35,7 @@
      * @param subject    message subject
      * @param subscriber message subscriber
      * @param executor executor to use for running handler.
+     * @deprecated in Cardinal Release
      */
     @Deprecated
     void addSubscriber(MessageSubject subject, ClusterMessageHandler subscriber, ExecutorService executor);
diff --git a/core/api/src/main/java/org/onosproject/ui/JsonUtils.java b/core/api/src/main/java/org/onosproject/ui/JsonUtils.java
index b427e33c..9d3054f 100644
--- a/core/api/src/main/java/org/onosproject/ui/JsonUtils.java
+++ b/core/api/src/main/java/org/onosproject/ui/JsonUtils.java
@@ -38,6 +38,7 @@
      * @param sid     sequence ID
      * @param payload event payload
      * @return the object node representation
+     * @deprecated in Cardinal Release
      */
     @Deprecated
     public static ObjectNode envelope(String type, long sid, ObjectNode payload) {
diff --git a/core/store/dist/src/main/java/org/onosproject/store/impl/MastershipBasedTimestamp.java b/core/store/dist/src/main/java/org/onosproject/store/impl/MastershipBasedTimestamp.java
index d879a2c..15b3c3c 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/impl/MastershipBasedTimestamp.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/impl/MastershipBasedTimestamp.java
@@ -105,6 +105,10 @@
     }
 
     // Default constructor for serialization
+
+    /**
+     * @deprecated in Cardinal Release
+     */
     @Deprecated
     protected MastershipBasedTimestamp() {
         this.termNumber = -1;
diff --git a/core/store/dist/src/main/java/org/onosproject/store/impl/Timestamped.java b/core/store/dist/src/main/java/org/onosproject/store/impl/Timestamped.java
index 7d4058e..ae7267b 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/impl/Timestamped.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/impl/Timestamped.java
@@ -108,6 +108,9 @@
     }
 
     // Default constructor for serialization
+    /**
+     * @deprecated in Cardinal Release
+     */
     @Deprecated
     private Timestamped() {
         this.value = null;
diff --git a/utils/misc/src/main/java/org/onlab/packet/IPacket.java b/utils/misc/src/main/java/org/onlab/packet/IPacket.java
index 38684eb..64e6ac3 100644
--- a/utils/misc/src/main/java/org/onlab/packet/IPacket.java
+++ b/utils/misc/src/main/java/org/onlab/packet/IPacket.java
@@ -75,6 +75,7 @@
      * @param length
      *            length of the data to deserialize
      * @return the deserialized data
+     * @deprecated in Cardinal Release
      */
     @Deprecated
     IPacket deserialize(byte[] data, int offset, int length);
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
index ec70531..a10e016 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
@@ -197,6 +197,9 @@
 
     // ==================================================================
 
+    /**
+     * @deprecated in Cardinal Release
+     */
     @Deprecated
     private final class TopoStart extends RequestHandler {
         private TopoStart() {
@@ -213,6 +216,9 @@
         }
     }
 
+    /**
+     * @deprecated in Cardinal Release
+     */
     @Deprecated
     private final class TopoHeartbeat extends RequestHandler {
         private TopoHeartbeat() {
@@ -225,6 +231,9 @@
         }
     }
 
+    /**
+     * @deprecated in Cardinal Release
+     */
     @Deprecated
     private final class TopoStop extends RequestHandler {
         private TopoStop() {
@@ -238,6 +247,9 @@
         }
     }
 
+    /**
+     * @deprecated in Cardinal Release
+     */
     @Deprecated
     private final class ReqSummary extends RequestHandler {
         private ReqSummary() {
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandlerBase.java b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandlerBase.java
index e78a9cd..336d6f2 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandlerBase.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandlerBase.java
@@ -109,6 +109,8 @@
 
 /**
  * Facility for creating messages bound for the topology viewer.
+ *
+ * @deprecated in Cardinal Release
  */
 @Deprecated
 public abstract class TopologyViewMessageHandlerBase extends UiMessageHandler {
