aboutsummaryrefslogtreecommitdiffstats
path: root/so-etsi-sol003-adapter-lcm/so-etsi-sol003-adapter-lcm-service/src/main/java/org/onap/so/adapters/etsisol003adapter/lcm/extclients/aai/AaiServiceProvider.java
blob: 71c058117176380cf59779f988bd15e4fee0a9ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
/*-
 * ============LICENSE_START=======================================================
 *  Copyright (C) 2019 Nordix Foundation.
 * ================================================================================
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * SPDX-License-Identifier: Apache-2.0
 * ============LICENSE_END=========================================================
 */

package org.onap.so.adapters.etsisol003adapter.lcm.extclients.aai;

import org.onap.aai.domain.yang.EsrSystemInfoList;
import org.onap.aai.domain.yang.EsrVnfm;
import org.onap.aai.domain.yang.EsrVnfmList;
import org.onap.aai.domain.yang.GenericVnf;
import org.onap.aai.domain.yang.GenericVnfs;
import org.onap.aai.domain.yang.Vserver;
import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.Tenant;

/**
 * Provides methods for invoking REST calls to AAI.
 */
public interface AaiServiceProvider {

    /**
     * Invoke a get request for a generic VNF.
     *
     * @param vnfId the VNF id
     * @return the generic VNF
     */
    GenericVnf invokeGetGenericVnf(final String vnfId);

    /**
     * Invoke a query for a generic VNF with the given selfLink
     *
     * @param selfLink the selfLink
     * @return the matching generic vnfs
     */
    GenericVnfs invokeQueryGenericVnf(final String selfLink);

    /**
     * Invoke a GET request for the VNFMs.
     *
     * @return the VNFMs
     */
    EsrVnfmList invokeGetVnfms();

    /**
     * Invoke a GET request for the esr system info list for a VNFM.
     *
     * @return the esr system info list for the VNFM
     */
    EsrSystemInfoList invokeGetVnfmEsrSystemInfoList(final String vnfmId);

    /**
     * Invoke a GET request for the a VNFM.
     *
     * @param vnfmId the ID of the VNFM
     * @return the VNFM
     */
    EsrVnfm invokeGetVnfm(final String vnfmId);

    /**
     * Invoke a PATCH request for a generic vnf.
     *
     * @param vnf the generic vnf
     * @return
     */
    void invokePatchGenericVnf(GenericVnf vnf);

    /**
     * Invoke a PUT request for a relationship from a generic vnf to a VNFM.
     *
     * @param vnf the generic vnf
     * @param vnfmId the ID of the VNFM
     * @return
     */
    void invokePutGenericVnfToVnfmRelationship(GenericVnf vnf, final String vnfmId);


    /**
     * Invoke a PUT request for a vserver.
     *
     * @param cloudOwner the cloud owner
     * @param cloudRegion the cloud region
     * @param tenantId the ID of the tenant
     * @param vserver the vserver
     * @return
     */
    void invokePutVserver(final String cloudOwner, final String cloudRegion, final String tenantId,
                          final Vserver vserver);

    /**
     * Invoke a PUT request for a relationship from a vserver to a generic vnf.
     *
     * @param cloudOwner the cloud owner
     * @param cloudRegion the cloud region the vserver is deployed on
     * @param tenantId the ID of the tenant the vserver is deployed on
     * @param vserver the vserver
     * @param vnfId the ID of the generic vnf
     * @return
     */
    void invokePutVserverToVnfRelationship(final String cloudOwner, final String cloudRegion, final String tenantId,
                                           final Vserver vserver, final String vnfId);

    /**
     * Invoke a DELETE request for a vserver.
     *
     * @param cloudOwner the cloud owner
     * @param cloudRegion the cloud region
     * @param tenantId the ID of the tenant
     * @param vserverId the ID of the vserver
     * @return
     */
    void invokeDeleteVserver(final String cloudOwner, final String cloudRegion, final String tenantId,
                             final String vserverId);

    /**
     * Invoke a GET request for the a tenant.
     *
     * @param cloudOwner the cloud owner
     * @param cloudRegion the cloud region
     * @param tenantId the ID of the tenant
     * @return the tenant
     */
    Tenant invokeGetTenant(final String cloudOwner, final String cloudRegion, final String tenantId);

    /**
     * Invoke a GET request for the esr system info list for a cloud region.
     *
     * @param cloudOwner the cloud owner
     * @param cloudRegion the cloud region
     * @return the esr system info list for the VNFM
     */
    EsrSystemInfoList invokeGetCloudRegionEsrSystemInfoList(final String cloudOwner, final String cloudRegion);

}