+/*-
+ * ============LICENSE_START=======================================================
+ * VID
+ * ================================================================================
+ * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
package org.onap.vid.model.serviceInstantiation;
import com.fasterxml.jackson.annotation.JsonProperty;
-import org.onap.vid.domain.mso.ModelInfo;
+import org.apache.commons.lang3.ObjectUtils;
import org.onap.vid.job.JobAdapter;
+import org.onap.vid.job.JobType;
+import org.onap.vid.model.VidNotions;
+import org.onap.vid.mso.model.ModelInfo;
+import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
-public class ServiceInstantiation implements JobAdapter.AsyncJobRequest {
-
- private final ModelInfo modelInfo;
+public class ServiceInstantiation extends BaseResource implements JobAdapter.AsyncJobRequest {
private final String owningEntityId;
private final String productFamilyId;
- private final String instanceName;
-
- private final Boolean isUserProvidedNaming;
-
private final String subscriptionServiceType;
- private final String lcpCloudRegionId;
-
- private final String tenantId;
-
private final String tenantName;
private final String aicZoneId;
private final Map<String, Vnf> vnfs;
- private final List<Map<String,String>> instanceParams;
+ private final Map<String, Network> networks;
+
+ private final Map<String, InstanceGroup> vnfGroups;
private final boolean isPause;
- private final int bulkSize;
+ private int bulkSize;
+
+ private final String testApi;
- private final boolean rollbackOnFailure;
+ private final boolean isALaCarte;
+
+ private final VidNotions vidNotions;
+ private Map<String, VrfEntry> vrfs;
public ServiceInstantiation(@JsonProperty("modelInfo") ModelInfo modelInfo,
@JsonProperty("owningEntityId") String owningEntityId,
@JsonProperty("subscriberName") String subscriberName,
@JsonProperty("productFamilyId") String productFamilyId,
@JsonProperty("instanceName") String instanceName,
- @JsonProperty("isUserProvidedNaming") Boolean isUserProvidedNaming,
@JsonProperty("subscriptionServiceType") String subscriptionServiceType,
@JsonProperty("lcpCloudRegionId") String lcpCloudRegionId,
+ @JsonProperty("legacyRegion") String legacyRegion,
@JsonProperty("tenantId") String tenantId,
@JsonProperty("tenantName") String tenantName,
@JsonProperty("aicZoneId") String aicZoneId,
@JsonProperty("aicZoneName") String aicZoneName,
@JsonProperty("vnfs") Map<String, Vnf> vnfs,
+ @JsonProperty("networks") Map<String, Network> networks,
+ @JsonProperty("vnfGroups") Map<String, InstanceGroup> vnfGroups,
+ @JsonProperty("vrfs") Map<String, VrfEntry> vrfs,
@JsonProperty("instanceParams") List<Map<String, String>> instanceParams,
@JsonProperty("pause") boolean isPause,
@JsonProperty("bulkSize") int bulkSize,
- @JsonProperty("rollbackOnFailure") boolean rollbackOnFailure
- ) {
-
- this.modelInfo = modelInfo;
- this.modelInfo.setModelType("service");
+ @JsonProperty("rollbackOnFailure") boolean rollbackOnFailure,
+ @JsonProperty("isALaCarte") boolean isALaCarte,
+ @JsonProperty("testApi") String testApi,
+ @JsonProperty("instanceId") String instanceId,
+ @JsonProperty("action") String action,
+ @JsonProperty("trackById") String trackById,
+ @JsonProperty("isFailed") Boolean isFailed,
+ @JsonProperty("statusMessage") String statusMessage,
+ @JsonProperty("vidNotions") VidNotions vidNotions) {
+ super(modelInfo, instanceName, action, lcpCloudRegionId, legacyRegion, tenantId, instanceParams, rollbackOnFailure, instanceId, trackById, isFailed, statusMessage);
this.owningEntityId = owningEntityId;
this.owningEntityName = owningEntityName;
this.projectName = projectName;
this.globalSubscriberId = globalSubscriberId;
this.subscriberName = subscriberName;
this.productFamilyId = productFamilyId;
- this.instanceName = instanceName;
- this.isUserProvidedNaming = isUserProvidedNaming;
this.subscriptionServiceType = subscriptionServiceType;
- this.lcpCloudRegionId = lcpCloudRegionId;
- this.tenantId = tenantId;
this.tenantName = tenantName;
this.aicZoneId = aicZoneId;
this.aicZoneName = aicZoneName;
this.vnfs = vnfs;
- this.instanceParams = instanceParams;
+ this.networks = networks;
+ this.vnfGroups = vnfGroups;
+ this.vrfs = vrfs;
this.isPause = isPause;
this.bulkSize = bulkSize;
- this.rollbackOnFailure = rollbackOnFailure;
+ this.isALaCarte = isALaCarte;
+ this.testApi = isALaCarte ? testApi : null;
+ this.vidNotions = vidNotions;
}
- public ModelInfo getModelInfo() {
- return modelInfo;
- }
public String getOwningEntityId() {
return owningEntityId;
return productFamilyId;
}
- public String getInstanceName() {
- return instanceName;
- }
-
- @JsonProperty("isUserProvidedNaming")
- public Boolean isUserProvidedNaming() { return isUserProvidedNaming; }
-
public String getSubscriptionServiceType() {
return subscriptionServiceType;
}
- public String getLcpCloudRegionId() {
- return lcpCloudRegionId;
- }
-
- public String getTenantId() {
- return tenantId;
- }
-
public String getTenantName() {
return tenantName;
}
}
public Map<String, Vnf> getVnfs() {
- return vnfs;
+ return emptyMapIfNull(vnfs);
+ }
+
+ public Map<String, Network> getNetworks() {
+ return emptyMapIfNull(networks);
+ }
+
+ public Map<String, InstanceGroup> getVnfGroups() {
+ return emptyMapIfNull(vnfGroups);
}
- public List<Map<String, String>> getInstanceParams() {
- return instanceParams == null ? Collections.emptyList() : instanceParams;
+ public Map<String, VrfEntry> getVrfs() {
+ return emptyMapIfNull(vrfs);
}
public boolean isPause() {
public int getBulkSize() { return bulkSize; }
- public boolean isRollbackOnFailure() {
- return rollbackOnFailure;
+ public void setBulkSize(int bulkSize) {
+ this.bulkSize = bulkSize;
+ }
+
+ public VidNotions getVidNotions() {
+ return vidNotions;
+ }
+
+ @Override
+ protected String getModelType() {
+ return "service";
+ }
+
+ @Override
+ public Collection<BaseResource> getChildren() {
+ return Stream.of(getNetworks().values(), getVnfs().values(), getVnfGroups().values()).flatMap(Collection::stream).collect(Collectors.toList());
}
+
+ @JsonProperty("isALaCarte")
+ public boolean isALaCarte() {
+ return isALaCarte;
+ }
+
+ public String getTestApi() {
+ return this.testApi;
+ }
+
+ @Override
+ public JobType getJobType() {
+ return JobType.ALaCarteService;
+ }
+
+ private <T> Map<String, T> emptyMapIfNull(Map<String, T> map) {
+ return ObjectUtils.defaultIfNull(map, Collections.emptyMap());
+ }
+
}
\ No newline at end of file