Merge "Merge from ECOMP's repository"
[vid.git] / vid-app-common / src / main / java / org / onap / vid / model / serviceInstantiation / ServiceInstantiation.java
1 package org.onap.vid.model.serviceInstantiation;
2
3 import com.fasterxml.jackson.annotation.JsonProperty;
4 import org.onap.vid.job.JobAdapter;
5 import org.onap.vid.mso.model.ModelInfo;
6
7 import java.util.Collections;
8 import java.util.List;
9 import java.util.Map;
10
11 public class ServiceInstantiation extends BaseResource implements JobAdapter.AsyncJobRequest {
12
13     private final String owningEntityId;
14
15     private final String owningEntityName;
16
17     private final String projectName;
18
19     private final String subscriberName;
20
21     private final String globalSubscriberId;
22
23     private final String productFamilyId;
24
25     private final String subscriptionServiceType;
26
27     private final String tenantName;
28
29     private final String aicZoneId;
30
31     private final String aicZoneName;
32
33     private final Map<String, Vnf> vnfs;
34
35     private final Map<String, Network> networks;
36
37     private final Map<String, InstanceGroup> vnfGroups;
38
39     private final boolean isPause;
40
41     private final int bulkSize;
42
43     private final String testApi;
44
45     private final boolean isALaCarte;
46
47     public ServiceInstantiation(@JsonProperty("modelInfo") ModelInfo modelInfo,
48                                 @JsonProperty("owningEntityId") String owningEntityId,
49                                 @JsonProperty("owningEntityName") String owningEntityName,
50                                 @JsonProperty("projectName") String projectName,
51                                 @JsonProperty("globalSubscriberId") String globalSubscriberId,
52                                 @JsonProperty("subscriberName") String subscriberName,
53                                 @JsonProperty("productFamilyId") String productFamilyId,
54                                 @JsonProperty("instanceName") String instanceName,
55                                 @JsonProperty("subscriptionServiceType") String subscriptionServiceType,
56                                 @JsonProperty("lcpCloudRegionId") String lcpCloudRegionId,
57                                 @JsonProperty("legacyRegion") String legacyRegion,
58                                 @JsonProperty("tenantId") String tenantId,
59                                 @JsonProperty("tenantName") String tenantName,
60                                 @JsonProperty("aicZoneId") String aicZoneId,
61                                 @JsonProperty("aicZoneName") String aicZoneName,
62                                 @JsonProperty("vnfs") Map<String, Vnf> vnfs,
63                                 @JsonProperty("networks") Map<String, Network> networks,
64                                 @JsonProperty("vnfGroups") Map<String, InstanceGroup> vnfGroups,
65                                 @JsonProperty("instanceParams") List<Map<String, String>> instanceParams,
66                                 @JsonProperty("pause") boolean isPause,
67                                 @JsonProperty("bulkSize") int bulkSize,
68                                 @JsonProperty("rollbackOnFailure") boolean rollbackOnFailure,
69                                 @JsonProperty("isALaCarte") boolean isALaCarte,
70                                 @JsonProperty("testApi") String testApi,
71                                 @JsonProperty("instanceId") String instanceId,
72                                 @JsonProperty("action") String action
73                                ) {
74         super(modelInfo, instanceName, action, lcpCloudRegionId, legacyRegion, tenantId, instanceParams, rollbackOnFailure, instanceId);
75         this.owningEntityId = owningEntityId;
76         this.owningEntityName = owningEntityName;
77         this.projectName = projectName;
78         this.globalSubscriberId = globalSubscriberId;
79         this.subscriberName = subscriberName;
80         this.productFamilyId = productFamilyId;
81         this.subscriptionServiceType = subscriptionServiceType;
82         this.tenantName = tenantName;
83         this.aicZoneId = aicZoneId;
84         this.aicZoneName = aicZoneName;
85         this.vnfs = vnfs;
86         this.networks = networks;
87         this.vnfGroups = vnfGroups;
88         this.isPause = isPause;
89         this.bulkSize = bulkSize;
90         this.isALaCarte = isALaCarte;
91         this.testApi = isALaCarte ? testApi : null;
92     }
93
94     public String getOwningEntityId() {
95         return owningEntityId;
96     }
97
98     public String getOwningEntityName() {
99         return owningEntityName;
100     }
101
102     public String getProjectName() {
103         return projectName;
104     }
105
106     public String getGlobalSubscriberId() {
107         return globalSubscriberId;
108     }
109
110     public String getSubscriberName() {
111         return subscriberName;
112     }
113
114     public String getProductFamilyId() {
115         return productFamilyId;
116     }
117
118     public String getSubscriptionServiceType() {
119         return subscriptionServiceType;
120     }
121
122     public String getTenantName() {
123         return tenantName;
124     }
125
126     public String getAicZoneId() {
127         return aicZoneId;
128     }
129
130     public String getAicZoneName() {
131         return aicZoneName;
132     }
133
134     public Map<String, Vnf> getVnfs() {
135         return vnfs == null ? Collections.emptyMap() : vnfs;
136     }
137
138     public Map<String, Network> getNetworks() {
139         return networks == null ? Collections.emptyMap() : networks;
140     }
141
142     public Map<String, InstanceGroup> getVnfGroups() {
143         return vnfGroups == null ? Collections.emptyMap() : vnfGroups;
144     }
145
146     public boolean isPause() {
147         return isPause;
148     }
149
150     public int getBulkSize() { return bulkSize; }
151
152     @Override
153     protected String getModelType() {
154         return "service";
155     }
156
157     @JsonProperty("isALaCarte")
158     public boolean isALaCarte() {
159         return isALaCarte;
160     }
161
162     public String getTestApi() {
163         return this.testApi;
164     }
165
166 }