vfmodule tenant and region are dictated by parent VNF values
[vid.git] / vid-app-common / src / main / java / org / onap / vid / model / serviceInstantiation / VfModule.java
index 41da85e..79ea7f1 100644 (file)
@@ -22,15 +22,18 @@ package org.onap.vid.model.serviceInstantiation;
 
 import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
 
+import com.fasterxml.jackson.annotation.JsonAlias;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import javax.annotation.Nullable;
 import org.onap.vid.job.JobAdapter;
 import org.onap.vid.job.JobType;
 import org.onap.vid.mso.model.ModelInfo;
+import org.onap.vid.mso.model.ServiceInstantiationRequestDetails.UserParamNameAndValue;
 
 /**
  * The Class VfModule.
@@ -38,31 +41,42 @@ import org.onap.vid.mso.model.ModelInfo;
 @JsonInclude(NON_NULL)
 public class VfModule extends BaseResource implements JobAdapter.AsyncJobRequest {
 
-       @JsonInclude(NON_NULL) private final String volumeGroupInstanceName;
-       @JsonInclude(NON_NULL) private Boolean usePreload;
-       private Map<String, String> supplementaryParams;
+       @JsonInclude(NON_NULL) @JsonProperty("volumeGroupName") private final String volumeGroupInstanceName;
+       @JsonInclude(NON_NULL) @JsonProperty("sdncPreLoad") private Boolean usePreload;
+       private List<UserParamNameAndValue> supplementaryParams;
+
+       @JsonInclude(NON_NULL)
+       private final Boolean retainVolumeGroups;
+
+       @JsonInclude(NON_NULL)
+       private Boolean retainAssignments;
 
        public VfModule(@JsonProperty("modelInfo") ModelInfo modelInfo,
                @JsonProperty("instanceName") String instanceName,
-               @JsonProperty("volumeGroupName") String volumeGroupInstanceName,
+               @JsonProperty("volumeGroupName") @JsonAlias("volumeGroupInstanceName") String volumeGroupInstanceName,
                @JsonProperty("action") String action,
                @JsonProperty("lcpCloudRegionId") String lcpCloudRegionId,
                @JsonProperty("legacyRegion") String legacyRegion,
                @JsonProperty("tenantId") String tenantId,
                @JsonProperty("instanceParams") List<Map<String, String>> instanceParams,
-               @JsonProperty("supplementaryFileContent") Map<String, String> supplementaryParams,
+               @JsonProperty("supplementaryFileContent") List<UserParamNameAndValue> supplementaryParams,
                @JsonProperty("rollbackOnFailure") boolean rollbackOnFailure,
-               @JsonProperty("sdncPreLoad") Boolean usePreload,
+               @JsonProperty("sdncPreLoad") @JsonAlias("usePreload") Boolean usePreload,
                @JsonProperty("instanceId") String instanceId,
                @JsonProperty("trackById") String trackById,
                @JsonProperty("isFailed") Boolean isFailed,
                @JsonProperty("statusMessage") String statusMessage,
-               @JsonProperty("position") Integer position) {
+               @Nullable @JsonProperty("retainAssignments") Boolean retainAssignments,
+               @Nullable @JsonProperty("retainVolumeGroups") Boolean retainVolumeGroups,
+               @JsonProperty("position") Integer position,
+               @JsonProperty("originalName") String originalName) {
                super(modelInfo, instanceName, action, lcpCloudRegionId, legacyRegion, tenantId, instanceParams, rollbackOnFailure, instanceId, trackById, isFailed, statusMessage,
-                       position);
+                       position, originalName);
                this.volumeGroupInstanceName = volumeGroupInstanceName;
                this.usePreload = usePreload;
                this.supplementaryParams = supplementaryParams;
+               this.retainAssignments = retainAssignments;
+               this.retainVolumeGroups = retainVolumeGroups;
        }
 
        public String getVolumeGroupInstanceName() {
@@ -74,7 +88,7 @@ public class VfModule extends BaseResource implements JobAdapter.AsyncJobRequest
                return usePreload;
        }
 
-       public Map<String, String> getSupplementaryParams() {
+       public List<UserParamNameAndValue> getSupplementaryParams() {
                return supplementaryParams;
        }
 
@@ -93,6 +107,16 @@ public class VfModule extends BaseResource implements JobAdapter.AsyncJobRequest
                return JobType.VfmoduleInstantiation;
        }
 
+       @Nullable
+       public Boolean isRetainAssignments() {
+               return retainAssignments;
+       }
+
+       @Nullable
+       public Boolean isRetainVolumeGroups() {
+               return retainVolumeGroups;
+       }
+
        public VfModule cloneWith(ModelInfo modelInfo) {
                return new VfModule(
                                modelInfo,
@@ -110,6 +134,34 @@ public class VfModule extends BaseResource implements JobAdapter.AsyncJobRequest
                                this.getTrackById(),
                                this.getIsFailed(),
                                this.getStatusMessage(),
-                               this.getPosition());
+                               this.isRetainAssignments(),
+                               this.isRetainVolumeGroups(),
+                               this.getPosition(),
+                           this.getOriginalName()
+               );
+       }
+
+       public VfModule cloneWith(String lcpCloudRegionId, String tenantId) {
+               return new VfModule(
+                       this.getModelInfo(),
+                       this.getInstanceName(),
+                       this.getVolumeGroupInstanceName(),
+                       this.getAction().toString(),
+                       lcpCloudRegionId,
+                       lcpCloudRegionId,
+                       tenantId,
+                       this.getInstanceParams(),
+                       this.getSupplementaryParams(),
+                       this.isRollbackOnFailure(),
+                       this.isUsePreload(),
+                       this.getInstanceId(),
+                       this.getTrackById(),
+                       this.getIsFailed(),
+                       this.getStatusMessage(),
+                       this.isRetainAssignments(),
+                       this.isRetainVolumeGroups(),
+                       this.getPosition(),
+                       this.getOriginalName()
+               );
        }
 }
\ No newline at end of file