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.so.db.catalog.beans;
23 import java.io.Serializable;
24 import java.util.ArrayList;
25 import java.util.Date;
26 import java.util.List;
28 import javax.persistence.CascadeType;
29 import javax.persistence.Column;
30 import javax.persistence.Entity;
31 import javax.persistence.Id;
32 import javax.persistence.JoinColumn;
33 import javax.persistence.JoinTable;
34 import javax.persistence.ManyToOne;
35 import javax.persistence.MapKey;
36 import javax.persistence.OneToMany;
37 import javax.persistence.PrePersist;
38 import javax.persistence.Table;
39 import javax.persistence.Temporal;
40 import javax.persistence.TemporalType;
41 import org.apache.commons.lang3.builder.EqualsBuilder;
42 import org.apache.commons.lang3.builder.HashCodeBuilder;
43 import org.apache.commons.lang3.builder.ToStringBuilder;
44 import com.fasterxml.jackson.annotation.JsonFormat;
45 import com.openpojo.business.annotation.BusinessKey;
46 import uk.co.blackpepper.bowman.annotation.LinkedResource;
47 import uk.co.blackpepper.bowman.annotation.RemoteResource;
50 @RemoteResource("/service")
51 @Table(name = "service")
52 public class Service implements Serializable {
54 private static final long serialVersionUID = 768026109321305392L;
56 @Column(name = "MODEL_NAME")
57 private String modelName;
59 @Column(name = "DESCRIPTION", length = 1200)
60 private String description;
64 @Column(name = "MODEL_UUID")
65 private String modelUUID;
67 @Column(name = "MODEL_INVARIANT_UUID")
68 private String modelInvariantUUID;
70 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
71 @Column(name = "CREATION_TIMESTAMP", updatable = false)
72 @Temporal(TemporalType.TIMESTAMP)
75 @Column(name = "MODEL_VERSION")
76 private String modelVersion;
78 @Column(name = "SERVICE_TYPE")
79 private String serviceType;
81 @Column(name = "SERVICE_ROLE")
82 private String serviceRole;
84 @Column(name = "SERVICE_FUNCTION")
85 private String serviceFunction;
87 @Column(name = "ENVIRONMENT_CONTEXT")
88 private String environmentContext;
90 @Column(name = "WORKLOAD_CONTEXT")
91 private String workloadContext;
93 @Column(name = "SERVICE_CATEGORY")
94 private String category;
96 @Column(name = "RESOURCE_ORDER")
97 private String resourceOrder;
99 @Column(name = "OVERALL_DISTRIBUTION_STATUS")
100 private String distrobutionStatus;
102 @OneToMany(cascade = CascadeType.ALL)
103 @JoinTable(name = "network_resource_customization_to_service",
104 joinColumns = @JoinColumn(name = "SERVICE_MODEL_UUID"),
105 inverseJoinColumns = @JoinColumn(name = "RESOURCE_MODEL_CUSTOMIZATION_UUID"))
106 private List<NetworkResourceCustomization> networkCustomizations;
108 @OneToMany(cascade = CascadeType.ALL, mappedBy = "service")
109 private List<VnfResourceCustomization> vnfCustomizations;
111 @OneToMany(cascade = CascadeType.ALL)
112 @JoinTable(name = "allotted_resource_customization_to_service",
113 joinColumns = @JoinColumn(name = "SERVICE_MODEL_UUID"),
114 inverseJoinColumns = @JoinColumn(name = "RESOURCE_MODEL_CUSTOMIZATION_UUID"))
115 private List<AllottedResourceCustomization> allottedCustomizations;
117 @OneToMany(cascade = CascadeType.ALL)
118 @JoinTable(name = "collection_resource_customization_to_service",
119 joinColumns = @JoinColumn(name = "SERVICE_MODEL_UUID"),
120 inverseJoinColumns = @JoinColumn(name = "RESOURCE_MODEL_CUSTOMIZATION_UUID"))
121 private List<CollectionResourceCustomization> collectionResourceCustomizations;
123 @OneToMany(cascade = CascadeType.ALL)
124 @JoinTable(name = "service_proxy_customization_to_service", joinColumns = @JoinColumn(name = "SERVICE_MODEL_UUID"),
125 inverseJoinColumns = @JoinColumn(name = "RESOURCE_MODEL_CUSTOMIZATION_UUID"))
126 private List<ServiceProxyResourceCustomization> serviceProxyCustomizations;
128 @OneToMany(cascade = CascadeType.ALL, mappedBy = "service")
129 private List<ConfigurationResourceCustomization> configurationCustomizations;
131 @OneToMany(cascade = CascadeType.ALL)
132 @JoinTable(name = "pnf_resource_customization_to_service", joinColumns = @JoinColumn(name = "SERVICE_MODEL_UUID"),
133 inverseJoinColumns = @JoinColumn(name = "RESOURCE_MODEL_CUSTOMIZATION_UUID"))
134 private List<PnfResourceCustomization> pnfCustomizations;
136 @OneToMany(cascade = CascadeType.ALL, mappedBy = "service")
137 @MapKey(name = "action")
138 private Map<String, ServiceRecipe> recipes;
140 @ManyToOne(cascade = CascadeType.ALL)
141 @JoinColumn(name = "TOSCA_CSAR_ARTIFACT_UUID")
142 private ToscaCsar csar;
144 @OneToMany(cascade = CascadeType.ALL, mappedBy = "service")
145 private List<ServiceArtifact> serviceArtifactList;
147 @OneToMany(cascade = CascadeType.ALL, mappedBy = "service")
148 private List<ServiceInfo> serviceInfos;
150 @Column(name = "NAMING_POLICY")
151 private String namingPolicy;
153 @Column(name = "ONAP_GENERATED_NAMING")
154 private Boolean onapGeneratedNaming;
156 @Column(name = "CDS_BLUEPRINT_NAME")
157 private String blueprintName;
159 @Column(name = "CDS_BLUEPRINT_VERSION")
160 private String blueprintVersion;
162 @Column(name = "SKIP_POST_INSTANTIATION_CONFIGURATION", nullable = false)
163 private Boolean skipPostInstConf = true;
165 @Column(name = "CONTROLLER_ACTOR")
166 private String controllerActor;
169 public String toString() {
170 return new ToStringBuilder(this).append("modelName", modelName).append("description", description)
171 .append("modelUUID", modelUUID).append("modelInvariantUUID", modelInvariantUUID)
172 .append("created", created).append("modelVersion", modelVersion).append("serviceType", serviceType)
173 .append("serviceRole", serviceRole).append("environmentContext", environmentContext)
174 .append("workloadContext", workloadContext).append("category", category)
175 .append("networkCustomizations", networkCustomizations).append("vnfCustomizations", vnfCustomizations)
176 .append("allottedCustomizations", allottedCustomizations)
177 .append("collectionResourceCustomizations", collectionResourceCustomizations)
178 .append("serviceProxyCustomizations", serviceProxyCustomizations)
179 .append("configurationCustomizations", configurationCustomizations)
180 .append("pnfCustomizations", pnfCustomizations).append("recipes", recipes).append("csar", csar)
181 .append("namingPolicy", namingPolicy).append("onapGeneratedNaming", onapGeneratedNaming).toString();
185 protected void onCreate() {
186 this.created = new Date();
190 public boolean equals(final Object other) {
191 if (!(other instanceof Service)) {
194 Service castOther = (Service) other;
195 return new EqualsBuilder().append(modelUUID, castOther.modelUUID).isEquals();
199 public int hashCode() {
200 return new HashCodeBuilder().append(modelUUID).toHashCode();
204 public List<ServiceProxyResourceCustomization> getServiceProxyCustomizations() {
205 return serviceProxyCustomizations;
208 public void setServiceProxyCustomizations(List<ServiceProxyResourceCustomization> serviceProxyCustomizations) {
209 this.serviceProxyCustomizations = serviceProxyCustomizations;
213 public List<NetworkResourceCustomization> getNetworkCustomizations() {
214 if (networkCustomizations == null) {
215 networkCustomizations = new ArrayList<>();
217 return networkCustomizations;
220 public void setNetworkCustomizations(List<NetworkResourceCustomization> networkCustomizations) {
221 this.networkCustomizations = networkCustomizations;
225 public List<VnfResourceCustomization> getVnfCustomizations() {
226 if (vnfCustomizations == null) {
227 vnfCustomizations = new ArrayList<>();
229 return vnfCustomizations;
232 public void setVnfCustomizations(List<VnfResourceCustomization> vnfCustomizations) {
233 this.vnfCustomizations = vnfCustomizations;
237 public List<AllottedResourceCustomization> getAllottedCustomizations() {
238 if (allottedCustomizations == null) {
239 allottedCustomizations = new ArrayList<>();
241 return allottedCustomizations;
244 public void setAllottedCustomizations(List<AllottedResourceCustomization> allotedCustomizations) {
245 this.allottedCustomizations = allotedCustomizations;
249 public List<CollectionResourceCustomization> getCollectionResourceCustomizations() {
250 if (collectionResourceCustomizations == null) {
251 collectionResourceCustomizations = new ArrayList<>();
253 return collectionResourceCustomizations;
256 public void setCollectionResourceCustomizations(
257 List<CollectionResourceCustomization> collectionResourceCustomizations) {
258 this.collectionResourceCustomizations = collectionResourceCustomizations;
262 public List<ConfigurationResourceCustomization> getConfigurationCustomizations() {
263 if (configurationCustomizations == null) {
264 configurationCustomizations = new ArrayList<>();
266 return configurationCustomizations;
269 public void setConfigurationCustomizations(List<ConfigurationResourceCustomization> configurationCustomizations) {
270 this.configurationCustomizations = configurationCustomizations;
274 public List<PnfResourceCustomization> getPnfCustomizations() {
275 if (pnfCustomizations == null) {
276 pnfCustomizations = new ArrayList<>();
278 return pnfCustomizations;
281 public void setPnfCustomizations(List<PnfResourceCustomization> pnfCustomizations) {
282 this.pnfCustomizations = pnfCustomizations;
285 public String getModelName() {
289 public void setModelName(String modelName) {
290 this.modelName = modelName;
293 public String getDescription() {
297 public void setDescription(String description) {
298 this.description = description;
302 public Map<String, ServiceRecipe> getRecipes() {
306 public void setRecipes(Map<String, ServiceRecipe> recipes) {
307 this.recipes = recipes;
310 public Date getCreated() {
314 public String getModelUUID() {
318 public void setModelUUID(String modelUUID) {
319 this.modelUUID = modelUUID;
322 public String getModelInvariantUUID() {
323 return modelInvariantUUID;
326 public void setModelInvariantUUID(String modelInvariantUUID) {
327 this.modelInvariantUUID = modelInvariantUUID;
330 public String getModelVersion() {
334 public void setModelVersion(String modelVersion) {
335 this.modelVersion = modelVersion;
339 * @return Returns the category.
341 public String getCategory() {
346 * @param category The category to set.
348 public void setCategory(String category) {
349 this.category = category;
352 public String getServiceType() {
356 public void setServiceType(String serviceType) {
357 this.serviceType = serviceType;
360 public String getServiceRole() {
364 public void setServiceRole(String serviceRole) {
365 this.serviceRole = serviceRole;
368 public String getEnvironmentContext() {
369 return this.environmentContext;
372 public void setEnvironmentContext(String environmentContext) {
373 this.environmentContext = environmentContext;
377 public ToscaCsar getCsar() {
381 public void setCsar(ToscaCsar csar) {
385 public List<ServiceArtifact> getServiceArtifactList() {
386 if (serviceArtifactList == null) {
387 serviceArtifactList = new ArrayList<>();
389 return serviceArtifactList;
392 public void setServiceArtifactList(List<ServiceArtifact> serviceArtifactList) {
393 this.serviceArtifactList = serviceArtifactList;
396 public List<ServiceInfo> getServiceInfos() {
397 if (serviceInfos == null) {
398 serviceInfos = new ArrayList<>();
403 public void setServiceInfos(List<ServiceInfo> serviceInfos) {
404 this.serviceInfos = serviceInfos;
407 public String getWorkloadContext() {
408 return this.workloadContext;
411 public void setWorkloadContext(String workloadContext) {
412 this.workloadContext = workloadContext;
415 public String getResourceOrder() {
416 return resourceOrder;
419 public void setResourceOrder(String resourceOrder) {
420 this.resourceOrder = resourceOrder;
423 public String getDistrobutionStatus() {
424 return distrobutionStatus;
427 public void setDistrobutionStatus(String distrobutionStatus) {
428 this.distrobutionStatus = distrobutionStatus;
431 public String getNamingPolicy() {
435 public void setNamingPolicy(String namingPolicy) {
436 this.namingPolicy = namingPolicy;
439 public Boolean getOnapGeneratedNaming() {
440 return onapGeneratedNaming;
443 public void setOnapGeneratedNaming(Boolean onapGeneratedNaming) {
444 this.onapGeneratedNaming = onapGeneratedNaming;
447 public String getBlueprintName() {
448 return blueprintName;
451 public void setBlueprintName(String blueprintName) {
452 this.blueprintName = blueprintName;
455 public String getBlueprintVersion() {
456 return blueprintVersion;
459 public void setBlueprintVersion(String blueprintVersion) {
460 this.blueprintVersion = blueprintVersion;
463 public Boolean getSkipPostInstConf() {
464 return skipPostInstConf;
467 public void setSkipPostInstConf(Boolean skipPostInstConf) {
468 this.skipPostInstConf = skipPostInstConf;
471 public String getControllerActor() {
472 return controllerActor;
475 public void setControllerActor(String controllerActor) {
476 this.controllerActor = controllerActor;
479 public String getServiceFunction() {
480 return serviceFunction;
483 public void setServiceFunction(String serviceFunction) {
484 this.serviceFunction = serviceFunction;