807f3bdb9dcaee883104ec29ba2ada95b76924c6
[so.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2019 Nordix Foundation.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.so.adapters.vnfmadapter.extclients.aai;
22
23 import org.onap.aai.domain.yang.*;
24 import org.onap.vnfmadapter.v1.model.Tenant;
25 import java.util.List;
26
27 /**
28  * Provides methods for invoking REST calls to AAI.
29  */
30 public interface AaiServiceProvider {
31
32     /**
33      * Invoke a get request for a generic VNF.
34      *
35      * @param vnfId the VNF id
36      * @return the generic VNF
37      */
38     GenericVnf invokeGetGenericVnf(final String vnfId);
39
40     /**
41      * Invoke a query for a generic VNF with the given selfLink
42      *
43      * @param selfLink the selfLink
44      * @return the matching generic vnfs
45      */
46     List<GenericVnf> invokeQueryGenericVnf(final String selfLink);
47
48     /**
49      * Invoke a GET request for the VNFMs.
50      *
51      * @return the VNFMs
52      */
53     EsrVnfmList invokeGetVnfms();
54
55     /**
56      * Invoke a GET request for the esr system info list for a VNFM.
57      *
58      * @return the esr system info list for the VNFM
59      */
60     EsrSystemInfoList invokeGetVnfmEsrSystemInfoList(final String vnfmId);
61
62     /**
63      * Invoke a GET request for the a VNFM.
64      *
65      * @param vnfmId the ID of the VNFM
66      * @return the VNFM
67      */
68     EsrVnfm invokeGetVnfm(final String vnfmId);
69
70     /**
71      * Invoke a PUT request for a generic vnf.
72      *
73      * @param vnf the generic vnf
74      * @return
75      */
76     void invokePutGenericVnf(GenericVnf vnf);
77
78     /**
79      * Invoke a PUT request for a vserver.
80      *
81      * @param cloudOwner the cloud owner
82      * @param cloudRegion the cloud region
83      * @param tenantId the ID of the tenant
84      * @param vserver the vserver
85      * @return
86      */
87     void invokePutVserver(final String cloudOwner, final String cloudRegion, final String tenantId,
88             final Vserver vserver);
89
90     /**
91      * Invoke a DELETE request for a vserver.
92      *
93      * @param cloudOwner the cloud owner
94      * @param cloudRegion the cloud region
95      * @param tenantId the ID of the tenant
96      * @param vserver the ID of the vserver
97      * @return
98      */
99     void invokeDeleteVserver(final String cloudOwner, final String cloudRegion, final String tenantId,
100             final String vserverId);
101
102     /**
103      * Invoke a GET request for the a tenant.
104      *
105      * @param cloudOwner the cloud owner
106      * @param cloudRegion the cloud region
107      * @param tenantId the ID of the tenant
108      * @return the tenant
109      */
110     Tenant invokeGetTenant(final String cloudOwner, final String cloudRegion, final String tenantId);
111
112     /**
113      * Invoke a GET request for the esr system info list for a cloud region.
114      *
115      * @param cloudOwner the cloud owner
116      * @param cloudRegion the cloud region
117      * @return the esr system info list for the VNFM
118      */
119     EsrSystemInfoList invokeGetCloudRegionEsrSystemInfoList(final String cloudOwner, final String cloudRegion);
120
121 }