aboutsummaryrefslogtreecommitdiffstats
path: root/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIClient.java
blob: 3217139c1ae7ea37cd2b83d7e4222993f16894c0 (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
149
150
/*-
 * ============LICENSE_START=======================================================
 * openECOMP : SDN-C
 * ================================================================================
 * Copyright (C) 2017 AT&T Intellectual Property. All rights
 *             reserved.
 * ================================================================================
 * 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.
 * ============LICENSE_END=========================================================
 */

package org.openecomp.sdnc.sli.aai;

import java.net.URL;
import java.util.Map;

import org.openecomp.sdnc.sli.SvcLogicContext;
import org.openecomp.sdnc.sli.SvcLogicException;
import org.openecomp.sdnc.sli.SvcLogicJavaPlugin;
import org.openecomp.sdnc.sli.SvcLogicResource;
import org.openecomp.sdnc.sli.SvcLogicResource.QueryStatus;
import org.openecomp.sdnc.sli.aai.data.notify.NotifyEvent;
import org.openecomp.sdnc.sli.aai.data.v1507.VServer;
import org.openecomp.sdnc.sli.aai.update.Update;

import com.fasterxml.jackson.databind.ObjectMapper;

import org.openecomp.aai.inventory.v8.AvailabilityZone;
import org.openecomp.aai.inventory.v8.GenericVnf;
import org.openecomp.aai.inventory.v8.L3Network;
import org.openecomp.aai.inventory.v8.PInterface;
import org.openecomp.aai.inventory.v8.PhysicalLink;
import org.openecomp.aai.inventory.v8.Pserver;
import org.openecomp.aai.inventory.v8.SearchResults;
import org.openecomp.aai.inventory.v8.Service;
import org.openecomp.aai.inventory.v8.ServiceInstance;
import org.openecomp.aai.inventory.v8.Tenant;
import org.openecomp.aai.inventory.v8.Vserver;

public interface AAIClient extends SvcLogicResource, SvcLogicJavaPlugin {

	// Service Inteface
	public ServiceInstance requestServiceInterfaceData(String svc_instance_id) throws AAIServiceException;
	public ServiceInstance requestServiceInterfaceData(String customer_id, String service_type, String svc_instance_id) throws AAIServiceException;
	public boolean postServiceInterfaceData(String customer_id, String service_type, String svc_instance_id, ServiceInstance request)	throws AAIServiceException;
	public SearchResults requestServiceInstanceURL(String svc_instance_id) throws AAIServiceException;

	// VServers
	public Vserver requestVServerData(String tenant_id, String vserver_id, String cloudOwner, String cloudRegionId) throws AAIServiceException;
	public boolean postVServerData(String tenantId, String vserverId, String cloudOwner, String cloudRegionId, Vserver request) throws AAIServiceException;
	public boolean deleteVServerData(String tenant_id, String vserver_id, String cloudOwner, String cloudRegionId, String resourceVersion) throws AAIServiceException;

	public URL requestVserverURLNodeQuery(String vserver_name) throws AAIServiceException;
	public String getTenantIdFromVserverUrl(URL url);
	public String getCloudOwnerFromVserverUrl(URL url);
	public String getCloudRegionFromVserverUrl(URL url);
	public String getVServerIdFromVserverUrl(URL url, String tennantId);
	public Vserver requestVServerDataByURL(URL url) throws AAIServiceException;

    // --------------------------------- 1507 ---------------------------
	// Data Change
	public VServer  dataChangeRequestVServerData(URL url) throws AAIServiceException;

	public Pserver  dataChangeRequestPServerData(URL url) throws AAIServiceException;

	//Availability-Zone:
	public AvailabilityZone  dataChangeRequestAvailabilityZoneData(URL url) throws AAIServiceException;

	/* DELETE */
	public boolean dataChangeDeleteVServerData(URL url) throws AAIServiceException;

	public boolean dataChangeDeleteCtagPoolData(URL url) throws AAIServiceException;

	public boolean dataChangeDeleteVplsPeData(URL url) throws AAIServiceException;

	public boolean dataChangeDeleteVpeData(URL url) throws AAIServiceException;

	public boolean dataChangeDeleteDvsSwitchData(URL url) throws AAIServiceException;
	//OAM-Network:
	public boolean dataChangeDeleteOAMNetworkData(URL url) throws AAIServiceException;
	//Availability-Zone:
	public boolean dataChangeDeleteAvailabilityZoneData(URL url) throws AAIServiceException;
	//Complex:
	public boolean dataChangeDeleteComplexData(URL url) throws AAIServiceException;

	// ----------------- Release 1510 ----------------------
	//	// GenericVNF
	public GenericVnf requestGenericVnfData(String vnf_id) throws AAIServiceException;
	public boolean postGenericVnfData(String vnf_id, GenericVnf request) throws AAIServiceException;
	public boolean deleteGenericVnfData(String vnf_id, String resourceVersion) throws AAIServiceException;

	//	PInterface
	public PInterface requestPInterfaceData(String hostname, String interfaceName) throws AAIServiceException;
	public boolean postPInterfaceData(String hostname, String interfaceName, PInterface request) throws AAIServiceException;
	public boolean deletePInterfaceData(String hostname, String interfaceName, String resourceVersion) throws AAIServiceException;

	// Physical Link
	public PhysicalLink requestPhysicalLinkData(String vnf_id) throws AAIServiceException;
	public boolean postPhysicalLinkData(String vnf_id, PhysicalLink request) throws AAIServiceException;
	public boolean deletePhysicalLinkData(String vnf_id, String resourceVersion) throws AAIServiceException;

	// PServers
	public Pserver requestPServerData(String hostname) throws AAIServiceException;
	public boolean postPServerData(String hostname, Pserver server) throws AAIServiceException;
	public boolean deletePServerData(String hostname, String resourceVersion) throws AAIServiceException;

	// L3Networks
	public L3Network requestL3NetworkData(String networkId) throws AAIServiceException;
	public L3Network requestL3NetworkQueryByName(String networkId) throws AAIServiceException;
	public boolean postL3NetworkData(String networkId, L3Network request) throws AAIServiceException;
	public boolean deleteL3NetworkData(String networkId, String resourceVersion) throws AAIServiceException;

	// UBB Notify
	public boolean sendNotify(NotifyEvent event, String serviceInstanceId, String pathCode) throws AAIServiceException;

	// Services
	public Service requestServiceData(String serviceId) throws AAIServiceException;
	public boolean postServiceData(String serviceId, Service request) throws AAIServiceException;
	public boolean deleteServiceData(String serviceId, String resourceVersion) throws AAIServiceException;

	// Node Query - 1602
	public SearchResults requestNodeQuery(String type, String entityIdentifier, String entityName) throws AAIServiceException;
	public String requestDataByURL(URL url) throws AAIServiceException;
//	public Object requestDataInstanceNodeQuery(String type, String vnf_name) throws AAIServiceException;
	public GenericVnf requestGenericVnfeNodeQuery(String vnf_name) throws AAIServiceException;

	//	// tenant
	public Tenant requestTenantData(String tenant_id, String cloudOwner, String cloudRegionId) throws AAIServiceException;
	public Tenant requestTenantDataByName(String tenant_name, String cloudOwner, String cloudRegionId) throws AAIServiceException;
	public boolean postTenantData(String tenant_id, String cloudOwner, String cloudRegionId, Tenant request) throws AAIServiceException;
//	public boolean deleteGenericVnfData(String vnf_id, String resourceVersion) throws AAIServiceException;

	public boolean updateAnAIEntry(Update entity) throws AAIServiceException;

	public QueryStatus backup(Map<String, String> params, SvcLogicContext ctx) throws SvcLogicException;
	public QueryStatus restore(Map<String, String> params, SvcLogicContext ctx) throws SvcLogicException;

	public void logKeyError(String keys);
	ObjectMapper getObjectMapper();
}