Merge branch 'topic/master/neutron-yang-migration' to branch 'master'
[ovsdb.git] / openstack / net-virt / src / main / java / org / opendaylight / ovsdb / openstack / netvirt / translator / iaware / INeutronLoadBalancerPoolAware.java
1 /*
2  * Copyright (C) 2014 Red Hat, Inc. and others.  All rights reserved.
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 package org.opendaylight.ovsdb.openstack.netvirt.translator.iaware;
10
11 import org.opendaylight.ovsdb.openstack.netvirt.translator.NeutronLoadBalancerPool;
12
13 /**
14  * This interface defines the methods a service that wishes to be aware of LoadBalancerPool Rules needs to implement
15  *
16  */
17
18 public interface INeutronLoadBalancerPoolAware {
19
20     /**
21      * Services provide this interface method to indicate if the specified loadBalancerPool can be created
22      *
23      * @param loadBalancerPool
24      *            instance of proposed new LoadBalancerPool object
25      * @return integer
26      *            the return value is understood to be a HTTP status code.  A return value outside of 200 through 299
27      *            results in the create operation being interrupted and the returned status value reflected in the
28      *            HTTP response.
29      */
30     int canCreateNeutronLoadBalancerPool(NeutronLoadBalancerPool loadBalancerPool);
31
32     /**
33      * Services provide this interface method for taking action after a loadBalancerPool has been created
34      *
35      * @param loadBalancerPool
36      *            instance of new LoadBalancerPool object
37      */
38     void neutronLoadBalancerPoolCreated(NeutronLoadBalancerPool loadBalancerPool);
39
40     /**
41      * Services provide this interface method to indicate if the
42      * specified loadBalancerPool can be changed using the specified
43      * delta
44      *
45      * @param delta
46      *            updates to the loadBalancerPool object using patch semantics
47      * @param original
48      *            instance of the LoadBalancerPool object to be updated
49      * @return integer
50      *            the return value is understood to be a HTTP status code.  A return value outside of 200 through 299
51      *            results in the update operation being interrupted and the returned status value reflected in the
52      *            HTTP response.
53      */
54     int canUpdateNeutronLoadBalancerPool(NeutronLoadBalancerPool delta, NeutronLoadBalancerPool original);
55
56     /**
57      * Services provide this interface method for taking action after a loadBalancerPool has been updated
58      *
59      * @param loadBalancerPool
60      *            instance of modified LoadBalancerPool object
61      */
62     void neutronLoadBalancerPoolUpdated(NeutronLoadBalancerPool loadBalancerPool);
63
64     /**
65      * Services provide this interface method to indicate if the specified loadBalancerPool can be deleted
66      *
67      * @param loadBalancerPool
68      *            instance of the LoadBalancerPool object to be deleted
69      * @return integer
70      *            the return value is understood to be a HTTP status code.  A return value outside of 200 through 299
71      *            results in the delete operation being interrupted and the returned status value reflected in the
72      *            HTTP response.
73      */
74     int canDeleteNeutronLoadBalancerPool(NeutronLoadBalancerPool loadBalancerPool);
75
76     /**
77      * Services provide this interface method for taking action after a loadBalancerPool has been deleted
78      *
79      * @param loadBalancerPool
80      *            instance of deleted LoadBalancerPool object
81      */
82     void neutronLoadBalancerPoolDeleted(NeutronLoadBalancerPool loadBalancerPool);
83 }