Update resource manager API and objects.
diff --git a/core/api/src/main/java/org/onlab/onos/net/resource/BandwidthResourceAllocation.java b/core/api/src/main/java/org/onlab/onos/net/resource/BandwidthResourceAllocation.java
new file mode 100644
index 0000000..b542533
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/net/resource/BandwidthResourceAllocation.java
@@ -0,0 +1,8 @@
+package org.onlab.onos.net.resource;
+
+/**
+ * Representation of allocated bandwidth resource.
+ */
+public interface BandwidthResourceAllocation extends BandwidthResourceRequest {
+
+}
diff --git a/core/api/src/main/java/org/onlab/onos/net/resource/BandwidthResourceRequest.java b/core/api/src/main/java/org/onlab/onos/net/resource/BandwidthResourceRequest.java
new file mode 100644
index 0000000..2ea24b8
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/net/resource/BandwidthResourceRequest.java
@@ -0,0 +1,13 @@
+package org.onlab.onos.net.resource;
+
+/**
+ * Representation of a request for bandwidth resource.
+ */
+public interface BandwidthResourceRequest {
+    /**
+     * Returns the bandwidth resource.
+     *
+     * @return the bandwidth resource
+     */
+    Bandwidth bandwidth();
+}
diff --git a/core/api/src/main/java/org/onlab/onos/net/resource/Lambda.java b/core/api/src/main/java/org/onlab/onos/net/resource/Lambda.java
index 86ea08e..73c9488 100644
--- a/core/api/src/main/java/org/onlab/onos/net/resource/Lambda.java
+++ b/core/api/src/main/java/org/onlab/onos/net/resource/Lambda.java
@@ -30,6 +30,7 @@
 
     /**
      * Returns lambda as an int value.
+     *
      * @return lambda as an int value
      */
     public int toInt() {
diff --git a/core/api/src/main/java/org/onlab/onos/net/resource/LambdaResourceAllocation.java b/core/api/src/main/java/org/onlab/onos/net/resource/LambdaResourceAllocation.java
new file mode 100644
index 0000000..1ed63b4
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/net/resource/LambdaResourceAllocation.java
@@ -0,0 +1,13 @@
+package org.onlab.onos.net.resource;
+
+/**
+ * Representation of allocated lambda resource.
+ */
+public interface LambdaResourceAllocation extends LambdaResourceRequest {
+    /**
+     * Returns the lambda resource.
+     *
+     * @return the lambda resource
+     */
+    Lambda lambda();
+}
diff --git a/core/api/src/main/java/org/onlab/onos/net/resource/LambdaResourceRequest.java b/core/api/src/main/java/org/onlab/onos/net/resource/LambdaResourceRequest.java
new file mode 100644
index 0000000..dfb3b81
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/net/resource/LambdaResourceRequest.java
@@ -0,0 +1,8 @@
+package org.onlab.onos.net.resource;
+
+/**
+ * Representation of a request for lambda resource.
+ */
+public interface LambdaResourceRequest {
+
+}
diff --git a/core/api/src/main/java/org/onlab/onos/net/resource/LinkResourceAllocations.java b/core/api/src/main/java/org/onlab/onos/net/resource/LinkResourceAllocations.java
new file mode 100644
index 0000000..a3d3e87
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/net/resource/LinkResourceAllocations.java
@@ -0,0 +1,16 @@
+package org.onlab.onos.net.resource;
+
+import org.onlab.onos.net.Link;
+
+/**
+ * Representation of allocated link resources.
+ */
+public interface LinkResourceAllocations extends LinkResourceRequest {
+    /**
+     * Returns allocated resource for the given link.
+     *
+     * @param link the target link
+     * @return allocated resource for the link
+     */
+    ResourceAllocation getResourceAllocation(Link link);
+}
diff --git a/core/api/src/main/java/org/onlab/onos/net/resource/LinkResourceRequest.java b/core/api/src/main/java/org/onlab/onos/net/resource/LinkResourceRequest.java
new file mode 100644
index 0000000..3f9bf79
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/net/resource/LinkResourceRequest.java
@@ -0,0 +1,34 @@
+package org.onlab.onos.net.resource;
+
+import java.util.Collection;
+import java.util.Set;
+
+import org.onlab.onos.net.Link;
+import org.onlab.onos.net.intent.IntentId;
+
+/**
+ * Representation of a request for link resource.
+ */
+public interface LinkResourceRequest extends ResourceRequest {
+
+    /**
+     * Returns the {@link IntentId} associated with the request.
+     *
+     * @return the {@link IntentId} associated with the request
+     */
+    IntentId intendId();
+
+    /**
+     * Returns the set of target links.
+     *
+     * @return the set of target links
+     */
+    Collection<Link> links();
+
+    /**
+     * Returns the set of resource requests.
+     *
+     * @return the set of resource requests
+     */
+    Set<ResourceRequest> resources();
+}
diff --git a/core/api/src/main/java/org/onlab/onos/net/resource/LinkResourceService.java b/core/api/src/main/java/org/onlab/onos/net/resource/LinkResourceService.java
index d2736b6..1ea5723 100644
--- a/core/api/src/main/java/org/onlab/onos/net/resource/LinkResourceService.java
+++ b/core/api/src/main/java/org/onlab/onos/net/resource/LinkResourceService.java
@@ -1,10 +1,7 @@
 package org.onlab.onos.net.resource;
 
-import java.util.Map;
-
 import org.onlab.onos.net.Link;
 import org.onlab.onos.net.intent.IntentId;
-import org.onlab.onos.net.intent.PathIntent;
 
 /**
  * Service for providing link resource allocation.
@@ -12,49 +9,48 @@
 public interface LinkResourceService {
 
     /**
-     * Allocates resources along the path.
-     * <p>
-     * Tries to allocate given resources on the links along the path specified
-     * by the given intent.
+     * Requests resources.
      *
-     * @param res resources to be allocated
-     * @param intent an intent to be used for specifying the path
+     * @param req resources to be allocated
+     * @return allocated resources
      */
-    void allocateResource(LinkResources res, PathIntent intent);
+    LinkResourceAllocations requestResources(LinkResourceRequest req);
 
     /**
-     * Releases resources along the path.
+     * Releases resources.
      *
-     * @param intentId an ID for the intent for specifying the path
+     * @param allocations resources to be released
      */
-    void releaseResource(IntentId intentId);
+    void releaseResources(LinkResourceAllocations allocations);
 
     /**
-     * Returns all allocated resources to each link.
+     * Returns all allocated resources.
      *
-     * @return allocated resources to each link with {@link IntentId}
+     * @return allocated resources
      */
-    Map<Link, Map<IntentId, LinkResources>> allocatedResources();
+    Iterable<LinkResourceAllocations> getAllocations();
 
     /**
      * Returns all allocated resources to given link.
      *
      * @param link a target link
-     * @return allocated resources to the target link with {@link IntentId}
+     * @return allocated resources
      */
-    Map<IntentId, LinkResources> allocatedResources(Link link);
+    Iterable<LinkResourceAllocations> getAllocations(Link link);
 
     /**
-     * Returns available resources for each link.
+     * Returns all IDs of intents using the given link.
      *
-     * @return available resources for each link
+     * @param link a target link
+     * @return IDs of intents using the link
      */
-    Map<Link, LinkResources> availableResources();
+    Iterable<IntentId> getIntents(Link link);
 
     /**
      * Returns available resources for given link.
+     *
      * @param link a target link
      * @return available resources for the target link
      */
-    LinkResources availableResources(Link link);
+    ResourceRequest getAvailableResources(Link link);
 }
