1 package org.onap.vid.services;
3 import org.onap.vid.aai.model.ResourceType;
4 import org.onap.vid.changeManagement.RequestDetailsWrapper;
5 import org.onap.vid.job.Job;
6 import org.onap.vid.model.JobAuditStatus;
7 import org.onap.vid.model.ServiceInfo;
8 import org.onap.vid.model.serviceInstantiation.*;
9 import org.onap.vid.mso.model.*;
10 import org.onap.vid.mso.rest.AsyncRequestStatus;
12 import java.util.Arrays;
13 import java.util.List;
15 import java.util.UUID;
16 import java.util.function.Consumer;
18 public interface AsyncInstantiationBusinessLogic {
20 List<String> PARAMS_TO_IGNORE = Arrays.asList("vnf_name", "vf_module_name");
22 List<ServiceInfo> getAllServicesInfo();
24 List<UUID> pushBulkJob(ServiceInstantiation request, String userId);
26 RequestDetailsWrapper<ServiceInstantiationRequestDetails> generateMacroServiceInstantiationRequest(UUID uuid, ServiceInstantiation details, String optimisticUniqueServiceInstanceName, String userId);
28 RequestDetailsWrapper<ServiceInstantiationRequestDetails> generateALaCarteServiceInstantiationRequest(UUID uuid, ServiceInstantiation details, String optimisticUniqueServiceInstanceName, String userId);
30 RequestDetailsWrapper<ServiceDeletionRequestDetails> generateALaCarteServiceDeletionRequest(UUID uuid, ServiceInstantiation details, String userId);
32 RequestDetailsWrapper<VnfInstantiationRequestDetails> generateVnfInstantiationRequest(Vnf vnfDetails, ModelInfo serviceModelInfo, String serviceInstanceId, String userId);
34 RequestDetailsWrapper<VfModuleInstantiationRequestDetails> generateVfModuleInstantiationRequest(VfModule vfModuleDetails, ModelInfo serviceModelInfo, String serviceInstanceId, ModelInfo vnfModelInfo, String vnfInstanceId, String vgInstanceId, String userId);
36 RequestDetailsWrapper<VolumeGroupRequestDetails> generateVolumeGroupInstantiationRequest(VfModule vfModuleDetails, ModelInfo serviceModelInfo, String serviceInstanceId, ModelInfo vnfModelInfo, String vnfInstanceId, String userId);
38 RequestDetailsWrapper<NetworkInstantiationRequestDetails> generateNetworkInstantiationRequest(Network networkDetails, ModelInfo serviceModelInfo, String serviceInstanceId, String userId);
40 RequestDetailsWrapper<InstanceGroupInstantiationRequestDetails> generateInstanceGroupInstantiationRequest(InstanceGroup request, ModelInfo serviceModelInfo, String serviceInstanceId, String userId);
42 List<Map<String,String>> buildVnfInstanceParams(List<Map<String, String>> currentVnfInstanceParams, List<VfModuleMacro> vfModules);
44 String getServiceInstantiationPath(ServiceInstantiation serviceInstantiationRequest);
46 String getServiceDeletionPath(String serviceInstanceId);
48 String getVnfInstantiationPath(String serviceInstanceId);
50 String getNetworkInstantiationPath(String serviceInstanceId);
52 String getVfmoduleInstantiationPath(String serviceInstanceId, String vnfInstanceId);
54 String getVolumeGroupInstantiationPath(String serviceInstanceId, String vnfInstanceId);
56 String getInstanceGroupInstantiationPath();
58 String getInstanceGroupDeletePath(String instanceGroupId);
60 String getOrchestrationRequestsPath();
62 ServiceInfo getServiceInfoByJobId(UUID jobUUID);
64 List<JobAuditStatus> getAuditStatuses(UUID jobUUID, JobAuditStatus.SourceStatus source);
66 ServiceInfo updateServiceInfo(UUID jobUUID, Consumer<ServiceInfo> serviceUpdater);
68 ServiceInfo updateServiceInfoAndAuditStatus(UUID jobUuid, Job.JobStatus jobStatus);
70 void auditVidStatus(UUID jobUUID, Job.JobStatus jobStatus);
72 void auditMsoStatus(UUID jobUUID, AsyncRequestStatus.Request msoRequestStatus);
74 void auditMsoStatus(UUID jobUUID, String jobStatus, String requestId, String additionalInfo);
76 Job.JobStatus calcStatus(AsyncRequestStatus asyncRequestStatus);
78 void handleFailedInstantiation(UUID jobUUID);
80 void deleteJob(UUID jobId);
82 void hideServiceInfo(UUID jobUUID);
84 int getCounterForName(String name);
86 int getMaxRetriesGettingFreeNameFromAai();
88 void setMaxRetriesGettingFreeNameFromAai(int maxRetriesGettingFreeNameFromAai);
90 String getUniqueName(String name, ResourceType resourceType);