Containerization feature of SO
[so.git] / adapters / mso-openstack-adapters / src / main / java / org / onap / so / adapters / vnf / MsoVnfAdapter.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.vnf;
22
23
24 import java.util.Map;
25
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
33 import org.onap.so.adapters.vnf.exceptions.VnfAlreadyExists;
34 import org.onap.so.adapters.vnf.exceptions.VnfException;
35 import org.onap.so.entity.MsoRequest;
36 import org.onap.so.openstack.beans.VnfRollback;
37 import org.onap.so.openstack.beans.VnfStatus;
38
39 @WebService (name="VnfAdapter", targetNamespace="http://org.onap.so/vnf")
40 public interface MsoVnfAdapter
41 {
42         /**
43          * This is the "Create VNF" Web Service Endpoint definition.
44          */
45         @WebMethod
46         public void createVnf (@WebParam(name="cloudSiteId") @XmlElement(required=true) String cloudSiteId,
47                                                         @WebParam(name="tenantId") @XmlElement(required=true) String tenantId,
48                                                         @WebParam(name="vnfType") @XmlElement(required=true) String vnfType,
49                                                         @WebParam(name="vnfVersion") @XmlElement(required=false) String vnfVersion,
50                                                         @WebParam(name="vnfName") @XmlElement(required=true) String vnfName,
51                                                         @WebParam(name="requestType") @XmlElement(required=false) String requestType,
52                                                         @WebParam(name="volumeGroupHeatStackId") @XmlElement(required=false) String volumeGroupHeatStackId,
53                                                         @WebParam(name="inputs") Map<String,String> inputs,
54                                                         @WebParam(name="failIfExists") Boolean failIfExists,
55                                                         @WebParam(name="backout") Boolean backout,
56                                                         @WebParam(name="enableBridge") Boolean enableBridge,
57                                                         @WebParam(name="request") MsoRequest msoRequest,
58                                                         @WebParam(name="vnfId", mode=Mode.OUT) Holder<String> vnfId,
59                                                         @WebParam(name="outputs", mode=Mode.OUT) Holder<Map<String,String>> outputs,
60                                                         @WebParam(name="rollback", mode=Mode.OUT) Holder<VnfRollback> rollback )
61                 throws VnfException, VnfAlreadyExists;
62
63         @WebMethod
64         public void updateVnf (@WebParam(name="cloudSiteId") @XmlElement(required=true) String cloudSiteId,
65                                                         @WebParam(name="tenantId") @XmlElement(required=true) String tenantId,
66                                                         @WebParam(name="vnfType") @XmlElement(required=true) String vnfType,
67                                                         @WebParam(name="vnfVersion") @XmlElement(required=false) String vnfVersion,
68                                                         @WebParam(name="vnfName") @XmlElement(required=true) String vnfName,
69                                                         @WebParam(name="requestType") @XmlElement(required=false) String requestType,
70                                                         @WebParam(name="volumeGroupHeatStackId") @XmlElement(required=false) String volumeGroupHeatStackId,
71                                                         @WebParam(name="inputs") Map<String,String> inputs,
72                                                         @WebParam(name="request") MsoRequest msoRequest,
73                                                         @WebParam(name="outputs", mode=Mode.OUT) Holder<Map<String,String>> outputs,
74                                                         @WebParam(name="rollback", mode=Mode.OUT) Holder<VnfRollback> rollback )
75                 throws VnfException;
76
77         @WebMethod
78         public void queryVnf (@WebParam(name="cloudSiteId") @XmlElement(required=true) String cloudSiteId,
79                                                         @WebParam(name="tenantId") @XmlElement(required=true) String tenantId,
80                                                         @WebParam(name="vnfName") @XmlElement(required=true) String vnfName,
81                                                         @WebParam(name="request") MsoRequest msoRequest,
82                                                         @WebParam(name="vnfExists", mode=Mode.OUT) Holder<Boolean> vnfExists,
83                                                         @WebParam(name="vnfId", mode=Mode.OUT) Holder<String> vnfId,
84                                                         @WebParam(name="status", mode=Mode.OUT) Holder<VnfStatus> status,
85                                                         @WebParam(name="outputs", mode=Mode.OUT) Holder<Map<String,String>> outputs )
86                 throws VnfException;
87
88         @WebMethod
89         public void deleteVnf (@WebParam(name="cloudSiteId") @XmlElement(required=true) String cloudSiteId,
90                                                         @WebParam(name="tenantId") @XmlElement(required=true) String tenantId,
91                                                         @WebParam(name="vnfName") @XmlElement(required=true) String vnfName,
92                                                         @WebParam(name="request") MsoRequest msoRequest)
93                 throws VnfException;
94
95
96         @WebMethod
97         public void rollbackVnf (@WebParam(name="rollback") @XmlElement(required=true) VnfRollback rollback)
98                 throws VnfException;
99
100         @WebMethod
101         public void createVfModule (@WebParam(name="cloudSiteId") @XmlElement(required=true) String cloudSiteId,
102                                                         @WebParam(name="tenantId") @XmlElement(required=true) String tenantId,
103                                                         @WebParam(name="vnfType") @XmlElement(required=true) String vnfType,
104                                                         @WebParam(name="vnfVersion") @XmlElement(required=false) String vnfVersion,
105                                                         @WebParam(name="vnfName") @XmlElement(required=true) String vnfName,
106                                                         @WebParam(name="requestType") @XmlElement(required=false) String requestType,
107                                                         @WebParam(name="volumeGroupHeatStackId") @XmlElement(required=false) String volumeGroupHeatStackId,
108                                                         @WebParam(name="baseVfHeatStackId") @XmlElement(required=false) String baseVfHeatStackId,
109                                                         @WebParam(name = "modelCustomizationUuid") @XmlElement(required = false) String modelCustomizationUuid,
110                                                         @WebParam(name="inputs") Map<String,String> inputs,
111                                                         @WebParam(name="failIfExists") Boolean failIfExists,
112                                                         @WebParam(name="backout") Boolean backout,
113                                                         @WebParam(name="enableBridge") Boolean enableBridge,
114                                                         @WebParam(name="request") MsoRequest msoRequest,
115                                                         @WebParam(name="vnfId", mode=Mode.OUT) Holder<String> vnfId,
116                                                         @WebParam(name="outputs", mode=Mode.OUT) Holder<Map<String,String>> outputs,
117                                                         @WebParam(name="rollback", mode=Mode.OUT) Holder<VnfRollback> rollback )
118                 throws VnfException, VnfAlreadyExists;
119
120         @WebMethod
121         public void deleteVfModule (@WebParam(name="cloudSiteId") @XmlElement(required=true) String cloudSiteId,
122                                                         @WebParam(name="tenantId") @XmlElement(required=true) String tenantId,
123                                                         @WebParam(name="vfName") @XmlElement(required=true) String vfName,
124                                                         @WebParam(name="request") MsoRequest msoRequest,
125                                                         @WebParam(name = "vfModuleOutputs", mode = Mode.OUT) Holder<Map<String, String>> vfModuleOutputs)
126                 throws VnfException;
127
128         @WebMethod
129         public void updateVfModule (@WebParam(name="cloudSiteId") @XmlElement(required=true) String cloudSiteId,
130                                                         @WebParam(name="tenantId") @XmlElement(required=true) String tenantId,
131                                                         @WebParam(name="vnfType") @XmlElement(required=true) String vnfType,
132                                                         @WebParam(name="vnfVersion") @XmlElement(required=false) String vnfVersion,
133                                                         @WebParam(name="vnfName") @XmlElement(required=true) String vnfName,
134                                                         @WebParam(name="requestType") @XmlElement(required=false) String requestType,
135                                                         @WebParam(name="volumeGroupHeatStackId") @XmlElement(required=false) String volumeGroupHeatStackId,
136                                                         @WebParam(name="baseVfHeatStackId") @XmlElement(required=false) String baseVfHeatStackId,
137                                                         @WebParam(name="vfModuleStackId") @XmlElement(required=false) String vfModuleStackId,
138                                                         @WebParam(name = "modelCustomizationUuid") @XmlElement(required = false) String modelCustomizationUuid,
139                                                         @WebParam(name="inputs") Map<String,String> inputs,
140                                                         @WebParam(name="request") MsoRequest msoRequest,
141                                                         @WebParam(name="outputs", mode=Mode.OUT) Holder<Map<String,String>> outputs,
142                                                         @WebParam(name="rollback", mode=Mode.OUT) Holder<VnfRollback> rollback )
143                 throws VnfException;
144
145         @WebMethod
146         public void healthCheck ();
147 }