diff --git a/core/api/src/main/java/org/onosproject/net/resource/ResourceAdminService.java b/core/api/src/main/java/org/onosproject/net/resource/ResourceAdminService.java
index edc3755..a46848a 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/ResourceAdminService.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/ResourceAdminService.java
@@ -43,7 +43,7 @@
      * @return true if registration is successfully done, false otherwise. Registration
      * succeeds when each resource is not registered or unallocated.
      */
-    boolean register(List<Resource> resources);
+    boolean register(List<? extends Resource> resources);
 
     /**
      * Unregisters the specified resources.
@@ -63,5 +63,5 @@
      * @return true if unregistration is successfully done, false otherwise. Unregistration
      * succeeds when each resource is not registered or unallocated.
      */
-    boolean unregister(List<ResourceId> ids);
+    boolean unregister(List<? extends ResourceId> ids);
 }
diff --git a/core/api/src/main/java/org/onosproject/net/resource/ResourceService.java b/core/api/src/main/java/org/onosproject/net/resource/ResourceService.java
index b52b6b9..7a75296 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/ResourceService.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/ResourceService.java
@@ -64,7 +64,7 @@
      * @param resources resources to be allocated
      * @return non-empty list of allocation information if succeeded, otherwise empty list
      */
-    List<ResourceAllocation> allocate(ResourceConsumer consumer, List<Resource> resources);
+    List<ResourceAllocation> allocate(ResourceConsumer consumer, List<? extends Resource> resources);
 
     /**
      * Transactionally allocates the specified resources to the specified user.
diff --git a/core/api/src/main/java/org/onosproject/net/resource/ResourceStore.java b/core/api/src/main/java/org/onosproject/net/resource/ResourceStore.java
index 8456106..051b9ca 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/ResourceStore.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/ResourceStore.java
@@ -37,7 +37,7 @@
      * @param resources resources to be registered
      * @return true if the registration succeeds, false otherwise
      */
-    boolean register(List<Resource> resources);
+    boolean register(List<? extends Resource> resources);
 
     /**
      * Unregisters the resources in transactional way.
@@ -48,7 +48,7 @@
      * @param ids resources to be unregistered
      * @return true if the registration succeeds, false otherwise
      */
-    boolean unregister(List<ResourceId> ids);
+    boolean unregister(List<? extends ResourceId> ids);
 
     /**
      * Allocates the specified resources to the specified consumer in transactional way.
@@ -60,7 +60,7 @@
      * @param consumer resource consumer which the resources are allocated to
      * @return true if the allocation succeeds, false otherwise.
      */
-    boolean allocate(List<Resource> resources, ResourceConsumer consumer);
+    boolean allocate(List<? extends Resource> resources, ResourceConsumer consumer);
 
     /**
      * Releases the specified allocated resources in transactional way.
