diff --git a/web/api/src/main/java/org/onosproject/rest/resources/TenantWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/TenantWebResource.java
index dc15be5..afef7a7 100755
--- a/web/api/src/main/java/org/onosproject/rest/resources/TenantWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/TenantWebResource.java
@@ -61,7 +61,7 @@
      */
     @GET
     @Produces(MediaType.APPLICATION_JSON)
-    public Response getVirtualNetworkTenants() {
+    public Response getVirtualNetworkTenantIds() {
         Iterable<TenantId> tenantIds = vnetAdminService.getTenantIds();
         return ok(encodeArray(TenantId.class, "tenants", tenantIds)).build();
     }
@@ -109,24 +109,6 @@
     }
 
     /**
-     * Removes the specified tenant with the specified tenant identifier.
-     *
-     * @param stream deviceIds JSON stream
-     * @return 200 OK, 404 not found
-     * @onos.rsModel TenantId
-     */
-    @DELETE
-    public Response removeTenantId(InputStream stream) {
-        try {
-            final TenantId tid = getTenantIdFromJsonStream(stream);
-            vnetAdminService.unregisterTenantId(tid);
-        } catch (IOException e) {
-            throw new IllegalArgumentException(e);
-        }
-        return Response.ok().build();
-    }
-
-    /**
      * Get the tenant identifier from the JSON stream.
      *
      * @param stream TenantId JSON stream
