Merge "BUG-624 make netconf tcp address optional in config.ini with default value...
[controller.git] / opendaylight / networkconfiguration / neutron / src / main / java / org / opendaylight / controller / networkconfig / neutron / INeutronSecurityGroupAware.java
1 /*
2  * Copyright (C) 2014 Red Hat, Inc.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  *
8  */
9
10 package org.opendaylight.controller.networkconfig.neutron;
11
12 /**
13  * This interface defines the methods a service that wishes to be aware of Neutron Security Groups needs to implement
14  */
15
16 public interface INeutronSecurityGroupAware {
17
18     /**
19      * Services provide this interface method to indicate if the specified security group can be created
20      *
21      * @param securityGroup instance of proposed new Neutron Security Group object
22      * @return integer
23      * the return value is understood to be a HTTP status code.  A return value outside of 200 through 299
24      * results in the create operation being interrupted and the returned status value reflected in the
25      * HTTP response.
26      */
27     public int canCreateNeutronSecurityGroup(NeutronSecurityGroup securityGroup);
28
29     /**
30      * Services provide this interface method for taking action after a security group has been created
31      *
32      * @param securityGroup instance of new Neutron Security Group object
33      * @return void
34      */
35     public void neutronSecurityGroupCreated(NeutronSecurityGroup securityGroup);
36
37     /**
38      * Services provide this interface method to indicate if the specified security group can be changed using the specified
39      * delta
40      *
41      * @param delta    updates to the security group object using patch semantics
42      * @param original instance of the Neutron Security Group object to be updated
43      * @return integer
44      * the return value is understood to be a HTTP status code.  A return value outside of 200 through 299
45      * results in the update operation being interrupted and the returned status value reflected in the
46      * HTTP response.
47      */
48     public int canUpdateNeutronSecurityGroup(NeutronSecurityGroup delta, NeutronSecurityGroup original);
49
50     /**
51      * Services provide this interface method for taking action after a security group has been updated
52      *
53      * @param securityGroup instance of modified Neutron Security Group object
54      * @return void
55      */
56     public void neutronSecurityGroupUpdated(NeutronSecurityGroup securityGroup);
57
58     /**
59      * Services provide this interface method to indicate if the specified security group can be deleted
60      *
61      * @param securityGroup instance of the Neutron Security Group object to be deleted
62      * @return integer
63      * the return value is understood to be a HTTP status code.  A return value outside of 200 through 299
64      * results in the delete operation being interrupted and the returned status value reflected in the
65      * HTTP response.
66      */
67     public int canDeleteNeutronSecurityGroup(NeutronSecurityGroup securityGroup);
68
69     /**
70      * Services provide this interface method for taking action after a security group has been deleted
71      *
72      * @param securityGroup instance of deleted Neutron Security Group object
73      * @return void
74      */
75     public void neutronSecurityGroupDeleted(NeutronSecurityGroup securityGroup);
76 }