2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.vid.model.serviceInstantiation;
23 import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
25 import com.fasterxml.jackson.annotation.JsonAlias;
26 import com.fasterxml.jackson.annotation.JsonInclude;
27 import com.fasterxml.jackson.annotation.JsonProperty;
28 import java.util.Collection;
29 import java.util.Collections;
30 import java.util.List;
32 import javax.annotation.Nullable;
33 import org.onap.vid.job.JobAdapter;
34 import org.onap.vid.job.JobType;
35 import org.onap.vid.mso.model.ModelInfo;
36 import org.onap.vid.mso.model.ServiceInstantiationRequestDetails.UserParamNameAndValue;
41 @JsonInclude(NON_NULL)
42 public class VfModule extends BaseResource implements JobAdapter.AsyncJobRequest {
44 @JsonInclude(NON_NULL) @JsonProperty("volumeGroupName") private final String volumeGroupInstanceName;
45 @JsonInclude(NON_NULL) @JsonProperty("sdncPreLoad") private Boolean usePreload;
46 private List<UserParamNameAndValue> supplementaryParams;
48 @JsonInclude(NON_NULL)
49 private final Boolean retainVolumeGroups;
51 @JsonInclude(NON_NULL)
52 private Boolean retainAssignments;
54 public VfModule(@JsonProperty("modelInfo") ModelInfo modelInfo,
55 @JsonProperty("instanceName") String instanceName,
56 @JsonProperty("volumeGroupName") @JsonAlias("volumeGroupInstanceName") String volumeGroupInstanceName,
57 @JsonProperty("action") String action,
58 @JsonProperty("lcpCloudRegionId") String lcpCloudRegionId,
59 @JsonProperty("legacyRegion") String legacyRegion,
60 @JsonProperty("tenantId") String tenantId,
61 @JsonProperty("instanceParams") List<Map<String, String>> instanceParams,
62 @JsonProperty("supplementaryFileContent") List<UserParamNameAndValue> supplementaryParams,
63 @JsonProperty("rollbackOnFailure") boolean rollbackOnFailure,
64 @JsonProperty("sdncPreLoad") @JsonAlias("usePreload") Boolean usePreload,
65 @JsonProperty("instanceId") String instanceId,
66 @JsonProperty("trackById") String trackById,
67 @JsonProperty("isFailed") Boolean isFailed,
68 @JsonProperty("statusMessage") String statusMessage,
69 @Nullable @JsonProperty("retainAssignments") Boolean retainAssignments,
70 @Nullable @JsonProperty("retainVolumeGroups") Boolean retainVolumeGroups,
71 @JsonProperty("position") Integer position) {
72 super(modelInfo, instanceName, action, lcpCloudRegionId, legacyRegion, tenantId, instanceParams, rollbackOnFailure, instanceId, trackById, isFailed, statusMessage,
74 this.volumeGroupInstanceName = volumeGroupInstanceName;
75 this.usePreload = usePreload;
76 this.supplementaryParams = supplementaryParams;
77 this.retainAssignments = retainAssignments;
78 this.retainVolumeGroups = retainVolumeGroups;
81 public String getVolumeGroupInstanceName() {
82 return volumeGroupInstanceName;
85 public Boolean isUsePreload() {
90 public List<UserParamNameAndValue> getSupplementaryParams() {
91 return supplementaryParams;
95 protected String getModelType() {
100 public Collection<BaseResource> getChildren() {
101 return Collections.emptyList();
105 public JobType getJobType() {
106 return JobType.VfmoduleInstantiation;
110 public Boolean isRetainAssignments() {
111 return retainAssignments;
115 public Boolean isRetainVolumeGroups() {
116 return retainVolumeGroups;
119 public VfModule cloneWith(ModelInfo modelInfo) {
122 this.getInstanceName(),
123 this.getVolumeGroupInstanceName(),
124 this.getAction().toString(),
125 this.getLcpCloudRegionId(),
126 this.getLcpCloudRegionId(),
128 this.getInstanceParams(),
129 this.getSupplementaryParams(),
130 this.isRollbackOnFailure(),
132 this.getInstanceId(),
135 this.getStatusMessage(),
136 this.isRetainAssignments(),
137 this.isRetainVolumeGroups(),