blob: 3f32b06a2a5dbc7eb8135e364d2b68f958cb14eb [file] [log] [blame]
Toshio Koide485b4782014-10-20 19:34:21 -07001package org.onlab.onos.net.resource;
2
3import java.util.Collection;
4import java.util.Set;
5
6import org.onlab.onos.net.Link;
7import org.onlab.onos.net.intent.IntentId;
8
9/**
10 * Representation of a request for link resource.
11 */
Toshio Koide65e890f2014-10-23 12:02:25 -070012public interface LinkResourceRequest extends ResourceRequest {
Toshio Koide485b4782014-10-20 19:34:21 -070013
14 /**
15 * Returns the {@link IntentId} associated with the request.
16 *
17 * @return the {@link IntentId} associated with the request
18 */
Toshio Koide65e890f2014-10-23 12:02:25 -070019 IntentId intendId();
Toshio Koide485b4782014-10-20 19:34:21 -070020
21 /**
22 * Returns the set of target links.
23 *
24 * @return the set of target links
25 */
Toshio Koide65e890f2014-10-23 12:02:25 -070026 Collection<Link> links();
Toshio Koide485b4782014-10-20 19:34:21 -070027
28 /**
29 * Returns the set of resource requests.
30 *
31 * @return the set of resource requests
32 */
Toshio Koide65e890f2014-10-23 12:02:25 -070033 Set<ResourceRequest> resources();
Toshio Koide569ca702014-10-23 11:37:44 -070034
35 /**
36 * Builder of link resource request.
37 */
Toshio Koide65e890f2014-10-23 12:02:25 -070038 interface Builder {
39 /**
Toshio Koide569ca702014-10-23 11:37:44 -070040 * Adds lambda request.
41 *
42 * @return self
43 */
Toshio Koide65e890f2014-10-23 12:02:25 -070044 public Builder addLambdaRequest();
Toshio Koide569ca702014-10-23 11:37:44 -070045
46 /**
47 * Adds bandwidth request with bandwidth value.
48 *
49 * @param bandwidth bandwidth value to be requested
50 * @return self
51 */
Toshio Koide65e890f2014-10-23 12:02:25 -070052 public Builder addBandwidthRequest(double bandwidth);
Toshio Koide569ca702014-10-23 11:37:44 -070053
54 /**
55 * Returns link resource request.
56 *
57 * @return link resource request
58 */
Toshio Koide65e890f2014-10-23 12:02:25 -070059 public LinkResourceRequest build();
Toshio Koide569ca702014-10-23 11:37:44 -070060 }
Toshio Koide485b4782014-10-20 19:34:21 -070061}