package org.onap.vid.model.serviceInstantiation; import com.fasterxml.jackson.annotation.JsonProperty; import org.onap.vid.job.JobAdapter; import org.onap.vid.mso.model.ModelInfo; import java.util.Collections; import java.util.List; import java.util.Map; public class ServiceInstantiation extends BaseResource implements JobAdapter.AsyncJobRequest { private final String owningEntityId; private final String owningEntityName; private final String projectName; private final String subscriberName; private final String globalSubscriberId; private final String productFamilyId; private final String subscriptionServiceType; private final String tenantName; private final String aicZoneId; private final String aicZoneName; private final Map vnfs; private final Map networks; private final Map vnfGroups; private final boolean isPause; private final int bulkSize; private final String testApi; private final boolean isALaCarte; public ServiceInstantiation(@JsonProperty("modelInfo") ModelInfo modelInfo, @JsonProperty("owningEntityId") String owningEntityId, @JsonProperty("owningEntityName") String owningEntityName, @JsonProperty("projectName") String projectName, @JsonProperty("globalSubscriberId") String globalSubscriberId, @JsonProperty("subscriberName") String subscriberName, @JsonProperty("productFamilyId") String productFamilyId, @JsonProperty("instanceName") String instanceName, @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 vnfs, @JsonProperty("networks") Map networks, @JsonProperty("vnfGroups") Map vnfGroups, @JsonProperty("instanceParams") List> instanceParams, @JsonProperty("pause") boolean isPause, @JsonProperty("bulkSize") int bulkSize, @JsonProperty("rollbackOnFailure") boolean rollbackOnFailure, @JsonProperty("isALaCarte") boolean isALaCarte, @JsonProperty("testApi") String testApi, @JsonProperty("instanceId") String instanceId, @JsonProperty("action") String action ) { super(modelInfo, instanceName, action, lcpCloudRegionId, legacyRegion, tenantId, instanceParams, rollbackOnFailure, instanceId); this.owningEntityId = owningEntityId; this.owningEntityName = owningEntityName; this.projectName = projectName; this.globalSubscriberId = globalSubscriberId; this.subscriberName = subscriberName; this.productFamilyId = productFamilyId; this.subscriptionServiceType = subscriptionServiceType; this.tenantName = tenantName; this.aicZoneId = aicZoneId; this.aicZoneName = aicZoneName; this.vnfs = vnfs; this.networks = networks; this.vnfGroups = vnfGroups; this.isPause = isPause; this.bulkSize = bulkSize; this.isALaCarte = isALaCarte; this.testApi = isALaCarte ? testApi : null; } public String getOwningEntityId() { return owningEntityId; } public String getOwningEntityName() { return owningEntityName; } public String getProjectName() { return projectName; } public String getGlobalSubscriberId() { return globalSubscriberId; } public String getSubscriberName() { return subscriberName; } public String getProductFamilyId() { return productFamilyId; } public String getSubscriptionServiceType() { return subscriptionServiceType; } public String getTenantName() { return tenantName; } public String getAicZoneId() { return aicZoneId; } public String getAicZoneName() { return aicZoneName; } public Map getVnfs() { return vnfs == null ? Collections.emptyMap() : vnfs; } public Map getNetworks() { return networks == null ? Collections.emptyMap() : networks; } public Map getVnfGroups() { return vnfGroups == null ? Collections.emptyMap() : vnfGroups; } public boolean isPause() { return isPause; } public int getBulkSize() { return bulkSize; } @Override protected String getModelType() { return "service"; } @JsonProperty("isALaCarte") public boolean isALaCarte() { return isALaCarte; } public String getTestApi() { return this.testApi; } }