800346a732f4fc4a285fa13f6f41633ef7bd2e32
[ccsdk/apps.git] / ms / vlantag-api / src / main / java / org / onap / ccsdk / apps / ms / vlantagapi / core / service / VlantagApiService.java
1 /*******************************************************************************\r
2  * Copyright © 2017-2018 AT&T Intellectual Property.\r
3  * \r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  * \r
8  *     http://www.apache.org/licenses/LICENSE-2.0\r
9  * \r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  ******************************************************************************/\r
16 package org.onap.ccsdk.apps.ms.vlantagapi.core.service;\r
17 \r
18 import javax.validation.Valid;\r
19 import javax.ws.rs.Consumes;\r
20 import javax.ws.rs.GET;\r
21 import javax.ws.rs.POST;\r
22 import javax.ws.rs.Path;\r
23 import javax.ws.rs.PathParam;\r
24 import javax.ws.rs.Produces;\r
25 import javax.ws.rs.core.MediaType;\r
26 \r
27 import org.onap.ccsdk.apps.ms.vlantagapi.core.exception.VlantagApiException;\r
28 import org.onap.ccsdk.apps.ms.vlantagapi.core.model.AssignVlanTagRequest;\r
29 import org.onap.ccsdk.apps.ms.vlantagapi.core.model.AssignVlanTagResponse;\r
30 import org.onap.ccsdk.apps.ms.vlantagapi.core.model.PingResponse;\r
31 import org.onap.ccsdk.apps.ms.vlantagapi.core.model.UnassignVlanTagRequest;\r
32 import org.onap.ccsdk.apps.ms.vlantagapi.core.model.UnassignVlanTagResponse;\r
33 \r
34 /**\r
35  * VlantagApiService.java Purpose: Provide Vlantag Assignment & UnAssignment\r
36  * APIs interface for VNFs\r
37  *\r
38  * @author Saurav Paira\r
39  * @version 1.0\r
40  */\r
41 @Path("/")\r
42 public interface VlantagApiService {\r
43 \r
44     /**\r
45      * This is a assignVlanTag service to assign Vlantags based on the\r
46      * AssignVlanTagRequest and Policy instance.\r
47      * \r
48      * @param AssignVlanTagRequest\r
49      * @return AssignVlanTagResponse\r
50      */\r
51     @POST\r
52     @Path("/v1/assign")\r
53     @Consumes({ MediaType.APPLICATION_JSON })\r
54     @Produces({ MediaType.APPLICATION_JSON })\r
55     AssignVlanTagResponse assignVlanTag(@Valid AssignVlanTagRequest body) throws VlantagApiException, Exception;\r
56 \r
57     /**\r
58      * This is a unassignVlanTag service to unassign Vlantags based on the\r
59      * UnassignVlanTagRequest and Policy instance.\r
60      * \r
61      * @param UnassignVlanTagRequest\r
62      * @return UnassignVlanTagResponse\r
63      */\r
64     @POST\r
65     @Path("/v1/unassign")\r
66     @Consumes({ MediaType.APPLICATION_JSON })\r
67     @Produces({ MediaType.APPLICATION_JSON })\r
68     UnassignVlanTagResponse unassignVlanTag(@Valid UnassignVlanTagRequest body) throws VlantagApiException, Exception;\r
69 \r
70     /**\r
71      * This is a ping service to check the Vlantag Api is Up and running.\r
72      * \r
73      * @param name\r
74      * @return PingResponse\r
75      */\r
76     @GET\r
77     @Path("/v1/ping/{name}")\r
78     @Produces(MediaType.APPLICATION_JSON)\r
79     PingResponse getPing(@PathParam("name") String name);\r
80 \r
81 }\r