[ONOS-7926] Implement IPAM service to allocate IP for Kubernetes POD

Change-Id: I32fd1fffb41ec728d0be092ac5a8f555179e7a9e
diff --git a/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/K8sIpamAdminService.java b/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/K8sIpamAdminService.java
index f34421a..d8752f8 100644
--- a/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/K8sIpamAdminService.java
+++ b/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/K8sIpamAdminService.java
@@ -17,6 +17,8 @@
 
 import org.onlab.packet.IpAddress;
 
+import java.util.Set;
+
 /**
  * IP Address Management admin service for kubernetes network.
  */
@@ -31,10 +33,26 @@
     IpAddress allocateIp(String networkId);
 
     /**
-     * Leases the IP address from the given network.
+     * Releases the IP address from the given network.
      *
      * @param networkId network identifier
-     * @return leased IP address
+     * @param ipAddress IP address
+     * @return true if the given IP was successfully released, false otherwise
      */
-    IpAddress leaseIp(String networkId);
+    boolean releaseIp(String networkId, IpAddress ipAddress);
+
+    /**
+     * Initializes IP address pool.
+     *
+     * @param networkId network identifier
+     * @param ipAddresses a set of IP addresses contained in this IP pool
+     */
+    void initializeIpPool(String networkId, Set<IpAddress> ipAddresses);
+
+    /**
+     * Purges the existing IP address pool of the given network identifier.
+     *
+     * @param networkId network identifier
+     */
+    void purgeIpPool(String networkId);
 }