Replaced all tabs with spaces in java and pom.xml
[so.git] / adapters / mso-openstack-adapters / src / main / java / org / onap / so / adapters / network / MsoNetworkAdapter.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.so.adapters.network;
22
23
24 import java.util.List;
25 import java.util.Map;
26 import javax.jws.WebMethod;
27 import javax.jws.WebParam;
28 import javax.jws.WebParam.Mode;
29 import javax.jws.WebService;
30 import javax.xml.bind.annotation.XmlElement;
31 import javax.xml.ws.Holder;
32 import org.onap.so.adapters.network.exceptions.NetworkException;
33 import org.onap.so.entity.MsoRequest;
34 import org.onap.so.openstack.beans.NetworkRollback;
35 import org.onap.so.openstack.beans.NetworkStatus;
36 import org.onap.so.openstack.beans.RouteTarget;
37 import org.onap.so.openstack.beans.Subnet;
38
39 @WebService(name = "NetworkAdapter", targetNamespace = "http://org.onap.so/network")
40 public interface MsoNetworkAdapter {
41     // TODO: Rename all of these to include Vlan in the service name? At least for the
42     // create and update calls, since they are specific to VLAN-based provider networks.
43
44     /**
45      * This is the "Create Network" Web Service Endpoint definition.
46      */
47     @WebMethod
48     public void createNetwork(@WebParam(name = "cloudSiteId") @XmlElement(required = true) String cloudSiteId,
49             @WebParam(name = "tenantId") @XmlElement(required = true) String tenantId,
50             @WebParam(name = "networkType") @XmlElement(required = true) String networkType,
51             @WebParam(name = "modelCustomizationUuid") String modelCustomizationUuid,
52             @WebParam(name = "networkName") @XmlElement(required = true) String networkName,
53             @WebParam(name = "physicalNetworkName") String physicalNetworkName,
54             @WebParam(name = "vlans") List<Integer> vlans, @WebParam(name = "shared") String shared,
55             @WebParam(name = "external") String external, @WebParam(name = "failIfExists") Boolean failIfExists,
56             @WebParam(name = "backout") Boolean backout, @WebParam(name = "subnets") List<Subnet> subnets,
57             @WebParam(name = "networkParams") Map<String, String> networkParams,
58             @WebParam(name = "request") MsoRequest msoRequest,
59             @WebParam(name = "networkId", mode = Mode.OUT) Holder<String> networkId,
60             @WebParam(name = "neutronNetworkId", mode = Mode.OUT) Holder<String> neutronNetworkId,
61             @WebParam(name = "subnetIdMap", mode = Mode.OUT) Holder<Map<String, String>> subnetIdMap,
62             @WebParam(name = "rollback", mode = Mode.OUT) Holder<NetworkRollback> rollback) throws NetworkException;
63
64     @WebMethod
65     public void createNetworkContrail(@WebParam(name = "cloudSiteId") @XmlElement(required = true) String cloudSiteId,
66             @WebParam(name = "tenantId") @XmlElement(required = true) String tenantId,
67             @WebParam(name = "networkType") @XmlElement(required = true) String networkType,
68             @WebParam(name = "modelCustomizationUuid") String modelCustomizationUuid,
69             @WebParam(name = "networkName") @XmlElement(required = true) String networkName,
70             @WebParam(name = "routeTargets") List<RouteTarget> routeTargets, @WebParam(name = "shared") String shared,
71             @WebParam(name = "external") String external, @WebParam(name = "failIfExists") Boolean failIfExists,
72             @WebParam(name = "backout") Boolean backout, @WebParam(name = "subnets") List<Subnet> subnets,
73             @WebParam(name = "networkParams") Map<String, String> networkParams,
74             @WebParam(name = "policyFqdns") List<String> policyFqdns,
75             @WebParam(name = "routeTableFqdns") List<String> routeTableFqdns,
76             @WebParam(name = "request") MsoRequest msoRequest,
77             @WebParam(name = "networkId", mode = Mode.OUT) Holder<String> networkId,
78             @WebParam(name = "neutronNetworkId", mode = Mode.OUT) Holder<String> neutronNetworkId,
79             @WebParam(name = "networkFqdn", mode = Mode.OUT) Holder<String> networkFqdn,
80             @WebParam(name = "subnetIdMap", mode = Mode.OUT) Holder<Map<String, String>> subnetIdMap,
81             @WebParam(name = "rollback", mode = Mode.OUT) Holder<NetworkRollback> rollback) throws NetworkException;
82
83     /**
84      * This is the "Update VLANs" Web Service Endpoint definition. This webservice replaces the set of VLANs on a
85      * network.
86      */
87     @WebMethod
88     public void updateNetwork(@WebParam(name = "cloudSiteId") @XmlElement(required = true) String cloudSiteId,
89             @WebParam(name = "tenantId") @XmlElement(required = true) String tenantId,
90             @WebParam(name = "networkType") @XmlElement(required = true) String networkType,
91             @WebParam(name = "modelCustomizationUuid") String modelCustomizationUuid,
92             @WebParam(name = "networkId") @XmlElement(required = true) String networkId,
93             @WebParam(name = "networkName") @XmlElement(required = true) String networkName,
94             @WebParam(name = "physicalNetworkName") @XmlElement(required = true) String physicalNetworkName,
95             @WebParam(name = "vlans") @XmlElement(required = true) List<Integer> vlans,
96             @WebParam(name = "shared") String shared, @WebParam(name = "external") String external,
97             @WebParam(name = "subnets") List<Subnet> subnets,
98             @WebParam(name = "networkParams") Map<String, String> networkParams,
99             @WebParam(name = "request") MsoRequest msoRequest,
100             @WebParam(name = "subnetIdMap", mode = Mode.OUT) Holder<Map<String, String>> subnetIdMap,
101             @WebParam(name = "rollback", mode = Mode.OUT) Holder<NetworkRollback> rollback) throws NetworkException;
102
103     @WebMethod
104     public void updateNetworkContrail(@WebParam(name = "cloudSiteId") @XmlElement(required = true) String cloudSiteId,
105             @WebParam(name = "tenantId") @XmlElement(required = true) String tenantId,
106             @WebParam(name = "networkType") @XmlElement(required = true) String networkType,
107             @WebParam(name = "modelCustomizationUuid") String modelCustomizationUuid,
108             @WebParam(name = "networkId") @XmlElement(required = true) String networkId,
109             @WebParam(name = "networkName") @XmlElement(required = true) String networkName,
110             @WebParam(name = "routeTargets") List<RouteTarget> routeTargets, @WebParam(name = "shared") String shared,
111             @WebParam(name = "external") String external, @WebParam(name = "subnets") List<Subnet> subnets,
112             @WebParam(name = "networkParams") Map<String, String> networkParams,
113             @WebParam(name = "policyFqdns") List<String> policyFqdns,
114             @WebParam(name = "routeTableFqdns") List<String> routeTableFqdns,
115             @WebParam(name = "request") MsoRequest msoRequest,
116             @WebParam(name = "subnetIdMap", mode = Mode.OUT) Holder<Map<String, String>> subnetIdMap,
117             @WebParam(name = "rollback", mode = Mode.OUT) Holder<NetworkRollback> rollback) throws NetworkException;
118
119     /**
120      * TODO: This is the "Add VLAN" Web Service Endpoint definition. This webservice adds a VLAN to a network. This
121      * service assumes that PO supports querying the current vlans in real time. Otherwise, the caller must have the
122      * complete list and should use updateVlans instead.
123      * 
124      * @WebMethod public void addVlan (@WebParam(name="cloudSiteId") @XmlElement(required=true) String cloudSiteId,
125      * @WebParam(name="tenantId") @XmlElement(required=true) String tenantId,
126      * @WebParam(name="networkType") @XmlElement(required=true) String networkType,
127      * @WebParam(name="networkId") @XmlElement(required=true) String networkId,
128      * @WebParam(name="physicalNetworkName") @XmlElement(required=true) String physicalNetworkName,
129      * @WebParam(name="vlan") @XmlElement(required=true) Integer vlan,
130      * @WebParam(name="rollback", mode=Mode.OUT) Holder<NetworkRollback> rollback ) throws NetworkException;
131      */
132
133     /**
134      * TODO: This is the "Remove VLAN" Web Service Endpoint definition. This webservice removes a VLAN from a network.
135      * This service assumes that PO supports querying the current vlans in real time. Otherwise, the caller must have
136      * the complete list and should use updateVlans instead.
137      *
138      * This service returns an indicator (noMoreVLans) if the VLAN that was removed was the last one on the network.
139      *
140      * It is not clear that Rollback will work for delete. The network can be recreated from the NetworkRollback object,
141      * but the network ID (and stack ID for Heat-based orchestration) will be different. The caller will need to know to
142      * update these identifiers in the inventory DB (A&AI).
143      * 
144      * @WebMethod public void removeVlan (@WebParam(name="cloudSiteId") @XmlElement(required=true) String cloudSiteId,
145      * @WebParam(name="tenantId") @XmlElement(required=true) String tenantId,
146      * @WebParam(name="networkType") @XmlElement(required=true) String networkType,
147      * @WebParam(name="networkId") @XmlElement(required=true) String networkId,
148      * @WebParam(name="physicalNetworkName") @XmlElement(required=true) String physicalNetworkName,
149      * @WebParam(name="vlan") @XmlElement(required=true) Integer vlan,
150      * @WebParam(name="noMoreVlans", mode=Mode.OUT) Holder<Boolean> noMoreVlans,
151      * @WebParam(name="rollback", mode=Mode.OUT) Holder<NetworkRollback> rollback ) throws NetworkException;
152      */
153
154     /**
155      * This is the "Query Network" Web Service Endpoint definition. TODO: Should this just return the NetworkInfo
156      * complete structure?
157      */
158     @WebMethod
159     public void queryNetwork(@WebParam(name = "cloudSiteId") @XmlElement(required = true) String cloudSiteId,
160             @WebParam(name = "tenantId") @XmlElement(required = true) String tenantId,
161             @WebParam(name = "networkNameOrId") @XmlElement(required = true) String networkNameOrId,
162             @WebParam(name = "request") MsoRequest msoRequest,
163             @WebParam(name = "networkExists", mode = Mode.OUT) Holder<Boolean> networkExists,
164             @WebParam(name = "networkId", mode = Mode.OUT) Holder<String> networkId,
165             @WebParam(name = "neutronNetworkId", mode = Mode.OUT) Holder<String> neutronNetworkId,
166             @WebParam(name = "status", mode = Mode.OUT) Holder<NetworkStatus> status,
167             @WebParam(name = "vlans", mode = Mode.OUT) Holder<List<Integer>> vlans,
168             @WebParam(name = "subnetIdMap", mode = Mode.OUT) Holder<Map<String, String>> subnetIdMap)
169             throws NetworkException;
170
171     @WebMethod
172     public void queryNetworkContrail(@WebParam(name = "cloudSiteId") @XmlElement(required = true) String cloudSiteId,
173             @WebParam(name = "tenantId") @XmlElement(required = true) String tenantId,
174             @WebParam(name = "networkNameOrId") @XmlElement(required = true) String networkNameOrId,
175             @WebParam(name = "request") MsoRequest msoRequest,
176             @WebParam(name = "networkExists", mode = Mode.OUT) Holder<Boolean> networkExists,
177             @WebParam(name = "networkId", mode = Mode.OUT) Holder<String> networkId,
178             @WebParam(name = "neutronNetworkId", mode = Mode.OUT) Holder<String> neutronNetworkId,
179             @WebParam(name = "status", mode = Mode.OUT) Holder<NetworkStatus> status,
180             @WebParam(name = "routeTargets", mode = Mode.OUT) Holder<List<RouteTarget>> routeTargets,
181             @WebParam(name = "subnetIdMap", mode = Mode.OUT) Holder<Map<String, String>> subnetIdMap)
182             throws NetworkException;
183
184     /**
185      * This is the "Delete Network" Web Service endpoint definition.
186      */
187     @WebMethod
188     public void deleteNetwork(@WebParam(name = "cloudSiteId") @XmlElement(required = true) String cloudSiteId,
189             @WebParam(name = "tenantId") @XmlElement(required = true) String tenantId,
190             @WebParam(name = "networkType") @XmlElement(required = true) String networkType,
191             @WebParam(name = "modelCustomizationUuid") String modelCustomizationUuid,
192             @WebParam(name = "networkId") @XmlElement(required = true) String networkId,
193             @WebParam(name = "request") MsoRequest msoRequest,
194             @WebParam(name = "networkDeleted", mode = Mode.OUT) Holder<Boolean> networkDeleted) throws NetworkException;
195
196     /**
197      * This is the "Rollback Network" Web Service endpoint definition.
198      */
199     @WebMethod
200     public void rollbackNetwork(@WebParam(name = "rollback") @XmlElement(required = true) NetworkRollback rollback)
201             throws NetworkException;
202
203     @WebMethod
204     public void healthCheck();
205 }