Initial push of Neutron interface
[controller.git] / opendaylight / networkconfiguration / neutron / src / main / java / org / opendaylight / controller / networkconfig / neutron / INeutronSubnetAware.java
diff --git a/opendaylight/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/INeutronSubnetAware.java b/opendaylight/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/INeutronSubnetAware.java
new file mode 100644 (file)
index 0000000..b7bafab
--- /dev/null
@@ -0,0 +1,84 @@
+/*\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 Subnets needs to implement\r
+ *\r
+ */\r
+\r
+public interface INeutronSubnetAware {\r
+\r
+    /**\r
+     * Services provide this interface method to indicate if the specified subnet can be created\r
+     *\r
+     * @param subnet\r
+     *            instance of proposed new Neutron Subnet 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 canCreateSubnet(NeutronSubnet subnet);\r
+\r
+    /**\r
+     * Services provide this interface method for taking action after a subnet has been created\r
+     *\r
+     * @param subnet\r
+     *            instance of new Neutron Subnet object\r
+     * @return void\r
+     */\r
+    public void neutronSubnetCreated(NeutronSubnet subnet);\r
+\r
+    /**\r
+     * Services provide this interface method to indicate if the specified subnet can be changed using the specified\r
+     * delta\r
+     *\r
+     * @param delta\r
+     *            updates to the subnet object using patch semantics\r
+     * @param subnet\r
+     *            instance of the Neutron Subnet 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 canUpdateSubnet(NeutronSubnet delta, NeutronSubnet original);\r
+\r
+    /**\r
+     * Services provide this interface method for taking action after a subnet has been updated\r
+     *\r
+     * @param subnet\r
+     *            instance of modified Neutron Subnet object\r
+     * @return void\r
+     */\r
+    public void neutronSubnetUpdated(NeutronSubnet subnet);\r
+\r
+    /**\r
+     * Services provide this interface method to indicate if the specified subnet can be deleted\r
+     *\r
+     * @param subnet\r
+     *            instance of the Subnet 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 canDeleteSubnet(NeutronSubnet subnet);\r
+\r
+    /**\r
+     * Services provide this interface method for taking action after a subnet has been deleted\r
+     *\r
+     * @param subnet\r
+     *            instance of deleted Router Subnet object\r
+     * @return void\r
+     */\r
+    public void neutronSubnetDeleted(NeutronSubnet subnet);\r
+\r
+}\r