Async MSO error visibility: let open "retry" from Audit-info
[vid.git] / vid-app-common / src / main / java / org / onap / vid / model / serviceInstantiation / VfModule.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * VID
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
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
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=========================================================
19  */
20
21 package org.onap.vid.model.serviceInstantiation;
22
23 import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
24
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;
31 import java.util.Map;
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;
37
38 /**
39  * The Class VfModule.
40  */
41 @JsonInclude(NON_NULL)
42 public class VfModule extends BaseResource implements JobAdapter.AsyncJobRequest {
43
44         @JsonInclude(NON_NULL) @JsonProperty("volumeGroupName") private final String volumeGroupInstanceName;
45         @JsonInclude(NON_NULL) @JsonProperty("sdncPreLoad") private Boolean usePreload;
46         private List<UserParamNameAndValue> supplementaryParams;
47
48         @JsonInclude(NON_NULL)
49         private final Boolean retainVolumeGroups;
50
51         @JsonInclude(NON_NULL)
52         private Boolean retainAssignments;
53
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,
73                         position);
74                 this.volumeGroupInstanceName = volumeGroupInstanceName;
75                 this.usePreload = usePreload;
76                 this.supplementaryParams = supplementaryParams;
77                 this.retainAssignments = retainAssignments;
78                 this.retainVolumeGroups = retainVolumeGroups;
79         }
80
81         public String getVolumeGroupInstanceName() {
82                 return volumeGroupInstanceName;
83         }
84
85         public Boolean isUsePreload() {
86
87                 return usePreload;
88         }
89
90         public List<UserParamNameAndValue> getSupplementaryParams() {
91                 return supplementaryParams;
92         }
93
94         @Override
95         protected String getModelType() {
96                 return "vfModule";
97         }
98
99         @Override
100         public Collection<BaseResource> getChildren() {
101                 return Collections.emptyList();
102         }
103
104         @Override
105         public JobType getJobType() {
106                 return JobType.VfmoduleInstantiation;
107         }
108
109         @Nullable
110         public Boolean isRetainAssignments() {
111                 return retainAssignments;
112         }
113
114         @Nullable
115         public Boolean isRetainVolumeGroups() {
116                 return retainVolumeGroups;
117         }
118
119         public VfModule cloneWith(ModelInfo modelInfo) {
120                 return new VfModule(
121                                 modelInfo,
122                                 this.getInstanceName(),
123                                 this.getVolumeGroupInstanceName(),
124                                 this.getAction().toString(),
125                                 this.getLcpCloudRegionId(),
126                                 this.getLcpCloudRegionId(),
127                                 this.getTenantId(),
128                                 this.getInstanceParams(),
129                                 this.getSupplementaryParams(),
130                                 this.isRollbackOnFailure(),
131                                 this.isUsePreload(),
132                                 this.getInstanceId(),
133                                 this.getTrackById(),
134                                 this.getIsFailed(),
135                                 this.getStatusMessage(),
136                                 this.isRetainAssignments(),
137                                 this.isRetainVolumeGroups(),
138                                 this.getPosition());
139         }
140 }