diff --git a/core/api/src/main/java/org/onlab/onos/net/resource/ResourceAllocation.java b/core/api/src/main/java/org/onlab/onos/net/resource/ResourceAllocation.java
new file mode 100644
index 0000000..5cc1414
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/net/resource/ResourceAllocation.java
@@ -0,0 +1,8 @@
+package org.onlab.onos.net.resource;
+
+/**
+ * Abstraction of allocated resource.
+ */
+public interface ResourceAllocation extends ResourceRequest {
+
+}
diff --git a/core/api/src/main/java/org/onlab/onos/net/resource/ResourceId.java b/core/api/src/main/java/org/onlab/onos/net/resource/ResourceId.java
new file mode 100644
index 0000000..5c4c9fc
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/net/resource/ResourceId.java
@@ -0,0 +1,8 @@
+package org.onlab.onos.net.resource;
+
+/**
+ * Representation of ID for allocated resource.
+ */
+public interface ResourceId {
+
+}
diff --git a/core/api/src/main/java/org/onlab/onos/net/resource/ResourceRequest.java b/core/api/src/main/java/org/onlab/onos/net/resource/ResourceRequest.java
new file mode 100644
index 0000000..bc3d904
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/net/resource/ResourceRequest.java
@@ -0,0 +1,8 @@
+package org.onlab.onos.net.resource;
+
+/**
+ * Abstraction of resource request.
+ */
+public interface ResourceRequest {
+
+}