--- /dev/null
+/*\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