Merge "Fix for Bug 2396"
[neutron.git] / neutron-spi / src / main / java / org / opendaylight / neutron / spi / INeutronVPNServiceCRUD.java
1 /*
2  * Copyright Tata Consultancy Services, 2015.  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.neutron.spi;
10
11 import java.util.List;
12
13 /**
14  * This interface defines the methods for CRUD of NB VPNService objects
15  *
16  */
17
18 public interface INeutronVPNServiceCRUD {
19
20     /**
21      * Applications call this interface method to determine if a particular
22      * VPNService object exists
23      *
24      * @param uuid
25      *            UUID of the VPNService object
26      * @return boolean
27      */
28
29     public boolean neutronVPNServiceExists(String uuid);
30
31     /**
32      * Applications call this interface method to return if a particular
33      * VPNService object exists
34      *
35      * @param uuid
36      *            UUID of the VPNService object
37      * @return {@link org.opendaylight.neutron.neutron.spi.NeutronVPNService.OpenStackVPNService}
38      *         OpenStack VPNService class
39      */
40
41     public NeutronVPNService getVPNService(String uuid);
42
43     /**
44      * Applications call this interface method to return all VPNService objects
45      *
46      * @return a Set of OpenStackVPNService objects
47      */
48
49     public List<NeutronVPNService> getAllVPNService();
50
51     /**
52      * Applications call this interface method to add a VPNService object to the
53      * concurrent map
54      *
55      * @param input
56      *            OpenStackVPNService object
57      * @return boolean on whether the object was added or not
58      */
59
60     public boolean addVPNService(NeutronVPNService input);
61
62     /**
63      * Applications call this interface method to remove a VPNService object to
64      * the concurrent map
65      *
66      * @param uuid
67      *            identifier for the VPNService object
68      * @return boolean on whether the object was removed or not
69      */
70
71     public boolean removeVPNService(String uuid);
72
73     /**
74      * Applications call this interface method to edit a VPNService object
75      *
76      * @param uuid
77      *            identifier of the VPNService object
78      * @param delta
79      *            OpenStackVPNService object containing changes to apply
80      * @return boolean on whether the object was updated or not
81      */
82
83     public boolean updateVPNService(String uuid, NeutronVPNService delta);
84
85     /**
86      * Applications call this interface method to see if a MAC address is in use
87      *
88      * @param uuid
89      *            identifier of the VPNService object
90      * @return boolean on whether the macAddress is already associated with a
91      *         port or not
92      */
93
94     public boolean neutronVPNServiceInUse(String uuid);
95
96 }