Implement kubevirt floating IP's class, codec, watcher and APIs

Change-Id: I2111902e86083add8a00af62557fac1e98b7e7fc
(cherry picked from commit e48a617ccaf19d0d29ccc3211f6254be5e26826e)
diff --git a/apps/kubevirt-networking/app/src/main/resources/definitions/KubevirtFloatingIps.json b/apps/kubevirt-networking/app/src/main/resources/definitions/KubevirtFloatingIps.json
new file mode 100644
index 0000000..bffb67d
--- /dev/null
+++ b/apps/kubevirt-networking/app/src/main/resources/definitions/KubevirtFloatingIps.json
@@ -0,0 +1,54 @@
+{
+  "type": "object",
+  "title": "floatingips",
+  "required": [
+    "floatingips"
+  ],
+  "properties": {
+    "floatingips": {
+      "type": "array",
+      "xml": {
+        "name": "floatingips",
+        "wrapped": true
+      },
+      "items": {
+        "type": "object",
+        "description": "A floating IP object.",
+        "required": [
+          "id",
+          "routerName",
+          "floatingIp",
+          "podName",
+          "fixedIp"
+        ],
+        "properties": {
+          "id": {
+            "type": "string",
+            "example": "6a073105-c735-4e53-8d74-64191c6985fe",
+            "description": "The ID of floating IP."
+          },
+          "routerName": {
+            "type": "string",
+            "example": "router-1",
+            "description": "Name of router."
+          },
+          "floatingIp": {
+            "type": "string",
+            "example": "10.10.10.5",
+            "description": "Floating IP address."
+          },
+          "podName": {
+            "type": "string",
+            "example": "pod-1",
+            "description": "Name of POD associated with this floating IP"
+          },
+          "fixedIp": {
+            "type": "string",
+            "example": "20.20.20.5",
+            "description": "Fixed IP address."
+          }
+        }
+      }
+    }
+  }
+}
\ No newline at end of file