From c72d565bb58226b20625b2bce5f0019046bee649 Mon Sep 17 00:00:00 2001 From: "Sonsino, Ofir (os0695)" Date: Tue, 10 Jul 2018 14:20:54 +0300 Subject: Merge 1806 code of vid-common Change-Id: I75d52abed4a24dfe3827d79edc4a2938726aa87a Issue-ID: VID-208 Signed-off-by: Sonsino, Ofir (os0695) --- .../model/ServiceInstantiationRequestDetails.java | 165 +++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 vid-app-common/src/main/java/org/onap/vid/mso/model/ServiceInstantiationRequestDetails.java (limited to 'vid-app-common/src/main/java/org/onap/vid/mso/model') diff --git a/vid-app-common/src/main/java/org/onap/vid/mso/model/ServiceInstantiationRequestDetails.java b/vid-app-common/src/main/java/org/onap/vid/mso/model/ServiceInstantiationRequestDetails.java new file mode 100644 index 000000000..1a54b74cb --- /dev/null +++ b/vid-app-common/src/main/java/org/onap/vid/mso/model/ServiceInstantiationRequestDetails.java @@ -0,0 +1,165 @@ +package org.onap.vid.mso.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; +import org.onap.vid.domain.mso.CloudConfiguration; +import org.onap.vid.domain.mso.ModelInfo; +import org.onap.vid.domain.mso.SubscriberInfo; +import org.onap.vid.model.serviceInstantiation.VfModule; + +import java.util.List; +import java.util.Map; + +import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY; +import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL; + +public class ServiceInstantiationRequestDetails { + + @JsonProperty("modelInfo") + private ModelInfo modelInfo; + + @JsonProperty("owningEntity") + private ServiceInstantiationOwningEntity owningEntity; + + @JsonProperty("subscriberInfo") + private SubscriberInfo subscriberInfo; + + @JsonProperty("project") + private Project project; + + @JsonProperty("requestParameters") + private RequestParameters requestParameters; + + @JsonProperty("requestInfo") + private RequestInfo requestInfo; + + public ServiceInstantiationRequestDetails(@JsonProperty(value = "modelInfo", required = true) ModelInfo modelInfo, + @JsonProperty(value = "owningEntity", required = true) ServiceInstantiationOwningEntity owningEntity, + @JsonProperty(value = "subscriberInfo", required = true) SubscriberInfo subscriberInfo, + @JsonProperty(value = "project", required = true) Project project, + @JsonProperty(value = "requestInfo", required = true) RequestInfo requestInfo, + @JsonProperty(value = "requestParameters", required = true) RequestParameters requestParameters) { + this.modelInfo = modelInfo; + this.owningEntity = owningEntity; + this.subscriberInfo = subscriberInfo; + this.project = project; + this.requestInfo = requestInfo; + this.requestParameters = requestParameters; + } + + public static class ServiceInstantiationOwningEntity{ + public final String owningEntityId; + public final String owningEntityName; + + public ServiceInstantiationOwningEntity(String owningEntityId, String owningEntityName) { + this.owningEntityId = owningEntityId; + this.owningEntityName = owningEntityName; + } + } + + public static class RequestInfo { + + @JsonInclude(NON_NULL) public final String instanceName; + public final String productFamilyId; + public final String source; + public final boolean suppressRollback; + public final String requestorId; + + public RequestInfo(String instanceName, String productFamilyId, String source, boolean rollbackOnFailure, String requestorId) { + this.instanceName = instanceName; + this.productFamilyId = productFamilyId; + this.source = source; + this.requestorId = requestorId; + // in the FE we are asking for "RollbackOnFailure" but to MSO we are passing the negative value "suppressRollback" + this.suppressRollback = !rollbackOnFailure; + } + } + + public static class Project{ + public final String projectName; + + public Project(String projectName) { + this.projectName = projectName; + } + } + + public static class RequestParameters { + + public final String subscriptionServiceType; + public final boolean aLaCarte; + public final List userParams; + + public RequestParameters(String subscriptionServiceType, boolean aLaCarte, List userParams) { + this.subscriptionServiceType = subscriptionServiceType; + this.aLaCarte = aLaCarte; + this.userParams = userParams; + } + } + + @JsonTypeName("service") + @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) + public static class ServiceInstantiationService{ + public ModelInfo modelInfo = new ModelInfo(); + @JsonInclude(NON_NULL) public String instanceName; + public List> instanceParams; + public ServiceInstantiationVnfList resources; + + public ServiceInstantiationService (ModelInfo modelInfo, String instanceName, List> instanceParams, ServiceInstantiationVnfList vnfs){ + this.modelInfo.setModelType(modelInfo.getModelType()); + this.modelInfo.setModelName(modelInfo.getModelName()); + this.modelInfo.setModelVersionId(modelInfo.getModelVersionId()); + this.instanceName = instanceName; + this.instanceParams = instanceParams; + this.resources = vnfs; + } + } + + public static class ServiceInstantiationVnfList{ + public final List vnfs; + + public ServiceInstantiationVnfList(List vnfList) { + this.vnfs = vnfList; + } + } + + public static class ServiceInstantiationVnf{ + public final ModelInfo modelInfo; + public final CloudConfiguration cloudConfiguration; + public final Platform platform; + public final LineOfBusiness lineOfBusiness; + public final String productFamilyId; + public final List> instanceParams; + @JsonInclude(NON_EMPTY) public final List vfModules; + @JsonInclude(NON_NULL) public final String instanceName; + + public ServiceInstantiationVnf(ModelInfo modelInfo, CloudConfiguration cloudConfiguration, String platform, String lineOfBusiness, String productFamilyId, List> instanceParams, List vfModules, String instanceName) { + this.modelInfo = modelInfo; + this.cloudConfiguration = cloudConfiguration; + this.platform = new Platform(platform); + this.lineOfBusiness = new LineOfBusiness(lineOfBusiness); + this.productFamilyId = productFamilyId; + this.instanceParams = instanceParams; + this.vfModules = vfModules; + this.instanceName = instanceName; + } + } + + public static class Platform{ + public final String platformName; + + public Platform(String platformName) { + this.platformName = platformName; + } + } + + public static class LineOfBusiness{ + public final String lineOfBusinessName; + + public LineOfBusiness(String lineOfBusiness) { + this.lineOfBusinessName = lineOfBusiness; + } + } +} + -- cgit 1.2.3-korg