Initial push of Neutron interface
[controller.git] / opendaylight / networkconfiguration / neutron / src / main / java / org / opendaylight / controller / networkconfig / neutron / INeutronRouterAware.java
diff --git a/opendaylight/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/INeutronRouterAware.java b/opendaylight/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/INeutronRouterAware.java
new file mode 100644 (file)
index 0000000..16a9aec
--- /dev/null
@@ -0,0 +1,105 @@
+/*\r
+ * Copyright IBM Corporation, 2013.  All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
+\r
+package org.opendaylight.controller.networkconfig.neutron;\r
+\r
+/**\r
+ * This interface defines the methods a service that wishes to be aware of Neutron Routers needs to implement\r
+ *\r
+ */\r
+\r
+public interface INeutronRouterAware {\r
+\r
+    /**\r
+     * Services provide this interface method to indicate if the specified router can be created\r
+     *\r
+     * @param router\r
+     *            instance of proposed new Neutron Router object\r
+     * @return integer\r
+     *            the return value is understood to be a HTTP status code.  A return value outside of 200 through 299\r
+     *            results in the create operation being interrupted and the returned status value reflected in the\r
+     *            HTTP response.\r
+     */\r
+    public int canCreateRouter(NeutronRouter router);\r
+\r
+    /**\r
+     * Services provide this interface method for taking action after a router has been created\r
+     *\r
+     * @param router\r
+     *            instance of new Neutron Router object\r
+     * @return void\r
+     */\r
+    public void neutronRouterCreated(NeutronRouter router);\r
+\r
+    /**\r
+     * Services provide this interface method to indicate if the specified router can be changed using the specified\r
+     * delta\r
+     *\r
+     * @param delta\r
+     *            updates to the router object using patch semantics\r
+     * @param router\r
+     *            instance of the Neutron Router object to be updated\r
+     * @return integer\r
+     *            the return value is understood to be a HTTP status code.  A return value outside of 200 through 299\r
+     *            results in the update operation being interrupted and the returned status value reflected in the\r
+     *            HTTP response.\r
+     */\r
+    public int canUpdateRouter(NeutronRouter delta, NeutronRouter original);\r
+\r
+    /**\r
+     * Services provide this interface method for taking action after a router has been updated\r
+     *\r
+     * @param router\r
+     *            instance of modified Neutron Router object\r
+     * @return void\r
+     */\r
+    public void neutronRouterUpdated(NeutronRouter router);\r
+\r
+    /**\r
+     * Services provide this interface method to indicate if the specified router can be deleted\r
+     *\r
+     * @param router\r
+     *            instance of the Neutron Router object to be deleted\r
+     * @return integer\r
+     *            the return value is understood to be a HTTP status code.  A return value outside of 200 through 299\r
+     *            results in the delete operation being interrupted and the returned status value reflected in the\r
+     *            HTTP response.\r
+     */\r
+    public int canDeleteRouter(NeutronRouter router);\r
+\r
+    /**\r
+     * Services provide this interface method for taking action after a router has been deleted\r
+     *\r
+     * @param router\r
+     *            instance of deleted Router Network object\r
+     * @return void\r
+     */\r
+    public void neutronRouterDeleted(NeutronRouter router);\r
+\r
+    /**\r
+     * Services provide this interface method for taking action after an interface has been added to a router\r
+     *\r
+     * @param router\r
+     *            instance of the base Neutron Router object\r
+     * @param routerInterface\r
+     *            instance of the NeutronRouter_Interface being attached to the router\r
+     * @return void\r
+     */\r
+    public void neutronRouterInterfaceAttached(NeutronRouter router, NeutronRouter_Interface routerInterface);\r
+\r
+    /**\r
+     * Services provide this interface method for taking action after an interface has been removed from a router\r
+     *\r
+     * @param router\r
+     *            instance of the base Neutron Router object\r
+     * @param routerInterface\r
+     *            instance of the NeutronRouter_Interface being detached from the router\r
+     * @return void\r
+     */\r
+    public void neutronRouterInterfaceDetached(NeutronRouter router, NeutronRouter_Interface routerInterface);\r
+}\r