[ONOS-4163] PCE service API

Change-Id: Iab8faeb85e9dcd6ec62a65f1ea8168b1be9ca39c
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/api/PceService.java b/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/api/PceService.java
index 74b8519..f2d3622 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/api/PceService.java
+++ b/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/api/PceService.java
@@ -20,24 +20,56 @@
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.intent.Constraint;
 import org.onosproject.pce.pceservice.LspType;
+import org.onosproject.incubator.net.tunnel.Tunnel;
+import org.onosproject.incubator.net.tunnel.TunnelId;
 
 /**
- * Service to compute path based on constraints, release path and update path with new constraints.
+ * Service to compute path based on constraints, release path,
+ * update path with new constraints and query existing tunnels.
  */
 public interface PceService {
 
     /**
-     * Creates new path based on constraints and lsp type.
+     * Creates new path based on constraints and LSP type.
      *
      * @param src source device
      * @param dst destination device
+     * @param tunnelName name of the tunnel
      * @param constraints list of constraints to be applied on path
      * @param lspType type of path to be setup
      * @return false on failure and true on successful path creation
      */
-    boolean setupPath(DeviceId src, DeviceId dst, List<Constraint> constraints, LspType lspType);
+    boolean setupPath(DeviceId src, DeviceId dst, String tunnelName, List<Constraint> constraints, LspType lspType);
 
-    //TODO: updatePath
-    //TODO: releasePath
-    //TODO: queryPath
+    /**
+     * Updates an existing path.
+     *
+     * @param tunnelId tunnel identifier
+     * @param constraints list of constraints to be applied on path
+     * @return false on failure and true on successful path update
+     */
+    boolean updatePath(TunnelId tunnelId, List<Constraint> constraints);
+
+    /**
+     * Releases an existing path.
+     *
+     * @param tunnelId tunnel identifier
+     * @return false on failure and true on successful path removal
+     */
+    boolean releasePath(TunnelId tunnelId);
+
+    /**
+     * Queries all paths.
+     *
+     * @return iterable of existing tunnels
+     */
+    Iterable<Tunnel> queryAllPath();
+
+    /**
+     * Queries particular path based on tunnel identifier.
+     *
+     * @param tunnelId tunnel identifier
+     * @return tunnel if path exists, otherwise null
+     */
+    Tunnel queryPath(TunnelId tunnelId);
 }
\ No newline at end of file