[ONOS-2815] add Router api

Change-Id: I465a8d818fa024ae4e229f5e7245fb77e637a05b
diff --git a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/Router.java b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/Router.java
new file mode 100644
index 0000000..e853ec2
--- /dev/null
+++ b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/Router.java
@@ -0,0 +1,102 @@
+/*

+ * Copyright 2015 Open Networking Laboratory

+ *

+ * 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.vtnrsc;

+

+import java.util.List;

+

+/**

+ * Representation of a Router.

+ */

+public interface Router {

+

+    /**

+     * Coarse classification of the type of the Router.

+     */

+    public enum Status {

+        /**

+         * Signifies that a router is currently active.

+         */

+        ACTIVE,

+        /**

+         * Signifies that a router is currently inactive.

+         */

+        INACTIVE

+    }

+

+    /**

+     * Returns the router identifier.

+     *

+     * @return identifier

+     */

+    RouterId id();

+

+    /**

+     * Returns the router Name.

+     *

+     * @return routerName

+     */

+    String name();

+

+    /**

+     * Returns the router admin state.

+     *

+     * @return true or false

+     */

+    boolean adminStateUp();

+

+    /**

+     * Returns the status of router.

+     *

+     * @return RouterStatus

+     */

+    Status status();

+

+    /**

+     * Returns the distributed status of this router.

+     * If true, indicates a distributed router.

+     *

+     * @return true or false

+     */

+    boolean distributed();

+

+    /**

+     * Returns the RouterGateway of router.

+     *

+     * @return routerGateway

+     */

+    RouterGateway externalGatewayInfo();

+

+    /**

+     * Returns the gatewayPortid of router.

+     *

+     * @return virtualPortId

+     */

+    VirtualPortId gatewayPortid();

+

+    /**

+     * Returns the owner(tenant) of this router.

+     *

+     * @return tenantId

+     */

+    TenantId tenantId();

+

+    /**

+     * Returns the router list of router.

+     *

+     * @return routes

+     */

+    List<String> routes();

+}