* ONAP Policy Model
* ================================================================================
* Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
- * Modifications Copyright (C) 2019 Nordix Foundation.
+ * Modifications Copyright (C) 2019-2021 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
package org.onap.policy.models.tosca.authorative.concepts;
import com.google.gson.annotations.SerializedName;
-import java.util.List;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.LinkedHashMap;
import java.util.Map;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.NonNull;
/**
* Class to represent TOSCA service template matching input/output from/to client.
*/
@Data
@EqualsAndHashCode(callSuper = true)
+@NoArgsConstructor
public class ToscaServiceTemplate extends ToscaEntity {
-
+ @ApiModelProperty(name = "tosca_definitions_version")
@SerializedName("tosca_definitions_version")
private String toscaDefinitionsVersion;
+ @ApiModelProperty(name = "data_types")
+ @SerializedName("data_types")
+ private Map<String, ToscaDataType> dataTypes;
+
+ @ApiModelProperty(name = "capability_types")
+ @SerializedName("capability_types")
+ private Map<String, ToscaCapabilityType> capabilityTypes;
+
+ @ApiModelProperty(name = "node_types")
+ @SerializedName("node_types")
+ private Map<String, ToscaNodeType> nodeTypes;
+
+ @ApiModelProperty(name = "relationship_types")
+ @SerializedName("relationship_types")
+ private Map<String, ToscaRelationshipType> relationshipTypes;
+
+ @ApiModelProperty(name = "policy_types")
+ @SerializedName("policy_types")
+ private Map<String, ToscaPolicyType> policyTypes;
+
+ @ApiModelProperty(name = "topology_template")
@SerializedName("topology_template")
private ToscaTopologyTemplate toscaTopologyTemplate;
- @SerializedName("policy_types")
- private List<Map<String, ToscaPolicyType>> policyTypes;
+ public Map<ToscaEntityKey, ToscaDataType> getDataTypesAsMap() {
+ return ToscaEntity.getEntityMapAsMap(dataTypes);
+ }
- @SerializedName("data_types")
- private List<Map<String, ToscaDataType>> dataTypes;
-}
\ No newline at end of file
+ public Map<ToscaEntityKey, ToscaPolicyType> getPolicyTypesAsMap() {
+ return ToscaEntity.getEntityMapAsMap(policyTypes);
+ }
+
+ /**
+ * Copy constructor.
+ *
+ * @param copyObject the obejct to copy from.
+ */
+ public ToscaServiceTemplate(@NonNull ToscaServiceTemplate copyObject) {
+ super(copyObject);
+
+ this.toscaDefinitionsVersion = copyObject.toscaDefinitionsVersion;
+
+ // @formatter:off
+ this.dataTypes = (copyObject.dataTypes != null
+ ? new LinkedHashMap<>(copyObject.dataTypes)
+ : null);
+ this.capabilityTypes = (copyObject.capabilityTypes != null
+ ? new LinkedHashMap<>(copyObject.capabilityTypes)
+ : null);
+ this.nodeTypes = (copyObject.nodeTypes != null
+ ? new LinkedHashMap<>(copyObject.nodeTypes)
+ : null);
+ this.relationshipTypes = (copyObject.relationshipTypes != null
+ ? new LinkedHashMap<>(copyObject.relationshipTypes)
+ : null);
+ this.policyTypes = (copyObject.policyTypes != null
+ ? new LinkedHashMap<>(copyObject.policyTypes)
+ : null);
+ // @formatter:on
+
+ this.toscaTopologyTemplate =
+ (copyObject.toscaTopologyTemplate != null ? new ToscaTopologyTemplate(copyObject.toscaTopologyTemplate)
+ : null);
+ }
+}