diff --git a/apps/openstackinterface/api/src/main/java/org/onosproject/openstackinterface/OpenstackInterfaceService.java b/apps/openstackinterface/api/src/main/java/org/onosproject/openstackinterface/OpenstackInterfaceService.java
index fd6f953..051bb5f 100644
--- a/apps/openstackinterface/api/src/main/java/org/onosproject/openstackinterface/OpenstackInterfaceService.java
+++ b/apps/openstackinterface/api/src/main/java/org/onosproject/openstackinterface/OpenstackInterfaceService.java
@@ -15,9 +15,11 @@
  */
 package org.onosproject.openstackinterface;
 
+import org.onlab.packet.Ip4Address;
 import org.onosproject.net.Port;
 
 import java.util.Collection;
+import java.util.Optional;
 
 /**
  * Handles port management REST API from Openstack for VMs.
@@ -49,7 +51,7 @@
     /**
      * Returns port information for the port ID given.
      *
-     * @param portId Port ID
+     * @param portId port id
      * @return port information
      */
     OpenstackPort port(String portId);
@@ -57,7 +59,7 @@
     /**
      * Returns network information list for the network ID given.
      *
-     * @param networkId Network ID
+     * @param networkId network id
      * @return network information, or null if not present
      */
     OpenstackNetwork network(String networkId);
@@ -72,7 +74,7 @@
     /**
      * Returns subnet information for the subnet ID give.
      *
-     * @param subnetId Subnet ID
+     * @param subnetId subnet id
      * @return subnet information, or null if not present
      */
     OpenstackSubnet subnet(String subnetId);
@@ -94,7 +96,7 @@
     /**
      * Returns the router information for the router ID given.
      *
-     * @param routerId router ID
+     * @param routerId router id
      * @return router information
      */
     OpenstackRouter router(String routerId);
@@ -114,6 +116,16 @@
      */
     Collection<OpenstackFloatingIP> floatingIps();
 
+    /**
+     * Updates a floating IP and its association with an internal port.
+     *
+     * @param id floating ip id
+     * @param portId port id
+     * @param fixedIpAddress fixed ip address of the port
+     * @return true if the update succeed
+     */
+    boolean updateFloatingIp(String id, String portId, Optional<Ip4Address> fixedIpAddress);
+
 
 
 }
