diff --git a/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/OpenstackNetwork.java b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/OpenstackNetwork.java
new file mode 100644
index 0000000..149b607
--- /dev/null
+++ b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/OpenstackNetwork.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.openstacknetworking.api;
+
+/**
+ * Representation of augmented openstack network.
+ */
+public interface OpenstackNetwork {
+
+    /**
+     * Lists of network type.
+     */
+    enum Type {
+
+        /**
+         * LOCAL typed network.
+         */
+        LOCAL,
+
+        /**
+         * FLAT typed network.
+         */
+        FLAT,
+
+        /**
+         * VLAN typed virtual network.
+         */
+        VLAN,
+
+        /**
+         * VXLAN typed virtual network.
+         */
+        VXLAN,
+
+        /**
+         * GRE typed virtual network.
+         */
+        GRE,
+
+        /**
+         * GENEVE typed virtual network.
+         */
+        GENEVE
+    }
+
+    /**
+     * Returns the openstack network ID of the augmented network.
+     *
+     * @return openstack network ID
+     */
+    String networkId();
+
+    /**
+     * Returns openstack network type.
+     *
+     * @return oepnstack network type
+     */
+    Type type();
+}
diff --git a/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/OpenstackNetworkService.java b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/OpenstackNetworkService.java
index 71d9bb1..279bbbd 100644
--- a/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/OpenstackNetworkService.java
+++ b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/OpenstackNetworkService.java
@@ -19,6 +19,7 @@
 import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onosproject.event.ListenerService;
+import org.onosproject.openstacknetworking.api.OpenstackNetwork.Type;
 import org.openstack4j.model.network.ExternalGateway;
 import org.openstack4j.model.network.Network;
 import org.openstack4j.model.network.Port;
@@ -40,6 +41,14 @@
     Network network(String networkId);
 
     /**
+     * Returns the network type with the supplied network ID.
+     *
+     * @param networkId network id
+     * @return openstack network type
+     */
+    Type networkType(String networkId);
+
+    /**
      * Returns all networks registered in the service.
      *
      * @return set of networks
@@ -148,14 +157,6 @@
     IpPrefix ipPrefix(String portId);
 
     /**
-     * Returns network type with supplied network ID.
-     *
-     * @param netId openstack network id
-     * @return network type
-     */
-    String networkType(String netId);
-
-    /**
      * Returns gateway ip address with supplied port ID.
      *
      * @param portId openstack port id
