diff --git a/apps/config/src/main/java/org/onosproject/config/NetworkConfigService.java b/apps/config/src/main/java/org/onosproject/config/NetworkConfigService.java
index 9fcb436..1d9a895 100644
--- a/apps/config/src/main/java/org/onosproject/config/NetworkConfigService.java
+++ b/apps/config/src/main/java/org/onosproject/config/NetworkConfigService.java
@@ -17,6 +17,9 @@
 
 /**
  * Service interface exported by the Network Configuration.
+ *
+ * @deprecated in Drake; see org.onosproject.net.config
  */
+@Deprecated
 public interface NetworkConfigService {
 }
diff --git a/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/config/NetworkConfigService.java b/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/config/NetworkConfigService.java
index 9c4ad6e..5685527 100644
--- a/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/config/NetworkConfigService.java
+++ b/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/config/NetworkConfigService.java
@@ -16,7 +16,10 @@
  *
  * TODO: return immutable objects or defensive copies of network config so that
  * users of this API do not inadvertently or maliciously change network config.
+ *
+ * @deprecated in Drake; see org.onosproject.net.config
  */
+@Deprecated
 public interface NetworkConfigService {
 
     /**
diff --git a/utils/misc/src/main/java/org/onlab/util/Tools.java b/utils/misc/src/main/java/org/onlab/util/Tools.java
index b12d15c..abc48cc 100644
--- a/utils/misc/src/main/java/org/onlab/util/Tools.java
+++ b/utils/misc/src/main/java/org/onlab/util/Tools.java
@@ -236,6 +236,8 @@
      * @param maxDelayBetweenRetries max delay between successive retries. The actual delay is randomly picked from
      * the interval (0, maxDelayBetweenRetries]
      * @return function
+     * @param <U> type of function input
+     * @param <V> type of function output
      */
     public static <U, V> Function<U, V> retryable(Function<U, V> base,
             Class<? extends Throwable> exceptionClass,
@@ -252,6 +254,7 @@
      * @param maxDelayBetweenRetries max delay between successive retries. The actual delay is randomly picked from
      * the interval (0, maxDelayBetweenRetries]
      * @return supplier
+     * @param <V> type of supplied result
      */
     public static <V> Supplier<V> retryable(Supplier<V> base,
             Class<? extends Throwable> exceptionClass,
diff --git a/utils/misc/src/main/java/org/onlab/util/TriConsumer.java b/utils/misc/src/main/java/org/onlab/util/TriConsumer.java
index 754c7da..2d73c58 100644
--- a/utils/misc/src/main/java/org/onlab/util/TriConsumer.java
+++ b/utils/misc/src/main/java/org/onlab/util/TriConsumer.java
@@ -17,6 +17,10 @@
 
 /**
  * A consumer that accepts three arguments.
+ *
+ * @param <U> type of first argument
+ * @param <V> type of second argument
+ * @param <W> type of third argument
  */
 public interface TriConsumer<U, V, W> {
 
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/ApiDocResource.java b/web/api/src/main/java/org/onosproject/rest/resources/ApiDocResource.java
index 0ad4fc6..804f05e 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/ApiDocResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/ApiDocResource.java
@@ -107,6 +107,8 @@
      * Get Swagger UI main index page.
      *
      * @return 200 OK
+     * @throws IOException if unable to get index resource
+     * @throws URISyntaxException if unable to create redirect URI
      */
     @GET
     @Path("/")
@@ -119,6 +121,7 @@
      * Get Swagger UI main index page.
      *
      * @return 200 OK
+     * @throws IOException if unable to get index resource
      */
     @GET
     @Path("index.html")
@@ -155,7 +158,9 @@
     /**
      * Get Swagger UI resource.
      *
+     * @param resource path of the resource
      * @return 200 OK
+     * @throws IOException if unable to get named resource
      */
     @GET
     @Path("{resource: .*}")
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/ClusterWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/ClusterWebResource.java
index ee608b7..dd9b9fc 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/ClusterWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/ClusterWebResource.java
@@ -77,6 +77,7 @@
      *
      * @param config cluster definition
      * @return 200 OK
+     * @throws IOException to signify bad request
      */
     @POST
     @Path("configuration")
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/ComponentConfigWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/ComponentConfigWebResource.java
index 4adb6c5..468a376 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/ComponentConfigWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/ComponentConfigWebResource.java
@@ -82,7 +82,9 @@
      * Sets only the properties present in the JSON request.
      *
      * @param component component name
+     * @param request   JSON configuration
      * @return 200 OK
+     * @throws IOException to signify bad request
      */
     @POST
     @Path("{component}")
@@ -100,7 +102,9 @@
      * Clears only the properties present in the JSON request.
      *
      * @param component component name
+     * @param request   JSON configuration
      * @return 200 OK
+     * @throws IOException to signify bad request
      */
     @DELETE
     @Path("{component}")
