summaryrefslogtreecommitdiffstats
path: root/common/onap-tosca-datatype
diff options
context:
space:
mode:
Diffstat (limited to 'common/onap-tosca-datatype')
-rw-r--r--common/onap-tosca-datatype/pom.xml29
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ActivityDefinition.java41
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ArtifactDefinition.java71
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ArtifactType.java94
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/AttributeDefinition.java88
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/CapabilityAssignment.java47
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/CapabilityDefinition.java112
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/CapabilityFilterDefinition.java37
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/CapabilityType.java84
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Constraint.java179
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Credential.java55
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/DataType.java132
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/DefinitionOfDataType.java96
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Directive.java42
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/EntrySchema.java65
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/EventFilter.java32
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/GroupDefinition.java85
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/GroupType.java113
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Implementation.java62
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Import.java63
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/InterfaceDefinition.java25
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/InterfaceDefinitionTemplate.java74
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/InterfaceDefinitionType.java98
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/InterfaceType.java116
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/NodeFilter.java49
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/NodeTemplate.java177
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/NodeType.java134
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/OperationDefinition.java34
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/OperationDefinitionTemplate.java61
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/OperationDefinitionType.java62
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ParameterDefinition.java22
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/PolicyDefinition.java72
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/PolicyType.java94
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/PreconditionDefinition.java32
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/PropertyDefinition.java45
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/PropertyType.java94
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/RelationshipTemplate.java110
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/RelationshipType.java102
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Repository.java32
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/RequirementAssignment.java71
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/RequirementDefinition.java83
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Scalar.java36
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ServiceTemplate.java184
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Status.java42
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/StepDefinition.java71
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/SubstitutionMapping.java54
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Template.java24
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/TimeInterval.java24
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/TopologyTemplate.java124
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Trigger.java97
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/WorkflowDefinition.java55
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/heatextend/AnnotationDefinition.java42
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/heatextend/AnnotationType.java53
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/heatextend/ParameterDefinitionExt.java61
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/heatextend/PropertyTypeExt.java85
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/services/DataModelCloneUtil.java103
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/services/ToscaExtensionYamlUtil.java86
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/services/YamlUtil.java272
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/onap/_index.yml35
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/onap/capabilities.yml74
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/onap/data.yml215
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/onap/nodes.yml583
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/onap/relationships.yml38
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/_index.yml30
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/data.yml817
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/groups.yml40
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/nodes.yml1292
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/_index.yml31
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/capabilities.yml85
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/data.yml209
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/nodes.yml5148
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/relationships.yml57
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/_index.yml37
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/annotations.yml42
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/capabilities.yml119
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/data.yml601
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/groups.yml93
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/nodes.yml920
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/relationships.yml59
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/_index.yml37
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/artifacts.yml55
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/capabilities.yml230
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/data.yml191
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/groups.yml30
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/interfaces.yml61
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/nodes.yml371
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/policies.yml43
-rw-r--r--common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/relationships.yml106
88 files changed, 16176 insertions, 0 deletions
diff --git a/common/onap-tosca-datatype/pom.xml b/common/onap-tosca-datatype/pom.xml
new file mode 100644
index 0000000000..b183d06aec
--- /dev/null
+++ b/common/onap-tosca-datatype/pom.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.onap.sdc.common</groupId>
+ <artifactId>onap-tosca-datatype</artifactId>
+
+ <parent>
+ <artifactId>onap-common-lib</artifactId>
+ <groupId>org.onap.sdc.common</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.yaml</groupId>
+ <artifactId>snakeyaml</artifactId>
+ <version>1.17</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-collections4</artifactId>
+ <version>${commons.collections.version}</version>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ActivityDefinition.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ActivityDefinition.java
new file mode 100644
index 0000000000..538ed37409
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ActivityDefinition.java
@@ -0,0 +1,41 @@
+package org.onap.sdc.tosca.datatypes.model;
+
+public class ActivityDefinition {
+
+ private String delegate;
+ private String set_state;
+ private String call_operation;
+ private String inline;
+
+ public String getDelegate() {
+ return delegate;
+ }
+
+ public void setDelegate(String delegate) {
+ this.delegate = delegate;
+ }
+
+ public String getSet_state() {
+ return set_state;
+ }
+
+ public void setSet_state(String set_state) {
+ this.set_state = set_state;
+ }
+
+ public String getCall_operation() {
+ return call_operation;
+ }
+
+ public void setCall_operation(String call_operation) {
+ this.call_operation = call_operation;
+ }
+
+ public String getInline() {
+ return inline;
+ }
+
+ public void setInline(String inline) {
+ this.inline = inline;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ArtifactDefinition.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ArtifactDefinition.java
new file mode 100644
index 0000000000..b3aae7e75e
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ArtifactDefinition.java
@@ -0,0 +1,71 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+
+
+public class ArtifactDefinition {
+ private String type;
+ private String file;
+ private String repository;
+ private String description;
+ private String deploy_path;
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getFile() {
+ return file;
+ }
+
+ public void setFile(String file) {
+ this.file = file;
+ }
+
+ public String getRepository() {
+ return repository;
+ }
+
+ public void setRepository(String repository) {
+ this.repository = repository;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getDeploy_path() {
+ return deploy_path;
+ }
+
+ public void setDeploy_path(String deploy_path) {
+ this.deploy_path = deploy_path;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ArtifactType.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ArtifactType.java
new file mode 100644
index 0000000000..1dff6b9e8d
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ArtifactType.java
@@ -0,0 +1,94 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+
+
+public class ArtifactType {
+
+ private String derived_from;
+ private String version;
+ private Map<String, String> metadata;
+ private String description;
+ private String mime_type;
+ private List<String> file_ext;
+ private Map<String, PropertyDefinition> properties;
+
+
+ public String getDerived_from() {
+ return derived_from;
+ }
+
+ public void setDerived_from(String derived_from) {
+ this.derived_from = derived_from;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ public Map<String, String> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, String> metadata) {
+ this.metadata = metadata;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getMime_type() {
+ return mime_type;
+ }
+
+ public void setMime_type(String mime_type) {
+ this.mime_type = mime_type;
+ }
+
+ public List<String> getFile_ext() {
+ return file_ext;
+ }
+
+ public void setFile_ext(List<String> file_ext) {
+ this.file_ext = file_ext;
+ }
+
+ public Map<String, PropertyDefinition> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, PropertyDefinition> properties) {
+ this.properties = properties;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/AttributeDefinition.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/AttributeDefinition.java
new file mode 100644
index 0000000000..aefe987402
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/AttributeDefinition.java
@@ -0,0 +1,88 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import java.util.Objects;
+
+public class AttributeDefinition {
+
+ private String type;
+ private String description;
+ private Object _default;
+ private Status status;
+ private EntrySchema entry_schema;
+
+ public AttributeDefinition() {
+ status = Status.SUPPORTED;
+ }
+
+ public EntrySchema getEntry_schema() {
+ return entry_schema;
+ }
+
+ public void setEntry_schema(EntrySchema entry_schema) {
+ this.entry_schema = entry_schema;
+ }
+
+ public Status getStatus() {
+ return status;
+ }
+
+ public void setStatus(Status status) {
+ this.status = status;
+ }
+
+ public Object get_default() {
+ return _default;
+ }
+
+ public void set_default(Object _default) {
+ this._default = _default;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ @Override
+ public AttributeDefinition clone() {
+ AttributeDefinition attributeDefinition = new AttributeDefinition();
+ attributeDefinition.setType(this.getType());
+ attributeDefinition.setDescription(this.getDescription());
+ attributeDefinition.set_default(this.get_default());
+ attributeDefinition.setStatus(this.getStatus());
+ attributeDefinition.setEntry_schema(
+ Objects.isNull(this.getEntry_schema()) ? null : this.getEntry_schema().clone());
+ return attributeDefinition;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/CapabilityAssignment.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/CapabilityAssignment.java
new file mode 100644
index 0000000000..bed4e8c6b0
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/CapabilityAssignment.java
@@ -0,0 +1,47 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import java.util.Map;
+
+
+
+public class CapabilityAssignment {
+
+ private Map<String, Object> properties;
+ private Map<String, Object> attributes;
+
+ public Map<String, Object> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, Object> properties) {
+ this.properties = properties;
+ }
+
+ public Map<String, Object> getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(Map<String, Object> attributes) {
+ this.attributes = attributes;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/CapabilityDefinition.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/CapabilityDefinition.java
new file mode 100644
index 0000000000..0eb205b3fd
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/CapabilityDefinition.java
@@ -0,0 +1,112 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import org.onap.sdc.tosca.services.DataModelCloneUtil;
+
+import java.util.List;
+import java.util.Map;
+
+public class CapabilityDefinition {
+
+ private String type;
+ private String description;
+ private Map<String, PropertyDefinition> properties;
+ private Map<String, AttributeDefinition> attributes;
+ private List<String> valid_source_types;
+ private Object[] occurrences;
+
+
+ /**
+ * Constructor.
+ */
+ public CapabilityDefinition() {
+ occurrences = new Object[2];
+ occurrences[0] = 1;
+ occurrences[1] = "UNBOUNDED";
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Map<String, PropertyDefinition> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, PropertyDefinition> properties) {
+ this.properties = properties;
+ }
+
+ public Map<String, AttributeDefinition> getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(Map<String, AttributeDefinition> attributes) {
+ this.attributes = attributes;
+ }
+
+ public List<String> getValid_source_types() {
+ return valid_source_types;
+ }
+
+ public void setValid_source_types(List<String> valid_source_types) {
+ this.valid_source_types = valid_source_types;
+ }
+
+ public Object[] getOccurrences() {
+ return occurrences;
+ }
+
+ public void setOccurrences(Object[] occurrences) {
+ this.occurrences = occurrences;
+ }
+
+ @Override
+ public CapabilityDefinition clone() {
+ CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
+ capabilityDefinition
+ .setOccurrences(new Object[]{this.getOccurrences()[0], this.getOccurrences()[1]});
+ capabilityDefinition
+ .setProperties(DataModelCloneUtil.clonePropertyDefinitions(this.getProperties()));
+ capabilityDefinition.setType(this.getType());
+ capabilityDefinition
+ .setAttributes(DataModelCloneUtil.cloneAttributeDefinitions(this.getAttributes()));
+ capabilityDefinition.setDescription(this.getDescription());
+ capabilityDefinition
+ .setValid_source_types(DataModelCloneUtil.cloneValidSourceTypes(this.getValid_source_types()));
+ return capabilityDefinition;
+
+ }
+
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/CapabilityFilterDefinition.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/CapabilityFilterDefinition.java
new file mode 100644
index 0000000000..83f9d2576b
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/CapabilityFilterDefinition.java
@@ -0,0 +1,37 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import java.util.List;
+
+
+
+public class CapabilityFilterDefinition {
+ List<Constraint> properties;
+
+ public List<Constraint> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(List<Constraint> properties) {
+ this.properties = properties;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/CapabilityType.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/CapabilityType.java
new file mode 100644
index 0000000000..a6368f8a6f
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/CapabilityType.java
@@ -0,0 +1,84 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+
+
+public class CapabilityType {
+
+ private String derived_from;
+ private String version;
+ private String description;
+ private Map<String, PropertyDefinition> properties;
+ private Map<String, AttributeDefinition> attributes;
+ private List<String> valid_source_types;
+
+ public String getDerived_from() {
+ return derived_from;
+ }
+
+ public void setDerived_from(String derived_from) {
+ this.derived_from = derived_from;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Map<String, PropertyDefinition> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, PropertyDefinition> properties) {
+ this.properties = properties;
+ }
+
+ public Map<String, AttributeDefinition> getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(Map<String, AttributeDefinition> attributes) {
+ this.attributes = attributes;
+ }
+
+ public List<String> getValid_source_types() {
+ return valid_source_types;
+ }
+
+ public void setValid_source_types(List<String> valid_source_types) {
+ this.valid_source_types = valid_source_types;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Constraint.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Constraint.java
new file mode 100644
index 0000000000..a21e31b387
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Constraint.java
@@ -0,0 +1,179 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Constraint {
+ private Object equal;
+ private Object greater_or_equal;
+ private Object greater_than;
+ private Object less_than;
+ private Object less_or_equal;
+ private Object[] in_range;
+ private List<Object> valid_values;
+ private Integer length;
+ private Integer min_length;
+ private Integer max_length;
+ private Object pattern;
+
+ public Constraint() {
+ }
+
+ public Object getGreater_or_equal() {
+ return greater_or_equal;
+ }
+
+ public void setGreater_or_equal(Object greater_or_equal) {
+ this.greater_or_equal = greater_or_equal;
+ }
+
+ public Object getEqual() {
+ return equal;
+ }
+
+ public void setEqual(Object equal) {
+ this.equal = equal;
+ }
+
+ public Object getGreater_than() {
+ return greater_than;
+ }
+
+ public void setGreater_than(Object greater_than) {
+ this.greater_than = greater_than;
+ }
+
+ public Object getLess_than() {
+ return less_than;
+ }
+
+ public void setLess_than(Object less_than) {
+ this.less_than = less_than;
+ }
+
+ public Object getLess_or_equal() {
+ return less_or_equal;
+ }
+
+ public void setLess_or_equal(Object less_or_equal) {
+ this.less_or_equal = less_or_equal;
+ }
+
+ public Object[] getIn_range() {
+ return in_range;
+ }
+
+ /**
+ * Sets in_range attribute.
+ * @param in_range.
+ */
+ public void setIn_range(Object[] in_range) {
+ this.in_range = new Object[2];
+ this.in_range[0] = in_range[0];
+ this.in_range[1] = in_range[1];
+ }
+
+ public List<Object> getValid_values() {
+ return valid_values;
+ }
+
+ public void setValid_values(List<Object> valid_values) {
+ this.valid_values = valid_values;
+ }
+
+ /**
+ * Add Valid value
+ * @param validValue object.
+ */
+ public void addValidValue(Object validValue) {
+ if (this.valid_values == null) {
+ this.valid_values = new ArrayList<>();
+ }
+ valid_values.add(validValue);
+ }
+
+ public Integer getLength() {
+ return length;
+ }
+
+ public void setLength(Integer length) {
+ this.length = length;
+ }
+
+ public Integer getMin_length() {
+ return min_length;
+ }
+
+ public void setMin_length(Integer min_length) {
+ this.min_length = min_length;
+ }
+
+ public Integer getMax_length() {
+ return max_length;
+ }
+
+ public void setMax_length(Integer max_length) {
+ this.max_length = max_length;
+ }
+
+ public Object getPattern() {
+ return pattern;
+ }
+
+ public void setPattern(Object pattern) {
+ this.pattern = pattern;
+ }
+
+ @Override
+ public Constraint clone() {
+ Constraint constraint = new Constraint();
+ constraint.setEqual(this.getEqual());
+ constraint.setGreater_or_equal(this.getGreater_or_equal());
+ constraint.setGreater_than(this.getGreater_than());
+ cloneInRange(constraint);
+ constraint.setLength(this.getLength());
+ constraint.setLess_or_equal(this.getLess_or_equal());
+ constraint.setLess_than(this.getLess_than());
+ constraint.setMax_length(this.getMax_length());
+ constraint.setMin_length(this.getMin_length());
+ constraint.setPattern(this.getPattern());
+ cloneValidValues(constraint);
+
+ return constraint;
+ }
+
+ private void cloneInRange(Constraint constraint) {
+ if (this.getIn_range() != null) {
+ constraint.setIn_range(new Object[]{this.getIn_range()[0], this.getIn_range()[1]});
+ }
+ }
+
+ private void cloneValidValues(Constraint constraint) {
+ if (this.getValid_values() != null) {
+ constraint.setValid_values(new ArrayList<>());
+ for (Object entry : this.getValid_values()) {
+ constraint.getValid_values().add(entry);
+ }
+ }
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Credential.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Credential.java
new file mode 100644
index 0000000000..fdfbcbe280
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Credential.java
@@ -0,0 +1,55 @@
+package org.onap.sdc.tosca.datatypes.model;
+
+import java.util.Map;
+
+public class Credential {
+ private String protocol;
+ private String token_type;
+ private String token;
+ private Map<String, String> keys;
+ private String user;
+
+ public Credential(){
+ this.token_type = "password";
+ }
+
+ public String getProtocol() {
+ return protocol;
+ }
+
+ public void setProtocol(String protocol) {
+ this.protocol = protocol;
+ }
+
+ public String getToken_type() {
+ return token_type;
+ }
+
+ public void setToken_type(String token_type) {
+ this.token_type = token_type;
+ }
+
+ public String getToken() {
+ return token;
+ }
+
+ public void setToken(String token) {
+ this.token = token;
+ }
+
+ public Map<String, String> getKeys() {
+ return keys;
+ }
+
+ public void setKeys(Map<String, String> keys) {
+ this.keys = keys;
+ }
+
+ public String getUser() {
+ return user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/DataType.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/DataType.java
new file mode 100644
index 0000000000..bf318a7d3e
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/DataType.java
@@ -0,0 +1,132 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+public class DataType {
+
+ private String derived_from;
+ private String version;
+ Map<String, String> metadata;
+ private String description;
+ private List<Constraint> constraints;
+ private Map<String, PropertyDefinition> properties;
+
+ /**
+ * Gets derived from.
+ *
+ * @return the derived from
+ */
+ public String getDerived_from() {
+ return derived_from;
+ }
+
+ /**
+ * Sets derived from.
+ *
+ * @param derived_from the derived from
+ */
+ public void setDerived_from(String derived_from) {
+ this.derived_from = derived_from;
+ }
+
+ /**
+ * Gets version.
+ *
+ * @return the version
+ */
+ public String getVersion() {
+ return version;
+ }
+
+ /**
+ * Sets version.
+ *
+ * @param version the version
+ */
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ public Map<String, String> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, String> metadata) {
+ this.metadata = metadata;
+ }
+
+ /**
+ * Gets description.
+ *
+ * @return the description
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * Sets description.
+ *
+ * @param description the description
+ */
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ /**
+ * Gets constraints.
+ *
+ * @return the constraints
+ */
+ public List<Constraint> getConstraints() {
+ return constraints;
+ }
+
+ /**
+ * Sets constraints.
+ *
+ * @param constraints the constraints
+ */
+ public void setConstraints(List<Constraint> constraints) {
+ this.constraints = constraints;
+ }
+
+ /**
+ * Gets properties.
+ *
+ * @return the properties
+ */
+ public Map<String, PropertyDefinition> getProperties() {
+ return properties;
+ }
+
+ /**
+ * Sets properties.
+ *
+ * @param properties the properties
+ */
+ public void setProperties(Map<String, PropertyDefinition> properties) {
+ this.properties = properties;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/DefinitionOfDataType.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/DefinitionOfDataType.java
new file mode 100644
index 0000000000..e249cd5335
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/DefinitionOfDataType.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.
+ */
+
+package org.onap.sdc.tosca.datatypes.model;
+
+import java.util.List;
+
+public class DefinitionOfDataType {
+
+ protected String type;
+ protected String description;
+ protected Object value;
+ protected Boolean required;
+ protected Object _default;
+ protected Status status;
+ protected List<Constraint> constraints;
+ protected EntrySchema entry_schema;
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Object getValue() {
+ return value;
+ }
+
+ public void setValue(Object value) {
+ this.value = value;
+ }
+
+ public Boolean getRequired() {
+ return required;
+ }
+
+ public void setRequired(Boolean required) {
+ this.required = required;
+ }
+
+ public Object get_default() {
+ return _default;
+ }
+
+ public void set_default(Object _default) {
+ this._default = _default;
+ }
+
+ public Status getStatus() {
+ return status;
+ }
+
+ public void setStatus(Status status) {
+ this.status = status;
+ }
+
+ public List<Constraint> getConstraints() {
+ return constraints;
+ }
+
+ public void setConstraints(List<Constraint> constraints) {
+ this.constraints = constraints;
+ }
+
+ public EntrySchema getEntry_schema() {
+ return entry_schema;
+ }
+
+ public void setEntry_schema(EntrySchema entry_schema) {
+ this.entry_schema = entry_schema;
+ }
+
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Directive.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Directive.java
new file mode 100644
index 0000000000..749044bf8e
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Directive.java
@@ -0,0 +1,42 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+
+
+public enum Directive {
+
+
+ SELECTABLE("selectable"),
+ SUBSTITUTABLE("substitutable");
+
+ private String displayName;
+
+ Directive(String displayName) {
+ this.displayName = displayName;
+ }
+
+ public String getDisplayName() {
+ return displayName;
+ }
+
+
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/EntrySchema.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/EntrySchema.java
new file mode 100644
index 0000000000..0b826e22cd
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/EntrySchema.java
@@ -0,0 +1,65 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import org.onap.sdc.tosca.services.DataModelCloneUtil;
+
+import java.util.List;
+
+public class EntrySchema {
+
+ private String description;
+ private String type;
+ private List<Constraint> constraints;
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public List<Constraint> getConstraints() {
+ return constraints;
+ }
+
+ public void setConstraints(List<Constraint> constraints) {
+ this.constraints = constraints;
+ }
+
+ @Override
+ public EntrySchema clone() {
+ EntrySchema entrySchema = new EntrySchema();
+ entrySchema.setDescription(this.getDescription());
+ entrySchema.setType(this.getType());
+ entrySchema.setConstraints(DataModelCloneUtil.cloneConstraints(this.getConstraints()));
+ return entrySchema;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/EventFilter.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/EventFilter.java
new file mode 100644
index 0000000000..273a64f5af
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/EventFilter.java
@@ -0,0 +1,32 @@
+package org.onap.sdc.tosca.datatypes.model;
+
+public class EventFilter {
+
+ private String node;
+ private String requirement;
+ private String capability;
+
+ public String getNode() {
+ return node;
+ }
+
+ public void setNode(String node) {
+ this.node = node;
+ }
+
+ public String getRequirement() {
+ return requirement;
+ }
+
+ public void setRequirement(String requirement) {
+ this.requirement = requirement;
+ }
+
+ public String getCapability() {
+ return capability;
+ }
+
+ public void setCapability(String capability) {
+ this.capability = capability;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/GroupDefinition.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/GroupDefinition.java
new file mode 100644
index 0000000000..e2002bf22e
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/GroupDefinition.java
@@ -0,0 +1,85 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+
+
+public class GroupDefinition {
+
+ private String type;
+ private String description;
+ private Map<String, String> metadata;
+ private Map<String, Object> properties;
+ private List<String> members;
+ private Map<String, Object> interfaces;
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Map<String, Object> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, Object> properties) {
+ this.properties = properties;
+ }
+
+ public List<String> getMembers() {
+ return members;
+ }
+
+ public void setMembers(List<String> members) {
+ this.members = members;
+ }
+
+ public Map<String, String> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, String> metadata) {
+ this.metadata = metadata;
+ }
+
+ public Map<String, Object> getInterfaces() {
+ return interfaces;
+ }
+
+ public void setInterfaces(
+ Map<String, Object> interfaces) {
+ this.interfaces = interfaces;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/GroupType.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/GroupType.java
new file mode 100644
index 0000000000..611b1bf447
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/GroupType.java
@@ -0,0 +1,113 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+
+
+public class GroupType {
+
+ private String derived_from;
+ private String version;
+ private Map<String, String> metadata;
+ private String description;
+ private Map<String, PropertyDefinition> properties;
+ private List<String> members;
+ private List<Map<String, RequirementDefinition>> requirements;
+ private Map<String, CapabilityDefinition> capabilities;
+ private Map<String, Object> interfaces;
+
+ public String getDerived_from() {
+ return derived_from;
+ }
+
+ public void setDerived_from(String derived_from) {
+ this.derived_from = derived_from;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ public Map<String, String> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, String> metadata) {
+ this.metadata = metadata;
+ }
+
+ public List<Map<String, RequirementDefinition>> getRequirements() {
+ return requirements;
+ }
+
+ public void setRequirements(
+ List<Map<String, RequirementDefinition>> requirements) {
+ this.requirements = requirements;
+ }
+
+ public Map<String, CapabilityDefinition> getCapabilities() {
+ return capabilities;
+ }
+
+ public void setCapabilities(
+ Map<String, CapabilityDefinition> capabilities) {
+ this.capabilities = capabilities;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Map<String, PropertyDefinition> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, PropertyDefinition> properties) {
+ this.properties = properties;
+ }
+
+ public List<String> getMembers() {
+ return members;
+ }
+
+ public void setMembers(List<String> members) {
+ this.members = members;
+ }
+
+ public Map<String, Object> getInterfaces() {
+ return interfaces;
+ }
+
+ public void setInterfaces(Map<String, Object> interfaces) {
+ this.interfaces = interfaces;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Implementation.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Implementation.java
new file mode 100644
index 0000000000..00c0833956
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Implementation.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.
+ */
+
+package org.onap.sdc.tosca.datatypes.model;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Objects;
+
+
+public class Implementation {
+
+ private String primary;
+ private List<String> dependencies;
+
+ public String getPrimary() {
+ return primary;
+ }
+
+ public void setPrimary(String primary) {
+ this.primary = primary;
+ }
+
+ public List<String> getDependencies() {
+ return dependencies;
+ }
+
+ public void setDependencies(List<String> dependencies) {
+ this.dependencies = dependencies;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof Implementation)) {
+ return false;
+ }
+ Implementation that = (Implementation) o;
+ return Objects.equals(primary, that.primary) &&
+ Objects.equals(new HashSet<>(dependencies), new HashSet<>(that.dependencies));
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(primary, dependencies);
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Import.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Import.java
new file mode 100644
index 0000000000..604607c11e
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Import.java
@@ -0,0 +1,63 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+
+
+public class Import {
+
+ private String file;
+ private String repository;
+ private String namespace_uri;
+ private String namespace_prefix;
+
+ public String getFile() {
+ return file;
+ }
+
+ public void setFile(String file) {
+ this.file = file;
+ }
+
+ public String getRepository() {
+ return repository;
+ }
+
+ public void setRepository(String repository) {
+ this.repository = repository;
+ }
+
+ public String getNamespace_uri() {
+ return namespace_uri;
+ }
+
+ public void setNamespace_uri(String namespace_uri) {
+ this.namespace_uri = namespace_uri;
+ }
+
+ public String getNamespace_prefix() {
+ return namespace_prefix;
+ }
+
+ public void setNamespace_prefix(String namespace_prefix) {
+ this.namespace_prefix = namespace_prefix;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/InterfaceDefinition.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/InterfaceDefinition.java
new file mode 100644
index 0000000000..28e871a454
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/InterfaceDefinition.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.
+ */
+package org.onap.sdc.tosca.datatypes.model;
+
+import java.util.Map;
+
+public abstract class InterfaceDefinition {
+
+ protected Map<String, OperationDefinition> operations;
+
+ public abstract void addOperation(String operationName, OperationDefinition operationDefinition);
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/InterfaceDefinitionTemplate.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/InterfaceDefinitionTemplate.java
new file mode 100644
index 0000000000..a39221fe39
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/InterfaceDefinitionTemplate.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.
+ */
+
+package org.onap.sdc.tosca.datatypes.model;
+
+import org.apache.commons.collections4.MapUtils;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+public class InterfaceDefinitionTemplate extends InterfaceDefinition {
+
+ private Map<String, Object> inputs;
+ private Map<String, OperationDefinitionTemplate> operations;
+
+ public Map<String, Object> getInputs() {
+ return inputs;
+ }
+
+ public void setInputs(
+ Map<String, Object> inputs) {
+ this.inputs = inputs;
+ }
+
+ public Map<String, OperationDefinitionTemplate> getOperations() {
+ return operations;
+ }
+
+ public void addOperation(String operationName, OperationDefinitionTemplate operation) {
+ if(MapUtils.isEmpty(this.operations)) {
+ this.operations = new HashMap<>();
+ }
+
+ this.operations.put(operationName, operation);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof InterfaceDefinitionTemplate)) {
+ return false;
+ }
+ InterfaceDefinitionTemplate that = (InterfaceDefinitionTemplate) o;
+ return Objects.equals(inputs, that.inputs) &&
+ Objects.equals(operations, that.operations);
+ }
+
+ @Override
+ public int hashCode() {
+
+ return Objects.hash(inputs, operations);
+ }
+
+ @Override
+ public void addOperation(String operationName, OperationDefinition operationDefinition) {
+ addOperation(operationName, (OperationDefinitionTemplate)operationDefinition);
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/InterfaceDefinitionType.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/InterfaceDefinitionType.java
new file mode 100644
index 0000000000..800786c1af
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/InterfaceDefinitionType.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.
+ */
+
+
+package org.onap.sdc.tosca.datatypes.model;
+
+import org.apache.commons.collections4.MapUtils;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class InterfaceDefinitionType extends InterfaceDefinition {
+
+ private String type;
+ private Map<String, PropertyDefinition> inputs;
+ protected Map<String, OperationDefinitionType> operations;
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public Map<String, PropertyDefinition> getInputs() {
+ return inputs;
+ }
+
+ public void setInputs(
+ Map<String, PropertyDefinition> inputs) {
+ this.inputs = inputs;
+ }
+
+ public Map<String, OperationDefinitionType> getOperations() {
+ return operations;
+ }
+
+ public void setOperations(
+ Map<String, OperationDefinitionType> operations) {
+ this.operations = operations;
+ }
+
+ public void addOperation(String operationName, OperationDefinitionType operation) {
+ if(MapUtils.isEmpty(this.operations)) {
+ this.operations = new HashMap<>();
+ }
+
+ this.operations.put(operationName, operation);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof InterfaceDefinitionType)) {
+ return false;
+ }
+
+ InterfaceDefinitionType that = (InterfaceDefinitionType) o;
+
+ if (getType() != null ? !getType().equals(that.getType()) : that.getType() != null) {
+ return false;
+ }
+ if (getInputs() != null ? !getInputs().equals(that.getInputs()) : that.getInputs() != null) {
+ return false;
+ }
+ return getOperations() != null ? getOperations().equals(that.getOperations())
+ : that.getOperations() == null;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = getType() != null ? getType().hashCode() : 0;
+ result = 31 * result + (getInputs() != null ? getInputs().hashCode() : 0);
+ result = 31 * result + (getOperations() != null ? getOperations().hashCode() : 0);
+ return result;
+ }
+
+ @Override
+ public void addOperation(String operationName, OperationDefinition operationDefinition) {
+ addOperation(operationName, (OperationDefinitionType)operationDefinition);
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/InterfaceType.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/InterfaceType.java
new file mode 100644
index 0000000000..d89aa9fd82
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/InterfaceType.java
@@ -0,0 +1,116 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import org.apache.commons.collections4.MapUtils;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+public class InterfaceType {
+ private String derived_from;
+ private String version;
+ private Map<String, String> metadata;
+ private String description;
+ private Map<String, PropertyDefinition> inputs;
+ private Map<String, OperationDefinition> operations;
+
+ public Map<String, PropertyDefinition> getInputs() {
+ return inputs;
+ }
+
+ public void setInputs(
+ Map<String, PropertyDefinition> inputs) {
+ this.inputs = inputs;
+ }
+
+ public String getDerived_from() {
+ return derived_from;
+ }
+
+ public void setDerived_from(String derived_from) {
+ this.derived_from = derived_from;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ public Map<String, String> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, String> metadata) {
+ this.metadata = metadata;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Map<String, OperationDefinition> getOperations() {
+ return operations;
+ }
+
+ public void setOperations(
+ Map<String, OperationDefinition> operations) {
+ this.operations = operations;
+ }
+
+ public void addOperation(String operationName, OperationDefinition operationDefinition) {
+ if(MapUtils.isEmpty(this.operations)){
+ this.operations = new HashMap<>();
+ }
+ this.operations.put(operationName, operationDefinition);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof InterfaceType)) {
+ return false;
+ }
+ InterfaceType that = (InterfaceType) o;
+ return Objects.equals(derived_from, that.derived_from) &&
+ Objects.equals(version, that.version) &&
+ Objects.equals(metadata, that.metadata) &&
+ Objects.equals(description, that.description) &&
+ Objects.equals(inputs, that.inputs) &&
+ Objects.equals(operations, that.operations);
+ }
+
+ @Override
+ public int hashCode() {
+
+ return Objects.hash(derived_from, version, metadata, description, inputs, operations);
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/NodeFilter.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/NodeFilter.java
new file mode 100644
index 0000000000..692d7e47ee
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/NodeFilter.java
@@ -0,0 +1,49 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+
+
+public class NodeFilter {
+
+ Map<String, List<Constraint>> properties;
+ Map<String, CapabilityFilterDefinition> capabilities;
+
+ public Map<String, List<Constraint>> getProperties() {
+
+ return properties;
+ }
+
+ public void setProperties(Map<String, List<Constraint>> properties) {
+ this.properties = properties;
+ }
+
+ public Map<String, CapabilityFilterDefinition> getCapabilities() {
+ return capabilities;
+ }
+
+ public void setCapabilities(Map<String, CapabilityFilterDefinition> capabilities) {
+ this.capabilities = capabilities;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/NodeTemplate.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/NodeTemplate.java
new file mode 100644
index 0000000000..258a7ec2cd
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/NodeTemplate.java
@@ -0,0 +1,177 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import org.onap.sdc.tosca.services.YamlUtil;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+
+public class NodeTemplate implements Template {
+
+ private String type;
+ private String description;
+ private Map<String, String> metadata;
+ private List<String> directives;
+ private Map<String, Object> properties;
+ private Map<String, Object> attributes;
+ private List<Map<String, RequirementAssignment>> requirements;
+ private Map<String, CapabilityAssignment> capabilities;
+ private Map<String, Object> interfaces;
+ private Map<String, ArtifactDefinition> artifacts;
+ private NodeFilter node_filter;
+ private String copy;
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Map<String, String> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, String> metadata) {
+ this.metadata = metadata;
+ }
+
+ public List<String> getDirectives() {
+ return directives;
+ }
+
+ public void setDirectives(List<String> directives) {
+ this.directives = directives;
+ }
+
+ public Map<String, Object> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, Object> properties) {
+ this.properties = properties;
+ }
+
+ public Map<String, Object> getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(Map<String, Object> attributes) {
+ this.attributes = attributes;
+ }
+
+ public List<Map<String, RequirementAssignment>> getRequirements() {
+ return requirements;
+ }
+
+ public void setRequirements(List<Map<String, RequirementAssignment>> requirements) {
+ this.requirements = requirements;
+ }
+
+ public Map<String, CapabilityAssignment> getCapabilities() {
+ return capabilities;
+ }
+
+ public void setCapabilities(Map<String, CapabilityAssignment> capabilities) {
+ this.capabilities = capabilities;
+ }
+
+ public Map<String, Object> getInterfaces() {
+ return interfaces;
+ }
+
+ public void setInterfaces(Map<String, Object> interfaces) {
+ this.interfaces = interfaces;
+ }
+
+ public Map<String, ArtifactDefinition> getArtifacts() {
+ return artifacts;
+ }
+
+ public void setArtifacts(Map<String, ArtifactDefinition> artifacts) {
+ this.artifacts = artifacts;
+ }
+
+ public NodeFilter getNode_filter() {
+ return node_filter;
+ }
+
+ public void setNode_filter(NodeFilter node_filter) {
+ this.node_filter = node_filter;
+ }
+
+ public String getCopy() {
+ return copy;
+ }
+
+ public void setCopy(String copy) {
+ this.copy = copy;
+ }
+
+ @Override
+ public NodeTemplate clone() {
+ YamlUtil yamlUtil = new YamlUtil();
+ return yamlUtil.yamlToObject(yamlUtil.objectToYaml(this), NodeTemplate.class);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof NodeTemplate)) {
+ return false;
+ }
+ NodeTemplate that = (NodeTemplate) o;
+ return Objects.equals(type, that.type) &&
+ Objects.equals(description, that.description) &&
+ Objects.equals(metadata, that.metadata) &&
+ Objects.equals(directives, that.directives) &&
+ Objects.equals(properties, that.properties) &&
+ Objects.equals(attributes, that.attributes) &&
+ Objects.equals(requirements, that.requirements) &&
+ Objects.equals(capabilities, that.capabilities) &&
+ Objects.equals(interfaces, that.interfaces) &&
+ Objects.equals(artifacts, that.artifacts) &&
+ Objects.equals(node_filter, that.node_filter) &&
+ Objects.equals(copy, that.copy);
+ }
+
+ @Override
+ public int hashCode() {
+
+ return Objects
+ .hash(type, description, metadata, directives, properties, attributes, requirements,
+ capabilities, interfaces, artifacts, node_filter, copy);
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/NodeType.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/NodeType.java
new file mode 100644
index 0000000000..767e8a6668
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/NodeType.java
@@ -0,0 +1,134 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+public class NodeType {
+
+ private String derived_from;
+ private String version;
+ private Map<String, String> metadata;
+ private String description;
+ private Map<String, PropertyDefinition> properties;
+ private Map<String, AttributeDefinition> attributes;
+ private List<Map<String, RequirementDefinition>> requirements;
+ private Map<String, CapabilityDefinition> capabilities;
+ private Map<String, Object> interfaces;
+ private Map<String, ArtifactDefinition> artifacts;
+
+
+ public String getDerived_from() {
+ return derived_from;
+ }
+
+ public void setDerived_from(String derived_from) {
+ this.derived_from = derived_from;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ public Map<String, String> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, String> metadata) {
+ this.metadata = metadata;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Map<String, PropertyDefinition> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, PropertyDefinition> properties) {
+ this.properties = properties;
+ }
+
+ public Map<String, AttributeDefinition> getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(Map<String, AttributeDefinition> attributes) {
+ this.attributes = attributes;
+ }
+
+ public List<Map<String, RequirementDefinition>> getRequirements() {
+ return requirements;
+ }
+
+ public void setRequirements(List<Map<String, RequirementDefinition>> requirements) {
+ this.requirements = requirements;
+ }
+
+ public Map<String, CapabilityDefinition> getCapabilities() {
+ return capabilities;
+ }
+
+ public void setCapabilities(Map<String, CapabilityDefinition> capabilities) {
+ this.capabilities = capabilities;
+ }
+
+ public Map<String, Object> getInterfaces() {
+ return interfaces;
+ }
+
+ public void setInterfaces(Map<String, Object> interfaces) {
+ this.interfaces = interfaces;
+ }
+
+ public Map<String, ArtifactDefinition> getArtifacts() {
+ return artifacts;
+ }
+
+ public void setArtifacts(Map<String, ArtifactDefinition> artifacts) {
+ this.artifacts = artifacts;
+ }
+
+ @Override
+ public NodeType clone() {
+ NodeType clone = new NodeType();
+ clone.setCapabilities(this.getCapabilities());
+ clone.setDerived_from(this.getDerived_from());
+ clone.setProperties(this.getProperties());
+ clone.setRequirements(this.getRequirements());
+ clone.setDescription(this.getDescription());
+ clone.setAttributes(this.getAttributes());
+ clone.setInterfaces(this.getInterfaces());
+ clone.setVersion(this.getVersion());
+ clone.setArtifacts(this.getArtifacts());
+ return clone;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/OperationDefinition.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/OperationDefinition.java
new file mode 100644
index 0000000000..c166588985
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/OperationDefinition.java
@@ -0,0 +1,34 @@
+package org.onap.sdc.tosca.datatypes.model;
+
+import java.util.Objects;
+
+public class OperationDefinition {
+
+ protected String description;
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof OperationDefinition)) {
+ return false;
+ }
+ OperationDefinition that = (OperationDefinition) o;
+ return Objects.equals(description, that.description);
+ }
+
+ @Override
+ public int hashCode() {
+
+ return Objects.hash(description);
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/OperationDefinitionTemplate.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/OperationDefinitionTemplate.java
new file mode 100644
index 0000000000..16e45393cf
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/OperationDefinitionTemplate.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.
+ */
+
+package org.onap.sdc.tosca.datatypes.model;
+
+import java.util.Map;
+import java.util.Objects;
+
+public class OperationDefinitionTemplate extends OperationDefinition {
+
+ private Implementation implementation;
+ private Map<String, Object> inputs;
+
+ public Implementation getImplementation() {
+ return implementation;
+ }
+
+ public void setImplementation(Implementation implementation) {
+ this.implementation = implementation;
+ }
+
+ public Map<String, Object> getInputs() {
+ return inputs;
+ }
+
+ public void setInputs(Map<String, Object> inputs) {
+ this.inputs = inputs;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof OperationDefinitionTemplate)) {
+ return false;
+ }
+ OperationDefinitionTemplate that = (OperationDefinitionTemplate) o;
+ return Objects.equals(implementation, that.implementation) &&
+ Objects.equals(inputs, that.inputs);
+ }
+
+ @Override
+ public int hashCode() {
+
+ return Objects.hash(implementation, inputs);
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/OperationDefinitionType.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/OperationDefinitionType.java
new file mode 100644
index 0000000000..5b87d49055
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/OperationDefinitionType.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.
+ */
+
+package org.onap.sdc.tosca.datatypes.model;
+
+import java.util.Map;
+import java.util.Objects;
+
+public class OperationDefinitionType extends OperationDefinition {
+
+ private String implementation;
+ private Map<String, PropertyDefinition> inputs;
+
+ public String getImplementation() {
+ return implementation;
+ }
+
+ public void setImplementation(String implementation) {
+ this.implementation = implementation;
+ }
+
+ public Map<String, PropertyDefinition> getInputs() {
+ return inputs;
+ }
+
+ public void setInputs(
+ Map<String, PropertyDefinition> inputs) {
+ this.inputs = inputs;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof OperationDefinitionType)) {
+ return false;
+ }
+ OperationDefinitionType that = (OperationDefinitionType) o;
+ return Objects.equals(implementation, that.implementation) &&
+ Objects.equals(inputs, that.inputs);
+ }
+
+ @Override
+ public int hashCode() {
+
+ return Objects.hash(implementation, inputs);
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ParameterDefinition.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ParameterDefinition.java
new file mode 100644
index 0000000000..7426c33010
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ParameterDefinition.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.
+ */
+
+package org.onap.sdc.tosca.datatypes.model;
+
+
+public class ParameterDefinition extends DefinitionOfDataType {
+
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/PolicyDefinition.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/PolicyDefinition.java
new file mode 100644
index 0000000000..e1c2fb468c
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/PolicyDefinition.java
@@ -0,0 +1,72 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+public class PolicyDefinition implements Template {
+ private String type;
+ private String description;
+ private Map<String, String> metadata;
+ private Map<String, Object> properties;
+ private List<String> targets;
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Map<String, String> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, String> metadata) {
+ this.metadata = metadata;
+ }
+
+ public Map<String, Object> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, Object> properties) {
+ this.properties = properties;
+ }
+
+ public List<String> getTargets() {
+ return targets;
+ }
+
+ public void setTargets(List<String> targets) {
+ this.targets = targets;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/PolicyType.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/PolicyType.java
new file mode 100644
index 0000000000..54d52cceec
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/PolicyType.java
@@ -0,0 +1,94 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+
+
+public class PolicyType {
+
+ private String derived_from;
+ private String version;
+ private Map<String, String> metadata;
+ private String description;
+ private Map<String, PropertyDefinition> properties;
+ private List<String> targets;
+ private List<Trigger> triggers;
+
+ public String getDerived_from() {
+ return derived_from;
+ }
+
+ public void setDerived_from(String derived_from) {
+ this.derived_from = derived_from;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Map<String, PropertyDefinition> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, PropertyDefinition> properties) {
+ this.properties = properties;
+ }
+
+ public List<String> getTargets() {
+ return targets;
+ }
+
+ public void setTargets(List<String> targets) {
+ this.targets = targets;
+ }
+
+ public Map<String, String> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, String> metadata) {
+ this.metadata = metadata;
+ }
+
+ public List<Trigger> getTriggers() {
+ return triggers;
+ }
+
+ public void setTriggers(
+ List<Trigger> triggers) {
+ this.triggers = triggers;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/PreconditionDefinition.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/PreconditionDefinition.java
new file mode 100644
index 0000000000..8bd5c540b0
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/PreconditionDefinition.java
@@ -0,0 +1,32 @@
+package org.onap.sdc.tosca.datatypes.model;
+
+public class PreconditionDefinition {
+
+ private String target;
+ private String target_relationship;
+ private Constraint condition;
+
+ public String getTarget() {
+ return target;
+ }
+
+ public void setTarget(String target) {
+ this.target = target;
+ }
+
+ public String getTarget_relationship() {
+ return target_relationship;
+ }
+
+ public void setTarget_relationship(String target_relationship) {
+ this.target_relationship = target_relationship;
+ }
+
+ public Constraint getCondition() {
+ return condition;
+ }
+
+ public void setCondition(Constraint condition) {
+ this.condition = condition;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/PropertyDefinition.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/PropertyDefinition.java
new file mode 100644
index 0000000000..58c4a75347
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/PropertyDefinition.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.
+ */
+
+package org.onap.sdc.tosca.datatypes.model;
+
+import org.onap.sdc.tosca.services.DataModelCloneUtil;
+
+import java.util.Objects;
+
+public class PropertyDefinition extends DefinitionOfDataType {
+
+ public PropertyDefinition() {
+ this.status = Status.SUPPORTED;
+ this.required = true;
+ }
+
+ @Override
+ public PropertyDefinition clone() {
+ PropertyDefinition propertyDefinition = new PropertyDefinition();
+ propertyDefinition.setType(this.getType());
+ propertyDefinition.setDescription(this.getDescription());
+ propertyDefinition.setRequired(this.getRequired());
+ propertyDefinition.set_default(this.get_default());
+ propertyDefinition.setStatus(this.getStatus());
+ propertyDefinition.setEntry_schema(
+ Objects.isNull(this.getEntry_schema()) ? null : this.getEntry_schema().clone());
+ propertyDefinition.setConstraints(DataModelCloneUtil.cloneConstraints(this.getConstraints()));
+ return propertyDefinition;
+ }
+
+
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/PropertyType.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/PropertyType.java
new file mode 100644
index 0000000000..d08a1271e3
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/PropertyType.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.
+ */
+
+package org.onap.sdc.tosca.datatypes.model;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+public enum PropertyType {
+
+ STRING("string"),
+ INTEGER("integer"),
+ FLOAT("float"),
+ BOOLEAN("boolean"),
+ TIMESTAMP("timestamp"),
+ NULL("null"),
+ MAP("map"),
+ LIST("list"),
+ SCALAR_UNIT_SIZE("scalar-unit.size"),
+ SCALAR_UNIT_FREQUENCY("scalar-unit.frequency");
+
+ private static final Map<String, PropertyType> mMap =
+ Collections.unmodifiableMap(initializeMapping());
+ private static final Set<String> simplePropertyTypes =
+ Collections.unmodifiableSet(initializeSimplePropertyTypes());
+ private String displayName;
+
+ PropertyType(String displayName) {
+
+ this.displayName = displayName;
+ }
+
+ /**
+ * Initilize property type display name mapping.
+ * @return Map
+ */
+ public static Map<String, PropertyType> initializeMapping() {
+ Map<String, PropertyType> typeMap = new HashMap<>();
+ for (PropertyType v : PropertyType.values()) {
+ typeMap.put(v.displayName, v);
+ }
+ return typeMap;
+ }
+
+ /**
+ * Get Property type by display name.
+ * @param displayName
+ * @return PropertyType
+ */
+ public static PropertyType getPropertyTypeByDisplayName(String displayName) {
+ if (mMap == null) {
+ initializeMapping();
+ }
+ if (mMap.containsKey(displayName)) {
+ return mMap.get(displayName);
+ }
+ return null;
+ }
+
+ private static Set<String> initializeSimplePropertyTypes() {
+ Set<String> simplePropertyTypes = new HashSet<>(4);
+ simplePropertyTypes.add(STRING.getDisplayName().toLowerCase());
+ simplePropertyTypes.add(INTEGER.getDisplayName().toLowerCase());
+ simplePropertyTypes.add(FLOAT.getDisplayName().toLowerCase());
+ simplePropertyTypes.add(BOOLEAN.getDisplayName().toLowerCase());
+ return simplePropertyTypes;
+ }
+
+ public static Set<String> getSimplePropertyTypes() {
+ return simplePropertyTypes;
+ }
+
+ public String getDisplayName() {
+ return displayName;
+ }
+
+
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/RelationshipTemplate.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/RelationshipTemplate.java
new file mode 100644
index 0000000000..d9a81137f0
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/RelationshipTemplate.java
@@ -0,0 +1,110 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import java.util.Map;
+
+
+
+public class RelationshipTemplate implements Template {
+
+ private String type;
+ private String description;
+ private Map<String, String> metadata;
+ private Map<String, Object> properties;
+ private Map<String, Object> attributes;
+ private Map<String, RequirementAssignment> requirements;
+ private Map<String, CapabilityAssignment> capabilities;
+ private Map<String, Object> interfaces;
+ private String copy;
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Map<String, String> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, String> metadata) {
+ this.metadata = metadata;
+ }
+
+ public Map<String, Object> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, Object> properties) {
+ this.properties = properties;
+ }
+
+ public Map<String, Object> getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(Map<String, Object> attributes) {
+ this.attributes = attributes;
+ }
+
+ public Map<String, RequirementAssignment> getRequirements() {
+ return requirements;
+ }
+
+ public void setRequirements(Map<String, RequirementAssignment> requirements) {
+ this.requirements = requirements;
+ }
+
+ public Map<String, CapabilityAssignment> getCapabilities() {
+ return capabilities;
+ }
+
+ public void setCapabilities(Map<String, CapabilityAssignment> capabilities) {
+ this.capabilities = capabilities;
+ }
+
+ public Map<String, Object> getInterfaces() {
+ return interfaces;
+ }
+
+ public void setInterfaces(Map<String, Object> interfaces) {
+ this.interfaces = interfaces;
+ }
+
+ public String getCopy() {
+ return copy;
+ }
+
+ public void setCopy(String copy) {
+ this.copy = copy;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/RelationshipType.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/RelationshipType.java
new file mode 100644
index 0000000000..dacd5bcddf
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/RelationshipType.java
@@ -0,0 +1,102 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+public class RelationshipType {
+
+ private String derived_from;
+ private String version;
+ private Map<String, String> metadata;
+ private String description;
+ private Map<String, PropertyDefinition> properties;
+ private Map<String, AttributeDefinition> attributes;
+ private Map<String, Object> interfaces;
+ private List<String> valid_target_types;
+ //An optional list of one or more names of Capability Types that are valid targets
+ // for this relationship
+
+ public String getDerived_from() {
+ return derived_from;
+ }
+
+ public void setDerived_from(String derived_from) {
+ this.derived_from = derived_from;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ public Map<String, String> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, String> metadata) {
+ this.metadata = metadata;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Map<String, PropertyDefinition> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, PropertyDefinition> properties) {
+ this.properties = properties;
+ }
+
+ public Map<String, AttributeDefinition> getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(Map<String, AttributeDefinition> attributes) {
+ this.attributes = attributes;
+ }
+
+ public Map<String, Object> getInterfaces() {
+ return interfaces;
+ }
+
+ public void setInterfaces(Map<String, Object> interfaces) {
+ this.interfaces = interfaces;
+ }
+
+ public List<String> getValid_target_types() {
+ return valid_target_types;
+ }
+
+ public void setValid_target_types(List<String> valid_target_types) {
+ this.valid_target_types = valid_target_types;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Repository.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Repository.java
new file mode 100644
index 0000000000..a9328234d1
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Repository.java
@@ -0,0 +1,32 @@
+package org.onap.sdc.tosca.datatypes.model;
+
+public class Repository {
+
+ private String description;
+ private String url;
+ private Credential credential;
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public Credential getCredential() {
+ return credential;
+ }
+
+ public void setCredential(Credential credential) {
+ this.credential = credential;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/RequirementAssignment.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/RequirementAssignment.java
new file mode 100644
index 0000000000..0cd15e5549
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/RequirementAssignment.java
@@ -0,0 +1,71 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+
+public class RequirementAssignment {
+
+ private String capability;
+ private String node;
+ private String relationship;
+ private NodeFilter node_filter;
+ private Object[] occurrences;
+
+ public String getCapability() {
+ return capability;
+ }
+
+ public void setCapability(String capability) {
+ this.capability = capability;
+ }
+
+ public String getNode() {
+ return node;
+ }
+
+ public void setNode(String node) {
+ this.node = node;
+ }
+
+ public String getRelationship() {
+ return relationship;
+ }
+
+ public void setRelationship(String relationship) {
+ this.relationship = relationship;
+ }
+
+ public NodeFilter getNode_filter() {
+ return node_filter;
+ }
+
+ public void setNode_filter(NodeFilter node_filter) {
+ this.node_filter = node_filter;
+ }
+
+ public Object[] getOccurrences() {
+ return occurrences;
+ }
+
+ public void setOccurrences(Object[] occurrences) {
+ this.occurrences = occurrences;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/RequirementDefinition.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/RequirementDefinition.java
new file mode 100644
index 0000000000..cc8b6f6166
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/RequirementDefinition.java
@@ -0,0 +1,83 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+
+public class RequirementDefinition {
+
+ private String capability;
+ private String node;
+ private String relationship;
+ private Object[] occurrences;
+
+ /**
+ * Instantiates a new Requirement definition.
+ */
+ public RequirementDefinition() {
+ occurrences = new Object[2];
+ occurrences[0] = 1;
+ occurrences[1] = 1;
+ }
+
+ public String getCapability() {
+ return capability;
+ }
+
+ public void setCapability(String capability) {
+ this.capability = capability;
+ }
+
+ public String getNode() {
+ return node;
+ }
+
+ public void setNode(String node) {
+ this.node = node;
+ }
+
+ public String getRelationship() {
+ return relationship;
+ }
+
+ public void setRelationship(String relationship) {
+ this.relationship = relationship;
+ }
+
+ public Object[] getOccurrences() {
+ return occurrences;
+ }
+
+ public void setOccurrences(Object[] occurrences) {
+ this.occurrences = occurrences;
+ }
+
+ @Override
+ public RequirementDefinition clone() {
+ RequirementDefinition requirementDefinition = new RequirementDefinition();
+ requirementDefinition.setNode(this.getNode());
+ requirementDefinition.setRelationship(this.getRelationship());
+ requirementDefinition.setCapability(this.getCapability());
+ requirementDefinition
+ .setOccurrences(new Object[]{this.getOccurrences()[0], this.getOccurrences()[1]});
+ return requirementDefinition;
+ }
+
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Scalar.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Scalar.java
new file mode 100644
index 0000000000..302ba4808c
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Scalar.java
@@ -0,0 +1,36 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+
+
+public class Scalar {
+
+ private Float value;
+
+ public Float getValue() {
+ return value;
+ }
+
+ public void setValue(Float value) {
+ this.value = value;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ServiceTemplate.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ServiceTemplate.java
new file mode 100644
index 0000000000..8ffc1f601e
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/ServiceTemplate.java
@@ -0,0 +1,184 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.
+ */
+
+package org.onap.sdc.tosca.datatypes.model;
+
+import org.apache.commons.collections4.MapUtils;
+import org.onap.sdc.tosca.datatypes.model.heatextend.AnnotationType;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+public class ServiceTemplate implements Template {
+
+ private String tosca_definitions_version;
+ private Map<String, String> metadata;
+ private Object dsl_definitions;
+ private Map<String, Repository> repositories;
+ private String description;
+ private List<Map<String, Import>> imports;
+ private Map<String, ArtifactType> artifact_types;
+ private Map<String, DataType> data_types;
+ private Map<String, CapabilityType> capability_types;
+ private Map<String, Object> interface_types;
+ private Map<String, RelationshipType> relationship_types;
+ private Map<String, NodeType> node_types;
+ private Map<String, GroupType> group_types;
+ private Map<String, PolicyType> policy_types;
+ private Map<String, AnnotationType> annotation_types;
+ private TopologyTemplate topology_template;
+
+ public String getTosca_definitions_version() {
+ return tosca_definitions_version;
+ }
+
+ public void setTosca_definitions_version(String tosca_definitions_version) {
+ this.tosca_definitions_version = tosca_definitions_version;
+ }
+
+ public Map<String, String> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, String> metadata) {
+ this.metadata = metadata;
+ }
+
+ public Object getDsl_definitions() {
+ return dsl_definitions;
+ }
+
+ public void setDsl_definitions(Object dsl_definitions) {
+ this.dsl_definitions = dsl_definitions;
+ }
+
+ public Map<String, Repository> getRepositories() {
+ return repositories;
+ }
+
+ public void setRepositories(
+ Map<String, Repository> repositories) {
+ this.repositories = repositories;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public List<Map<String, Import>> getImports() {
+ return imports;
+ }
+
+ public void setImports(
+ List<Map<String, Import>> imports) {
+ this.imports = imports;
+ }
+
+ public Map<String, ArtifactType> getArtifact_types() {
+ return artifact_types;
+ }
+
+ public void setArtifact_types(Map<String, ArtifactType> artifact_types) {
+ this.artifact_types = artifact_types;
+ }
+
+ public Map<String, DataType> getData_types() {
+ return data_types;
+ }
+
+ public void setData_types(Map<String, DataType> data_types) {
+ this.data_types = data_types;
+ }
+
+ public Map<String, CapabilityType> getCapability_types() {
+ return capability_types;
+ }
+
+ public void setCapability_types(Map<String, CapabilityType> capability_types) {
+ this.capability_types = capability_types;
+ }
+
+ public Map<String, RelationshipType> getRelationship_types() {
+ return relationship_types;
+ }
+
+ public void setRelationship_types(Map<String, RelationshipType> relationship_types) {
+ this.relationship_types = relationship_types;
+ }
+
+ public Map<String, NodeType> getNode_types() {
+ return node_types;
+ }
+
+ public void setNode_types(Map<String, NodeType> node_types) {
+ this.node_types = node_types;
+ }
+
+ public Map<String, GroupType> getGroup_types() {
+ return group_types;
+ }
+
+ public void setGroup_types(Map<String, GroupType> group_types) {
+ this.group_types = group_types;
+ }
+
+ public Map<String, Object> getInterface_types() {
+ return interface_types;
+ }
+
+ public void setInterface_types(Map<String, Object> interface_types) {
+ this.interface_types = interface_types;
+ }
+
+ public void addInterfaceType(String interfaceKey, InterfaceType interfaceType) {
+ if (MapUtils.isEmpty(this.interface_types)) {
+ this.interface_types = new HashMap<>();
+ }
+
+ this.interface_types.put(interfaceKey, interfaceType);
+ }
+
+ public Map<String, PolicyType> getPolicy_types() {
+ return policy_types;
+ }
+
+ public void setPolicy_types(Map<String, PolicyType> policy_types) {
+ this.policy_types = policy_types;
+ }
+
+ public TopologyTemplate getTopology_template() {
+ return topology_template;
+ }
+
+ public void setTopology_template(TopologyTemplate topology_template) {
+ this.topology_template = topology_template;
+ }
+
+ public Map<String, AnnotationType> getAnnotation_types() {
+ return annotation_types;
+ }
+
+ public void setAnnotation_types(Map<String, AnnotationType> annotation_types) {
+ this.annotation_types = annotation_types;
+ }
+
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Status.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Status.java
new file mode 100644
index 0000000000..c0f6d874d7
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Status.java
@@ -0,0 +1,42 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+
+
+public enum Status {
+
+ SUPPORTED("supported"),
+ UNSUPPORTED("unsupported"),
+ EXPERIMENTAL("experimental"),
+ DEPRECATED("deprecated"),;
+ private String displayName;
+
+ Status(String displayName) {
+ this.displayName = displayName;
+ }
+
+ public String getDisplayName() {
+ return displayName;
+ }
+
+
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/StepDefinition.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/StepDefinition.java
new file mode 100644
index 0000000000..660b31c5e4
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/StepDefinition.java
@@ -0,0 +1,71 @@
+package org.onap.sdc.tosca.datatypes.model;
+
+import java.util.List;
+
+public class StepDefinition {
+
+ private String target;
+ private String target_relationship;
+ private String operation_host;
+ private List<Constraint> filter;
+ private List<ActivityDefinition> activities;
+ private String on_success;
+ private String on_failure;
+
+
+ public String getTarget() {
+ return target;
+ }
+
+ public void setTarget(String target) {
+ this.target = target;
+ }
+
+ public String getTarget_relationship() {
+ return target_relationship;
+ }
+
+ public void setTarget_relationship(String target_relationship) {
+ this.target_relationship = target_relationship;
+ }
+
+ public String getOperation_host() {
+ return operation_host;
+ }
+
+ public void setOperation_host(String operation_host) {
+ this.operation_host = operation_host;
+ }
+
+ public List<Constraint> getFilter() {
+ return filter;
+ }
+
+ public void setFilter(List<Constraint> filter) {
+ this.filter = filter;
+ }
+
+ public List<ActivityDefinition> getActivities() {
+ return activities;
+ }
+
+ public void setActivities(List<ActivityDefinition> activities) {
+ this.activities = activities;
+ }
+
+ public String getOn_success() {
+ return on_success;
+ }
+
+ public void setOn_success(String on_success) {
+ this.on_success = on_success;
+ }
+
+ public String getOn_failure() {
+ return on_failure;
+ }
+
+ public void setOn_failure(String on_failure) {
+ this.on_failure = on_failure;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/SubstitutionMapping.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/SubstitutionMapping.java
new file mode 100644
index 0000000000..3669ae1df4
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/SubstitutionMapping.java
@@ -0,0 +1,54 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+public class SubstitutionMapping {
+ private String node_type;
+ private Map<String, List<String>> capabilities;
+ private Map<String, List<String>> requirements;
+
+ public String getNode_type() {
+ return node_type;
+ }
+
+ public void setNode_type(String node_type) {
+ this.node_type = node_type;
+ }
+
+ public Map<String, List<String>> getRequirements() {
+ return requirements;
+ }
+
+ public void setRequirements(Map<String, List<String>> requirements) {
+ this.requirements = requirements;
+ }
+
+ public Map<String, List<String>> getCapabilities() {
+ return capabilities;
+ }
+
+ public void setCapabilities(Map<String, List<String>> capabilities) {
+ this.capabilities = capabilities;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Template.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Template.java
new file mode 100644
index 0000000000..490881688e
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Template.java
@@ -0,0 +1,24 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+public interface Template {
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/TimeInterval.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/TimeInterval.java
new file mode 100644
index 0000000000..6e39ec67e3
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/TimeInterval.java
@@ -0,0 +1,24 @@
+package org.onap.sdc.tosca.datatypes.model;
+
+import java.sql.Timestamp;
+
+public class TimeInterval {
+ private Timestamp start_time;
+ private Timestamp end_time;
+
+ public Timestamp getStart_time() {
+ return start_time;
+ }
+
+ public void setStart_time(Timestamp start_time) {
+ this.start_time = start_time;
+ }
+
+ public Timestamp getEnd_time() {
+ return end_time;
+ }
+
+ public void setEnd_time(Timestamp end_time) {
+ this.end_time = end_time;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/TopologyTemplate.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/TopologyTemplate.java
new file mode 100644
index 0000000000..fde5f41bd2
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/TopologyTemplate.java
@@ -0,0 +1,124 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+public class TopologyTemplate {
+
+ private String description;
+ private Map<String, ParameterDefinition> inputs;
+ private Map<String, NodeTemplate> node_templates;
+ private Map<String, RelationshipTemplate> relationship_templates;
+ private Map<String, GroupDefinition> groups;
+ private Map<String, ParameterDefinition> outputs;
+ private SubstitutionMapping substitution_mappings;
+ private Map<String, PolicyDefinition> policies;
+ private List<WorkflowDefinition> workflows;
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Map<String, ParameterDefinition> getInputs() {
+ return inputs;
+ }
+
+ public void setInputs(Map<String, ParameterDefinition> inputs) {
+ this.inputs = inputs;
+ }
+
+ public Map<String, NodeTemplate> getNode_templates() {
+ return node_templates;
+ }
+
+ public void setNode_templates(Map<String, NodeTemplate> node_templates) {
+ this.node_templates = node_templates;
+ }
+
+ public Map<String, RelationshipTemplate> getRelationship_templates() {
+ return relationship_templates;
+ }
+
+ public void setRelationship_templates(Map<String, RelationshipTemplate> relationship_templates) {
+ this.relationship_templates = relationship_templates;
+ }
+
+ public Map<String, GroupDefinition> getGroups() {
+ return groups;
+ }
+
+ public void setGroups(Map<String, GroupDefinition> groups) {
+ this.groups = groups;
+ }
+
+ /**
+ * Add group.
+ *
+ * @param groupKey the group key
+ * @param groupDefinition the group definition
+ */
+ public void addGroup(String groupKey, GroupDefinition groupDefinition) {
+ if (Objects.isNull(this.groups)) {
+ this.groups = new HashMap<>();
+ }
+ this.groups.put(groupKey, groupDefinition);
+ }
+
+ public Map<String, ParameterDefinition> getOutputs() {
+ return outputs;
+ }
+
+ public void setOutputs(Map<String, ParameterDefinition> outputs) {
+ this.outputs = outputs;
+ }
+
+ public SubstitutionMapping getSubstitution_mappings() {
+ return substitution_mappings;
+ }
+
+ public void setSubstitution_mappings(SubstitutionMapping substitution_mappings) {
+ this.substitution_mappings = substitution_mappings;
+ }
+
+ public Map<String, PolicyDefinition> getPolicies() {
+ return policies;
+ }
+
+ public void setPolicies(Map<String, PolicyDefinition> policies) {
+ this.policies = policies;
+ }
+
+ public List<WorkflowDefinition> getWorkflows() {
+ return workflows;
+ }
+
+ public void setWorkflows(List<WorkflowDefinition> workflows) {
+ this.workflows = workflows;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Trigger.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Trigger.java
new file mode 100644
index 0000000000..92f3b30183
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/Trigger.java
@@ -0,0 +1,97 @@
+package org.onap.sdc.tosca.datatypes.model;
+
+public class Trigger {
+
+ private String description;
+ private String event_type;
+ private TimeInterval schedule;
+ private EventFilter target_filter;
+ private Constraint condition;
+ private Constraint constraint;
+ private String period;
+ private int evaluations;
+ private String method;
+ //action - String or operation?
+ private Object action;
+
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getEvent_type() {
+ return event_type;
+ }
+
+ public void setEvent_type(String event_type) {
+ this.event_type = event_type;
+ }
+
+ public TimeInterval getSchedule() {
+ return schedule;
+ }
+
+ public void setSchedule(TimeInterval schedule) {
+ this.schedule = schedule;
+ }
+
+ public EventFilter getTarget_filter() {
+ return target_filter;
+ }
+
+ public void setTarget_filter(EventFilter target_filter) {
+ this.target_filter = target_filter;
+ }
+
+ public Constraint getCondition() {
+ return condition;
+ }
+
+ public void setCondition(Constraint condition) {
+ this.condition = condition;
+ }
+
+ public Constraint getConstraint() {
+ return constraint;
+ }
+
+ public void setConstraint(Constraint constraint) {
+ this.constraint = constraint;
+ }
+
+ public String getPeriod() {
+ return period;
+ }
+
+ public void setPeriod(String period) {
+ this.period = period;
+ }
+
+ public int getEvaluations() {
+ return evaluations;
+ }
+
+ public void setEvaluations(int evaluations) {
+ this.evaluations = evaluations;
+ }
+
+ public String getMethod() {
+ return method;
+ }
+
+ public void setMethod(String method) {
+ this.method = method;
+ }
+
+ public Object getAction() {
+ return action;
+ }
+
+ public void setAction(Object action) {
+ this.action = action;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/WorkflowDefinition.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/WorkflowDefinition.java
new file mode 100644
index 0000000000..deacc77767
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/WorkflowDefinition.java
@@ -0,0 +1,55 @@
+package org.onap.sdc.tosca.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+public class WorkflowDefinition {
+ private String description;
+ private Map<String, String> metadata;
+ private Map<String, PropertyDefinition> inputs;
+ private List<PreconditionDefinition> preconditions;
+ private Map<String, StepDefinition> steps;
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Map<String, String> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, String> metadata) {
+ this.metadata = metadata;
+ }
+
+ public Map<String, PropertyDefinition> getInputs() {
+ return inputs;
+ }
+
+ public void setInputs(
+ Map<String, PropertyDefinition> inputs) {
+ this.inputs = inputs;
+ }
+
+ public List<PreconditionDefinition> getPreconditions() {
+ return preconditions;
+ }
+
+ public void setPreconditions(
+ List<PreconditionDefinition> preconditions) {
+ this.preconditions = preconditions;
+ }
+
+ public Map<String, StepDefinition> getSteps() {
+ return steps;
+ }
+
+ public void setSteps(
+ Map<String, StepDefinition> steps) {
+ this.steps = steps;
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/heatextend/AnnotationDefinition.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/heatextend/AnnotationDefinition.java
new file mode 100644
index 0000000000..8734dbcf07
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/heatextend/AnnotationDefinition.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * 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.
+ */
+
+package org.onap.sdc.tosca.datatypes.model.heatextend;
+
+import java.util.Map;
+
+public class AnnotationDefinition {
+
+ private String type;
+ private Map<String, Object> properties;
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public Map<String, Object> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, Object> properties) {
+ this.properties = properties;
+ }
+
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/heatextend/AnnotationType.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/heatextend/AnnotationType.java
new file mode 100644
index 0000000000..f2d124ac18
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/heatextend/AnnotationType.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright © 2018 European Support Limited
+ *
+ * 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.
+ */
+
+ package org.onap.sdc.tosca.datatypes.model.heatextend;
+
+ import org.onap.sdc.tosca.datatypes.model.PropertyDefinition;
+
+ import java.util.Map;
+
+ public class AnnotationType {
+
+ private String version;
+ private String description;
+ private Map<String, PropertyDefinition> properties;
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Map<String, PropertyDefinition> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, PropertyDefinition> properties) {
+ this.properties = properties;
+ }
+
+ } \ No newline at end of file
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/heatextend/ParameterDefinitionExt.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/heatextend/ParameterDefinitionExt.java
new file mode 100644
index 0000000000..dccb200148
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/heatextend/ParameterDefinitionExt.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * 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.
+ */
+
+package org.onap.sdc.tosca.datatypes.model.heatextend;
+
+import org.onap.sdc.tosca.datatypes.model.ParameterDefinition;
+import java.util.Map;
+
+public class ParameterDefinitionExt extends ParameterDefinition {
+
+ private String label;
+ private Boolean hidden;
+ private Boolean immutable;
+ private Map<String, AnnotationDefinition> annotations;
+
+ public String getLabel() {
+ return label;
+ }
+
+ public void setLabel(String label) {
+ this.label = label;
+ }
+
+ public Boolean getHidden() {
+ return hidden;
+ }
+
+ public void setHidden(Boolean hidden) {
+ this.hidden = hidden;
+ }
+
+ public Boolean getImmutable() {
+ return immutable;
+ }
+
+ public void setImmutable(Boolean immutable) {
+ this.immutable = immutable;
+ }
+
+ public Map<String, AnnotationDefinition> getAnnotations() {
+ return annotations;
+ }
+
+ public void setAnnotations(Map<String, AnnotationDefinition> annotations) {
+ this.annotations = annotations;
+ }
+
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/heatextend/PropertyTypeExt.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/heatextend/PropertyTypeExt.java
new file mode 100644
index 0000000000..34d91cbb51
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/datatypes/model/heatextend/PropertyTypeExt.java
@@ -0,0 +1,85 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.datatypes.model.heatextend;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * The enum Property type ext.
+ */
+public enum PropertyTypeExt {
+
+ /**
+ * Json property type ext.
+ */
+ JSON("json");
+
+ private static final Map<String, PropertyTypeExt> mMap =
+ Collections.unmodifiableMap(initializeMapping());
+ private String displayName;
+
+ PropertyTypeExt(String displayName) {
+
+ this.displayName = displayName;
+ }
+
+ /**
+ * Initialize mapping map.
+ *
+ * @return the map
+ */
+ public static Map<String, PropertyTypeExt> initializeMapping() {
+ Map<String, PropertyTypeExt> typeMap = new HashMap<String, PropertyTypeExt>();
+ for (PropertyTypeExt v : PropertyTypeExt.values()) {
+ typeMap.put(v.displayName, v);
+ }
+ return typeMap;
+ }
+
+ /**
+ * Gets property type by display name.
+ *
+ * @param displayName the display name
+ * @return the property type by display name
+ */
+ public static PropertyTypeExt getPropertyTypeByDisplayName(String displayName) {
+ if (mMap == null) {
+ initializeMapping();
+ }
+ if (mMap.containsKey(displayName)) {
+ return mMap.get(displayName);
+ }
+ return null;
+ }
+
+ /**
+ * Gets display name.
+ *
+ * @return the display name
+ */
+ public String getDisplayName() {
+ return displayName;
+ }
+
+
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/services/DataModelCloneUtil.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/services/DataModelCloneUtil.java
new file mode 100644
index 0000000000..f2868449c7
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/services/DataModelCloneUtil.java
@@ -0,0 +1,103 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.sdc.tosca.services;
+
+
+import org.onap.sdc.tosca.datatypes.model.AttributeDefinition;
+import org.onap.sdc.tosca.datatypes.model.Constraint;
+import org.onap.sdc.tosca.datatypes.model.PropertyDefinition;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+public class DataModelCloneUtil {
+
+ /**
+ * Clone constraints list.
+ *
+ * @param constraints the constraints
+ * @return the list
+ */
+ public static List<Constraint> cloneConstraints(List<Constraint> constraints) {
+
+ if (constraints == null) {
+ return null;
+ }
+ return constraints.stream().map(Constraint::clone).collect(Collectors.toList());
+ }
+
+ /**
+ * Clone property definitions map.
+ *
+ * @param propertyDefinitions the property definitions
+ * @return the map
+ */
+ public static Map<String, PropertyDefinition> clonePropertyDefinitions(
+ Map<String, PropertyDefinition> propertyDefinitions) {
+
+ if (propertyDefinitions == null) {
+ return null;
+ }
+ Map<String, PropertyDefinition> clonedProperties = new HashMap<>();
+ for (String propertyKey : propertyDefinitions.keySet()) {
+ clonedProperties.put(propertyKey, propertyDefinitions.get(propertyKey).clone());
+ }
+
+ return clonedProperties;
+ }
+
+ /**
+ * Clone attribute definitions map.
+ *
+ * @param attributeDefinitions the attribute definitions
+ * @return the map
+ */
+ public static Map<String, AttributeDefinition> cloneAttributeDefinitions(
+ Map<String, AttributeDefinition> attributeDefinitions) {
+
+ if (attributeDefinitions == null) {
+ return null;
+ }
+ Map<String, AttributeDefinition> clonedAttributeDefinitions = new HashMap<>();
+ for (String attributeKey : attributeDefinitions.keySet()) {
+ clonedAttributeDefinitions.put(attributeKey, attributeDefinitions.get(attributeKey).clone());
+ }
+
+ return clonedAttributeDefinitions;
+ }
+
+ /**
+ * Clone valid source types list.
+ *
+ * @param validSourceTypes the valid source types
+ * @return the list
+ */
+ public static List<String> cloneValidSourceTypes(List<String> validSourceTypes) {
+
+ if (validSourceTypes == null) {
+ return null;
+ }
+
+ return validSourceTypes.stream().collect(Collectors.toList());
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/services/ToscaExtensionYamlUtil.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/services/ToscaExtensionYamlUtil.java
new file mode 100644
index 0000000000..efd4982541
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/services/ToscaExtensionYamlUtil.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * 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.
+ */
+
+package org.onap.sdc.tosca.services;
+
+import org.yaml.snakeyaml.constructor.Constructor;
+import org.yaml.snakeyaml.introspector.Property;
+import org.yaml.snakeyaml.introspector.PropertyUtils;
+import org.yaml.snakeyaml.nodes.MappingNode;
+import org.yaml.snakeyaml.nodes.NodeId;
+
+import java.beans.IntrospectionException;
+
+
+public class ToscaExtensionYamlUtil extends YamlUtil {
+
+ @Override
+ public <T> Constructor getConstructor(Class<T> typClass) {
+ return new ToscaWithHeatExtensionConstructor(typClass);
+ }
+
+ @Override
+ protected PropertyUtils getPropertyUtils() {
+ return new ToscaPropertyUtilsWithHeatExtension();
+ }
+
+ public class ToscaPropertyUtilsWithHeatExtension extends MyPropertyUtils {
+ @Override
+ public Property getProperty(Class<? extends Object> type, String name)
+ throws IntrospectionException {
+ Class<? extends Object> classType = type;
+ try {
+ if (type
+ .equals(Class.forName("org.onap.sdc.tosca.datatypes.model.ParameterDefinition"))) {
+ classType = Class
+ .forName("org.onap.sdc.tosca.datatypes.model.heatextend.ParameterDefinitionExt");
+ }
+ } catch (ClassNotFoundException ex) {
+ throw new RuntimeException(ex);
+ }
+ return super.getProperty(classType, name);
+ }
+ }
+
+ protected class ToscaWithHeatExtensionConstructor extends StrictMapAppenderConstructor {
+ public ToscaWithHeatExtensionConstructor(Class<?> theRoot) {
+ super(theRoot);
+ yamlClassConstructors.put(NodeId.mapping, new MyPersistentObjectConstruct());
+ }
+
+ class MyPersistentObjectConstruct extends Constructor.ConstructMapping {
+ @Override
+ protected Object constructJavaBean2ndStep(MappingNode node, Object object) {
+ Class type = node.getType();
+ try {
+ if (type.equals(
+ Class.forName("org.onap.sdc.tosca.datatypes.model.ParameterDefinition"))) {
+ Class extendHeatClass = Class.forName(
+ "org.onap.sdc.tosca.datatypes.model.heatextend.ParameterDefinitionExt");
+ Object extendHeatObject = extendHeatClass.newInstance();
+ // create JavaBean
+ return super.constructJavaBean2ndStep(node, extendHeatObject);
+ } else {
+ // create JavaBean
+ return super.constructJavaBean2ndStep(node, object);
+ }
+ } catch (ClassNotFoundException | InstantiationException | IllegalAccessException ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+ }
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/services/YamlUtil.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/services/YamlUtil.java
new file mode 100644
index 0000000000..4030d3acd1
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/services/YamlUtil.java
@@ -0,0 +1,272 @@
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * 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.
+ */
+
+package org.onap.sdc.tosca.services;
+
+import org.yaml.snakeyaml.DumperOptions;
+import org.yaml.snakeyaml.TypeDescription;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.constructor.Constructor;
+import org.yaml.snakeyaml.introspector.BeanAccess;
+import org.yaml.snakeyaml.introspector.Property;
+import org.yaml.snakeyaml.introspector.PropertyUtils;
+import org.yaml.snakeyaml.nodes.MappingNode;
+import org.yaml.snakeyaml.nodes.NodeTuple;
+import org.yaml.snakeyaml.nodes.Tag;
+import org.yaml.snakeyaml.parser.ParserException;
+import org.yaml.snakeyaml.representer.Representer;
+
+import java.beans.IntrospectionException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.AbstractMap;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * The type Yaml util.
+ */
+@SuppressWarnings("unchecked")
+public class YamlUtil {
+
+ private static final String DEFAULT = "default";
+ private static final String DEFAULT_STR = "_default";
+
+ /**
+ * Yaml to object t.
+ *
+ * @param <T> the type parameter
+ * @param yamlContent the yaml content
+ * @param typClass the t class
+ * @return the t
+ */
+ public <T> T yamlToObject(String yamlContent, Class<T> typClass) {
+ Constructor constructor = getConstructor(typClass);
+ constructor.setPropertyUtils(getPropertyUtils());
+ TypeDescription yamlFileDescription = new TypeDescription(typClass);
+ constructor.addTypeDescription(yamlFileDescription);
+ Yaml yaml = new Yaml(constructor);
+ T yamlObj = (T) yaml.load(yamlContent);
+ //noinspection ResultOfMethodCallIgnored
+ yamlObj.toString();
+ return yamlObj;
+ }
+
+ public InputStream loadYamlFileIs(String yamlFullFileName) {
+ return YamlUtil.class.getResourceAsStream(yamlFullFileName);
+ }
+
+ /**
+ * Yaml to object t.
+ *
+ * @param <T> the type parameter
+ * @param yamlContent the yaml content
+ * @param typClass the t class
+ * @return the t
+ */
+ public <T> T yamlToObject(InputStream yamlContent, Class<T> typClass) {
+ try {
+ Constructor constructor = getConstructor(typClass);
+ constructor.setPropertyUtils(getPropertyUtils());
+ TypeDescription yamlFileDescription = new TypeDescription(typClass);
+ constructor.addTypeDescription(yamlFileDescription);
+ Yaml yaml = new Yaml(constructor);
+ T yamlObj = (T) yaml.load(yamlContent);
+ if (yamlObj != null) {
+ //noinspection ResultOfMethodCallIgnored
+ yamlObj.toString();
+ return yamlObj;
+ } else {
+ throw new RuntimeException();
+ }
+ } catch (Exception exception) {
+ throw new RuntimeException(exception);
+ } finally {
+ try {
+ if (yamlContent != null) {
+ yamlContent.close();
+ }
+ } catch (IOException ignore) {
+ //do nothing
+ }
+ }
+ }
+
+
+ /**
+ * Gets constructor.
+ *
+ * @param <T> the type parameter
+ * @param typClass the t class
+ * @return the constructor
+ */
+ public <T> Constructor getConstructor(Class<T> typClass) {
+ return new StrictMapAppenderConstructor(typClass);
+ }
+
+ /**
+ * Gets property utils.
+ *
+ * @return the property utils
+ */
+ protected PropertyUtils getPropertyUtils() {
+ return new MyPropertyUtils();
+ }
+
+
+ /**
+ * Yaml to map map.
+ *
+ * @param yamlContent the yaml content
+ * @return the map
+ */
+ public Map<String, LinkedHashMap<String, Object>> yamlToMap(InputStream yamlContent) {
+ Yaml yaml = new Yaml();
+ return (Map<String, LinkedHashMap<String, Object>>) yaml.load(yamlContent);
+ }
+
+ /**
+ * Object to yaml string.
+ * @param obj the obj
+ * @return the string
+ */
+ public String objectToYaml(Object obj) {
+ DumperOptions options = new DumperOptions();
+ options.setPrettyFlow(true);
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ Representer representer = new CustomRepresenter();
+ representer.addClassTag(obj.getClass(), Tag.MAP);
+ representer.setPropertyUtils(new MyPropertyUtils());
+
+ Yaml yaml = new Yaml(representer, options);
+ return yaml.dump(obj);
+ }
+
+ /**
+ * Is yaml file content valid boolean.
+ *
+ * @param yamlFullFileName the yaml full file name
+ * @return the boolean
+ */
+ public boolean isYamlFileContentValid(String yamlFullFileName) {
+ Yaml yaml = new Yaml();
+ try {
+ Object loadResult = yaml.load(yamlFullFileName);
+ return loadResult != null;
+ } catch (Exception exception) {
+ return false;
+ }
+ }
+
+
+ private class CustomRepresenter extends Representer {
+ @Override
+ protected MappingNode representJavaBean(Set<Property> properties, Object javaBean) {
+ //remove the bean type from the output yaml (!! ...)
+ if (!classTags.containsKey(javaBean.getClass())) {
+ addClassTag(javaBean.getClass(), Tag.MAP);
+ }
+
+ return super.representJavaBean(properties, javaBean);
+ }
+
+ @Override
+ protected NodeTuple representJavaBeanProperty(Object javaBean, Property property,
+ Object propertyValue, Tag customTag) {
+ if (propertyValue == null) {
+ return null;
+ } else {
+ NodeTuple defaultNode =
+ super.representJavaBeanProperty(javaBean, property, propertyValue, customTag);
+
+ return DEFAULT_STR.equals(property.getName())
+ ? new NodeTuple(representData(DEFAULT), defaultNode.getValueNode())
+ : defaultNode;
+ }
+ }
+ }
+
+
+ /**
+ * The type My property utils.
+ */
+ public class MyPropertyUtils extends PropertyUtils {
+ //Unsorted properties
+ @Override
+ protected Set<Property> createPropertySet(Class<? extends Object> type, BeanAccess bnAccess)
+ throws IntrospectionException {
+ return new LinkedHashSet<>(getPropertiesMap(type,
+ BeanAccess.FIELD).values());
+ }
+
+ @Override
+ public Property getProperty(Class<?> type, String name) throws IntrospectionException {
+ String updatedName = name;
+ if (DEFAULT.equals(updatedName)) {
+ updatedName = DEFAULT_STR;
+ }
+ return super.getProperty(type, updatedName);
+ }
+
+ }
+
+ /**
+ * The type Strict map appender constructor.
+ */
+ protected class StrictMapAppenderConstructor extends Constructor {
+
+ /**
+ * Instantiates a new Strict map appender constructor.
+ *
+ * @param theRoot the the root
+ */
+ public StrictMapAppenderConstructor(Class<?> theRoot) {
+ super(theRoot);
+ }
+
+ @Override
+ protected Map<Object, Object> createDefaultMap() {
+ final Map<Object, Object> delegate = super.createDefaultMap();
+ return new AbstractMap<Object, Object>() {
+ @Override
+ public Object put(Object key, Object value) {
+ if (delegate.containsKey(key)) {
+ throw new IllegalStateException("duplicate key: " + key);
+ }
+ return delegate.put(key, value);
+ }
+
+ @Override
+ public Set<Entry<Object, Object>> entrySet() {
+ return delegate.entrySet();
+ }
+ };
+ }
+
+ @Override
+ protected Map<Object, Object> constructMapping(MappingNode node) {
+ try {
+ return super.constructMapping(node);
+ } catch (IllegalStateException exception) {
+ throw new ParserException("while parsing MappingNode",
+ node.getStartMark(), exception.getMessage(),
+ node.getEndMark());
+ }
+ }
+ }
+}
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/onap/_index.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/onap/_index.yml
new file mode 100644
index 0000000000..145766b3b0
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/onap/_index.yml
@@ -0,0 +1,35 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: onap/_index.yml
+ version: '1.0'
+
+
+imports:
+- tosca_index:
+ file: ../tosca/_index.yml
+- capabilities:
+ file: capabilities.yml
+- nodes:
+ file: nodes.yml
+- relationships:
+ file: relationships.yml
+- groups:
+ file: groups.yml
+- data:
+ file: data.yml
+
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/onap/capabilities.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/onap/capabilities.yml
new file mode 100644
index 0000000000..3a7104fd9d
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/onap/capabilities.yml
@@ -0,0 +1,74 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: onap/capabilities.yml
+ version: '1.0'
+
+imports:
+- onap_index:
+ file: _index.yml
+
+capability_types:
+
+ tosca.capabilities.nfv.VirtualLinkable:
+ derived_from: tosca.capabilities.Root
+
+ tosca.capabilities.nfv.Metric:
+ derived_from: tosca.capabilities.Root
+
+ tosca.capabilities.nfv.VirtualBindable:
+ derived_from: tosca.capabilities.Root
+
+ tosca.capabilities.nfv.VirtualCompute:
+ derived_from: tosca.capabilities.Root
+ properties:
+ virtual_memory:
+ type: tosca.datatypes.nfv.VirtualMemory
+ requested_additional_capabilities:
+ entry_schema:
+ type: tosca.datatypes.nfv.RequestedAdditionalCapability
+ required: false
+ type: map
+ virtual_cpu:
+ type: tosca.datatypes.nfv.VirtualCpu
+
+ tosca.capabilities.nfv.VirtualStorage:
+ derived_from: tosca.capabilities.Root
+
+ tosca.capabilities.nfv.Forwarder:
+ derived_from: tosca.capabilities.Root
+
+ tosca.capabilities.nfv.ext.Compute.Container.Architecture:
+ derived_from: tosca.capabilities.Root
+ properties:
+ num_cpus:
+ required: false
+ type: string
+ flavor_extra_specs:
+ entry_schema:
+ type: string
+ required: false
+ type: map
+ mem_size:
+ required: false
+ type: string
+
+ tosca.capabilities.nfv.ext.ImageFile:
+ derived_from: tosca.capabilities.Root
+
+ tosca.capabilities.nfv.ext.LocalAttachment:
+ derived_from: tosca.capabilities.Root \ No newline at end of file
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/onap/data.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/onap/data.yml
new file mode 100644
index 0000000000..de251c3843
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/onap/data.yml
@@ -0,0 +1,215 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: onap/data.yml
+ version: '1.0'
+
+imports:
+- onap_index:
+ file: _index.yml
+
+data_types:
+
+ tosca.datatypes.nfv.RequestedAdditionalCapability:
+ derived_from: tosca.datatypes.Root
+ properties:
+ support_mandatory:
+ type: boolean
+ required: true
+ min_requested_additional_capability_version:
+ type: string
+ required: false
+ preferred_requested_additional_capability_version:
+ type: string
+ required: false
+ requested_additional_capability_name:
+ type: string
+ required: true
+ target_performance_parameters:
+ type: map
+ entry_schema:
+ type: string
+ required: true
+ tosca.datatypes.nfv.VirtualMemory:
+ derived_from: tosca.datatypes.Root
+ properties:
+ virtual_mem_size:
+ type: string
+ required: true
+ virtual_mem_oversubscription_policy:
+ type: string
+ required: false
+ numa_enabled:
+ type: boolean
+ required: false
+ tosca.datatypes.nfv.VirtualCpu:
+ derived_from: tosca.datatypes.Root
+ properties:
+ cpu_architecture:
+ type: string
+ required: false
+ num_virtual_cpu:
+ type: integer
+ required: true
+ virtual_cpu_clock:
+ type: scalar-unit.frequency
+ required: false
+ virtual_cpu_oversubscription_policy:
+ type: string
+ required: false
+ virtual_cpu_pinning:
+ type: tosca.datatypes.nfv.VirtualCpuPinning
+ required: false
+ tosca.datatypes.nfv.VirtualCpuPinning:
+ derived_from: tosca.datatypes.Root
+ properties:
+ cpu_pinning_policy:
+ type: string
+ constraints:
+ - valid_values: [ static, dynamic ]
+ required: false
+ cpu_pinning_map:
+ type: map
+ entry_schema:
+ type: string
+ required: false
+ tosca.datatypes.nfv.VnfcConfigurableProperties:
+ properties:
+ additional_vnfc_configurable_properties:
+ entry_schema:
+ type: string
+ required: false
+ type: map
+ tosca.datatypes.nfv.L3AddressData:
+ properties:
+ number_of_ip_address:
+ required: false
+ type: integer
+ ip_address_assignment:
+ type: boolean
+ ip_address_type:
+ constraints:
+ - valid_values:
+ - ipv4
+ - ipv6
+ required: false
+ type: string
+ floating_ip_activated:
+ type: string
+ tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements:
+ properties:
+ name:
+ required: false
+ type: string
+ support_mandatory:
+ type: boolean
+ description:
+ required: false
+ type: string
+ requirement:
+ entry_schema:
+ type: string
+ type: map
+ tosca.datatype.nfv.AddressData:
+ properties:
+ address_type:
+ constraints:
+ - valid_values:
+ - mac_address
+ - ip_address
+ type: string
+ l2_address_data:
+ required: false
+ type: tosca.datatypes.nfv.L2AddressData
+ l3_address_data:
+ required: false
+ type: tosca.datatypes.nfv.L3AddressData
+ tosca.datatypes.nfv.L2AddressData: {}
+ tosca.datatypes.nfv.ConnectivityType:
+ properties:
+ layer_protocol:
+ constraints:
+ - valid_values:
+ - ethernet
+ - mpls
+ - odu2
+ - ipv4
+ - ipv6
+ - pseudo_wire
+ type: string
+ flow_pattern:
+ required: false
+ type: string
+ tosca.datatypes.nfv.ext.FloatingIP:
+ properties:
+ external_network:
+ required: false
+ type: string
+ ip_address:
+ required: false
+ type: string
+ tosca.datatypes.nfv.ext.AddressPairs:
+ properties:
+ ip:
+ required: false
+ type: string
+ mac:
+ required: false
+ type: string
+ tosca.datatypes.nfv.ext.InjectData:
+ properties:
+ file_name:
+ required: false
+ type: string
+ file_data:
+ required: false
+ type: string
+ tosca.datatypes.nfv.ext.zte.WatchDog:
+ properties:
+ enable_delay:
+ required: false
+ type: integer
+ action:
+ required: false
+ type: string
+ tosca.datatypes.nfv.ext.LocalAffinityOrAntiAffinityRule:
+ properties:
+ scope:
+ required: false
+ type: string
+ affinity_antiaffinity:
+ required: false
+ type: string
+ tosca.datatypes.nfv.ext.LocationInfo:
+ properties:
+ availability_zone:
+ required: false
+ type: string
+ vimid:
+ required: false
+ type: integer
+ tenant:
+ required: false
+ type: string
+ tosca.datatypes.nfv.ext.HostRouteInfo:
+ properties:
+ destination:
+ required: false
+ type: string
+ nexthop:
+ required: false
+ type: string \ No newline at end of file
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/onap/nodes.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/onap/nodes.yml
new file mode 100644
index 0000000000..643f731f09
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/onap/nodes.yml
@@ -0,0 +1,583 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: onap/nodes.yml
+ version: '1.0'
+
+imports:
+- onap_index:
+ file: _index.yml
+
+node_types:
+
+ tosca.nodes.nfv.NS.vEPC_NS:
+ derived_from: tosca.nodes.nfv.NS
+ properties:
+ vendor:
+ default: ChinaMobile
+ required: false
+ type: string
+ csarVersion:
+ default: v1.0
+ required: false
+ type: string
+ name:
+ default: vEPC_NS
+ required: false
+ type: string
+ csarProvider:
+ default: ChinaMobile
+ required: false
+ type: string
+ id:
+ default: vEPC_NS
+ required: false
+ type: string
+ version:
+ default: v1.0
+ required: false
+ type: string
+ csarType:
+ default: NSAR
+ required: false
+ type: string
+ requirements:
+ - virtualLink:
+ capability: tosca.capabilities.nfv.VirtualLinkable
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ tosca.nodes.nfv.NS.vIMS_NS:
+ derived_from: tosca.nodes.nfv.NS
+ properties:
+ vendor:
+ default: ChinaMobile
+ required: false
+ type: string
+ csarVersion:
+ default: v1.0
+ required: false
+ type: string
+ name:
+ default: vIMS_NS
+ required: false
+ type: string
+ csarProvider:
+ default: ChinaMobile
+ required: false
+ type: string
+ id:
+ default: vIMS_NS
+ required: false
+ type: string
+ version:
+ default: v1.0
+ required: false
+ type: string
+ csarType:
+ default: NSAR
+ required: false
+ type: string
+ requirements:
+ - virtualLink:
+ capability: tosca.capabilities.nfv.VirtualLinkable
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ tosca.nodes.nfv.NS:
+ derived_from: tosca.nodes.Root
+ properties:
+ vendor:
+ required: false
+ type: string
+ name:
+ required: false
+ type: string
+ id:
+ required: false
+ type: string
+ version:
+ required: false
+ type: string
+ requirements:
+ - virtualLink:
+ capability: tosca.capabilities.nfv.VirtualLinkable
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ tosca.nodes.nfv.VDU.Compute:
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: string
+ ports:
+ type: string
+ capabilities:
+ scalable:
+ type: tosca.capabilities.Scalable
+ virtual_compute:
+ type: tosca.capabilities.nfv.VirtualCompute
+ endpoint:
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ virtual_binding:
+ type: tosca.capabilities.nfv.VirtualBindable
+ host:
+ type: tosca.capabilities.Container
+ binding:
+ type: tosca.capabilities.network.Bindable
+ monitoring_parameter:
+ type: tosca.capabilities.nfv.Metric
+ derived_from: tosca.nodes.Root
+ properties:
+ configurable_properties:
+ entry_schema:
+ type: tosca.datatypes.nfv.VnfcConfigurableProperties
+ type: map
+ name:
+ type: string
+ nfvi_constraints:
+ entry_schema:
+ type: string
+ required: false
+ type: list
+ descrption:
+ type: string
+ boot_order:
+ entry_schema:
+ type: string
+ required: false
+ type: list
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - virtual_storage:
+ capability: tosca.capabilities.nfv.VirtualStorage
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ tosca.nodes.nfv.VDU.VirtualStorage:
+ capabilities:
+ virtual_storage:
+ type: tosca.capabilities.nfv.VirtualStorage
+ derived_from: tosca.nodes.Root
+ properties:
+ id:
+ type: string
+ size_of_storage:
+ type: string
+ rdma_enabled:
+ required: false
+ type: boolean
+ type_of_storage:
+ type: string
+
+ tosca.nodes.nfv.VduCpd:
+ derived_from: tosca.nodes.Root
+ properties:
+ virtual_network_interface_requirements:
+ entry_schema:
+ type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements
+ required: false
+ type: list
+ role:
+ constraints:
+ - valid_values:
+ - root
+ - leaf
+ required: false
+ type: string
+ bitrate_requirement:
+ required: false
+ type: integer
+ description:
+ required: false
+ type: string
+ layer_protocol:
+ constraints:
+ - valid_values:
+ - ethernet
+ - mpls
+ - odu2
+ - ipv4
+ - ipv6
+ - pseudo_wire
+ type: string
+ address_data:
+ entry_schema:
+ type: tosca.datatype.nfv.AddressData
+ required: false
+ type: list
+ requirements:
+ - virtual_binding:
+ capability: tosca.capabilities.nfv.VirtualBindable
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - virtual_link:
+ capability: tosca.capabilities.nfv.VirtualBindable
+ occurrences:
+ - 0
+ - UNBOUNDED
+ tosca.nodes.nfv.ext.ImageFile:
+ capabilities:
+ guest_os:
+ type: tosca.capabilities.nfv.ext.GuestOs
+ image_fle:
+ type: tosca.capabilities.nfv.ext.ImageFile
+ derived_from: tosca.nodes.Root
+ properties:
+ file_url:
+ required: false
+ type: string
+ container_type:
+ required: false
+ type: string
+ name:
+ required: false
+ type: string
+ disk_format:
+ required: false
+ type: string
+ version:
+ required: false
+ type: string
+ tosca.nodes.nfv.ext.LocalStorage:
+ capabilities:
+ local_attachment:
+ type: tosca.capabilities.nfv.ext.LocalAttachment
+ derived_from: tosca.nodes.Root
+ properties:
+ size:
+ required: false
+ type: string
+ disk_type:
+ required: false
+ type: string
+ tosca.nodes.nfv.ext.zte.CP:
+ capabilities:
+ forwarder:
+ type: tosca.capabilities.nfv.Forwarder
+ derived_from: tosca.nodes.Root
+ properties:
+ guest_os_mtu:
+ required: false
+ type: integer
+ bandwidth:
+ required: false
+ type: integer
+ interface_name:
+ required: false
+ type: string
+ allowed_address_pairs:
+ entry_schema:
+ type: tosca.datatypes.nfv.ext.AddressPairs
+ required: false
+ type: list
+ ip_address:
+ required: false
+ type: string
+ bond:
+ required: false
+ type: string
+ proxiedVNFs:
+ entry_schema:
+ type: string
+ required: false
+ type: list
+ sfc_encapsulation:
+ required: false
+ type: string
+ floating_ip_address:
+ required: false
+ type: tosca.datatypes.nfv.ext.FloatingIP
+ service_ip_address:
+ required: false
+ type: string
+ mac_address:
+ required: false
+ type: string
+ proxiedVNFtype:
+ required: false
+ type: string
+ macbond:
+ required: false
+ type: string
+ vnic_type:
+ required: false
+ type: string
+ direction:
+ required: false
+ type: string
+ order:
+ required: false
+ type: integer
+ requirements:
+ - forwarder:
+ capability: tosca.capabilities.nfv.Forwarder
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - virtualbinding:
+ capability: tosca.capabilities.nfv.VirtualBindable
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - virtualLink:
+ capability: tosca.capabilities.nfv.VirtualBindable
+ occurrences:
+ - 0
+ - UNBOUNDED
+ tosca.nodes.nfv.ext.zte.VDU:
+ capabilities:
+ scalable:
+ type: tosca.capabilities.Scalable
+ monitoring_parameter:
+ type: tosca.capabilities.nfv.Metric
+ nfv_compute:
+ type: tosca.capabilities.nfv.ext.Compute.Container.Architecture
+ virtualbinding:
+ type: tosca.capabilities.nfv.VirtualBindable
+ derived_from: tosca.nodes.Root
+ properties:
+ manual_scale_select_vim:
+ required: false
+ type: boolean
+ vdu_type:
+ required: false
+ type: string
+ watchdog:
+ required: false
+ type: tosca.datatypes.nfv.ext.zte.WatchDog
+ name:
+ required: false
+ type: string
+ local_affinity_antiaffinity_rule:
+ required: false
+ type: tosca.datatypes.nfv.ext.LocalAffinityOrAntiAffinityRule
+ support_scaling:
+ required: false
+ type: boolean
+ storage_policy:
+ required: false
+ type: string
+ key_vdu:
+ required: false
+ type: boolean
+ location_info:
+ required: false
+ type: tosca.datatypes.nfv.ext.LocationInfo
+ inject_data_list:
+ entry_schema:
+ type: tosca.datatypes.nfv.ext.InjectData
+ required: false
+ type: list
+ requirements:
+ - guest_os:
+ capability: tosca.capabilities.nfv.ext.GuestOs
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage:
+ capability: tosca.capabilities.nfv.ext.LocalAttachment
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - volume_storage:
+ capability: tosca.capabilities.Attachment
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency:
+ capability: tosca.capabilities.Node
+ occurrences:
+ - 0
+ - UNBOUNDED
+ tosca.nodes.nfv.ext.zte.VL:
+ capabilities:
+ virtual_linkable:
+ type: tosca.capabilities.nfv.VirtualLinkable
+ derived_from: tosca.nodes.Root
+ properties:
+ segmentation_id:
+ required: false
+ type: string
+ network_name:
+ required: false
+ type: string
+ is_predefined:
+ required: false
+ type: boolean
+ mtu:
+ required: false
+ type: integer
+ dns_nameservers:
+ entry_schema:
+ type: string
+ required: false
+ type: list
+ physical_network:
+ required: false
+ type: string
+ dhcp_enabled:
+ required: false
+ type: boolean
+ network_id:
+ required: false
+ type: string
+ host_routes:
+ entry_schema:
+ type: tosca.datatypes.nfv.ext.HostRouteInfo
+ required: false
+ type: list
+ ip_version:
+ required: false
+ type: integer
+ vendor:
+ required: false
+ type: string
+ name:
+ required: false
+ type: string
+ start_ip:
+ required: false
+ type: string
+ vlan_transparent:
+ required: false
+ type: boolean
+ cidr:
+ required: false
+ type: string
+ gateway_ip:
+ required: false
+ type: string
+ network_type:
+ required: false
+ type: string
+ end_ip:
+ required: false
+ type: string
+ location_info:
+ required: false
+ type: tosca.datatypes.nfv.ext.LocationInfo
+ tosca.nodes.nfv.ext.zte.VNF:
+ capabilities:
+ forwarder:
+ type: tosca.capabilities.nfv.Forwarder
+ derived_from: tosca.nodes.Root
+ properties:
+ request_reclassification:
+ required: false
+ type: boolean
+ domain_type:
+ required: false
+ type: string
+ nsh_aware:
+ required: false
+ type: boolean
+ plugin_info:
+ required: false
+ type: string
+ adjust_vnf_capacity:
+ required: false
+ type: boolean
+ vnfd_version:
+ required: false
+ type: string
+ vmnumber_overquota_alarm:
+ required: false
+ type: boolean
+ custom_properties:
+ entry_schema:
+ type: string
+ required: false
+ type: map
+ version:
+ required: false
+ type: string
+ cross_dc:
+ required: false
+ type: boolean
+ script_info:
+ required: false
+ type: string
+ vendor:
+ required: false
+ type: string
+ is_shared:
+ required: false
+ type: boolean
+ name:
+ required: false
+ type: string
+ vnf_extend_type:
+ required: false
+ type: string
+ id:
+ required: false
+ type: string
+ vnf_type:
+ required: false
+ type: string
+ is_sfc_proxy:
+ required: false
+ type: boolean
+ requirements:
+ - forwarder:
+ capability: tosca.capabilities.nfv.Forwarder
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - virtualLink:
+ capability: tosca.capabilities.nfv.VirtualLinkable
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ tosca.nodes.nfv.VnfVirtualLinkDesc:
+ capabilities:
+ monitoring_parameters:
+ type: tosca.capabilities.nfv.Metric
+ virtual_linkable:
+ type: tosca.capabilities.nfv.VirtualLinkable
+ derived_from: tosca.nodes.Root
+ properties:
+ vl_flavours:
+ entry_schema:
+ type: string
+ type: map
+ description:
+ required: false
+ type: string
+ test_access:
+ entry_schema:
+ type: string
+ required: false
+ type: list
+ connectivity_type:
+ type: tosca.datatypes.nfv.ConnectivityType \ No newline at end of file
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/onap/relationships.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/onap/relationships.yml
new file mode 100644
index 0000000000..a8230c5b56
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/onap/relationships.yml
@@ -0,0 +1,38 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: onap/relationships.yml
+ version: '1.0'
+
+imports:
+- onap_index:
+ file: _index.yml
+
+relationship_types:
+
+ tosca.relationships.nfv.VDU.AttachedTo:
+ derived_from: tosca.relationships.Root
+ properties:
+ location:
+ required: false
+ type: string
+
+ tosca.relationships.nfv.VirtualBindsTo:
+ derived_from: tosca.relationships.Root
+
+ tosca.relationships.nfv.VirtualLinksTo:
+ derived_from: tosca.relationships.Root \ No newline at end of file
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/_index.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/_index.yml
new file mode 100644
index 0000000000..fa37f50d8a
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/_index.yml
@@ -0,0 +1,30 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: openecomp-heat/_index.yml
+ version: '1.0'
+
+
+imports:
+- openecomp_index:
+ file: ../openecomp/_index.yml
+- nodes:
+ file: nodes.yml
+- groups:
+ file: groups.yml
+- data:
+ file: data.yml \ No newline at end of file
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/data.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/data.yml
new file mode 100644
index 0000000000..bc1f5efd68
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/data.yml
@@ -0,0 +1,817 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: openecomp-heat/data.yml
+ version: '1.0'
+
+imports:
+- heat_index:
+ file: _index.yml
+
+data_types:
+
+ org.openecomp.datatypes.heat.network.AddressPair:
+ derived_from: tosca.datatypes.Root
+ description: MAC/IP address pairs
+ properties:
+ mac_address:
+ description: MAC address
+ type: string
+ status: SUPPORTED
+ required: false
+ ip_address:
+ description: IP address
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.novaServer.network.PortExtraProperties:
+ derived_from: tosca.datatypes.Root
+ description: Nova server network expand properties for port
+ properties:
+ port_security_enabled:
+ description: Flag to enable/disable port security on the port
+ type: boolean
+ status: SUPPORTED
+ required: false
+ mac_address:
+ description: MAC address to give to this port
+ type: string
+ status: SUPPORTED
+ required: false
+ admin_state_up:
+ description: The administrative state of this port
+ type: boolean
+ status: SUPPORTED
+ default: true
+ required: false
+ qos_policy:
+ description: The name or ID of QoS policy to attach to this port
+ type: string
+ status: SUPPORTED
+ required: false
+ allowed_address_pairs:
+ description: Additional MAC/IP address pairs allowed to pass through the port
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.AddressPair
+ required: false
+ binding:vnic_type:
+ description: The vnic type to be bound on the neutron port
+ type: string
+ status: SUPPORTED
+ required: false
+ constraints:
+ - valid_values:
+ - macvtap
+ - direct
+ - normal
+ value_specs:
+ description: Extra parameters to include in the request
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ default: {}
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.network.rule.SrcPortPairs:
+ derived_from: tosca.datatypes.Root
+ description: source port pairs
+ properties:
+ network_policy_entries_policy_rule_src_ports_start_port:
+ description: Start port
+ type: string
+ status: SUPPORTED
+ required: false
+ network_policy_entries_policy_rule_src_ports_end_port:
+ description: End port
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPair:
+ derived_from: tosca.datatypes.Root
+ description: Virtual Machine Sub Interface Address Pair.
+ properties:
+ address_mode:
+ description: Address Mode.
+ type: string
+ status: SUPPORTED
+ required: false
+ ip:
+ description: IP.
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairIp
+ status: SUPPORTED
+ required: false
+ mac:
+ description: Mac.
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.network.rule.DstVirtualNetwork:
+ derived_from: tosca.datatypes.Root
+ description: destination addresses
+ properties:
+ network_policy_entries_policy_rule_dst_addresses_virtual_network:
+ description: Destination addresses Virtual network
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.network.rule.Rule:
+ derived_from: tosca.datatypes.Root
+ description: policy rule
+ properties:
+ network_policy_entries_policy_rule_dst_addresses:
+ description: Destination addresses
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.DstVirtualNetwork
+ required: false
+ network_policy_entries_policy_rule_dst_ports:
+ description: Destination ports
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.DstPortPairs
+ required: false
+ network_policy_entries_policy_rule_protocol:
+ description: Protocol
+ type: string
+ status: SUPPORTED
+ required: false
+ network_policy_entries_policy_rule_src_addresses:
+ description: Source addresses
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.SrcVirtualNetwork
+ required: false
+ network_policy_entries_policy_rule_direction:
+ description: Direction
+ type: string
+ status: SUPPORTED
+ required: false
+ network_policy_entries_policy_rule_src_ports:
+ description: Source ports
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.SrcPortPairs
+ required: false
+ network_policy_entries_policy_rule_action_list:
+ description: Action list
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.ActionList
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.network.neutron.SecurityRules.Rule:
+ derived_from: tosca.datatypes.Root
+ description: Rules Pairs
+ properties:
+ remote_group_id:
+ description: The remote group ID to be associated with this security group rule
+ type: string
+ status: SUPPORTED
+ required: false
+ protocol:
+ description: The protocol that is matched by the security group rule
+ type: string
+ status: SUPPORTED
+ required: false
+ constraints:
+ - valid_values:
+ - tcp
+ - udp
+ - icmp
+ ethertype:
+ description: Ethertype of the traffic
+ type: string
+ status: SUPPORTED
+ default: IPv4
+ required: false
+ constraints:
+ - valid_values:
+ - IPv4
+ - IPv6
+ port_range_max:
+ description: 'The maximum port number in the range that is matched by the
+ security group rule. '
+ type: integer
+ status: SUPPORTED
+ required: false
+ constraints:
+ - in_range:
+ - 0
+ - 65535
+ remote_ip_prefix:
+ description: The remote IP prefix (CIDR) to be associated with this security group rule
+ type: string
+ status: SUPPORTED
+ required: false
+ remote_mode:
+ description: Whether to specify a remote group or a remote IP prefix
+ type: string
+ status: SUPPORTED
+ default: remote_ip_prefix
+ required: false
+ constraints:
+ - valid_values:
+ - remote_ip_prefix
+ - remote_group_id
+ direction:
+ description: The direction in which the security group rule is applied
+ type: string
+ status: SUPPORTED
+ default: ingress
+ required: false
+ constraints:
+ - valid_values:
+ - egress
+ - ingress
+ port_range_min:
+ description: The minimum port number in the range that is matched by the security group rule.
+ type: integer
+ status: SUPPORTED
+ required: false
+ constraints:
+ - in_range:
+ - 0
+ - 65535
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnet:
+ derived_from: tosca.datatypes.Root
+ description: Network Ipam Ref Data Subnet
+ properties:
+ network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
+ description: Network ipam refs data ipam subnets ip prefix len
+ type: string
+ status: SUPPORTED
+ required: false
+ network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
+ description: Network ipam refs data ipam subnets ip prefix
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.Properties:
+ derived_from: tosca.datatypes.Root
+ description: Virtual Machine Sub Interface VLAN Properties.
+ properties:
+ sub_interface_vlan_tag:
+ description: Sub Interface VLAN Tag.
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairIp:
+ derived_from: tosca.datatypes.Root
+ description: Virtual Machine Sub Interface Address Pair IP.
+ properties:
+ ip_prefix:
+ description: IP Prefix.
+ type: string
+ status: SUPPORTED
+ required: false
+ ip_prefix_len:
+ description: IP Prefix Len.
+ type: integer
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.network.rule.SrcVirtualNetwork:
+ derived_from: tosca.datatypes.Root
+ description: source addresses
+ properties:
+ network_policy_entries_policy_rule_src_addresses_virtual_network:
+ description: Source addresses Virtual network
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.network.rule.ActionList:
+ derived_from: tosca.datatypes.Root
+ description: Action List
+ properties:
+ network_policy_entries_policy_rule_action_list_simple_action:
+ description: Simple Action
+ type: string
+ status: SUPPORTED
+ required: false
+ network_policy_entries_policy_rule_action_list_apply_service:
+ description: Apply Service
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.IpamRefData:
+ derived_from: tosca.datatypes.Root
+ description: Network Ipam Ref Data
+ properties:
+ network_ipam_refs_data_ipam_subnets:
+ description: Network ipam refs data ipam subnets
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnetList
+ required: false
+
+ org.openecomp.datatypes.heat.FileInfo:
+ derived_from: tosca.datatypes.Root
+ description: Heat File Info
+ properties:
+ file:
+ description: The required URI string (relative or absolute) which can be used to locate the file
+ type: string
+ status: SUPPORTED
+ required: true
+ file_type:
+ description: The type of the file
+ type: string
+ status: SUPPORTED
+ required: true
+ constraints:
+ - valid_values:
+ - base
+ - env
+ - volume
+ - network
+
+ org.openecomp.datatypes.heat.network.contrail.InterfaceData:
+ derived_from: tosca.datatypes.Root
+ description: Interface Data
+ properties:
+ static_routes:
+ description: An ordered list of static routes to be added to this interface
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.contrail.port.StaticRoute
+ required: false
+ virtual_network:
+ description: Virtual Network for this interface
+ type: string
+ status: SUPPORTED
+ required: true
+ allowed_address_pairs:
+ description: List of allowed address pair for this interface
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.contrail.AddressPair
+ required: false
+ ip_address:
+ description: IP for this interface
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefData:
+ derived_from: tosca.datatypes.Root
+ description: network policy refs data
+ properties:
+ network_policy_refs_data_sequence:
+ description: Network Policy ref data sequence
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefDataSequence
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.network.rule.DstPortPairs:
+ derived_from: tosca.datatypes.Root
+ description: destination port pairs
+ properties:
+ network_policy_entries_policy_rule_dst_ports_start_port:
+ description: Start port
+ type: string
+ status: SUPPORTED
+ required: false
+ network_policy_entries_policy_rule_dst_ports_end_port:
+ description: End port
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.network.AllocationPool:
+ derived_from: tosca.datatypes.Root
+ description: The start and end addresses for the allocation pool
+ properties:
+ start:
+ description: Start address for the allocation pool
+ type: string
+ status: SUPPORTED
+ required: false
+ end:
+ description: End address for the allocation pool
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrail.network.rule.PortPairs:
+ derived_from: tosca.datatypes.Root
+ description: source and destination port pairs
+ properties:
+ start_port:
+ description: Start port
+ type: string
+ status: SUPPORTED
+ required: false
+ end_port:
+ description: End port
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork:
+ derived_from: tosca.datatypes.Root
+ description: source and destination addresses
+ properties:
+ virtual_network:
+ description: Virtual network
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrail.network.rule.RuleList:
+ derived_from: tosca.datatypes.Root
+ description: list of policy rules
+ properties:
+ policy_rule:
+ description: Contrail network rule
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.Rule
+ required: false
+
+ org.openecomp.datatypes.heat.network.contrail.AddressPair:
+ derived_from: tosca.datatypes.Root
+ description: Address Pair
+ properties:
+ address_mode:
+ description: Address mode active-active or active-standy
+ type: string
+ status: SUPPORTED
+ required: false
+ constraints:
+ - valid_values:
+ - active-active
+ - active-standby
+ prefix:
+ description: IP address prefix
+ type: string
+ status: SUPPORTED
+ required: false
+ mac_address:
+ description: Mac address
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.MacAddress:
+ derived_from: tosca.datatypes.Root
+ description: Virtual Machine Sub Interface Mac Address.
+ properties:
+ mac_address:
+ description: Mac Addresses List.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnetList:
+ derived_from: tosca.datatypes.Root
+ description: Network Ipam Ref Data Subnet List
+ properties:
+ network_ipam_refs_data_ipam_subnets_subnet:
+ description: Network ipam refs data ipam subnets
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnet
+ status: SUPPORTED
+ required: false
+ network_ipam_refs_data_ipam_subnets_addr_from_start:
+ description: Network ipam refs data ipam subnets addr from start
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.network.rule.RuleList:
+ derived_from: tosca.datatypes.Root
+ description: list of policy rules
+ properties:
+ network_policy_entries_policy_rule:
+ description: Contrail network rule
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.Rule
+ required: false
+
+ org.openecomp.datatypes.heat.novaServer.network.AddressInfo:
+ derived_from: tosca.datatypes.network.NetworkInfo
+ description: Network addresses with corresponding port id
+ properties:
+ port_id:
+ description: Port id
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs:
+ derived_from: tosca.datatypes.Root
+ description: Virtual Machine Sub Interface Address Pairs.
+ properties:
+ allowed_address_pair:
+ description: Addresses pair List.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPair
+ required: false
+
+ org.openecomp.datatypes.heat.neutron.port.FixedIps:
+ derived_from: tosca.datatypes.Root
+ description: subnet/ip_address
+ properties:
+ subnet:
+ description: Subnet in which to allocate the IP address for this port
+ type: string
+ status: SUPPORTED
+ required: false
+ ip_address:
+ description: IP address desired in the subnet for this port
+ type: string
+ status: SUPPORTED
+ required: false
+ subnet_id:
+ type: string
+ description: Subnet in which to allocate the IP address for this port
+ required: false
+ status: SUPPORTED
+
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties:
+ derived_from: tosca.datatypes.Root
+ description: Virtual Machine Interface Properties.
+ properties:
+ service_interface_type:
+ description: Service Interface Type.
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.network.subnet.HostRoute:
+ derived_from: tosca.datatypes.Root
+ description: Host route info for the subnet
+ properties:
+ destination:
+ description: The destination for static route
+ type: string
+ status: SUPPORTED
+ required: false
+ nexthop:
+ description: The next hop for the destination
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.network.contrail.port.StaticRoute:
+ derived_from: tosca.datatypes.Root
+ description: static route
+ properties:
+ prefix:
+ description: Route prefix
+ type: string
+ status: SUPPORTED
+ required: false
+ next_hop:
+ description: Next hop
+ type: string
+ status: SUPPORTED
+ required: false
+ next_hop_type:
+ description: Next hop type
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.substitution.SubstitutionFiltering:
+ derived_from: tosca.datatypes.Root
+ description: Substitution Filter
+ properties:
+ substitute_service_template:
+ description: Substitute Service Template
+ type: string
+ status: SUPPORTED
+ required: true
+ index_value:
+ description: Index value of the substitution service template runtime instance
+ type: integer
+ status: SUPPORTED
+ default: 0
+ required: false
+ constraints:
+ - greater_or_equal: 0
+ count:
+ description: Count
+ type: integer
+ status: SUPPORTED
+ default: 1
+ required: false
+ scaling_enabled:
+ description: Indicates whether service scaling is enabled
+ type: boolean
+ status: SUPPORTED
+ default: true
+ required: false
+ mandatory:
+ description: Mandatory
+ type: boolean
+ status: SUPPORTED
+ default: true
+ required: false
+
+ org.openecomp.datatypes.heat.network.neutron.Subnet:
+ derived_from: tosca.datatypes.Root
+ description: A subnet represents an IP address block that can be used for assigning IP addresses to virtual instances
+ properties:
+ tenant_id:
+ description: The ID of the tenant who owns the network
+ type: string
+ status: SUPPORTED
+ required: false
+ enable_dhcp:
+ description: Set to true if DHCP is enabled and false if DHCP is disabled
+ type: boolean
+ status: SUPPORTED
+ default: true
+ required: false
+ ipv6_address_mode:
+ description: IPv6 address mode
+ type: string
+ status: SUPPORTED
+ required: false
+ constraints:
+ - valid_values:
+ - dhcpv6-stateful
+ - dhcpv6-stateless
+ - slaac
+ ipv6_ra_mode:
+ description: IPv6 RA (Router Advertisement) mode
+ type: string
+ status: SUPPORTED
+ required: false
+ constraints:
+ - valid_values:
+ - dhcpv6-stateful
+ - dhcpv6-stateless
+ - slaac
+ value_specs:
+ description: Extra parameters to include in the request
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ default: {}
+ required: false
+ allocation_pools:
+ description: The start and end addresses for the allocation pools
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.AllocationPool
+ required: false
+ subnetpool:
+ description: The name or ID of the subnet pool
+ type: string
+ status: SUPPORTED
+ required: false
+ dns_nameservers:
+ description: A specified set of DNS name servers to be used
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ default: []
+ required: false
+ host_routes:
+ description: The gateway IP address
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.subnet.HostRoute
+ required: false
+ ip_version:
+ description: The gateway IP address
+ type: integer
+ status: SUPPORTED
+ default: 4
+ required: false
+ constraints:
+ - valid_values:
+ - 4
+ - 6
+ name:
+ description: The name of the subnet
+ type: string
+ status: SUPPORTED
+ required: false
+ prefixlen:
+ description: Prefix length for subnet allocation from subnet pool
+ type: integer
+ status: SUPPORTED
+ required: false
+ constraints:
+ - greater_or_equal: 0
+ cidr:
+ description: The CIDR
+ type: string
+ status: SUPPORTED
+ required: false
+ gateway_ip:
+ description: The gateway IP address
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrail.network.rule.Rule:
+ derived_from: tosca.datatypes.Root
+ description: policy rule
+ properties:
+ src_ports:
+ description: Source ports
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.PortPairs
+ required: false
+ protocol:
+ description: Protocol
+ type: string
+ status: SUPPORTED
+ required: false
+ dst_addresses:
+ description: Destination addresses
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork
+ required: false
+ apply_service:
+ description: Service to apply
+ type: string
+ status: SUPPORTED
+ required: false
+ dst_ports:
+ description: Destination ports
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.PortPairs
+ required: false
+ src_addresses:
+ description: Source addresses
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork
+ required: false
+ direction:
+ description: Direction
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefDataSequence:
+ derived_from: tosca.datatypes.Root
+ description: network policy refs data sequence
+ properties:
+ network_policy_refs_data_sequence_major:
+ description: Network Policy ref data sequence Major
+ type: integer
+ status: SUPPORTED
+ required: false
+ network_policy_refs_data_sequence_minor:
+ description: Network Policy ref data sequence Minor
+ type: integer
+ status: SUPPORTED
+ required: false
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/groups.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/groups.yml
new file mode 100644
index 0000000000..ded2373e50
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/groups.yml
@@ -0,0 +1,40 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: openecomp-heat/groups.yml
+ version: '1.0'
+
+imports:
+- heat_index:
+ file: _index.yml
+
+group_types:
+
+ org.openecomp.groups.heat.HeatStack:
+ derived_from: org.openecomp.groups.VfModule
+ description: Grouped all heat resources which are in the same heat stack
+ properties:
+ heat_file:
+ description: Heat file which associate to this group/heat stack
+ type: string
+ status: SUPPORTED
+ required: true
+ description:
+ description: group description
+ type: string
+ status: SUPPORTED
+ required: true
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/nodes.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/nodes.yml
new file mode 100644
index 0000000000..9abb964661
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/nodes.yml
@@ -0,0 +1,1292 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: openecomp-heat/nodes.yml
+ version: '1.0'
+
+imports:
+- heat_index:
+ file: _index.yml
+
+node_types:
+
+ org.openecomp.resource.abstract.nodes.contrail.AbstractSubstitute:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ availability_zone:
+ description: Availability zone to create servers in
+ type: string
+ status: SUPPORTED
+ required: false
+ static_routes_list:
+ description: Static routes enabled
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: boolean
+ required: false
+ availability_zone_enable:
+ description: Indicates availability zone is enabled
+ type: boolean
+ status: SUPPORTED
+ default: false
+ required: false
+ service_template_name:
+ description: Service template name
+ type: string
+ status: SUPPORTED
+ required: false
+ ordered_interfaces:
+ description: Indicates if service interface are ordered
+ type: boolean
+ status: SUPPORTED
+ default: false
+ required: false
+ flavor:
+ description: flavor
+ type: string
+ status: SUPPORTED
+ required: false
+ image_name:
+ description: Image name
+ type: string
+ status: SUPPORTED
+ required: true
+ service_type:
+ description: Service type
+ type: string
+ status: SUPPORTED
+ required: true
+ constraints:
+ - valid_values:
+ - firewall
+ - analyzer
+ - source-nat
+ - loadbalancer
+ service_interface_type_list:
+ description: List of interface types
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ constraints:
+ - valid_values:
+ - management
+ - left
+ - right
+ - other
+ required: true
+ service_instance_name:
+ description: Service instance name
+ type: string
+ status: SUPPORTED
+ required: true
+ interface_list:
+ description: List of interfaces
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.contrail.InterfaceData
+ required: false
+ service_mode:
+ description: Service mode
+ type: string
+ status: SUPPORTED
+ required: true
+ constraints:
+ - valid_values:
+ - transparent
+ - in-network
+ - in-network-nat
+ shared_ip_list:
+ description: Shared ips enabled
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: boolean
+ required: false
+ attributes:
+ tenant_id:
+ description: Tenant id of the Service Instance
+ type: string
+ status: SUPPORTED
+ fq_name:
+ description: The FQ name of the service instance
+ type: string
+ status: SUPPORTED
+ service_template_name:
+ description: Service Template of the Service Instance
+ type: string
+ status: SUPPORTED
+ show:
+ description: All attributes
+ type: string
+ status: SUPPORTED
+ active_vms:
+ description: Number of service VMs active for this Service Instance
+ type: string
+ status: SUPPORTED
+ service_instance_name:
+ description: The name of the service instance
+ type: string
+ status: SUPPORTED
+ virtual_machines:
+ description: Service VMs for the Service Instance
+ type: string
+ status: SUPPORTED
+ status:
+ description: Status of the service instance
+ type: string
+ status: SUPPORTED
+
+
+ org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface:
+ derived_from: org.openecomp.resource.cp.nodes.network.Port
+ properties:
+ name:
+ description: Virtual Machine Interface name
+ type: string
+ status: SUPPORTED
+ required: false
+ security_group_refs:
+ description: List of security groups.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ virtual_network_refs:
+ description: List of virtual networks.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ virtual_machine_interface_properties:
+ description: virtual machine interface properties.
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties
+ status: SUPPORTED
+ required: false
+ port_tuple_refs:
+ description: List of port tuples.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ virtual_machine_interface_mac_addresses:
+ description: List of mac addresses.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ virtual_machine_interface_allowed_address_pairs:
+ description: Virtual Machine Interface allowed address pairs.
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+ status: SUPPORTED
+ required: false
+
+ attributes:
+ fq_name:
+ description: The FQ name of the Virtual Network.
+ type: string
+ status: SUPPORTED
+ show:
+ description: All attributes.
+ type: string
+ status: SUPPORTED
+ capabilities:
+ binding:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 0
+ - UNBOUNDED
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+
+
+ org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules:
+ derived_from: tosca.nodes.Root
+ properties:
+ entries:
+ description: A symbolic name for this contrail network rule
+ type: org.openecomp.datatypes.heat.contrail.network.rule.RuleList
+ status: SUPPORTED
+ required: false
+ name:
+ description: A symbolic name for this contrail network rule
+ type: string
+ status: SUPPORTED
+ required: false
+ attributes:
+ tenant_id:
+ description: tenant_id
+ type: string
+ status: SUPPORTED
+ fq_name:
+ description: fq_name
+ type: string
+ status: SUPPORTED
+ show:
+ description: All attributes.
+ type: string
+ status: SUPPORTED
+ rules:
+ description: List of rules
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ requirements:
+ - network:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.network.Network
+ relationship: org.openecomp.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules:
+ derived_from: tosca.nodes.Root
+ properties:
+ description:
+ description: Description of the security group
+ type: string
+ status: SUPPORTED
+ required: false
+ name:
+ description: A symbolic name for this security group, which is not required to be unique.
+ type: string
+ status: SUPPORTED
+ required: false
+ rules:
+ description: List of security group rules
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.SecurityRules.Rule
+ required: false
+ attributes:
+ show:
+ description: Detailed information about resource
+ type: string
+ status: SUPPORTED
+ requirements:
+ - port:
+ capability: tosca.capabilities.Attachment
+ node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ relationship: org.openecomp.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork:
+ derived_from: org.openecomp.resource.vl.nodes.network.Network
+ properties:
+ shared:
+ description: Is virtual network shared
+ type: string
+ status: SUPPORTED
+ required: false
+ forwarding_mode:
+ description: forwarding mode of the virtual network
+ type: string
+ status: SUPPORTED
+ required: false
+ external:
+ description: Is virtual network external
+ type: string
+ status: SUPPORTED
+ required: false
+ allow_transit:
+ description: Whether this network should be transitive.
+ type: string
+ status: SUPPORTED
+ required: false
+ flood_unknown_unicast:
+ description: flood L2 packets on network
+ type: string
+ status: SUPPORTED
+ required: false
+ route_targets:
+ description: route targets associated with the virtual network
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ subnets:
+ description: Network related subnets
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.Subnet
+ required: false
+ attributes:
+ fq_name:
+ description: fq_name
+ type: string
+ status: SUPPORTED
+ show:
+ description: All attributes.
+ type: string
+ status: SUPPORTED
+ subnets_name:
+ description: Subnets name of this network
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets_show:
+ description: Detailed information about each subnet
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets:
+ description: Network related subnets
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.Subnet
+ capabilities:
+ attachment:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+
+ org.openecomp.resource.vfc.nodes.heat.nova.Server:
+ derived_from: org.openecomp.resource.vfc.nodes.Compute
+ properties:
+ admin_pass:
+ description: The administrator password for the server
+ type: string
+ status: SUPPORTED
+ required: false
+ availability_zone:
+ description: Availability zone to create servers in
+ type: string
+ status: SUPPORTED
+ required: false
+ image:
+ description: The ID or name of the image to boot with
+ type: string
+ status: SUPPORTED
+ required: false
+ image_update_policy:
+ description: Policy on how to apply an image-id update
+ type: string
+ status: SUPPORTED
+ default: REBUILD
+ required: false
+ constraints:
+ - valid_values:
+ - REBUILD_PRESERVE_EPHEMERAL
+ - REPLACE
+ - REBUILD
+ metadata:
+ description: Arbitrary JSON metadata to store for this server
+ type: json
+ status: SUPPORTED
+ required: false
+ contrail_service_instance_ind:
+ description: Nova server related to service instance indicator
+ type: boolean
+ status: SUPPORTED
+ default: false
+ required: false
+ user_data_update_policy:
+ description: Policy on how to apply a user_data update
+ type: string
+ status: SUPPORTED
+ default: REPLACE
+ required: false
+ constraints:
+ - valid_values:
+ - REPLACE
+ - IGNORE
+ flavor_update_policy:
+ description: Policy on how to apply a flavor update
+ type: string
+ status: SUPPORTED
+ default: RESIZE
+ required: false
+ constraints:
+ - valid_values:
+ - RESIZE
+ - REPLACE
+ user_data:
+ description: User data script to be executed by cloud-init
+ type: string
+ status: SUPPORTED
+ default: ''
+ required: false
+ flavor:
+ description: The ID or name of the flavor to boot onto
+ type: string
+ status: SUPPORTED
+ required: true
+ key_name:
+ description: Name of keypair to inject into the server
+ type: string
+ status: SUPPORTED
+ required: false
+ reservation_id:
+ description: A UUID for the set of servers being requested
+ type: string
+ status: SUPPORTED
+ required: false
+ security_groups:
+ description: List of security group names or IDs
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ default: []
+ required: false
+ config_drive:
+ description: enable config drive on the server
+ type: boolean
+ status: SUPPORTED
+ required: false
+ personality:
+ description: A map of files to create/overwrite on the server upon boot
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ default: {}
+ required: false
+ software_config_transport:
+ description: How the server should receive the metadata required for software configuration
+ type: string
+ status: SUPPORTED
+ default: POLL_SERVER_CFN
+ required: false
+ constraints:
+ - valid_values:
+ - POLL_SERVER_CFN
+ - POLL_SERVER_HEAT
+ - POLL_TEMP_URL
+ - ZAQAR_MESSAGE
+ user_data_format:
+ description: How the user_data should be formatted for the server
+ type: string
+ status: SUPPORTED
+ default: HEAT_CFNTOOLS
+ required: false
+ constraints:
+ - valid_values:
+ - SOFTWARE_CONFIG
+ - RAW
+ - HEAT_CFNTOOLS
+ diskConfig:
+ description: Control how the disk is partitioned when the server is created
+ type: string
+ status: SUPPORTED
+ required: false
+ constraints:
+ - valid_values:
+ - AUTO
+ - MANUAL
+ name:
+ description: Server name
+ type: string
+ status: SUPPORTED
+ required: false
+ scheduler_hints:
+ description: Arbitrary key-value pairs specified by the client to help boot a server
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ attributes:
+ accessIPv4:
+ description: The manually assigned alternative public IPv4 address of the server
+ type: string
+ status: SUPPORTED
+ addresses:
+ description: A dict of all network addresses with corresponding port_id
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.novaServer.network.AddressInfo
+ accessIPv6:
+ description: The manually assigned alternative public IPv6 address of the server
+ type: string
+ status: SUPPORTED
+ instance_name:
+ description: AWS compatible instance name
+ type: string
+ status: SUPPORTED
+ name:
+ description: Name of the server
+ type: string
+ status: SUPPORTED
+ show:
+ description: Detailed information about resource
+ type: string
+ status: SUPPORTED
+ console_urls:
+ description: URLs of servers consoles
+ type: string
+ status: SUPPORTED
+
+ org.openecomp.resource.vfc.rules.nodes.heat.network.contrailV2.NetworkRules:
+ derived_from: tosca.nodes.Root
+ properties:
+ name:
+ description: A symbolic name for this contrail v2 network rule
+ type: string
+ status: SUPPORTED
+ required: false
+ network_policy_entries:
+ description: A symbolic name for this contrail v2 network rule
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.RuleList
+ status: SUPPORTED
+ required: false
+ attributes:
+ fq_name:
+ description: fq_name
+ type: string
+ status: SUPPORTED
+ requirements:
+ - network:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.network.Network
+ relationship: org.openecomp.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.resource.cp.nodes.heat.network.neutron.Port:
+ derived_from: org.openecomp.resource.cp.nodes.network.Port
+ properties:
+ port_security_enabled:
+ description: Flag to enable/disable port security on the network
+ type: boolean
+ status: SUPPORTED
+ required: false
+ device_id:
+ description: Device ID of this port
+ type: string
+ status: SUPPORTED
+ required: false
+ qos_policy:
+ description: The name or ID of QoS policy to attach to this network
+ type: string
+ status: SUPPORTED
+ required: false
+ allowed_address_pairs:
+ description: Additional MAC/IP address pairs allowed to pass through the port
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.AddressPair
+ required: false
+ binding:vnic_type:
+ description: The vnic type to be bound on the neutron port
+ type: string
+ status: SUPPORTED
+ required: false
+ constraints:
+ - valid_values:
+ - macvtap
+ - direct
+ - normal
+ value_specs:
+ description: Extra parameters to include in the request
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ default: {}
+ required: false
+ device_owner:
+ description: Name of the network owning the port
+ type: string
+ status: SUPPORTED
+ required: false
+ network:
+ description: Network this port belongs to
+ type: string
+ status: SUPPORTED
+ required: false
+ replacement_policy:
+ description: Policy on how to respond to a stack-update for this resource
+ type: string
+ status: SUPPORTED
+ default: AUTO
+ required: false
+ constraints:
+ - valid_values:
+ - REPLACE_ALWAYS
+ - AUTO
+ security_groups:
+ description: List of security group names or IDs
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ fixed_ips:
+ description: Desired IPs for this port
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ required: false
+ mac_address:
+ description: MAC address to give to this port
+ type: string
+ status: SUPPORTED
+ required: false
+ admin_state_up:
+ description: A boolean value specifying the administrative status of the network
+ type: boolean
+ status: SUPPORTED
+ default: true
+ required: false
+ name:
+ description: A symbolic name for this port
+ type: string
+ status: SUPPORTED
+ required: false
+ attributes:
+ tenant_id:
+ description: Tenant owning the port
+ type: string
+ status: SUPPORTED
+ network_id:
+ description: Unique identifier for the network owning the port
+ type: string
+ status: SUPPORTED
+ qos_policy_id:
+ description: The QoS policy ID attached to this network
+ type: string
+ status: SUPPORTED
+ show:
+ description: Detailed information about resource
+ type: string
+ status: SUPPORTED
+ subnets:
+ description: Subnets of this network
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ status:
+ description: The status of the network
+ type: string
+ status: SUPPORTED
+ capabilities:
+ attachment:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 0
+ - UNBOUNDED
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+
+ org.openecomp.resource.vl.nodes.heat.network.neutron.Net:
+ derived_from: org.openecomp.resource.vl.nodes.network.Network
+ properties:
+ dhcp_agent_ids:
+ description: The IDs of the DHCP agent to schedule the network
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ tenant_id:
+ description: The ID of the tenant which will own the network
+ type: string
+ status: SUPPORTED
+ required: false
+ port_security_enabled:
+ description: Flag to enable/disable port security on the network
+ type: boolean
+ status: SUPPORTED
+ required: false
+ shared:
+ description: Whether this network should be shared across all tenants
+ type: boolean
+ status: SUPPORTED
+ default: false
+ required: false
+ admin_state_up:
+ description: A boolean value specifying the administrative status of the network
+ type: boolean
+ status: SUPPORTED
+ default: true
+ required: false
+ qos_policy:
+ description: The name or ID of QoS policy to attach to this network
+ type: string
+ status: SUPPORTED
+ required: false
+ subnets:
+ description: Network related subnets
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.Subnet
+ required: false
+ value_specs:
+ description: Extra parameters to include in the request
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ default: {}
+ required: false
+ attributes:
+ qos_policy_id:
+ description: The QoS policy ID attached to this network
+ type: string
+ status: SUPPORTED
+ show:
+ description: Detailed information about resource
+ type: string
+ status: SUPPORTED
+ subnets_name:
+ description: Subnets name of this network
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets:
+ description: Network related subnets
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.Subnet
+ mtu:
+ description: The maximum transmission unit size(in bytes) for the network
+ type: scalar-unit.size
+ status: SUPPORTED
+ status:
+ description: The status of the network
+ type: string
+ status: SUPPORTED
+ capabilities:
+ attachment:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+
+ org.openecomp.resource.cp.nodes.heat.network.contrail.Port:
+ derived_from: org.openecomp.resource.cp.nodes.network.Port
+ properties:
+ static_routes:
+ description: An ordered list of static routes to be added to this interface
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.contrail.port.StaticRoute
+ required: false
+ virtual_network:
+ description: Virtual Network for this interface
+ type: string
+ status: SUPPORTED
+ required: true
+ static_route:
+ description: Static route enabled
+ type: boolean
+ status: SUPPORTED
+ default: false
+ required: false
+ allowed_address_pairs:
+ description: List of allowed address pair for this interface
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.contrail.AddressPair
+ required: false
+ shared_ip:
+ description: Shared ip enabled
+ type: boolean
+ status: SUPPORTED
+ default: false
+ required: false
+ ip_address:
+ description: IP for this interface
+ type: string
+ status: SUPPORTED
+ required: false
+ interface_type:
+ description: Interface type
+ type: string
+ status: SUPPORTED
+ required: true
+ constraints:
+ - valid_values:
+ - management
+ - left
+ - right
+ - other
+ attributes:
+ fq_name:
+ description: fq_name
+ type: string
+ status: SUPPORTED
+
+ org.openecomp.resource.vfc.nodes.heat.contrail.Compute:
+ derived_from: org.openecomp.resource.vfc.nodes.Compute
+ properties:
+ flavor:
+ description: flavor
+ type: string
+ status: SUPPORTED
+ required: false
+ image_name:
+ description: Image name
+ type: string
+ status: SUPPORTED
+ required: true
+ availability_zone:
+ description: Availability zone to create servers in
+ type: string
+ status: SUPPORTED
+ required: false
+ service_type:
+ description: Service type
+ type: string
+ status: SUPPORTED
+ required: true
+ constraints:
+ - valid_values:
+ - firewall
+ - analyzer
+ - source-nat
+ - loadbalancer
+ availability_zone_enable:
+ description: Indicates availability zone is enabled
+ type: boolean
+ status: SUPPORTED
+ default: false
+ required: false
+ service_template_name:
+ description: Service template name
+ type: string
+ status: SUPPORTED
+ required: false
+ service_instance_name:
+ description: Service instance name
+ type: string
+ status: SUPPORTED
+ required: true
+ service_mode:
+ description: Service mode
+ type: string
+ status: SUPPORTED
+ required: true
+ constraints:
+ - valid_values:
+ - transparent
+ - in-network
+ - in-network-nat
+ attributes:
+ tenant_id:
+ description: Tenant id of the VM
+ type: string
+ status: SUPPORTED
+ fq_name:
+ description: fq_name
+ type: string
+ status: SUPPORTED
+ show:
+ description: All attributes
+ type: string
+ status: SUPPORTED
+ active_vms:
+ description: Number of active VMs
+ type: string
+ status: SUPPORTED
+ virtual_machines:
+ description: VMs of this compute
+ type: string
+ status: SUPPORTED
+ status:
+ description: status of the compute
+ type: string
+ status: SUPPORTED
+
+ org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface:
+ derived_from: org.openecomp.resource.cp.nodes.network.v2.SubInterface
+ properties:
+ virtual_machine_interface_refs:
+ description: List of virtual machine interface.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ name:
+ description: Virtual Machine Sub Interface VLAN name
+ type: string
+ status: SUPPORTED
+ required: false
+ virtual_network_refs:
+ description: List of virtual networks.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ virtual_machine_interface_properties:
+ description: virtual machine interface properties.
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.Properties
+ status: SUPPORTED
+ required: false
+ virtual_machine_interface_allowed_address_pairs:
+ description: Virtual Machine Sub Interface allowed address pairs.
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+ status: SUPPORTED
+ required: false
+ virtual_machine_interface_mac_addresses:
+ description: List of mac addresses.
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.MacAddress
+ status: SUPPORTED
+ required: false
+ security_group_refs:
+ description: List of security groups.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ port_tuple_refs:
+ description: List of port tuples.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ attributes:
+ fq_name:
+ description: The FQ name of the Virtual Network.
+ type: string
+ status: SUPPORTED
+ show:
+ description: All attributes.
+ type: string
+ status: SUPPORTED
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.resource.cp.nodes.network.Port
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 1
+ - 1
+
+ org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface:
+ derived_from: org.openecomp.resource.cp.nodes.network.SubInterface
+ properties:
+ virtual_machine_interface_refs:
+ description: List of virtual machine interface.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ name:
+ description: Virtual Machine Sub Interface VLAN name
+ type: string
+ status: SUPPORTED
+ required: false
+ virtual_network_refs:
+ description: List of virtual networks.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ virtual_machine_interface_properties:
+ description: virtual machine interface properties.
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.Properties
+ status: SUPPORTED
+ required: false
+ virtual_machine_interface_allowed_address_pairs:
+ description: Virtual Machine Sub Interface allowed address pairs.
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+ status: SUPPORTED
+ required: false
+ virtual_machine_interface_mac_addresses:
+ description: List of mac addresses.
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.MacAddress
+ status: SUPPORTED
+ required: false
+ security_group_refs:
+ description: List of security groups.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ port_tuple_refs:
+ description: List of port tuples.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ attributes:
+ fq_name:
+ description: The FQ name of the Virtual Network.
+ type: string
+ status: SUPPORTED
+ show:
+ description: All attributes.
+ type: string
+ status: SUPPORTED
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.resource.cp.nodes.network.Port
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 1
+ - 1
+
+ org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork:
+ derived_from: org.openecomp.resource.vl.nodes.network.Network
+ properties:
+ network_ipam_refs_data:
+ description: IPAM references Data
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.IpamRefData
+ required: false
+ network_policy_refs_data:
+ description: Policy references data
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefData
+ required: false
+ network_ipam_refs:
+ description: IPAM references
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ network_policy_refs:
+ description: Policy references
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ subnets:
+ description: Network related subnets
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.Subnet
+ required: false
+ attributes:
+ fq_name:
+ description: fq_name
+ type: string
+ status: SUPPORTED
+ subnets_name:
+ description: Subnets name of this network
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets_show:
+ description: Detailed information about each subnet
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets:
+ description: Network related subnets
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.Subnet
+ capabilities:
+ attachment:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+
+ org.openecomp.resource.vfc.nodes.heat.cinder.Volume:
+ derived_from: org.openecomp.resource.vfc.nodes.volume
+ properties:
+ availability_zone:
+ description: The availability zone in which the volume will be created
+ type: string
+ status: SUPPORTED
+ required: false
+ image:
+ description: If specified, the name or ID of the image to create the volume from
+ type: string
+ status: SUPPORTED
+ required: false
+ metadata:
+ description: Key/value pairs to associate with the volume
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ volume_type:
+ description: If specified, the type of volume to use, mapping to a specific backend
+ type: string
+ status: SUPPORTED
+ required: false
+ description:
+ description: A description of the volume
+ type: string
+ status: SUPPORTED
+ required: false
+ device_type:
+ description: Device type
+ type: string
+ status: SUPPORTED
+ required: false
+ constraints:
+ - valid_values:
+ - cdrom
+ - disk
+ disk_bus:
+ description: 'Bus of the device: hypervisor driver chooses a suitable default
+ if omitted'
+ type: string
+ status: SUPPORTED
+ required: false
+ constraints:
+ - valid_values:
+ - ide
+ - lame_bus
+ - scsi
+ - usb
+ - virtio
+ backup_id:
+ description: If specified, the backup to create the volume from
+ type: string
+ status: SUPPORTED
+ required: false
+ source_volid:
+ description: If specified, the volume to use as source
+ type: string
+ status: SUPPORTED
+ required: false
+ boot_index:
+ description: Integer used for ordering the boot disks
+ type: integer
+ status: SUPPORTED
+ required: false
+ size:
+ description: The requested storage size (default unit is MB)
+ type: scalar-unit.size
+ status: SUPPORTED
+ required: false
+ constraints:
+ - greater_or_equal: 1 GB
+ read_only:
+ description: Enables or disables read-only access mode of volume
+ type: boolean
+ status: SUPPORTED
+ required: false
+ name:
+ description: A name used to distinguish the volume
+ type: string
+ status: SUPPORTED
+ required: false
+ scheduler_hints:
+ description: Arbitrary key-value pairs specified by the client to help the Cinder scheduler creating a volume
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ swap_size:
+ description: The size of the swap, in MB
+ type: scalar-unit.size
+ status: SUPPORTED
+ required: false
+ delete_on_termination:
+ description: Indicate whether the volume should be deleted when the server is terminated
+ type: boolean
+ status: SUPPORTED
+ required: false
+ multiattach:
+ description: Whether allow the volume to be attached more than once
+ type: boolean
+ status: SUPPORTED
+ required: false
+ attributes:
+ display_description:
+ description: Description of the volume
+ type: string
+ status: SUPPORTED
+ attachments:
+ description: The list of attachments of the volume
+ type: string
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ encrypted:
+ description: Boolean indicating if the volume is encrypted or not
+ type: boolean
+ status: SUPPORTED
+ show:
+ description: Detailed information about resource
+ type: string
+ status: SUPPORTED
+ created_at:
+ description: The timestamp indicating volume creation
+ type: timestamp
+ status: SUPPORTED
+ display_name:
+ description: Name of the volume
+ type: string
+ status: SUPPORTED
+ metadata_values:
+ description: Key/value pairs associated with the volume in raw dict form
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ bootable:
+ description: Boolean indicating if the volume can be booted or not
+ type: boolean
+ status: SUPPORTED
+ status:
+ description: The current status of the volume
+ type: string
+ status: SUPPORTED
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/_index.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/_index.yml
new file mode 100644
index 0000000000..244a048653
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/_index.yml
@@ -0,0 +1,31 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: openecomp-inventory/_index.yml
+ version: '1.0'
+
+imports:
+- openecomp_index:
+ file: ../openecomp/_index.yml
+- nodes:
+ file: nodes.yml
+- capabilities:
+ file: capabilities.yml
+- data:
+ file: data.yml
+- relationships:
+ file: relationships.yml \ No newline at end of file
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/capabilities.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/capabilities.yml
new file mode 100644
index 0000000000..823e131761
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/capabilities.yml
@@ -0,0 +1,85 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: openecomp-inventory/capabilities.yml
+ version: '1.0'
+
+imports:
+- inventory_index:
+ file: _index.yml
+
+capability_types:
+
+ org.openecomp.capabilities.inventory.Multiuse:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Bindable:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Composite:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Belonging:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Attachment:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Applicable:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Existable:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Locates:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Linkable:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Node:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Container:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Composeable:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Allot:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Origin:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Bridgeable:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/data.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/data.yml
new file mode 100644
index 0000000000..4bbd1335af
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/data.yml
@@ -0,0 +1,209 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: openecomp-inventory/data.yml
+ version: '1.0'
+
+imports:
+- inventory_index:
+ file: _index.yml
+
+
+data_types:
+
+ org.openecomp.datatypes.inventory.CloudInfrastructure:
+ description: Namespace for cloud infrastructure.
+ attributes:
+ complexes:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ annotations:
+ max_query_depth: 0
+ cloud_regions:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ annotations:
+ max_query_depth: 0
+ network_profiles:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.cloud.infrastructure.NetworkProfile
+ pservers:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ annotations:
+ max_query_depth: 0
+ virtual_data_centers:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.cloud.infrastructure.VirtualDataCenter
+
+ org.openecomp.datatypes.inventory.RelatedToProperty:
+ attributes:
+ property_key:
+ description: Key part of a key/value pair
+ type: string
+ property_value:
+ description: Value part of a key/value pair
+ type: string
+
+ org.openecomp.datatypes.inventory.Network:
+ description: Namespace for network inventory resources.
+ attributes:
+ logical_links:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.LogicalLink
+ site_pair_sets:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.SitePairSet
+ vpn_bindings:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.VpnBinding
+ vpls_pes:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.VplsPe
+ multicast_configurations:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.MulticastConfiguration
+ vces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.Vce
+ vpes:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.Vpe
+ vnfcs:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.Vnfc
+ l3_networks:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.L3Network
+ network_policies:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.NetworkPolicy
+ generic_vnfs:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.GenericVnf
+ annotations:
+ max_query_depth: 0
+ lag_links:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.LagLink
+ newvces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.Newvce
+ pnfs:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.Pnf
+ annotations:
+ max_query_depth: 0
+ physical_links:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.PhysicalLink
+ annotations:
+ max_query_depth: 0
+ ipsec_configurations:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.IpsecConfiguration
+ route_table_references:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.RouteTableReference
+ instance_groups:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.InstanceGroup
+ zones:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.Zone
+
+ org.openecomp.datatypes.inventory.Relationship:
+ attributes:
+ related_to:
+ description: A keyword provided by A&AI to indicate type of node.
+ type: string
+ related_link:
+ description: URL to the object in A&AI.
+ type: string
+ relationship_data:
+ type: org.openecomp.datatypes.inventory.RelationshipData
+ occurrences:
+ - 0
+ - UNBOUNDED
+ related_to_property:
+ type: org.openecomp.datatypes.inventory.RelatedToProperty
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.datatypes.inventory.Business:
+ description: Namespace for business related constructs
+ attributes:
+ connectors:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.business.Connector
+ customers:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.business.Customer
+ annotations:
+ max_query_depth: 0
+
+ org.openecomp.datatypes.inventory.AzAndDvsSwitches:
+ attributes:
+ dvs_switches:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.DvsSwitch
+ availability_zone:
+ type: org.openecomp.nodes.inventory.AvailabilityZone
+
+ org.openecomp.datatypes.inventory.RelationshipData:
+ attributes:
+ relationship_key:
+ description: A keyword provided by A&AI to indicate an attribute.
+ type: string
+ relationship_value:
+ description: Value of the attribute.
+ type: string
+
+ org.openecomp.datatypes.inventory.LicenseManagement:
+ attributes:
+ license_key_resources:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.license.management.LicenseKeyResource
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/nodes.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/nodes.yml
new file mode 100644
index 0000000000..19db291648
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/nodes.yml
@@ -0,0 +1,5148 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: openecomp-inventory/nodes.yml
+ version: '1.0'
+
+imports:
+- inventory_index:
+ file: _index.yml
+
+node_types:
+
+ org.openecomp.nodes.inventory.LagInterface:
+ description: Link aggregate interface
+ attributes:
+ interface_name:
+ description: Name that identifies the link aggregate interface
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ interface_description:
+ description: Human friendly text regarding this interface.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ speed_value:
+ description: Captures the numeric part of the speed
+ type: string
+ speed_units:
+ description: Captures the units corresponding to the speed
+ type: string
+ interface_id:
+ description: ID of interface
+ type: string
+ annotations:
+ index:
+ - inventory
+ interface_role:
+ description: Role assigned to this Interface, should use values as defined in OPENECOMP Yang models.
+ type: string
+ annotations:
+ index:
+ - inventory
+ prov_status:
+ description: Trigger for operational monitoring of this resource by Service Assurance systems.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ l_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LInterface
+ capabilities:
+ l_interface:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LInterface
+ requirements:
+ - generic_vnf:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.GenericVnf
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - lag_link:
+ capability: tosca.capabilities.network.Linkable
+ node: org.openecomp.nodes.inventory.network.LagLink
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - p_interface:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.PInterface
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - pnf:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.network.Pnf
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - pserver:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vpe:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.network.Vpe
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vpls_pe:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.network.VplsPe
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.cloud.infrastructure.VirtualDataCenter:
+ description: Virtual organization of cloud infrastructure elements in a data center context
+ attributes:
+ vdc_id:
+ description: Unique ID of the vdc
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ vdc_name:
+ description: Name of the virtual data center
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ connector:
+ type: org.openecomp.capabilities.inventory.Existable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.business.Connector
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Existable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+ logical_link:
+ type: org.openecomp.capabilities.inventory.Existable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.LogicalLink
+
+ org.openecomp.nodes.inventory.network.Pnf:
+ description: PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an OPENECOMP node or uCPE.
+ attributes:
+ pnf_name:
+ description: unique name of Physical Network Function.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ pnf_name2:
+ description: name of Physical Network Function.
+ type: string
+ pnf_name2_source:
+ description: source of name2
+ type: string
+ pnf_id:
+ description: id of pnf
+ type: string
+ equip_type:
+ description: Equipment type. Source of truth should define valid values.
+ type: string
+ equip_vendor:
+ description: Equipment vendor. Source of truth should define valid values.
+ type: string
+ equip_model:
+ description: Equipment model. Source of truth should define valid values.
+ type: string
+ management_option:
+ description: identifier of managed by OPENECOMP or customer
+ type: string
+ ipaddress_v4_oam:
+ description: ipv4-oam-address with new naming convention for IP addresses
+ type: string
+ sw_version:
+ description: sw-version is the version of SW for the hosted application on the PNF.
+ type: string
+ in_maint:
+ description: Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.
+ type: boolean
+ frame_id:
+ description: ID of the physical frame (relay rack) where pnf is installed.
+ type: string
+ serial_number:
+ description: Serial number of the device
+ type: string
+ ipaddress_v4_loopback_0:
+ description: IPV4 Loopback 0 address
+ type: string
+ ipaddress_v6_loopback_0:
+ description: IPV6 Loopback 0 address
+ type: string
+ ipaddress_v4_aim:
+ description: IPV4 AIM address
+ type: string
+ ipaddress_v6_aim:
+ description: IPV6 AIM address
+ type: string
+ ipaddress_v6_oam:
+ description: IPV6 OAM address
+ type: string
+ inv_status:
+ description: CANOPI's inventory status. Only set with values exactly as defined by CANOPI.
+ type: string
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ prov_status:
+ description: Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]
+ type: string
+ nf_role:
+ description: Nf Role is the role performed by this instance in the network.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ p_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.PInterface
+ lag_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LagInterface
+ capabilities:
+ logical_link:
+ type: org.openecomp.capabilities.inventory.Bridgeable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.LogicalLink
+ lag_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LagInterface
+ p_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.PInterface
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Composeable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ requirements:
+ - complex:
+ capability: org.openecomp.capabilities.inventory.Locates
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ - instance_group:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.network.InstanceGroup
+ relationship: org.openecomp.relationships.inventory.MemberOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - zone:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.Zone
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+
+ org.openecomp.nodes.inventory.network.InstanceGroup:
+ description: General mechanism for grouping instances
+ attributes:
+ id:
+ description: Instance Group ID, UUID assigned to this instance.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ description:
+ description: Descriptive text to help identify the usage of this instance-group
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ type:
+ description: Only valid value today is lower case ha for high availability
+ type: string
+ annotations:
+ index:
+ - inventory
+ sub_type:
+ description: Valid values for ha type are [geo-activeactive, geo-activestandby, local-activeactive, local-activestandby]
+ type: string
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Concurrency value
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ allotted_resource:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.AllottedResource
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+ pnf:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.Pnf
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+
+ org.openecomp.nodes.inventory.LInterface:
+ description: Logical interfaces, e.g., a vnic.
+ attributes:
+ interface_name:
+ description: Name given to the interface
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ interface_role:
+ description: E.g., CUSTOMER, UPLINK, etc.
+ type: string
+ v6_wan_link_ip:
+ description: Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.
+ type: string
+ selflink:
+ description: URL to endpoint where AAI can get more details
+ type: string
+ interface_id:
+ description: ID of interface
+ type: string
+ annotations:
+ index:
+ - inventory
+ macaddr:
+ description: MAC address for the interface
+ type: string
+ annotations:
+ index:
+ - inventory
+ network_name:
+ description: Name of the network
+ type: string
+ annotations:
+ index:
+ - inventory
+ management_option:
+ description: Whether A&AI should be managing this interface of not. Could have value like CUSTOMER
+ type: string
+ interface_description:
+ description: Human friendly text regarding this interface.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ vlans:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Vlan
+ sriov_vfs:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.SriovVf
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ l3_interface_ipv4_address_list:
+ type: org.openecomp.nodes.inventory.L3InterfaceIpv4AddressList
+ occurrences:
+ - 0
+ - UNBOUNDED
+ l3_interface_ipv6_address_list:
+ type: org.openecomp.nodes.inventory.L3InterfaceIpv6AddressList
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ l3_interface_ipv4_address_list:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.L3InterfaceIpv4AddressList
+ l3_interface_ipv6_address_list:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.L3InterfaceIpv6AddressList
+ sriov_vf:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.SriovVf
+ requirements:
+ - generic_vnf:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.network.GenericVnf
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - lag_interface:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.LagInterface
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - linking:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - newvce:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.network.Newvce
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - p_interface:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.PInterface
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vpe:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.network.Vpe
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vserver:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.Vserver
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.Vlan:
+ description: Definition of vlan
+ attributes:
+ vlan_interface:
+ description: String that identifies the interface
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ vlan_id_inner:
+ description: Inner VLAN tag
+ type: long
+ annotations:
+ index:
+ - inventory
+ vlan_id_outer:
+ description: Outer VLAN tag
+ type: long
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ speed_value:
+ description: Captures the numeric part of the speed
+ type: string
+ speed_units:
+ description: Captures the units corresponding to the speed
+ type: string
+ vlan_description:
+ description: Used to describe (the service associated with) the vlan
+ type: string
+ backdoor_connection:
+ description: Whether customer is going to use this VLAN for backdoor connection to another customer premise device.
+ type: string
+ vpn_id:
+ description: This indicates the customers VPN ID associated with this vlan
+ type: string
+ annotations:
+ unique:
+ - inventory
+ index:
+ - inventory
+ orchestration_status:
+ description: Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ l3_interface_ipv4_address_list:
+ type: org.openecomp.nodes.inventory.L3InterfaceIpv4AddressList
+ occurrences:
+ - 0
+ - UNBOUNDED
+ l3_interface_ipv6_address_list:
+ type: org.openecomp.nodes.inventory.L3InterfaceIpv6AddressList
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ allotted_resource:
+ type: org.openecomp.capabilities.inventory.Allot
+ valid_source_types:
+ - org.openecomp.nodes.inventory.AllottedResource
+ l_interface:
+ type: org.openecomp.capabilities.inventory.Linkable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LInterface
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Composeable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ l3_interface_ipv4_address_list:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.L3InterfaceIpv4AddressList
+ l3_interface_ipv6_address_list:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.L3InterfaceIpv6AddressList
+ requirements:
+ - logical_link:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.LogicalLink
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - multicast_configuration:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.MulticastConfiguration
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.Vserver:
+ description: Virtual Servers, aka virtual machine or VM.
+ attributes:
+ vserver_id:
+ description: Unique identifier for this vserver relative to its tenant
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ search:
+ - inventory
+ vserver_name:
+ description: Name of vserver
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ vserver_name2:
+ description: Alternative name of vserver
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ prov_status:
+ description: Trigger for operational monitoring of this resource by Service Assurance systems.
+ type: string
+ annotations:
+ index:
+ - inventory
+ vserver_selflink:
+ description: URL to endpoint where AAI can get more details
+ type: string
+ in_maint:
+ description: Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.
+ type: boolean
+ annotations:
+ index:
+ - inventory
+ is_closed_loop_disabled:
+ description: Used to indicate whether closed loop function is enabled on this node
+ type: boolean
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ volumes:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Volume
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ l_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LInterface
+ capabilities:
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Container
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+ vce:
+ type: org.openecomp.capabilities.inventory.Container
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.Vce
+ vf_module:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.VfModule
+ vnfc:
+ type: org.openecomp.capabilities.inventory.Container
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.Vnfc
+ vpe:
+ type: org.openecomp.capabilities.inventory.Container
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.Vpe
+ l_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LInterface
+ requirements:
+ - tenant:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.Tenant
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - flavor:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.Flavor
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - 1
+ - image:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.Image
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - 1
+ - pserver:
+ capability: tosca.capabilities.Container
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ relationship: tosca.relationships.HostedOn
+ occurrences:
+ - 0
+ - 1
+ - snapshot:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.Snapshot
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - 1
+ - volume:
+ capability: org.openecomp.capabilities.inventory.Attachment
+ node: org.openecomp.nodes.inventory.Volume
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.VolumeGroup:
+ description: Persistent block-level storage.
+ attributes:
+ volume_group_id:
+ description: Unique ID of volume-group.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ search:
+ - inventory
+ volume_group_name:
+ description: Name of the volume group.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ heat_stack_id:
+ description: Heat stack id corresponding to this volume-group
+ type: string
+ annotations:
+ index:
+ - inventory
+ vnf_type:
+ description: String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as OPENECOMP matures.
+ type: string
+ annotations:
+ index:
+ - inventory
+ orchestration_status:
+ description: Orchestration status of this volume-group
+ type: string
+ persona_model_customization_id:
+ description: captures the id of all the configuration used to customize the resource for the service.
+ type: string
+ vf_module_persona_model_customization_id:
+ description: helps relate the volume group to the vf-module whose components will require the volume group
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Node
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+ tenant:
+ type: org.openecomp.capabilities.inventory.Node
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Tenant
+ vf_module:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.VfModule
+ requirements:
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - complex:
+ capability: org.openecomp.capabilities.inventory.Existable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.network.IpsecConfiguration:
+ description: IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C
+ attributes:
+ ipsec_configuration_id:
+ description: UUID of this configuration
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ requested_vig_address_type:
+ description: Indicate the type of VIG server like AVPN, INTERNET, BOTH
+ type: string
+ requested_encryption_strength:
+ description: Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc
+ type: string
+ requested_dmz_type:
+ description: OPENECOMP can offer a shared DMZ or a DMZ specific to a customer
+ type: string
+ shared_dmz_network_address:
+ description: Network address of shared DMZ
+ type: string
+ requested_customer_name:
+ description: If the DMZ is a custom DMZ, this field will indicate the customer information
+ type: string
+ ike_version:
+ description: can be 1 or 2
+ type: string
+ ikev1_authentication:
+ description: Contains values like md5, sha1, sha256, sha384
+ type: string
+ ikev1_encryption:
+ description: Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc
+ type: string
+ ikev1_dh_group:
+ description: Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14
+ type: string
+ ikev1_am_group_id:
+ description: Group name defined in VIG for clients using aggressive mode
+ type: string
+ ikev1_am_password:
+ description: 'pre-shared key for the above group name '
+ type: string
+ ikev1_sa_lifetime:
+ description: Lifetime for IKEv1 SA
+ type: string
+ ipsec_authentication:
+ description: md5, sha1, sha256, sha384
+ type: string
+ ipsec_encryption:
+ description: 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc
+ type: string
+ ipsec_sa_lifetime:
+ description: Life time for IPSec SA
+ type: string
+ ipsec_pfs:
+ description: enable PFS or not
+ type: string
+ xauth_userid:
+ description: user ID for xAuth, sm-user,ucpeHostName,nmteHostName
+ type: string
+ xauth_user_password:
+ description: Encrypted using the Juniper $9$ algorithm
+ type: string
+ dpd_interval:
+ description: The time between DPD probe
+ type: string
+ dpd_frequency:
+ description: Maximum number of DPD before claiming the tunnel is down
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ vig_servers:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.VigServer
+ capabilities:
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+ vig_server:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.VigServer
+
+ org.openecomp.nodes.inventory.cloud.infrastructure.Pserver:
+ description: Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.
+ attributes:
+ hostname:
+ description: Value from executing hostname on the compute node.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ search:
+ - inventory
+ ptnii_equip_name:
+ description: PTNII name
+ type: string
+ number_of_cpus:
+ description: Number of cpus
+ type: integer
+ disk_in_gigabytes:
+ description: Disk size, in GBs
+ type: integer
+ ram_in_megabytes:
+ description: RAM size, in MBs
+ type: integer
+ equip_type:
+ description: Equipment type. Source of truth should define valid values.
+ type: string
+ equip_vendor:
+ description: Equipment vendor. Source of truth should define valid values.
+ type: string
+ equip_model:
+ description: Equipment model. Source of truth should define valid values.
+ type: string
+ fqdn:
+ description: Fully-qualified domain name
+ type: string
+ pserver_selflink:
+ description: URL to endpoint where AAI can get more details
+ type: string
+ ipv4_oam_address:
+ description: Used to configure device, also used for troubleshooting and is IP used for traps generated by device.
+ type: string
+ annotations:
+ search:
+ - inventory
+ serial_number:
+ description: Serial number, may be queried
+ type: string
+ ipaddress_v4_loopback_0:
+ description: IPV4 Loopback 0 address
+ type: string
+ ipaddress_v6_loopback_0:
+ description: IPV6 Loopback 0 address
+ type: string
+ ipaddress_v4_aim:
+ description: IPV4 AIM address
+ type: string
+ ipaddress_v6_aim:
+ description: IPV6 AIM address
+ type: string
+ ipaddress_v6_oam:
+ description: IPV6 OAM address
+ type: string
+ inv_status:
+ description: CANOPI's inventory status. Only set with values exactly as defined by CANOPI.
+ type: string
+ annotations:
+ index:
+ - inventory
+ pserver_id:
+ description: ID of Pserver
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ internet_topology:
+ description: internet topology of Pserver
+ type: string
+ in_maint:
+ description: used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.
+ type: boolean
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ pserver_name2:
+ description: alternative pserver name
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ purpose:
+ description: purpose of pserver
+ type: string
+ prov_status:
+ description: Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ p_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.PInterface
+ lag_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LagInterface
+ capabilities:
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Container
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+ logical_link:
+ type: org.openecomp.capabilities.inventory.Bridgeable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.LogicalLink
+ lag_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LagInterface
+ p_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.PInterface
+ vserver:
+ type: org.openecomp.capabilities.inventory.Container
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Vserver
+ requirements:
+ - availability_zone:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.AvailabilityZone
+ relationship: org.openecomp.relationships.inventory.MemberOf
+ occurrences:
+ - 0
+ - 1
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Existable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ - complex:
+ capability: org.openecomp.capabilities.inventory.Locates
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ - group_assignment:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.GroupAssignment
+ relationship: org.openecomp.relationships.inventory.MemberOf
+ occurrences:
+ - 0
+ - 1
+ - zone:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.Zone
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+
+ org.openecomp.nodes.inventory.SriovVf:
+ description: SR-IOV Virtual Function (not to be confused with virtual network function)
+ attributes:
+ pci_id:
+ description: PCI ID used to identify the sriov-vf
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ vf_vlan_filter:
+ description: This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.
+ type: string
+ annotations:
+ index:
+ - inventory
+ vf_mac_filter:
+ description: When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.
+ type: string
+ annotations:
+ index:
+ - inventory
+ vf_vlan_strip:
+ description: When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.
+ type: boolean
+ annotations:
+ index:
+ - inventory
+ vf_vlan_anti_spoof_check:
+ description: This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.
+ type: boolean
+ vf_mac_anti_spoof_check:
+ description: This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.
+ type: boolean
+ vf_mirrors:
+ description: This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.
+ type: string
+ vf_broadcast_allow:
+ description: This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM
+ type: boolean
+ vf_unknown_multicast_allow:
+ description: This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM
+ type: boolean
+ vf_unknown_unicast_allow:
+ description: This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM
+ type: boolean
+ vf_insert_stag:
+ description: This option, if set to true, instructs to insert outer tag after traffic comes out of VM.
+ type: boolean
+ vf_link_status:
+ description: This option is used to set the link status. Valid values as of 1607 are on, off, and auto.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ neutron_network_id:
+ description: Neutron network id of the interface
+ type: string
+ annotations:
+ index:
+ - inventory
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - l_interface:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.LInterface
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.AvailabilityZone:
+ description: Availability zone, a collection of compute hosts/pservers
+ attributes:
+ availability_zone_name:
+ description: Name of the availability zone. Unique across a cloud region
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ hypervisor_type:
+ description: Type of hypervisor. Source of truth should define valid values.
+ type: string
+ operational_state:
+ description: State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ ctag_pool:
+ type: org.openecomp.capabilities.inventory.Applicable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.CtagPool
+ dvs_switch:
+ type: org.openecomp.capabilities.inventory.Applicable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.DvsSwitch
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Origin
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+ pserver:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ vce:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.Vce
+ requirements:
+ - complex:
+ capability: org.openecomp.capabilities.inventory.Existable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.ServiceInstance:
+ description: Instance of a service
+ attributes:
+ service_instance_id:
+ description: Uniquely identifies this instance of a service
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ service_instance_name:
+ description: This field will store a name assigned to the service-instance.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ persona_model_id:
+ description: the ASDC model id for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_version:
+ description: the ASDC model version for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ widget_model_id:
+ description: the ASDC data dictionary widget model. This maps directly to the A&AI widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ widget_model_version:
+ description: the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ bandwidth_total:
+ description: Indicates the total bandwidth to be used for this service.
+ type: string
+ bandwidth_up_wan1:
+ description: indicates the upstream bandwidth this service will use on the WAN1 port of the physical device.
+ type: string
+ bandwidth_down_wan1:
+ description: indicates the downstream bandwidth this service will use on the WAN1 port of the physical device.
+ type: string
+ bandwidth_up_wan2:
+ description: indicates the upstream bandwidth this service will use on the WAN2 port of the physical device.
+ type: string
+ bandwidth_down_wan2:
+ description: indicates the downstream bandwidth this service will use on the WAN2 port of the physical device.
+ type: string
+ vhn_portal_url:
+ description: URL customers will use to access the vHN Portal.
+ type: string
+ operational_status:
+ description: Operational status of the service-instance.
+ type: string
+ service_instance_location_id:
+ description: An identifier that customers assign to the location where this service is being used.
+ type: string
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ selflink:
+ description: Path to the controller object.
+ type: string
+ orchestration_status:
+ description: Orchestration status of this service.
+ type: string
+ annotations:
+ index:
+ - inventory
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ metadata:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Metadatum
+ allotted_resources:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.AllottedResource
+ capabilities:
+ allotted_resource:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.AllottedResource
+ metadatum:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Metadatum
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Composeable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ requirements:
+ - connector:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.business.Connector
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - ctag_assignment:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.CtagAssignment
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - cvlan_tag:
+ capability: org.openecomp.capabilities.inventory.Composeable
+ node: org.openecomp.nodes.inventory.CvlanTagEntry
+ relationship: org.openecomp.relationships.inventory.ComposedOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - generic_vnf:
+ capability: org.openecomp.capabilities.inventory.Composeable
+ node: org.openecomp.nodes.inventory.network.GenericVnf
+ relationship: org.openecomp.relationships.inventory.ComposedOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - instance_group:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.network.InstanceGroup
+ relationship: org.openecomp.relationships.inventory.MemberOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Composeable
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.ComposedOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - logical_link:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.LogicalLink
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - pnf:
+ capability: org.openecomp.capabilities.inventory.Composeable
+ node: org.openecomp.nodes.inventory.network.Pnf
+ relationship: org.openecomp.relationships.inventory.ComposedOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - service_instance:
+ capability: org.openecomp.capabilities.inventory.Composeable
+ node: org.openecomp.nodes.inventory.ServiceInstance
+ relationship: org.openecomp.relationships.inventory.ComposedOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vce:
+ capability: org.openecomp.capabilities.inventory.Composeable
+ node: org.openecomp.nodes.inventory.network.Vce
+ relationship: org.openecomp.relationships.inventory.ComposedOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vlan:
+ capability: org.openecomp.capabilities.inventory.Composeable
+ node: org.openecomp.nodes.inventory.Vlan
+ relationship: org.openecomp.relationships.inventory.ComposedOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - service_subscription:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.ServiceSubscription
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.network.Newvce:
+ description: This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.
+ attributes:
+ vnf_id2:
+ description: Unique id of VNF, can't use same attribute name right now until we promote this new object
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ vnf_name:
+ description: Name of VNF.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ vnf_name2:
+ description: Alternate name of VNF.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ vnf_type:
+ description: String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as OPENECOMP matures.
+ type: string
+ annotations:
+ index:
+ - inventory
+ prov_status:
+ description: Trigger for operational monitoring of this VNF by BAU Service Assurance systems.
+ type: string
+ annotations:
+ index:
+ - inventory
+ operational_state:
+ description: Indicator for whether the resource is considered operational
+ type: string
+ license_key:
+ description: OBSOLETE - do not use
+ type: string
+ ipv4_oam_address:
+ description: Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).
+ type: string
+ equipment_role:
+ description: Client should send valid enumerated value, e.g., VPE.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ ipv4_loopback0_address:
+ description: v4 Loopback0 address
+ type: string
+ orchestration_status:
+ description: Orchestration status of this VNF, mastered by MSO.
+ type: string
+ heat_stack_id:
+ description: Heat stack id corresponding to this instance, managed by MSO
+ type: string
+ annotations:
+ index:
+ - inventory
+ mso_catalog_key:
+ description: Corresponds to the SDN-C catalog id used to configure this VCE
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ l_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LInterface
+ capabilities:
+ l_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LInterface
+
+ org.openecomp.nodes.inventory.Flavor:
+ description: Openstack flavor.
+ attributes:
+ flavor_id:
+ description: Flavor id, expected to be unique across cloud-region.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ flavor_name:
+ description: Flavor name
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ flavor_vcpus:
+ description: Number of CPUs
+ type: integer
+ flavor_ram:
+ description: Amount of memory
+ type: integer
+ flavor_disk:
+ description: Disk space
+ type: integer
+ flavor_ephemeral:
+ description: Amount of ephemeral disk space
+ type: integer
+ flavor_swap:
+ description: amount of swap space allocation
+ type: string
+ flavor_is_public:
+ description: whether flavor is available to all users or private to the tenant it was created in.
+ type: boolean
+ flavor_selflink:
+ description: URL to endpoint where AAI can get more details
+ type: string
+ flavor_disabled:
+ description: Boolean as to whether this flavor is no longer enabled
+ type: boolean
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ vserver:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Vserver
+ requirements:
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.DvsSwitch:
+ description: 'Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI
+ needs to receive this data from the PO deployment team and administer it using
+ the provisioningTool.sh into A&AI. '
+ attributes:
+ switch_name:
+ description: DVS switch name
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ vcenter_url:
+ description: URL used to reach the vcenter
+ type: string
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - availability_zone:
+ capability: org.openecomp.capabilities.inventory.Applicable
+ node: org.openecomp.nodes.inventory.AvailabilityZone
+ relationship: org.openecomp.relationships.inventory.AppliesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.Entitlement:
+ description: Metadata for entitlement group.
+ attributes:
+ group_uuid:
+ description: Unique ID for the entitlement group the resource comes from, should be uuid.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ resource_uuid:
+ description: 'Unique ID of an entitlement resource. '
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ resource_version:
+ description: Concurrency value
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - generic_vnf:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.GenericVnf
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vce:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.Vce
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vpe:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.Vpe
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.PInterface:
+ description: Physical interface (e.g., nic)
+ attributes:
+ interface_name:
+ description: Name that identifies the physical interface
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ speed_value:
+ description: Captures the numeric part of the speed
+ type: string
+ speed_units:
+ description: Captures the units corresponding to the speed
+ type: string
+ port_description:
+ description: Nature of the services and connectivity on this port.
+ type: string
+ equipment_identifier:
+ description: CLEI or other specification for p-interface hardware.
+ type: string
+ interface_role:
+ description: Role specification for p-interface hardware.
+ type: string
+ interface_type:
+ description: Indicates the physical properties of the interface.
+ type: string
+ prov_status:
+ description: Trigger for operational monitoring of this resource by Service Assurance systems.
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ l_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LInterface
+ capabilities:
+ lag_interface:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LagInterface
+ l_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LInterface
+ requirements:
+ - logical_link:
+ capability: tosca.capabilities.network.Linkable
+ node: org.openecomp.nodes.inventory.network.LogicalLink
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 0
+ - 1
+ - physical_link:
+ capability: tosca.capabilities.network.Linkable
+ node: org.openecomp.nodes.inventory.network.PhysicalLink
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - pnf:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.network.Pnf
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - pserver:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vpls_pe:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.network.VplsPe
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.network.LagLink:
+ description: LAG links can connect lag-interfaces
+ attributes:
+ link_name:
+ description: Alphabetical concatenation of lag-interface names
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ lag_interface:
+ type: org.openecomp.capabilities.inventory.Linkable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LagInterface
+ logical_link:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.LogicalLink
+
+ org.openecomp.nodes.inventory.Volume:
+ description: Ephemeral Block storage volume.
+ attributes:
+ volume_id:
+ description: Unique ID of block storage volume relative to the vserver.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ volume_selflink:
+ description: URL to endpoint where AAI can get more details
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ vserver:
+ type: org.openecomp.capabilities.inventory.Attachment
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Vserver
+
+ org.openecomp.nodes.inventory.network.Zone:
+ description: A zone is a grouping of assets in a location homing to the same connections into the CBB
+ attributes:
+ zone_id:
+ description: Code assigned by OPENECOMP to the zone
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ zone_name:
+ description: English name associated with the zone
+ type: string
+ annotations:
+ summary_property: true
+ design_type:
+ description: Design of zone [Medium/Large�]
+ type: string
+ annotations:
+ index:
+ - inventory
+ zone_context:
+ description: Context of zone [production/test]
+ type: string
+ annotations:
+ index:
+ - inventory
+ status:
+ description: Status of a zone.
+ type: string
+ resource_version:
+ description: Concurrency value
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ cloud_region:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ pnf:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.Pnf
+ pserver:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ requirements:
+ - complex:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+
+ org.openecomp.nodes.inventory.SegmentationAssignment:
+ description: Openstack segmentation assignment.
+ attributes:
+ segmentation_id:
+ description: Route Table Reference id, UUID assigned to this instance.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ resource_version:
+ description: Concurrency value
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.SitePair:
+ attributes:
+ site_pair_id:
+ description: unique identifier of probe
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ source_ip:
+ description: Prefix address
+ type: string
+ destination_ip:
+ description: Prefix address
+ type: string
+ ip_version:
+ description: ip version, v4, v6
+ type: string
+ destination_hostname:
+ description: Hostname of the destination equipment to which SLAs are measured against.
+ type: string
+ destination_equip_type:
+ description: The type of destinatination equipment. Could be Router, UCPE, etc.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ classes_of_service:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.ClassOfService
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ class_of_service:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ClassOfService
+ requirements:
+ - routing_instance:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.RoutingInstance
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.network.VplsPe:
+ description: VPLS Provider Edge routers.
+ attributes:
+ equipment_name:
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ prov_status:
+ description: Trigger for operational monitoring of this VNF by BAU Service Assurance systems.
+ type: string
+ annotations:
+ index:
+ - inventory
+ ipv4_oam_address:
+ description: Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).
+ type: string
+ equipment_role:
+ description: Client should send valid enumerated value, e.g., VPLS-PE.
+ type: string
+ vlan_id_outer:
+ description: Temporary location for stag to get to VCE
+ type: long
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ p_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.PInterface
+ lag_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LagInterface
+ capabilities:
+ lag_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LagInterface
+ p_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.PInterface
+ requirements:
+ - complex:
+ capability: org.openecomp.capabilities.inventory.Locates
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - ctag_pool:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.CtagPool
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.Subnet:
+ attributes:
+ subnet_id:
+ description: Subnet ID, should be UUID.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ subnet_name:
+ description: Name associated with the subnet.
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ neutron_subnet_id:
+ description: Neutron id of this subnet
+ type: string
+ gateway_address:
+ description: gateway ip address
+ type: string
+ network_start_address:
+ description: network start address
+ type: string
+ cidr_mask:
+ description: cidr mask
+ type: string
+ ip_version:
+ description: ip version
+ type: string
+ orchestration_status:
+ description: Orchestration status of this VNF, mastered by MSO
+ type: string
+ dhcp_enabled:
+ description: dhcp enabled
+ type: boolean
+ dhcp_start:
+ description: the start address reserved for use by dhcp
+ type: string
+ dhcp_end:
+ description: the last address reserved for use by dhcp
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ l3_interface_ipv4_address_list:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.L3InterfaceIpv4AddressList
+ l3_interface_ipv6_address_list:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.L3InterfaceIpv6AddressList
+ requirements:
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.service.design.and.creation.VnfImage:
+ description: Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.
+ attributes:
+ att_uuid:
+ description: Unique ID of this asset
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ application:
+ description: The application that the image instantiates.
+ type: string
+ annotations:
+ index:
+ - inventory
+ application_vendor:
+ description: The vendor of the application.
+ type: string
+ annotations:
+ index:
+ - inventory
+ application_version:
+ description: The version of the application.
+ type: string
+ annotations:
+ index:
+ - inventory
+ selflink:
+ description: URL to endpoint where AAI can get more details
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+
+ org.openecomp.nodes.inventory.network.RouteTableReference:
+ description: Openstack route table reference.
+ attributes:
+ route_table_reference_id:
+ description: Route Table Reference id, UUID assigned to this instance.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ route_table_reference_fqdn:
+ description: FQDN entry in the route table.
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ resource_version:
+ description: Concurrency value
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ l3_network:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.L3Network
+
+ org.openecomp.nodes.inventory.License:
+ description: Metadata for license group.
+ attributes:
+ group_uuid:
+ description: Unique ID for the license group the resource belongs to, should be uuid.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ resource_uuid:
+ description: 'Unique ID of a license resource. '
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ resource_version:
+ description: Concurrency value
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - generic_vnf:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.GenericVnf
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vce:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.Vce
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vpe:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.Vpe
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.GroupAssignment:
+ description: Openstack group-assignment used to store exclusivity groups (EG).
+ attributes:
+ group_id:
+ description: Group id, expected to be unique across cloud-region.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ group_type:
+ description: Group type - the type of group this instance refers to
+ type: string
+ annotations:
+ index:
+ - inventory
+ group_name:
+ description: Group name - name assigned to the group
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ group_description:
+ description: Group description - description of the group
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ pserver:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ tenant:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Tenant
+ requirements:
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.VfModule:
+ description: a deployment unit of VNFCs
+ attributes:
+ vf_module_id:
+ description: Unique ID of vf-module.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ search:
+ - inventory
+ vf_module_name:
+ description: Name of vf-module
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ heat_stack_id:
+ description: Heat stack id corresponding to this instance.
+ type: string
+ annotations:
+ index:
+ - inventory
+ orchestration_status:
+ description: orchestration status of this vf-module, mastered by MSO
+ type: string
+ is_base_vf_module:
+ description: used to indicate whether or not this object is base vf module
+ type: boolean
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ persona_model_id:
+ description: the ASDC model id for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_version:
+ description: the ASDC model version for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_customization_id:
+ description: captures the id of all the configuration used to customize the resource for the service.
+ type: string
+ widget_model_id:
+ description: the ASDC data dictionary widget model. This maps directly to the A&AI widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ widget_model_version:
+ description: the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ contrail_service_instance_fqdn:
+ description: the Contrail unique ID for a service-instance
+ type: string
+ annotations:
+ index:
+ - inventory
+ module_index:
+ description: the index will track the number of modules of a given type that have been deployed in a VNF, starting with 0, and always choosing the lowest available digit
+ type: integer
+ selflink:
+ description: Path to the controller object.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - generic_vnf:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.GenericVnf
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - l3_network:
+ capability: tosca.capabilities.Node
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vnfc:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.Vnfc
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - volume_group:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.VolumeGroup
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - 1
+ - vserver:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.Vserver
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.Metadatum:
+ description: Key/value pairs
+ attributes:
+ metaname:
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ metaval:
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ requirements:
+ - connector:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.business.Connector
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - image:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.Image
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - service_instance:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.ServiceInstance
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.VigServer:
+ description: vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607
+ attributes:
+ vig_address_type:
+ description: indicates whether the VIG is for AVPN or INTERNET
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ ipaddress_v4_vig:
+ description: v4 IP of the vig server
+ type: string
+ occurrences:
+ - 0
+ - UNBOUNDED
+ ipaddress_v6_vig:
+ description: v6 IP of the vig server
+ type: string
+ occurrences:
+ - 0
+ - UNBOUNDED
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - ipsec_configuration:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.IpsecConfiguration
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion:
+ description: cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&Ts OPENECOMP cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname and we will use OPENECOMP.
+ attributes:
+ cloud_owner:
+ description: Identifies the vendor and cloud name, e.g., OPENECOMP. First part of composite key should be formatted as vendor-cloudname
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ cloud_region_id:
+ description: Identifier used by the vendor for the region. Second part of composite key
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ cloud_type:
+ description: Type of the cloud (e.g., openstack)
+ type: string
+ annotations:
+ index:
+ - inventory
+ owner_defined_type:
+ description: Cloud-owner defined type indicator (e.g., dcp, lcp)
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ cloud_region_version:
+ description: Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.
+ type: string
+ identity_url:
+ description: URL of the keystone identity service
+ type: string
+ cloud_zone:
+ description: Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.
+ type: string
+ complex_name:
+ description: complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ volume_groups:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.VolumeGroup
+ tenants:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Tenant
+ annotations:
+ max_query_depth: 0
+ flavors:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Flavor
+ group_assignments:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.GroupAssignment
+ snapshots:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Snapshot
+ images:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Image
+ dvs_switches:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.DvsSwitch
+ oam_networks:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.OamNetwork
+ availability_zones:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.AvailabilityZone
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ availability_zone:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.AvailabilityZone
+ dvs_switch:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.DvsSwitch
+ flavor:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Flavor
+ group_assignment:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.GroupAssignment
+ image:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Image
+ oam_network:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.OamNetwork
+ snapshot:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Snapshot
+ tenant:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Tenant
+ volume_group:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.VolumeGroup
+ logical_link:
+ type: org.openecomp.capabilities.inventory.Existable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.LogicalLink
+ pserver:
+ type: org.openecomp.capabilities.inventory.Existable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ requirements:
+ - complex:
+ capability: org.openecomp.capabilities.inventory.Existable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - zone:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.Zone
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+
+ org.openecomp.nodes.inventory.network.Vpe:
+ derived_from: org.openecomp.nodes.inventory.Vnf
+ description: Relationship-list must include related to info for complex.
+ attributes:
+ vnf_id:
+ description: Unique id of VNF. This is unique across the graph.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ vnf_name:
+ description: Name of VNF.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ vnf_name2:
+ description: Alternate name of VNF.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ vnf_type:
+ description: String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as OPENECOMP matures.
+ type: string
+ annotations:
+ index:
+ - inventory
+ service_id:
+ description: Unique identifier of service. Does not map strictly to ASDC services. SOON TO BE DEPRECATED
+ type: string
+ annotations:
+ index:
+ - inventory
+ regional_resource_zone:
+ description: Regional way of organizing pservers, source of truth should define values
+ type: string
+ annotations:
+ index:
+ - inventory
+ prov_status:
+ description: Trigger for operational monitoring of this resource by Service Assurance systems.
+ type: string
+ annotations:
+ index:
+ - inventory
+ operational_state:
+ description: Indicator for whether the resource is considered operational
+ type: string
+ license_key:
+ description: OBSOLETE - do not use. See child relationships.
+ type: string
+ equipment_role:
+ description: Client should send valid enumerated value
+ type: string
+ orchestration_status:
+ description: Orchestration status of this VNF, mastered by MSO
+ type: string
+ heat_stack_id:
+ description: Heat stack id corresponding to this instance, managed by MSO
+ type: string
+ annotations:
+ index:
+ - inventory
+ mso_catalog_key:
+ description: Corresponds to the SDN-C catalog id used to configure this VCE
+ type: string
+ ipv4_oam_address:
+ description: Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).
+ type: string
+ ipv4_oam_gateway_address_prefix_length:
+ description: Prefix length for oam-address
+ type: integer
+ ipv4_oam_gateway_address:
+ description: Gateway address
+ type: string
+ v4_loopback0_ip_address:
+ description: Loopback0 address
+ type: string
+ vlan_id_outer:
+ description: Temporary location for stag to get to VCE
+ type: long
+ as_number:
+ description: as-number of the VPE
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ summary_status:
+ description: details regarding the vpe operation, PLEASE DISCONTINUE USE OF THIS FIELD.
+ type: string
+ encrypted_access_flag:
+ description: indicates whether vpe access uses SSH
+ type: boolean
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ l_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LInterface
+ lag_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LagInterface
+ licenses:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.License
+ entitlements:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Entitlement
+ capabilities:
+ entitlement:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Entitlement
+ lag_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LagInterface
+ license:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.License
+ l_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LInterface
+ requirements:
+ - ctag_pool:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.CtagPool
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vserver:
+ capability: tosca.capabilities.Container
+ node: org.openecomp.nodes.inventory.Vserver
+ relationship: tosca.relationships.HostedOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.Image:
+ description: Openstack image.
+ attributes:
+ image_id:
+ description: Image id, expected to be unique across cloud region
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ image_name:
+ description: Image name
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ image_architecture:
+ description: Operating system architecture.
+ type: string
+ image_os_distro:
+ description: The common name of the operating system distribution in lowercase
+ type: string
+ image_os_version:
+ description: The operating system version as specified by the distributor.
+ type: string
+ application:
+ description: The application that the image instantiates.
+ type: string
+ annotations:
+ index:
+ - inventory
+ application_vendor:
+ description: The vendor of the application.
+ type: string
+ annotations:
+ index:
+ - inventory
+ application_version:
+ description: The version of the application.
+ type: string
+ annotations:
+ index:
+ - inventory
+ image_selflink:
+ description: URL to endpoint where AAI can get more details
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ metadata:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Metadatum
+ capabilities:
+ metadatum:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Metadatum
+ vserver:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Vserver
+ requirements:
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.network.GenericVnf:
+ derived_from: org.openecomp.nodes.inventory.Vnf
+ description: General purpose VNF
+ attributes:
+ vnf_id:
+ description: Unique id of VNF. This is unique across the graph.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ vnf_name:
+ description: Name of VNF.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ vnf_name2:
+ description: Alternate name of VNF.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ vnf_type:
+ description: String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as OPENECOMP matures.
+ type: string
+ annotations:
+ index:
+ - inventory
+ service_id:
+ description: Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED
+ type: string
+ annotations:
+ index:
+ - inventory
+ regional_resource_zone:
+ description: Regional way of organizing pservers, source of truth should define values
+ type: string
+ annotations:
+ index:
+ - inventory
+ prov_status:
+ description: Trigger for operational monitoring of this resource by Service Assurance systems.
+ type: string
+ annotations:
+ index:
+ - inventory
+ operational_state:
+ description: Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.
+ type: string
+ license_key:
+ description: OBSOLETE - do not use
+ type: string
+ equipment_role:
+ description: Client should send valid enumerated value
+ type: string
+ orchestration_status:
+ description: Orchestration status of this VNF, used by MSO.
+ type: string
+ heat_stack_id:
+ description: Heat stack id corresponding to this instance, managed by MSO
+ type: string
+ annotations:
+ index:
+ - inventory
+ mso_catalog_key:
+ description: Corresponds to the SDN-C catalog id used to configure this VCE
+ type: string
+ management_option:
+ description: identifier of managed by OPENECOMP or customer
+ type: string
+ ipv4_oam_address:
+ description: Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.
+ type: string
+ ipv4_loopback0_address:
+ description: v4 Loopback0 address
+ type: string
+ nm_lan_v6_address:
+ description: v6 Loopback address
+ type: string
+ management_v6_address:
+ description: v6 management address
+ type: string
+ vcpu:
+ description: number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE
+ type: long
+ vcpu_units:
+ description: units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE
+ type: string
+ vmemory:
+ description: number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE
+ type: long
+ vmemory_units:
+ description: units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE
+ type: string
+ vdisk:
+ description: number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE
+ type: long
+ vdisk_units:
+ description: units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE
+ type: string
+ in_maint:
+ description: used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.
+ type: boolean
+ annotations:
+ index:
+ - inventory
+ is_closed_loop_disabled:
+ description: used to indicate whether closed loop function is enabled on this node
+ type: boolean
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ summary_status:
+ description: details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.
+ type: string
+ encrypted_access_flag:
+ description: indicates whether generic-vnf access uses SSH
+ type: boolean
+ entitlement_assignment_group_uuid:
+ description: UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships.
+ type: string
+ entitlement_resource_uuid:
+ description: UUID of the specific entitlement resource. OBSOLETE - See child relationships.
+ type: string
+ license_assignment_group_uuid:
+ description: UUID of the license assignment group. OBSOLETE - See child relationships.
+ type: string
+ license_key_uuid:
+ description: UUID of the actual license resource. OBSOLETE - See child relationships.
+ type: string
+ persona_model_id:
+ description: the ASDC model id for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_version:
+ description: the ASDC model version for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_customization_id:
+ description: captures the id of all the configuration used to customize the resource for the service.
+ type: string
+ widget_model_id:
+ description: the ASDC data dictionary widget model. This maps directly to the A&AI widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ widget_model_version:
+ description: the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ as_number:
+ description: as-number of the VNF
+ type: string
+ regional_resource_subzone:
+ description: represents sub zone of the rr plane
+ type: string
+ selflink:
+ description: Path to the controller object.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ l_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LInterface
+ lag_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LagInterface
+ vf_modules:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.VfModule
+ licenses:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.License
+ entitlements:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Entitlement
+ capabilities:
+ allotted_resource:
+ type: org.openecomp.capabilities.inventory.Allot
+ valid_source_types:
+ - org.openecomp.nodes.inventory.AllottedResource
+ entitlement:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Entitlement
+ lag_interface:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LagInterface
+ license:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.License
+ l_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LInterface
+ vf_module:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.VfModule
+ logical_link:
+ type: org.openecomp.capabilities.inventory.Bridgeable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.LogicalLink
+ network_profile:
+ type: org.openecomp.capabilities.inventory.Applicable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.cloud.infrastructure.NetworkProfile
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Composeable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ site_pair_set:
+ type: org.openecomp.capabilities.inventory.Applicable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.SitePairSet
+ requirements:
+ - availability_zone:
+ capability: org.openecomp.capabilities.inventory.Origin
+ node: org.openecomp.nodes.inventory.AvailabilityZone
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - instance_group:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.network.InstanceGroup
+ relationship: org.openecomp.relationships.inventory.MemberOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - ipsec_configuration:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.IpsecConfiguration
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - 1
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - license_key_resource:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.license.management.LicenseKeyResource
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - pserver:
+ capability: tosca.capabilities.Container
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ relationship: tosca.relationships.HostedOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - virtual_data_center:
+ capability: org.openecomp.capabilities.inventory.Existable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.VirtualDataCenter
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vnfc:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.Vnfc
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vnf_image:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.service.design.and.creation.VnfImage
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - volume_group:
+ capability: tosca.capabilities.Node
+ node: org.openecomp.nodes.inventory.VolumeGroup
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vserver:
+ capability: tosca.capabilities.Container
+ node: org.openecomp.nodes.inventory.Vserver
+ relationship: tosca.relationships.HostedOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.Snapshot:
+ description: Openstack snapshot
+ attributes:
+ snapshot_id:
+ description: Snapshot id, this is the key UUID assoc associated in glance with the snapshots.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ snapshot_name:
+ description: Snapshot name
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ snapshot_architecture:
+ description: Operating system architecture
+ type: string
+ snapshot_os_distro:
+ description: The common name of the operating system distribution in lowercase
+ type: string
+ snapshot_os_version:
+ description: The operating system version as specified by the distributor.
+ type: string
+ application:
+ description: The application that the image instantiates.
+ type: string
+ annotations:
+ index:
+ - inventory
+ application_vendor:
+ description: The vendor of the application.
+ type: string
+ annotations:
+ index:
+ - inventory
+ application_version:
+ description: The version of the application.
+ type: string
+ annotations:
+ index:
+ - inventory
+ snapshot_selflink:
+ description: URL to endpoint where AAI can get more details
+ type: string
+ prev_snapshot_id:
+ description: This field contains the UUID of the previous snapshot (if any).
+ type: string
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ vserver:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Vserver
+ requirements:
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.network.LogicalLink:
+ description: Logical links generally connect l-interfaces but are used to express logical connectivity between two points
+ attributes:
+ link_name:
+ description: e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ search:
+ - inventory
+ link_type:
+ description: Type of logical link, e.g., evc
+ type: string
+ speed_value:
+ description: Captures the numeric part of the speed
+ type: string
+ speed_units:
+ description: Captures the units corresponding to the speed
+ type: string
+ ip_version:
+ description: v4, v6, or ds for dual stack (should be openecomp-ip-version)
+ type: string
+ routing_protocol:
+ description: For example, static or BGP
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ persona_model_id:
+ description: the ASDC model id for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_version:
+ description: the ASDC model version for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ widget_model_id:
+ description: the ASDC data dictionary widget model. This maps directly to the A&AI widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ widget_model_version:
+ description: the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ operational_status:
+ description: Indication of operational status of the logical link.
+ type: string
+ prov_status:
+ description: Trigger for operational monitoring of this VNF by BAU Service Assurance systems.
+ type: string
+ annotations:
+ index:
+ - inventory
+ link_role:
+ description: Indication of the network use of the logical link.
+ type: string
+ link_name2:
+ description: Alias or alternate name (CLCI or D1 name).
+ type: string
+ link_id:
+ description: UUID of the logical-link, SDNC generates this.
+ type: string
+ annotations:
+ unique:
+ - inventory
+ index:
+ - inventory
+ circuit_id:
+ description: Circuit id
+ type: string
+ annotations:
+ index:
+ - inventory
+ purpose:
+ description: Reason for this entity, role it is playing
+ type: string
+ annotations:
+ index:
+ - inventory
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ l_interface:
+ type: org.openecomp.capabilities.inventory.Linkable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LInterface
+ logical_link:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.LogicalLink
+ p_interface:
+ type: org.openecomp.capabilities.inventory.Linkable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.PInterface
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ vlan:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Vlan
+ requirements:
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Existable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - generic_vnf:
+ capability: org.openecomp.capabilities.inventory.Bridgeable
+ node: org.openecomp.nodes.inventory.network.GenericVnf
+ relationship: org.openecomp.relationships.inventory.BridgedTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - lag_link:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.LagLink
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - logical_link:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.LogicalLink
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - pnf:
+ capability: org.openecomp.capabilities.inventory.Bridgeable
+ node: org.openecomp.nodes.inventory.network.Pnf
+ relationship: org.openecomp.relationships.inventory.BridgedTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - pserver:
+ capability: org.openecomp.capabilities.inventory.Bridgeable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ relationship: org.openecomp.relationships.inventory.BridgedTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - virtual_data_center:
+ capability: org.openecomp.capabilities.inventory.Existable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.VirtualDataCenter
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vpn_binding:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.VpnBinding
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.network.NetworkPolicy:
+ attributes:
+ network_policy_id:
+ description: UUID representing unique key to this instance
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ network_policy_fqdn:
+ description: Contrail FQDN for the policy
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ heat_stack_id:
+ description: ID for the openStack Heat instance
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ l3_network:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.L3Network
+
+ org.openecomp.nodes.inventory.TunnelXconnect:
+ description: Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted
+ attributes:
+ id:
+ description: Allotted Resource id UUID assigned to this instance.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ bandwidth_up_wan1:
+ description: The WAN uplink bandwidth for WAN1
+ type: string
+ bandwidth_down_wan1:
+ description: The WAN downlink bandwidth for WAN1
+ type: string
+ bandwidth_up_wan2:
+ description: The WAN uplink bandwidth for WAN2
+ type: string
+ bandwidth_down_wan2:
+ description: The WAN downlink bandwidth for WAN2
+ type: string
+ resource_version:
+ description: Concurrency value
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - allotted_resource:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.AllottedResource
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.OamNetwork:
+ description: 'OAM network, to be deprecated shortly. Do not use for new purposes. '
+ attributes:
+ network_uuid:
+ description: UUID of the network. Unique across a cloud-region
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ network_name:
+ description: Name of the network.
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ cvlan_tag:
+ description: cvlan-id
+ type: long
+ annotations:
+ index:
+ - inventory
+ ipv4_oam_gateway_address:
+ description: Used for VNF firewall rule so customer cannot send customer traffic over this oam network
+ type: string
+ ipv4_oam_gateway_address_prefix_length:
+ description: Used for VNF firewall rule so customer cannot send customer traffic over this oam network
+ type: integer
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - complex:
+ capability: org.openecomp.capabilities.inventory.Applicable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ relationship: org.openecomp.relationships.inventory.AppliesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.network.SitePairSet:
+ description: Set of instances for probes used to measure service level agreements
+ attributes:
+ site_pair_set_id:
+ description: Unique id of site pair set.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ routing_instances:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.RoutingInstance
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ routing_instance:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.RoutingInstance
+ requirements:
+ - generic_vnf:
+ capability: org.openecomp.capabilities.inventory.Applicable
+ node: org.openecomp.nodes.inventory.network.GenericVnf
+ relationship: org.openecomp.relationships.inventory.AppliesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.CvlanTagEntry:
+ attributes:
+ cvlan_tag:
+ description: See mis-na-virtualization-platform.yang
+ type: long
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Composeable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ requirements:
+ - port_group:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.PortGroup
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.ClassOfService:
+ attributes:
+ cos:
+ description: unique identifier of probe
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ probe_id:
+ description: identifier of probe
+ type: string
+ probe_type:
+ description: type of probe
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - site_pair:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.SitePair
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.CtagPool:
+ description: A collection of C tags (vlan tags) grouped for a specific purpose.
+ attributes:
+ target_pe:
+ description: The Target provider edge router
+ type: string
+ annotations:
+ primary_id: true
+ availability_zone_name:
+ description: Name of the availability zone
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ ctag_pool_purpose:
+ description: Describes what the intended purpose of this pool is.
+ type: string
+ ctag_values:
+ description: Comma separated list of ctags
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ vpe:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.Vpe
+ vpls_pe:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.VplsPe
+ requirements:
+ - complex:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - availability_zone:
+ capability: org.openecomp.capabilities.inventory.Applicable
+ node: org.openecomp.nodes.inventory.AvailabilityZone
+ relationship: org.openecomp.relationships.inventory.AppliesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.network.MulticastConfiguration:
+ attributes:
+ multicast_configuration_id:
+ description: Unique id of multicast configuration.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ multicast_protocol:
+ description: protocol of multicast configuration
+ type: string
+ rp_type:
+ description: rp type of multicast configuration
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ vlan:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Vlan
+
+ org.openecomp.nodes.inventory.L3InterfaceIpv4AddressList:
+ description: IPv4 Address Range
+ attributes:
+ l3_interface_ipv4_address:
+ description: IP address
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ l3_interface_ipv4_prefix_length:
+ description: Prefix length, 32 for single address
+ type: long
+ vlan_id_inner:
+ description: Inner VLAN tag
+ type: long
+ annotations:
+ index:
+ - inventory
+ vlan_id_outer:
+ description: Outer VLAN tag
+ type: long
+ is_floating:
+ description: Indicator of fixed or floating address
+ type: boolean
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ neutron_network_id:
+ description: Neutron network id of the interface that address belongs to
+ type: string
+ annotations:
+ index:
+ - inventory
+ neutron_subnet_id:
+ description: Neutron id of subnet that address belongs to
+ type: string
+ annotations:
+ index:
+ - inventory
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.MemberOf.network
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - subnet:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.Subnet
+ relationship: org.openecomp.relationships.inventory.MemberOf.network
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - l_interface:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.LInterface
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vlan:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.Vlan
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.network.VpnBinding:
+ description: VPN binding
+ attributes:
+ vpn_id:
+ description: VPN ID, globally unique within A&AI
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ vpn_name:
+ description: VPN Name
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ global_route_target:
+ description: Number used to identify a VPN, globally unique in the network
+ type: string
+ annotations:
+ index:
+ - inventory
+ vpn_platform:
+ description: the platform associated with the VPN example AVPN, Mobility
+ type: string
+ vpn_type:
+ description: Type of the vpn, should be taken from enumerated/valid values
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ route_distinguisher:
+ description: Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.
+ type: string
+ route_target_role:
+ description: Role assigned to this route target
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ description: l3-networks relate to vpn-bindings
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ l3_network:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.L3Network
+ logical_link:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.LogicalLink
+
+ org.openecomp.nodes.inventory.Vnf:
+ description: Abstract vnf class
+ attributes:
+ vnf_id:
+ description: Unique id of VNF. This is unique across the graph.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+
+ org.openecomp.nodes.inventory.Tenant:
+ description: Openstack tenant
+ attributes:
+ tenant_id:
+ description: Unique id relative to the cloud-region.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ search:
+ - inventory
+ tenant_name:
+ description: Readable name of tenant
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ vservers:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Vserver
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ service_subscription:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceSubscription
+ vserver:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Vserver
+ requirements:
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - group_assignment:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.GroupAssignment
+ relationship: org.openecomp.relationships.inventory.MemberOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - volume_group:
+ capability: tosca.capabilities.Node
+ node: org.openecomp.nodes.inventory.VolumeGroup
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.business.Customer:
+ description: customer identifiers to provide linkage back to BSS information.
+ attributes:
+ global_customer_id:
+ description: Global customer id used across OPENECOMP to uniquely identify customer.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ subscriber_name:
+ description: Subscriber name, an alternate way to retrieve a customer.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ subscriber_type:
+ description: Subscriber type, a way to provide VID with only the INFRA customers.
+ type: string
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ service_subscriptions:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.ServiceSubscription
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ service_subscription:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceSubscription
+
+ org.openecomp.nodes.inventory.AllottedResource:
+ description: Represents a slice or partial piece of a resource that gets separately allotted
+ attributes:
+ id:
+ description: Allotted Resource id UUID assigned to this instance.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ description:
+ description: The descriptive information assigned to this allotted resource instance
+ type: string
+ annotations:
+ summary_property: true
+ selflink:
+ description: Link back to more information in the controller
+ type: string
+ persona_model_id:
+ description: the ASDC model id for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_version:
+ description: the ASDC model version for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Concurrency value
+ type: string
+ tunnel_xconnects:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.TunnelXconnect
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ tunnel_xconnect:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.TunnelXconnect
+ requirements:
+ - generic_vnf:
+ capability: org.openecomp.capabilities.inventory.Allot
+ node: org.openecomp.nodes.inventory.network.GenericVnf
+ relationship: org.openecomp.relationships.inventory.PartOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - instance_group:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.network.InstanceGroup
+ relationship: org.openecomp.relationships.inventory.MemberOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Allot
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.PartOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vlan:
+ capability: org.openecomp.capabilities.inventory.Allot
+ node: org.openecomp.nodes.inventory.Vlan
+ relationship: org.openecomp.relationships.inventory.PartOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - service_instance:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.ServiceInstance
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.cloud.infrastructure.Complex:
+ description: Collection of physical locations that can house cloud-regions.
+ attributes:
+ physical_location_id:
+ description: Unique identifier for physical location, e.g., CLLI
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ data_center_code:
+ description: Data center code which can be an alternate way to identify a complex
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ complex_name:
+ description: Gamma complex name for LCP instance.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ identity_url:
+ description: URL of the keystone identity service
+ type: string
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ physical_location_type:
+ description: Type, e.g., central office, data center.
+ type: string
+ street1:
+ type: string
+ annotations:
+ search:
+ - inventory
+ street2:
+ type: string
+ annotations:
+ search:
+ - inventory
+ city:
+ type: string
+ state:
+ type: string
+ postal_code:
+ type: string
+ annotations:
+ search:
+ - inventory
+ country:
+ type: string
+ region:
+ type: string
+ latitude:
+ type: string
+ longitude:
+ type: string
+ elevation:
+ type: string
+ lata:
+ type: string
+ ctag_pools:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.CtagPool
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ availability_zone:
+ type: org.openecomp.capabilities.inventory.Existable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.AvailabilityZone
+ cloud_region:
+ type: org.openecomp.capabilities.inventory.Existable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ ctag_pool:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.CtagPool
+ oam_network:
+ type: org.openecomp.capabilities.inventory.Applicable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.OamNetwork
+ pnf:
+ type: org.openecomp.capabilities.inventory.Locates
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.Pnf
+ pserver:
+ type: org.openecomp.capabilities.inventory.Locates
+ valid_source_types:
+ - org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ volume_group:
+ type: org.openecomp.capabilities.inventory.Existable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.VolumeGroup
+ vpls_pe:
+ type: org.openecomp.capabilities.inventory.Locates
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.VplsPe
+ zone:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.Zone
+ requirements:
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.CtagAssignment:
+ attributes:
+ vlan_id_inner:
+ description: id.
+ type: long
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ requirements:
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.RoutingInstance:
+ attributes:
+ routing_instance_id:
+ description: Unique id of routing instance
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ rpm_owner:
+ description: rpm owner
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ site_pairs:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.SitePair
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ site_pair:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.SitePair
+ requirements:
+ - site_pair_set:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.SitePairSet
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.cloud.infrastructure.NetworkProfile:
+ description: Network profile populated by SDN-GP for SNMP
+ attributes:
+ nm_profile_name:
+ description: Unique name of network profile.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ community_string:
+ description: Encrypted SNMP community string
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - generic_vnf:
+ capability: org.openecomp.capabilities.inventory.Applicable
+ node: org.openecomp.nodes.inventory.network.GenericVnf
+ relationship: org.openecomp.relationships.inventory.AppliesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.network.Vnfc:
+ attributes:
+ vnfc_name:
+ description: Unique ID of vnfc.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ search:
+ - inventory
+ vnfc_function_code:
+ description: function code
+ type: string
+ annotations:
+ index:
+ - inventory
+ vnfc_type:
+ description: type
+ type: string
+ annotations:
+ index:
+ - inventory
+ prov_status:
+ description: prov status of this vnfc
+ type: string
+ annotations:
+ index:
+ - inventory
+ orchestration_status:
+ description: Orchestration status of this VNF, mastered by APP-C
+ type: string
+ ipaddress_v4_oam_vip:
+ description: Oam V4 vip address of this vnfc
+ type: string
+ annotations:
+ index:
+ - inventory
+ in_maint:
+ description: used to indicate whether or not this object is in maintenance mode (maintenance mode = true)
+ type: boolean
+ annotations:
+ index:
+ - inventory
+ is_closed_loop_disabled:
+ description: used to indicate whether closed loop function is enabled on this node
+ type: boolean
+ annotations:
+ index:
+ - inventory
+ group_notation:
+ description: Group notation of VNFC
+ type: string
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+ vf_module:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.VfModule
+ requirements:
+ - vserver:
+ capability: tosca.capabilities.Container
+ node: org.openecomp.nodes.inventory.Vserver
+ relationship: tosca.relationships.HostedOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.network.Vce:
+ derived_from: org.openecomp.nodes.inventory.Vnf
+ description: Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.
+ attributes:
+ vnf_id:
+ description: Unique id of VNF. This is unique across the graph.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ vnf_name:
+ description: Name of VNF.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ vnf_name2:
+ description: Alternate name of VNF.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ vnf_type:
+ description: String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as OPENECOMP matures.
+ type: string
+ annotations:
+ index:
+ - inventory
+ service_id:
+ description: Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.
+ type: string
+ annotations:
+ index:
+ - inventory
+ regional_resource_zone:
+ description: Regional way of organizing pservers, source of truth should define values
+ type: string
+ annotations:
+ index:
+ - inventory
+ prov_status:
+ description: Trigger for operational monitoring of this resource by Service Assurance systems.
+ type: string
+ annotations:
+ index:
+ - inventory
+ operational_state:
+ description: Indicator for whether the resource is considered operational
+ type: string
+ license_key:
+ description: OBSOLETE - do not use
+ type: string
+ equipment_role:
+ description: Network role being played by this VNF
+ type: string
+ orchestration_status:
+ description: Orchestration status of this VNF, mastered by MSO
+ type: string
+ heat_stack_id:
+ description: Heat stack id corresponding to this instance, managed by MSO
+ type: string
+ annotations:
+ index:
+ - inventory
+ mso_catalog_key:
+ description: Corresponds to the SDN-C catalog id used to configure this VCE
+ type: string
+ vpe_id:
+ description: Unique ID of VPE connected to this VCE.
+ type: string
+ annotations:
+ index:
+ - inventory
+ v6_vce_wan_address:
+ description: Valid v6 IP address for the WAN Link on this router. Implied length of /64.
+ type: string
+ ipv4_oam_address:
+ description: Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ ipv4_loopback0_address:
+ description: Loopback0 address
+ type: string
+ entitlement_resource_uuid:
+ description: OBSOLETE - see child relationships
+ type: string
+ port_groups:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.PortGroup
+ licenses:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.License
+ entitlements:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Entitlement
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Composeable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ entitlement:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Entitlement
+ license:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.License
+ port_group:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.PortGroup
+ requirements:
+ - availability_zone:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.AvailabilityZone
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vserver:
+ capability: tosca.capabilities.Container
+ node: org.openecomp.nodes.inventory.Vserver
+ relationship: tosca.relationships.HostedOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.ServiceSubscription:
+ description: Object that group service instances.
+ attributes:
+ service_type:
+ description: Value defined by orchestration to identify this service across OPENECOMP.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ temp_ub_sub_account_id:
+ description: This property will be deleted from A&AI in the near future. Only stop gap solution.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ service_instances:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.ServiceInstance
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ requirements:
+ - customer:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.business.Customer
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - tenant:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.Tenant
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.PortGroup:
+ description: Used to capture the network interfaces of this VCE
+ attributes:
+ interface_id:
+ description: Unique ID of the interface
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ neutron_network_id:
+ description: Neutron network id of this Interface
+ type: string
+ neutron_network_name:
+ description: Neutron network name of this Interface
+ type: string
+ interface_role:
+ description: Role assigned to this Interface, should use values as defined in OPENECOMP Yang models.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ port_group_id:
+ description: Unique ID for port group in vmware
+ type: string
+ annotations:
+ index:
+ - inventory
+ port_group_name:
+ description: Likely to duplicate value of neutron network name
+ type: string
+ annotations:
+ summary_property: true
+ switch_name:
+ description: DVS or standard switch name (should be non-null for port groups associated with DVS)
+ type: string
+ annotations:
+ index:
+ - inventory
+ orchestration_status:
+ description: Orchestration status of this VNF, mastered by MSO
+ type: string
+ heat_stack_id:
+ description: Heat stack id corresponding to this instance, managed by MSO
+ type: string
+ annotations:
+ index:
+ - inventory
+ mso_catalog_key:
+ description: Corresponds to the SDN-C catalog id used to configure this VCE
+ type: string
+ cvlan_tags:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.CvlanTagEntry
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ cvlan_tag:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.CvlanTagEntry
+ requirements:
+ - vce:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.Vce
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.business.Connector:
+ description: Collection of resource instances used to connect a variety of disparate inventory widgets
+ attributes:
+ resource_instance_id:
+ description: Unique id of resource instance.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ persona_model_id:
+ description: the ASDC model id for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_version:
+ description: the ASDC model version for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ widget_model_id:
+ description: the ASDC data dictionary widget model. This maps directly to the A&AI widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ widget_model_version:
+ description: the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ metadata:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Metadatum
+ capabilities:
+ metadatum:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Metadatum
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ requirements:
+ - virtual_data_center:
+ capability: org.openecomp.capabilities.inventory.Existable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.VirtualDataCenter
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.network.PhysicalLink:
+ description: Collection of physical connections, typically between p-interfaces
+ attributes:
+ link_name:
+ description: e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ search:
+ - inventory
+ speed_value:
+ description: Captures the numeric part of the speed
+ type: string
+ speed_units:
+ description: Captures the units corresponding to the speed
+ type: string
+ circuit_id:
+ description: Circuit it
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ dual_mode:
+ description: Dual access mode (e.g., primary, secondary
+ type: string
+ management_option:
+ description: To provide information on who manages this circuit. A&AI or 3rd party transport provider
+ type: string
+ service_provider_name:
+ description: Name of the service Provider on this link.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ p_interface:
+ type: org.openecomp.capabilities.inventory.Linkable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.PInterface
+
+ org.openecomp.nodes.inventory.license.management.LicenseKeyResource:
+ description: 'OBSOLETE OBJECT: do not use'
+ attributes:
+ att_uuid:
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ assignment_type:
+ type: string
+ assignment_status:
+ type: string
+ assignment_group_uuid:
+ type: string
+ annotations:
+ index:
+ - inventory
+ assignment_date:
+ type: string
+ name:
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ model_uuid:
+ type: string
+ model_version:
+ type: string
+ license_key:
+ type: string
+ license_key_file_url:
+ type: string
+ supplier_release_list:
+ type: string
+ occurrences:
+ - 0
+ - UNBOUNDED
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+
+ org.openecomp.nodes.inventory.L3InterfaceIpv6AddressList:
+ description: IPv6 Address Range
+ attributes:
+ l3_interface_ipv6_address:
+ description: IP address
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ l3_interface_ipv6_prefix_length:
+ description: Prefix length, 128 for single address
+ type: long
+ vlan_id_inner:
+ description: Inner VLAN tag
+ type: long
+ annotations:
+ index:
+ - inventory
+ vlan_id_outer:
+ description: Outer VLAN tag
+ type: long
+ is_floating:
+ description: Indicator of fixed or floating address
+ type: boolean
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ neutron_network_id:
+ description: Neutron network id of the interface that address belongs to
+ type: string
+ annotations:
+ index:
+ - inventory
+ neutron_subnet_id:
+ description: Neutron id of subnet that address belongs to
+ type: string
+ annotations:
+ index:
+ - inventory
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.MemberOf.network
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - subnet:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.Subnet
+ relationship: org.openecomp.relationships.inventory.MemberOf.network
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - l_interface:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.LInterface
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vlan:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.Vlan
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.network.L3Network:
+ description: Generic network definition
+ attributes:
+ network_id:
+ description: Network ID, should be uuid. Unique across A&AI.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ network_name:
+ description: Name of the network, governed by some naming convention..
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ network_type:
+ description: Type of the network - who defines these values?
+ type: string
+ network_role:
+ description: Role the network plans - who defines these values?
+ type: string
+ annotations:
+ index:
+ - inventory
+ network_technology:
+ description: Network technology - who defines these values?
+ type: string
+ neutron_network_id:
+ description: Neutron network id of this Interface
+ type: string
+ is_bound_to_vpn:
+ description: Set to true if bound to VPN
+ type: boolean
+ service_id:
+ description: Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED
+ type: string
+ annotations:
+ index:
+ - inventory
+ network_role_instance:
+ description: network role instance
+ type: long
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ orchestration_status:
+ description: Orchestration status of this VNF, mastered by MSO
+ type: string
+ heat_stack_id:
+ description: Heat stack id corresponding to this instance, managed by MSO
+ type: string
+ annotations:
+ index:
+ - inventory
+ mso_catalog_key:
+ description: Corresponds to the SDN-C catalog id used to configure this VCE
+ type: string
+ contrail_network_fqdn:
+ description: Contrail FQDN for the network
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_id:
+ description: the ASDC model id for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_version:
+ description: the ASDC model version for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_customization_id:
+ description: captures the id of all the configuration used to customize the resource for the service.
+ type: string
+ widget_model_id:
+ description: the ASDC data dictionary widget model. This maps directly to the A&AI widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ widget_model_version:
+ description: the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ physical_network_name:
+ description: Name associated with the physical network.
+ type: string
+ is_provider_network:
+ description: boolean indicatating whether or not network is a provider network.
+ type: boolean
+ is_shared_network:
+ description: boolean indicatating whether or not network is a shared network.
+ type: boolean
+ is_external_network:
+ description: boolean indicatating whether or not network is an external network.
+ type: boolean
+ selflink:
+ description: Path to the controller object.
+ type: string
+ subnets:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Subnet
+ ctag_assignments:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.CtagAssignment
+ segmentation_assignments:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.SegmentationAssignment
+ relationship_list:
+ description: Relates to tenant (or is it a child of tenant), complex, service, vpn-binding
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ allotted_resource:
+ type: org.openecomp.capabilities.inventory.Allot
+ valid_source_types:
+ - org.openecomp.nodes.inventory.AllottedResource
+ cloud_region:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ complex:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+ l3_interface_ipv4_address_list:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.L3InterfaceIpv4AddressList
+ l3_interface_ipv6_address_list:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.L3InterfaceIpv6AddressList
+ ctag_assignment:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.CtagAssignment
+ segmentation_assignment:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.SegmentationAssignment
+ subnet:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Subnet
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Composeable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ tenant:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Tenant
+ vf_module:
+ type: org.openecomp.capabilities.inventory.Node
+ valid_source_types:
+ - org.openecomp.nodes.inventory.VfModule
+ requirements:
+ - network_policy:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.NetworkPolicy
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - route_table_reference:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.RouteTableReference
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vpn_binding:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.VpnBinding
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/relationships.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/relationships.yml
new file mode 100644
index 0000000000..cf86be62a6
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/relationships.yml
@@ -0,0 +1,57 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: openecomp-inventory/relationships.yml
+ version: '1.0'
+
+imports:
+- inventory_index:
+ file: _index.yml
+
+relationship_types:
+
+ org.openecomp.relationships.inventory.Uses:
+ derived_from: tosca.relationships.Root
+ description: Auto-generated from OXM.
+
+ org.openecomp.relationships.inventory.MemberOf.network:
+ derived_from: tosca.relationships.Root
+ description: Auto-generated from OXM.
+
+ org.openecomp.relationships.inventory.PartOf:
+ derived_from: tosca.relationships.Root
+ description: Auto-generated from OXM.
+
+ org.openecomp.relationships.inventory.AppliesTo:
+ derived_from: tosca.relationships.Root
+ description: Auto-generated from OXM.
+
+ org.openecomp.relationships.inventory.BridgedTo:
+ derived_from: tosca.relationships.Root
+ description: Auto-generated from OXM.
+
+ org.openecomp.relationships.inventory.ComposedOf:
+ derived_from: tosca.relationships.Root
+ description: Auto-generated from OXM.
+
+ org.openecomp.relationships.inventory.MemberOf:
+ derived_from: tosca.relationships.Root
+ description: Auto-generated from OXM.
+
+ org.openecomp.relationships.inventory.BelongsTo:
+ derived_from: tosca.relationships.Root
+ description: Auto-generated from OXM.
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/_index.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/_index.yml
new file mode 100644
index 0000000000..02c4f76f62
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/_index.yml
@@ -0,0 +1,37 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: openecomp/_index.yml
+ version: '1.0'
+
+
+imports:
+- tosca_index:
+ file: ../tosca/_index.yml
+- capabilities:
+ file: capabilities.yml
+- nodes:
+ file: nodes.yml
+- relationships:
+ file: relationships.yml
+- groups:
+ file: groups.yml
+- data:
+ file: data.yml
+- annotations:
+ file: annotations.yml
+
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/annotations.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/annotations.yml
new file mode 100644
index 0000000000..962522ca90
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/annotations.yml
@@ -0,0 +1,42 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: openecomp/annotations.yml
+ version: '1.0'
+
+imports:
+- openecomp_index:
+ file: _index.yml
+
+annotation_types:
+
+ org.openecomp.annotations.Source:
+ description: Indicates the origin source of an input
+ properties:
+ source_type:
+ type: string
+ required: true
+ vf_module_label:
+ description: List of HEAT file name this input was originated from
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ param_name:
+ type: string
+ required: true
+ description: Source parameter name \ No newline at end of file
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/capabilities.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/capabilities.yml
new file mode 100644
index 0000000000..12cecb94b0
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/capabilities.yml
@@ -0,0 +1,119 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: openecomp/capabilities.yml
+ version: '1.0'
+
+imports:
+- openecomp_index:
+ file: _index.yml
+
+capability_types:
+
+ org.openecomp.capabilities.attachment.DeploymentFlavor:
+ derived_from: tosca.capabilities.Attachment
+ description: The Node capability indicates the base capabilities of a TOSCA Node Type.
+ properties:
+ DeploymentFlavor:
+ type: map
+ description: Deployment flavors instance
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.DeploymentFlavor
+
+ org.openecomp.capabilities.metric.SnmpTrap:
+ derived_from: org.openecomp.capabilities.Metric
+ description: A node type that includes the Metric capability indicates that it can be monitored using snmp trap.
+ properties:
+ oid:
+ description: Object Id of the metric
+ type: string
+ status: SUPPORTED
+ required: true
+
+ org.openecomp.capabilities.AllottedResource:
+ derived_from: tosca.capabilities.Root
+
+ org.openecomp.capabilities.metric.SnmpPolling:
+ derived_from: org.openecomp.capabilities.Metric
+ description: A node type that includes the Metric capability indicates that it can be monitored using snmp polling.
+ properties:
+ oid:
+ description: Object Id of the metric
+ type: string
+ status: SUPPORTED
+ required: true
+
+ org.openecomp.capabilities.metric.Ceilometer:
+ derived_from: org.openecomp.capabilities.Metric
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ name:
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ type: string
+ status: SUPPORTED
+ required: true
+
+ org.openecomp.capabilities.Metric:
+ derived_from: tosca.capabilities.Endpoint
+ description: A node type that includes the Metric capability indicates that it can be monitored.
+ properties:
+ unit:
+ description: Unit of the metric value
+ type: string
+ status: SUPPORTED
+ required: true
+ description:
+ description: Description of the metric
+ type: string
+ status: SUPPORTED
+ required: false
+ type:
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ type: string
+ status: SUPPORTED
+ required: true
+ category:
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ type: string
+ status: SUPPORTED
+ required: false
+ attributes:
+ value:
+ description: Runtime monitored value
+ type: string
+ status: SUPPORTED
+
+ org.openecomp.capabilities.Forwarder:
+ derived_from: tosca.capabilities.Root
+ # New capability types for Port Mirroring
+ org.openecomp.capabilities.PortMirroring:
+ derived_from: tosca.capabilities.Root
+ properties:
+ connection_point:
+ type: org.openecomp.datatypes.PortMirroringConnectionPointDescription
+ required: true
+
+ org.openecomp.capabilities.VLANAssignment:
+ derived_from: tosca.capabilities.Root
+ description: ability to expose routing information of the internal network
+ properties:
+ vfc_instance_group_reference:
+ type: string
+ description: ability to recognize capability per vfc instance group on vnf instance
+ required: true \ No newline at end of file
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/data.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/data.yml
new file mode 100644
index 0000000000..47d424f407
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/data.yml
@@ -0,0 +1,601 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: openecomp/data.yml
+ version: '1.0'
+
+imports:
+- openecomp_index:
+ file: _index.yml
+
+data_types:
+
+ org.openecomp.datatypes.network.ProviderNetwork:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ is_provider_network:
+ description: \"true\" indicates that this a Neutron provider type of network
+ type: boolean
+ required: true
+ physical_network_name:
+ description: |
+ Identifies the NUMA processor cluster to which this physical network interface belongs. NUMA instance correlates to the first digit of the Physical Network Name suffix (e.g. \"01\" = NUMA 0, \"11\" = NUMA 1)
+ type: string
+ required: false
+ constraints:
+ - valid_values:
+ - Physnet41
+ - Physnet42
+ - Physnet43
+ - Physnet44
+ - Physnet21
+ - Physnet22
+ numa:
+ description: |
+ PNIC instance within the NUMA processor cluster PNIC Instance correlates to the second digit of the Physical Network Name suffix (e.g. "01" = PNIC 1, "02" = "PNIC 2)
+ type: string
+ required: false
+ constraints:
+ - valid_values:
+ - NUMA 0
+ - NUMA 1
+ pnic_instance:
+ description: PNIC instance within the NUMA processor cluster
+ type: integer
+ required: false
+
+ org.openecomp.datatypes.DeploymentFlavor:
+ derived_from: tosca.datatypes.Root
+ description: Deployment Flavor
+ properties:
+ name:
+ description: Deployment Flavor Name
+ type: string
+ status: SUPPORTED
+ required: true
+ license_feature_group:
+ description: license feature group associated with Deployment Flavor
+ type: org.openecomp.datatypes.FeatureGroup
+ status: SUPPORTED
+ required: true
+ compute_size:
+ description: Size of VM
+ type: org.openecomp.datatypes.ComputeFlavor
+ status: SUPPORTED
+ required: true
+
+ org.openecomp.datatypes.FeatureGroup:
+ derived_from: tosca.datatypes.Root
+ description: License Feature Group
+ properties:
+ license_feature_group_ref:
+ description: Deployment Flavor Name
+ type: string
+ status: SUPPORTED
+ required: true
+ part_number:
+ description: refrence part number related to feature group
+ type: string
+ status: SUPPORTED
+ required: true
+
+ org.openecomp.datatypes.EcompHoming:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ ecomp_selected_instance_node_target:
+ description: |
+ "true" indicates that the target deployment node for this instance will be auto-selected by OPENECOMP "false" indicates operator-supplied instance target deployment node required (e.g. VID will present a prompt to operator and collect the operator-selected target node for the deployment of this Network instance).
+ type: boolean
+ default: false
+ required: true
+ homing_policy:
+ description: Referenc to a service level homing policy that OPENECOMP will use for instance deployment target node
+ type: string
+ required: false
+ instance_node_target:
+ description: Instance target deployment node
+ type: string
+ required: false
+
+ org.openecomp.datatypes.AssignmentRequirements:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ is_required:
+ description: |
+ "true" indicates that assignment is required
+ type: boolean
+ default: false
+ required: true
+ count:
+ description: number of assignments required
+ type: integer
+ required: false
+
+ org.openecomp.resource.abstract.nodes.PNF:
+ derived_from: tosca.nodes.Root
+ properties:
+ nf_function:
+ type: string
+ nf_role:
+ type: string
+ nf_type:
+ type: string
+
+
+ org.openecomp.datatypes.network.IpRequirements:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ ip_version:
+ type: integer
+ required: true
+ constraints:
+ - valid_values:
+ - 4
+ - 6
+ ip_count:
+ description: identifies the number of ip address to assign to the CP from the plan
+ type: integer
+ required: false
+ floating_ip_count:
+ type: integer
+ required: false
+ subnet_role:
+ type: string
+ required: false
+ assingment_method:
+ type: string
+ required: true
+ constraints:
+ - valid_values:
+ - fixed
+ - dhcp
+ dhcp_enabled:
+ type: boolean
+ required: false
+ ip_count_required:
+ description: identifies the number of ip address to assign to the CP from the plan
+ type: org.openecomp.datatypes.AssignmentRequirements
+ required: false
+ floating_ip_count_required:
+ type: org.openecomp.datatypes.AssignmentRequirements
+ required: false
+ ip_address_plan_name:
+ type: string
+ required: false
+ vrf_name:
+ type: string
+ required: false
+
+ org.openecomp.datatypes.network.PhysicalNetwork:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ provider_network:
+ description: true indicates that this a Neutron provider type of network
+ type: boolean
+ required: true
+ physical_network_name:
+ description: |
+ Identifies the NUMA processor cluster to which this physical network interface belongs. NUMA instance correlates to the first digit of the Physical Network Name suffix (e.g. "01" = NUMA 0, "11" = NUMA 1)
+ type: string
+ required: false
+ constraints:
+ - valid_values:
+ - Physnet-SRIOV-1
+ - Physnet-SRIOV-2
+ - Physnet-SRIOV-11
+ - Physnet-SRIOV-12
+ numa:
+ description: |
+ PNIC instance within the NUMA processor cluster PNIC Instance correlates to the second digit of the Physical Network Name suffix (e.g. "01" = PNIC 1, "02" = "PNIC 2)
+ type: string
+ required: false
+ constraints:
+ - valid_values:
+ - NUMA 0
+ - NUMA 1
+ pnic_instance:
+ description: PNIC instance within the NUMA processor cluster
+ type: integer
+ required: false
+
+ org.openecomp.datatypes.network.VlanRequirements:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ vlan_range_plan:
+ description: reference to a vlan range plan
+ type: string
+ required: true
+ vlan_type:
+ description: identifies the vlan type (e.g., c-tag)
+ type: string
+ required: true
+ constraints:
+ - valid_values:
+ - c-tag
+ - s-tag
+ vlan_count:
+ description: identifies the number of vlan tags to assign to the CP from the plan
+ type: integer
+ required: true
+
+ org.openecomp.datatypes.ComputeFlavor:
+ derived_from: tosca.datatypes.Root
+ description: Compute Flavor (Size)
+ properties:
+ name:
+ description: Compute Flavor Name
+ type: string
+ status: SUPPORTED
+ required: true
+ num_cpus:
+ description: Number of cpu
+ type: integer
+ status: SUPPORTED
+ required: true
+ disk_size:
+ description: Disk size
+ type: scalar-unit.size
+ status: SUPPORTED
+ required: true
+ mem_size:
+ description: Memory size
+ type: scalar-unit.size
+ status: SUPPORTED
+ required: true
+
+ org.openecomp.datatypes.network.MacAssignments:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ mac_range_plan:
+ description: reference to a MAC address range plan
+ type: string
+ required: true
+ mac_count:
+ description: identifies the number of MAC addresses to assign to the CP from the plan
+ type: integer
+ required: false
+ mac_count_required:
+ description: identifies the number of MAC addresses to assign to the CP from the plan
+ type: org.openecomp.datatypes.AssignmentRequirements
+ required: false
+
+ org.openecomp.datatypes.network.MacRequirements:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ mac_range_plan:
+ description: reference to a MAC address range plan
+ type: string
+ required: true
+ mac_count:
+ description: identifies the number of MAC addresses to assign to the CP from the plan
+ type: integer
+ required: false
+ mac_count_required:
+ description: identifies the number of MAC addresses to assign to the CP from the plan
+ type: org.openecomp.datatypes.AssignmentRequirements
+ required: false
+
+ org.openecomp.datatypes.network.SubnetAssignments:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ ip_network_address_plan:
+ description: Reference to EIPAM, VLAN or other address plan ID used to assign subnets to this network
+ type: string
+ required: false
+ dhcp_enabled:
+ description: \"true\" indicates the network has 1 or more policies
+ type: boolean
+ required: false
+ ip_version:
+ description: The IP version of the subnet
+ type: integer
+ required: true
+ constraints:
+ - valid_values:
+ - 4
+ - 6
+ cidr_mask:
+ description: The default subnet CIDR mask
+ type: integer
+ required: true
+ min_subnets_count:
+ description: Quantity of subnets that must be initially assigned
+ type: integer
+ default: 1
+ required: true
+
+ org.openecomp.datatypes.Artifact:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ artifact_name:
+ description: Artifcat name
+ type: string
+ required: true
+ artifact_type:
+ description: Artifcat type
+ type: string
+ required: true
+ artifact_uuid:
+ description: Artifcat UUID
+ type: string
+ required: true
+ artifact_checksum:
+ description: Artifact checksum
+ type: string
+ required: true
+ artifact_url:
+ description: Artifcay URL. Can also include only the file name
+ type: string
+ required: true
+
+ org.openecomp.datatypes.network.IPv4SubnetAssignments:
+ derived_from: org.openecomp.datatypes.network.SubnetAssignments
+ properties:
+ use_ipv4:
+ description: Indicates IPv4 subnet assignments
+ type: boolean
+ required: true
+
+ org.openecomp.datatypes.Root:
+ derived_from: tosca.datatypes.Root
+ description: |
+ The AT&T root Data Type all other Data Types derive from
+ properties:
+ supplemental_data:
+ type: map
+ entry_schema:
+ type: string
+ description: |
+ A placeholder for missing properties that would be included in future OPENecomp model
+ versions. fromat <key>:<value>
+
+
+ org.openecomp.datatypes.substitution.SubstitutionFiltering:
+ derived_from: tosca.datatypes.Root
+ description: Substitution Filter
+ properties:
+ substitute_service_template:
+ description: Substitute Service Template
+ type: string
+ status: SUPPORTED
+ required: true
+ index_value:
+ description: Index value of the substitution service template runtime instance
+ type: integer
+ status: SUPPORTED
+ default: 0
+ required: false
+ constraints:
+ - greater_or_equal: 0
+ count:
+ description: Count
+ type: integer
+ status: SUPPORTED
+ default: 1
+ required: false
+ scaling_enabled:
+ description: Indicates whether service scaling is enabled
+ type: boolean
+ status: SUPPORTED
+ default: true
+ required: false
+ mandatory:
+ description: Mandatory
+ type: boolean
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.network.NetworkFlows:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ is_network_policy:
+ description: true indicates the network has 1 or more policies
+ type: boolean
+ default: false
+ required: false
+ network_policy:
+ description: Identifies the specific OPENECOMP Contrail network policy that must be applied to this network (source - from Policy Manager)
+ type: string
+ required: false
+ vpn_binding:
+ description: Identifies the specific VPN Binding entry in A&AI that must be applied when creating this network (source - A&AI)
+ type: string
+ required: false
+
+ org.openecomp.datatypes.network.NetworkAssignments:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ ecomp_generated_network_assignment:
+ description: |
+ "true" indicates that the network assignments will be auto-generated by OPENECOMP "false" indicates operator-supplied Network assignments file upload is required (e.g. VID will present prompt to operator to upload operator-supplied Network assignments file).
+ type: boolean
+ default: false
+ required: true
+ network_assignments_file:
+ description: Filename of the template that specifies all of the configurable name/value pairs of Network assignments in this Network model
+ type: string
+ required: false
+ multi_tenant:
+ description: true means this network is shared by multiple Openstack tenants
+ type: boolean
+ default: true
+ required: true
+ min_subnets_count:
+ description: Quantity of subnets that must be initially assigned
+ type: integer
+ required: true
+ ip_network_address_plan:
+ description: Reference to EIPAM, VLAN or other address plan ID used to assign subnets to this network
+ type: string
+ required: true
+ vlan_network_address_plan:
+ description: Reference to VLAN or other address plan ID used to assign subnets to this network
+ type: string
+ required: true
+
+ org.openecomp.datatypes.network.IPv6SubnetAssignments:
+ derived_from: org.openecomp.datatypes.network.SubnetAssignments
+ properties:
+ use_ipv6:
+ description: Indicates IPv6 subnet assignments
+ type: boolean
+ required: true
+
+ org.openecomp.datatypes.EcompNaming:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ ecomp_generated_naming:
+ description: |
+ "true" indicates that the name for the instance will be auto-generated by OPENECOMP. "false" indicates operator-supplied name required (e.g. VID will present prompt to operator and collect the operator-supplied instance name).
+ type: boolean
+ default: true
+ required: true
+ naming_policy:
+ description: Referenc to naming policy that OPENECOMP will use when the name is auto-generated
+ type: string
+ required: false
+
+ org.openecomp.datatypes.Naming:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ ecomp_generated_naming:
+ description: |
+ "true" indicates that the name for the instance will be auto-generated by OPENECOMP. "false" indicates operator-supplied name required (e.g. VID will present prompt to operator and collect the operator-supplied instance name).
+ type: boolean
+ default: true
+ required: true
+
+ org.openecomp.datatypes.EcompGeneratedNaming:
+ derived_from: org.openecomp.datatypes.Naming
+ properties:
+ naming_policy:
+ description: Referenc to naming policy that OPENECOMP will use when the name is auto-generated
+ type: string
+ required: false
+
+ org.openecomp.datatypes.UserDefinedNaming:
+ derived_from: org.openecomp.datatypes.Naming
+ properties:
+ instance_name:
+ description: Reference to naming policy that OPENECOMP will use when the name is auto-generated
+ type: string
+ required: false
+
+ org.openecomp.datatypes.flavors.DeploymentFlavor:
+ properties:
+ sp_part_number:
+ type: string
+ description: Part number of the feature group associated with the deployment flavor
+ vendor_info:
+ type: org.openecomp.datatypes.flavors.VendorInfo
+ description: Vendor information for the deployment flavor
+ compute_flavor:
+ type: org.openecomp.datatypes.flavors.ComputeFlavor
+ description: Compute information for the deployment flavor
+ license_flavor:
+ type: org.openecomp.datatypes.flavors.LicenseFlavor
+ description: License information for the deployment flavor
+ required: false
+
+ org.openecomp.datatypes.flavors.ComputeFlavor:
+ properties:
+ num_cpus:
+ type: integer
+ description: Number of CPUs for the VM
+ disk_size:
+ type: scalar-unit.size
+ description: Disk size of the VM
+ mem_size:
+ type: scalar-unit.size
+ description: Memory size of the VM
+
+ org.openecomp.datatypes.flavors.LicenseFlavor:
+ properties:
+ feature_group_uuid:
+ type: string
+ description: Feature Group Id
+
+ org.openecomp.datatypes.flavors.VendorInfo:
+ properties:
+ manufacturer_reference_number:
+ type: string
+ description: Manufacturer reference number
+ vendor_model:
+ type: string
+ description: Vendor License Model Id
+
+ org.openecomp.datatypes.ImageInfo:
+ properties:
+ software_version:
+ type: string
+ description: Image version
+ file_name:
+ type: string
+ description: Image file name
+ file_hash:
+ type: string
+ description: checksum/signature
+ file_hash_type:
+ type: string
+ description: Hash type
+ required: false
+ default: md5
+
+ # New data types for Port Mirroring
+ org.openecomp.datatypes.PortMirroringConnectionPointDescription:
+ properties:
+ nf_type:
+ type: string
+ nfc_type:
+ type: string
+ network_role:
+ type: string
+ pps_capacity:
+ type: string
+
+ tosca.datatypes.network.NetworkInfo:
+ properties:
+ network_id:
+ required: false
+ type: string
+ addresses:
+ entry_schema:
+ type: string
+ required: false
+ type: list
+ network_name:
+ required: false
+ type: string
+ tosca.datatypes.network.PortInfo:
+ properties:
+ port_name:
+ required: false
+ type: string
+ network_id:
+ required: false
+ type: string
+ addresses:
+ entry_schema:
+ type: string
+ required: false
+ type: list
+ mac_address:
+ required: false
+ type: string
+ port_id:
+ required: false
+ type: string
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/groups.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/groups.yml
new file mode 100644
index 0000000000..10d2121c18
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/groups.yml
@@ -0,0 +1,93 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: openecomp/groups.yml
+ version: '1.0'
+
+imports:
+- openecomp_index:
+ file: _index.yml
+
+group_types:
+
+ org.openecomp.groups.VfModule:
+ derived_from: tosca.groups.Root
+ description: Grouped all heat resources which are in the same VF Module
+ properties:
+ isBase:
+ description: Whether this module should be deployed before other modules
+ type: boolean
+ status: SUPPORTED
+ default: false
+ required: true
+ vf_module_label:
+ description: |
+ Alternate textual key used to reference this VF-Module model. Must be unique within the VNF model
+ type: string
+ required: true
+ vf_module_description:
+ description: |
+ Description of the VF-modules contents and purpose (e.g. "Front-End" or "Database Cluster")
+ type: string
+ required: true
+ min_vf_module_instances:
+ description: The minimum instances of this VF-Module
+ type: integer
+ required: true
+ max_vf_module_instances:
+ description: The maximum instances of this VF-Module
+ type: integer
+ required: false
+ initial_count:
+ description: |
+ The initial count of instances of the VF-Module. The value must be in the range between min_vfmodule_instances and max_vfmodule_instances. If no value provided the initial count is the min_vfmodule_instances.
+ type: integer
+ required: false
+ vf_module_type:
+ type: string
+ required: true
+ constraints:
+ - valid_values:
+ - Base
+ - Expansion
+ volume_group:
+ description: |
+ "true" indicates that this VF Module model requires attachment to a Volume Group. VID operator must select the Volume Group instance to attach to a VF-Module at deployment time.
+ type: boolean
+ default: false
+ required: true
+
+ org.openecomp.groups.VfcInstanceGroup:
+ derived_from: tosca.groups.Root
+ description: groups VFCs with same parent port role
+ properties:
+ vfc_instance_group_function:
+ type: string
+ required: true
+ description: role of this VFC group
+ vfc_parent_port_role:
+ type: string
+ required: true
+ description: common role of parent ports of VFCs in this group
+ network_collection_function:
+ type: string
+ required: true
+ description: network collection role assigned to this group
+ subinterface_role:
+ type: string
+ required: true
+ description: common role of subinterfaces of VFCs in this group, criteria the group is created \ No newline at end of file
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/nodes.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/nodes.yml
new file mode 100644
index 0000000000..457770845f
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/nodes.yml
@@ -0,0 +1,920 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: openecomp/nodes.yml
+ version: '1.0'
+
+imports:
+- openecomp_index:
+ file: _index.yml
+
+node_types:
+
+ org.openecomp.resource.vl.nodes.network.Network:
+ derived_from: tosca.nodes.network.Network
+ properties:
+ vendor:
+ type: string
+ required: false
+ vl_name:
+ type: string
+ required: false
+ capabilities:
+ end_point:
+ type: tosca.capabilities.Endpoint
+
+ org.openecomp.resource.abstract.nodes.AbstractSubstitute:
+ derived_from: tosca.nodes.Root
+ properties:
+ service_template_filter:
+ description: Substitution Filter
+ type: org.openecomp.datatypes.substitution.SubstitutionFiltering
+ status: SUPPORTED
+ required: true
+
+ org.openecomp.resource.vl.extVL:
+ derived_from: org.openecomp.resource.vl.nodes.network.Network
+ description: VF Tenant oam protected network
+ properties:
+ network_type:
+ description: OPENECOMP supported network types.
+ type: string
+ required: true
+ network_role:
+ description: |
+ Unique label that defines the role that this network performs. example: vce oam network, vnat sr-iov1 network
+ type: string
+ required: true
+ network_scope:
+ description: |
+ Uniquely identifies the network scope. Valid values for the network scope includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects the VFs within the service GLOBAL - Global network which can be shared by multiple services
+ type: string
+ constraints:
+ - valid_values:
+ - VF
+ - SERVICE
+ - GLOBAL
+ network_technology:
+ description: OPENECOMP supported network technology
+ type: string
+ required: true
+ network_ecomp_naming:
+ type: org.openecomp.datatypes.EcompNaming
+ required: true
+ network_homing:
+ type: org.openecomp.datatypes.EcompHoming
+ required: true
+ network_assignments:
+ type: org.openecomp.datatypes.network.NetworkAssignments
+ required: true
+ provider_network:
+ type: org.openecomp.datatypes.network.ProviderNetwork
+ required: true
+ network_flows:
+ type: org.openecomp.datatypes.network.NetworkFlows
+ required: false
+
+
+ org.openecomp.resource.vfc.nodes.Compute:
+ derived_from: tosca.nodes.Compute
+ capabilities:
+ disk.ephemeral.size:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+
+ org.openecomp.resource.abstract.nodes.DFAbstractSubstitute:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ license_feature_group_ref:
+ description: refrence to license feature group
+ type: string
+ status: SUPPORTED
+ required: true
+ requirements:
+ - deployment_flavor:
+ capability: org.openecomp.capabilities.attachment.DeploymentFlavor
+ node: org.openecomp.resource.nodes.DeploymentFlavor
+ relationship: org.openecomp.relationships.AttachesTo
+ occurrences:
+ - 1
+ - UNBOUNDED
+
+ org.openecomp.resource.abstract.nodes.ComplexVFC:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+
+ org.openecomp.resource.abstract.nodes.VFC:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ high_availablity:
+ description: high_availablity
+ type: string
+ status: SUPPORTED
+ required: false
+ vm_image_name:
+ description: Master image_name volume id
+ type: string
+ status: SUPPORTED
+ required: true
+ vm_flavor_name:
+ description: Master image_name volume id
+ type: string
+ status: SUPPORTED
+ required: true
+ nfc_naming_code:
+ description: nfc code for instance naming
+ type: string
+ status: SUPPORTED
+ required: false
+ nfc_code:
+ type: string
+ description: nfc code
+ status: SUPPORTED
+ required: false
+ nfc_function:
+ type: string
+ description: nfc function
+ status: SUPPORTED
+ required: false
+ vm_type_tag:
+ description: vm type based on naming Convention
+ type: string
+ status: SUPPORTED
+ required: false
+ vfc_naming:
+ description: vfc naming
+ type: org.openecomp.datatypes.Naming
+ status: SUPPORTED
+ required: false
+ min_instances:
+ description: Minimum number of VFC Instances
+ type: integer
+ status: SUPPORTED
+ default: 0
+ required: false
+ constraints:
+ - greater_or_equal: 0
+ max_instances:
+ description: Maximum number of VFC Instances
+ type: integer
+ status: SUPPORTED
+ required: false
+ constraints:
+ - greater_or_equal: 1
+
+ org.openecomp.resource.vl.ELine:
+ derived_from: org.openecomp.resource.vl.nodes.network.Network
+ capabilities:
+ linkable:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 0
+ - 2
+
+ org.openecomp.resource.cp.nodes.network.v2.SubInterface:
+ derived_from: tosca.nodes.Root
+ properties:
+ ip_address:
+ description: Allow the user to set a fixed IP address. Note that this address is a request to the provider which they will attempt to fulfill but may not be able to dependent on the network the port is associated with.
+ type: string
+ required: false
+ order:
+ description: 'The order of the NIC on the compute instance (e.g. eth2). Note:
+ when binding more than one port to a single compute (aka multi vNICs) and
+ ordering is desired, it is *mandatory* that all ports will be set with an
+ order value and. The order values must represent a positive, arithmetic
+ progression that starts with 0 (e.g. 0, 1, 2, ..., n).'
+ type: integer
+ default: 0
+ required: false
+ constraints:
+ - greater_or_equal: 0
+ is_default:
+ description: Set is_default=true to apply a default gateway route on the running compute instance to the associated network gateway. Only one port that is associated to single compute node can set as default=true.
+ type: boolean
+ default: false
+ required: false
+ ip_range_start:
+ description: Defines the starting IP of a range to be allocated for the compute instances that are associated by this Port. Without setting this property the IP allocation is done from the entire CIDR block of the network.
+ type: string
+ required: false
+ ip_range_end:
+ description: Defines the ending IP of a range to be allocated for the compute instances that are associated by this Port. Without setting this property the IP allocation is done from the entire CIDR block of the network.
+ type: string
+ required: false
+ attributes:
+ ip_address:
+ description: The IP address would be assigned to the associated compute instance.
+ type: string
+ requirements:
+ - subinterface_link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ relationship: tosca.relationships.network.BindsTo
+
+ org.openecomp.resource.cp.nodes.network.SubInterface:
+ derived_from: tosca.nodes.network.Port
+
+ org.openecomp.resource.vl.internalVL:
+ derived_from: org.openecomp.resource.vl.nodes.network.Network
+ description: The AT&T internal (VF-level) Virtual Link
+
+ org.openecomp.resource.cp.nodes.network.Port:
+ derived_from: tosca.nodes.network.Port
+ properties:
+ subinterface_indicator:
+ description: identifies if Port is having Sub Interface
+ type: boolean
+ required: false
+ default: false
+ network_role_tag:
+ description: Must correlate to the set of defined “network-role�? tag identifiers from the associated HEAT template
+ type: string
+ required: true
+ mac_requirements:
+ description: identifies MAC address assignments to the CP
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: false
+ vlan_requirements:
+ description: identifies vlan address assignments to the CP
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ required: false
+ ip_requirements:
+ description: identifies IP requirements to the CP
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ required: true
+ network_role:
+ description: identical to VL network_role
+ type: string
+ required: false
+ order:
+ description: The order of the CP on the compute instance (e.g. eth2).
+ type: integer
+ required: false
+ exCP_naming:
+ description: CP Name
+ type: org.openecomp.datatypes.Naming
+ required: false
+ subnetpoolid:
+ description: subnet pool id
+ type: string
+ required: false
+ capabilities:
+ network.incoming.packets.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ forwarder:
+ type: org.openecomp.capabilities.Forwarder
+
+ org.openecomp.resource.nodes.DeploymentFlavor:
+ derived_from: tosca.nodes.Root
+ capabilities:
+ deployment_flavor:
+ description: Allowed deployment flavors of an abstract node
+ type: org.openecomp.capabilities.attachment.DeploymentFlavor
+ occurrences:
+ - 1
+ - UNBOUNDED
+
+ org.openecomp.resource.cp.extCP:
+ derived_from: tosca.nodes.Root
+ description: The AT&T Connection Point base type all other CP derive from
+ properties:
+ network_role:
+ description: identical to VL network_role
+ type: string
+ required: true
+ order:
+ description: The order of the CP on the compute instance (e.g. eth2).
+ type: integer
+ required: true
+ network_role_tag:
+ description: Must correlate to the set of defined “network-role�? tag identifiers from the associated HEAT template
+ type: string
+ required: true
+ mac_requirements:
+ description: identifies MAC address assignments to the CP
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: false
+ vlan_requirements:
+ description: identifies vlan address assignments to the CP
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ required: false
+ ip_requirements:
+ description: identifies IP requirements to the CP
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ required: true
+ capabilities:
+ internal_connectionPoint:
+ type: tosca.capabilities.Node
+ valid_source_types:
+ - tosca.nodes.network.Port
+ requirements:
+ - virtualLink:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - virtualBinding:
+ capability: tosca.capabilities.network.Bindable
+ relationship: tosca.relationships.network.BindsTo
+ - external_virtualLink:
+ capability: tosca.capabilities.network.Linkable
+ node: org.openecomp.resource.vl.nodes.network.Network
+ relationship: tosca.relationships.network.LinksTo
+
+ org.openecomp.resource.vfc.nodes.volume:
+ derived_from: tosca.nodes.BlockStorage
+
+ ### Node types related to Deployment Flavors
+ org.openecomp.resource.abstract.nodes.VnfConfiguration:
+ derived_from: tosca.nodes.Root
+ description: a container for the available flavors
+ properties:
+ allowed_flavors:
+ description: a collection of all available flavor valuesets
+ type: map
+ entry_schema:
+ type: org.openecomp.datatypes.flavors.DeploymentFlavor
+
+ org.openecomp.resource.abstract.nodes.MultiFlavorVFC:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ description: Multi flavored VFC node
+ properties:
+ images:
+ type: map
+ entry_schema:
+ type: org.openecomp.datatypes.ImageInfo
+ required: false
+
+ ## New node types for Port Mirroring
+ org.openecomp.nodes.ServiceProxy:
+ derived_from: tosca.nodes.Root
+
+ org.openecomp.nodes.PortMirroringConfiguration:
+ derived_from: tosca.nodes.Root
+ requirements:
+ - source:
+ capability: org.openecomp.capabilities.PortMirroring
+ occurrences:
+ - 1
+ - UNBOUNDED
+ - collector:
+ capability: org.openecomp.capabilities.PortMirroring
+ occurrences:
+ - 1
+ - 1
+
+ org.openecomp.resource.cp.v2.extCP:
+ derived_from: org.openecomp.resource.cp.nodes.network.Port
+ description: The SDC External Connection Point base type
+ capabilities:
+ port_mirroring:
+ type: org.openecomp.capabilities.PortMirroring
+
+ org.openecomp.resource.cp.v2.extNeutronCP:
+ derived_from: org.openecomp.resource.cp.v2.extCP
+ properties:
+ port_security_enabled:
+ type: boolean
+ description: Flag to enable/disable port security on the network
+ required: false
+ status: SUPPORTED
+ device_id:
+ type: string
+ description: Device ID of this port
+ required: false
+ status: SUPPORTED
+ qos_policy:
+ type: string
+ description: The name or ID of QoS policy to attach to this network
+ required: false
+ status: SUPPORTED
+ allowed_address_pairs:
+ type: list
+ description: Additional MAC/IP address pairs allowed to pass through the port
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.AddressPair
+ binding:vnic_type:
+ type: string
+ description: The vnic type to be bound on the neutron port
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - macvtap
+ - direct
+ - normal
+ value_specs:
+ type: map
+ description: Extra parameters to include in the request
+ required: false
+ default: {
+ }
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ device_owner:
+ type: string
+ description: Name of the network owning the port
+ required: false
+ status: SUPPORTED
+ network:
+ type: string
+ description: Network this port belongs to
+ required: false
+ status: SUPPORTED
+ replacement_policy:
+ type: string
+ description: Policy on how to respond to a stack-update for this resource
+ required: false
+ default: AUTO
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - REPLACE_ALWAYS
+ - AUTO
+ security_groups:
+ type: list
+ description: List of security group names or IDs
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ fixed_ips:
+ type: list
+ description: Desired IPs for this port
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ mac_address:
+ type: string
+ description: MAC address to give to this port
+ required: false
+ status: SUPPORTED
+ admin_state_up:
+ type: boolean
+ description: A boolean value specifying the administrative status of the network
+ required: false
+ default: true
+ status: SUPPORTED
+ name:
+ type: string
+ description: A symbolic name for this port
+ required: false
+ status: SUPPORTED
+ attributes:
+ tenant_id:
+ type: string
+ description: Tenant owning the port
+ status: SUPPORTED
+ network_id:
+ type: string
+ description: Unique identifier for the network owning the port
+ status: SUPPORTED
+ qos_policy_id:
+ type: string
+ description: The QoS policy ID attached to this network
+ status: SUPPORTED
+ show:
+ type: string
+ description: Detailed information about resource
+ status: SUPPORTED
+ subnets:
+ type: list
+ description: Subnets of this network
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ status:
+ type: string
+ description: The status of the network
+ status: SUPPORTED
+ capabilities:
+ attachment:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.resource.cp.v2.extContrailCP:
+ derived_from: org.openecomp.resource.cp.v2.extCP
+ properties:
+ static_routes:
+ type: list
+ description: An ordered list of static routes to be added to this interface
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.contrail.port.StaticRoute
+ virtual_network:
+ type: string
+ description: Virtual Network for this interface
+ required: true
+ status: SUPPORTED
+ static_route:
+ type: boolean
+ description: Static route enabled
+ required: false
+ default: false
+ status: SUPPORTED
+ allowed_address_pairs:
+ type: list
+ description: List of allowed address pair for this interface
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.contrail.AddressPair
+ shared_ip:
+ type: boolean
+ description: Shared ip enabled
+ required: false
+ default: false
+ status: SUPPORTED
+ ip_address:
+ type: string
+ description: IP for this interface
+ required: false
+ status: SUPPORTED
+ interface_type:
+ type: string
+ description: Interface type
+ required: true
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - management
+ - left
+ - right
+ - other
+ attributes:
+ fq_name:
+ type: string
+ description: fq_name
+ status: SUPPORTED
+
+ org.openecomp.resource.cp.v2.extVirtualMachineInterfaceCP:
+ derived_from: org.openecomp.resource.cp.v2.extCP
+ properties:
+ name:
+ description: Virtual Machine Interface name
+ type: string
+ status: SUPPORTED
+ required: false
+ security_group_refs:
+ description: List of security groups.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ virtual_network_refs:
+ description: List of virtual networks.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ virtual_machine_interface_properties:
+ description: virtual machine interface properties.
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties
+ status: SUPPORTED
+ required: false
+ port_tuple_refs:
+ description: List of port tuples.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ virtual_machine_interface_mac_addresses:
+ description: List of mac addresses.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ virtual_machine_interface_allowed_address_pairs:
+ description: Virtual Machine Interface allowed address pairs.
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+ status: SUPPORTED
+ required: false
+ attributes:
+ fq_name:
+ description: The FQ name of the Virtual Network.
+ type: string
+ status: SUPPORTED
+ show:
+ description: All attributes.
+ type: string
+ status: SUPPORTED
+ capabilities:
+ binding:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 0
+ - UNBOUNDED
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+
+ org.openecomp.nodes.ForwardingPath:
+ derived_from: tosca.nodes.Root
+ properties:
+ target_range:
+ type: list
+ entry_schema:
+ description: Identifier of the reciever port of the VNF or the service
+ type: integer
+ protocol:
+ type: string
+ description: protocol type that runs on the link
+ requirements:
+ - forwarder:
+ capability: org.openecomp.capabilities.Forwarder
+ relationship: org.openecomp.relationships.ForwardsTo
+ occurrences: [ 0, UNBOUNDED ] \ No newline at end of file
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/relationships.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/relationships.yml
new file mode 100644
index 0000000000..d15c56e079
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/openecomp/relationships.yml
@@ -0,0 +1,59 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: openecomp/relationships.yml
+ version: '1.0'
+
+imports:
+- openecomp_index:
+ file: _index.yml
+
+relationship_types:
+
+ org.openecomp.relationships.VolumeAttachesTo:
+ derived_from: org.openecomp.relationships.AttachesTo
+ description: This type represents an attachment relationship for associating volume
+ properties:
+ volume_id:
+ description: The ID of the volume to be attached
+ type: string
+ status: SUPPORTED
+ required: true
+ instance_uuid:
+ description: The ID of the server to which the volume attaches
+ type: string
+ status: SUPPORTED
+ required: true
+ attributes:
+ show:
+ description: Detailed information about resource
+ type: string
+ status: SUPPORTED
+
+ org.openecomp.relationships.AttachesTo:
+ derived_from: tosca.relationships.AttachesTo
+ description: This type represents an attachment relationship
+ properties:
+ location:
+ description: The relative location (e.g., path on the file system), which provides the root location to address an attached node.
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.relationships.ForwardsTo:
+ derived_from: tosca.relationships.Root
+ valid_target_types: [org.openecomp.capabilities.Forwarder] \ No newline at end of file
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/_index.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/_index.yml
new file mode 100644
index 0000000000..418744cdcd
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/_index.yml
@@ -0,0 +1,37 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: tosca/_index.yml
+ version: '1.0'
+
+imports:
+- capabilities:
+ file: capabilities.yml
+- nodes:
+ file: nodes.yml
+- relationships:
+ file: relationships.yml
+- groups:
+ file: groups.yml
+- data:
+ file: data.yml
+- interfaces:
+ file: interfaces.yml
+- artifacts:
+ file: artifacts.yml
+- policies:
+ file: policies.yml \ No newline at end of file
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/artifacts.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/artifacts.yml
new file mode 100644
index 0000000000..a98c176265
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/artifacts.yml
@@ -0,0 +1,55 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: tosca/artifacts.yml
+ version: '1.0'
+
+imports:
+- tosca_index:
+ file: _index.yml
+
+artifact_types:
+ tosca.artifacts.Root:
+ description: This is the default (root) TOSCA Artifact Type definition that all other TOSCA base Artifact Types derive from.
+
+ tosca.artifacts.Deployment.Image:
+ derived_from: tosca.artifacts.Deployment
+ description: This artifact type represents a parent type for any "image" which is an opaque packaging of a TOSCA Node's deployment (whether real or virtual) whose contents are typically already installed and pre-configured (i.e., "stateful") and prepared to be run on a known target container.
+
+ tosca.artifacts.Implementation.Bash:
+ derived_from: tosca.artifacts.Implementation
+ description: This artifact type represents a Bash script type that contains Bash commands that can be executed on the Unix Bash shell.
+
+ tosca.artifacts.Deployment.Image.VM:
+ derived_from: tosca.artifacts.Deployment
+ description: This artifact represents the parent type for all Virtual Machine (VM) image and container formatted deployment artifacts. These images contain a stateful capture of a machine (e.g., server) including operating system and installed software along with any configurations and can be run on another machine using a hypervisor which virtualizes typical server (i.e., hardware) resources.
+
+ tosca.artifacts.Implementation.Python:
+ derived_from: tosca.artifacts.Implementation
+ description: This artifact type represents a Python file that contains Python language constructs that can be executed within a Python interpreter.
+
+ tosca.artifacts.Deployment:
+ derived_from: tosca.artifacts.Root
+ description: This artifact type represents the parent type for all deployment artifacts in TOSCA. This class of artifacts typically represents a binary packaging of an application or service that is used to install/create or deploy it as part of a node's lifecycle.
+
+ tosca.artifacts.File:
+ derived_from: tosca.artifacts.Root
+ description: This artifact type is used when an artifact definition needs to have its associated file simply treated as a file and no special handling/handlers are invoked (i.e., it is not treated as either an implementation or deployment artifact type).
+
+ tosca.artifacts.Implementation:
+ derived_from: tosca.artifacts.Root
+ description: This artifact type represents the parent type for all implementation artifacts in TOSCA. These artifacts are used to implement operations of TOSCA interfaces either directly (e.g., scripts) or indirectly (e.g., config. files).
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/capabilities.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/capabilities.yml
new file mode 100644
index 0000000000..1b642cdcb1
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/capabilities.yml
@@ -0,0 +1,230 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: tosca/capabilities.yml
+ version: '1.0'
+
+imports:
+- tosca_index:
+ file: _index.yml
+
+capability_types:
+ tosca.capabilities.Root:
+ description: This is the default (root) TOSCA Capability Type definition that all other TOSCA Capability Types derive from.
+
+ tosca.capabilities.Node:
+ derived_from: tosca.capabilities.Root
+ description: The Node capability indicates the base capabilities of a TOSCA Node Type.
+
+ tosca.capabilities.Container:
+ derived_from: tosca.capabilities.Root
+ description: The Container capability, when included on a Node Type or Template definition, indicates that the node can act as a container for (or a host for) one or more other declared Node Types.
+ properties:
+ num_cpus:
+ description: Number of (actual or virtual) CPUs associated with the Compute node.
+ type: integer
+ required: false
+ constraints:
+ - greater_or_equal: 1
+ cpu_frequency:
+ description: Specifies the operating frequency of CPU's core. This property expresses the expected frequency of one (1) CPU as provided by the property "num_cpus".
+ type: scalar-unit.frequency
+ required: false
+ constraints:
+ - greater_or_equal: 0.1 GHz
+ disk_size:
+ description: Size of the local disk available to applications running on the Compute node (default unit is MB).
+ type: scalar-unit.size
+ required: false
+ constraints:
+ - greater_or_equal: 0 MB
+ mem_size:
+ description: Size of memory available to applications running on the Compute node (default unit is MB).
+ type: scalar-unit.size
+ required: false
+ constraints:
+ - greater_or_equal: 0 MB
+
+ tosca.capabilities.Endpoint:
+ derived_from: tosca.capabilities.Root
+ description: This is the default TOSCA type that should be used or extended to define a network endpoint capability. This includes the information to express a basic endpoint with a single port or a complex endpoint with multiple ports. By default the Endpoint is assumed to represent an address on a private network unless otherwise specified.
+ properties:
+ protocol:
+ description: 'The name of the protocol (i.e., the protocol prefix) that the
+ endpoint accepts (any OSI Layer 4-7 protocols). Examples: http, https, ftp,
+ tcp, udp, etc.'
+ type: string
+ default: tcp
+ required: true
+ port:
+ description: The optional port of the endpoint.
+ type: tosca.datatypes.network.PortDef
+ required: false
+ secure:
+ description: Requests for the endpoint to be secure and use credentials supplied on the ConnectsTo relationship.
+ type: boolean
+ default: false
+ required: false
+ url_path:
+ description: The optional URL path of the endpoint's address if applicable for the protocol.
+ type: string
+ required: false
+ port_name:
+ description: The optional name (or ID) of the network port this endpoint should be bound to.
+ type: string
+ required: false
+ network_name:
+ description: 'The optional name (or ID) of the network this endpoint should
+ be bound to. network_name: PRIVATE | PUBLIC | <network_name> | <network_id>.'
+ type: string
+ default: PRIVATE
+ required: false
+ initiator:
+ description: The optional indicator of the direction of the connection.
+ type: string
+ default: source
+ required: false
+ constraints:
+ - valid_values:
+ - source
+ - target
+ - peer
+ ports:
+ description: The optional map of ports the Endpoint supports (if more than one).
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortSpec
+ required: false
+ constraints:
+ - min_length: 1
+ attributes:
+ ip_address:
+ description: 'Note: This is the IP address as propagated up by the associated
+ node''s host (Compute) container.'
+ type: string
+
+ tosca.capabilities.Endpoint.Public:
+ derived_from: tosca.capabilities.Endpoint
+ description: |-
+ This capability represents a public endpoint which is accessible to the general internet (and its public IP address ranges).
+ This public endpoint capability also can be used to create a floating (IP) address that the underlying network assigns from a pool allocated from the application's underlying public network. This floating address is managed by the underlying network such that can be routed an application's private address and remains reliable to internet clients.
+ properties:
+ network_name:
+ type: string
+ default: PUBLIC
+ constraints:
+ - equal: PUBLIC
+
+ tosca.capabilities.Endpoint.Admin:
+ derived_from: tosca.capabilities.Endpoint
+ description: This is the default TOSCA type that should be used or extended to define a specialized administrator endpoint capability.
+ properties:
+ secure:
+ description: Requests for the endpoint to be secure and use credentials supplied on the ConnectsTo relationship.
+ type: boolean
+ default: true
+ constraints:
+ - equal: true
+
+ tosca.capabilities.Endpoint.Database:
+ derived_from: tosca.capabilities.Endpoint
+ description: This is the default TOSCA type that should be used or extended to define a specialized database endpoint capability.
+
+ tosca.capabilities.Attachment:
+ derived_from: tosca.capabilities.Root
+ description: This is the default TOSCA type that should be used or extended to define an attachment capability of a (logical) infrastructure device node (e.g., BlockStorage node).
+
+ tosca.capabilities.OperatingSystem:
+ derived_from: tosca.capabilities.Root
+ description: This is the default TOSCA type that should be used to express an Operating System capability for a node.
+ properties:
+ architecture:
+ description: 'The Operating System (OS) architecture. Examples of valid values
+ include: x86_32, x86_64, etc.'
+ type: string
+ required: false
+ type:
+ description: 'The Operating System (OS) type. Examples of valid values include:
+ linux, aix, mac, windows, etc.'
+ type: string
+ required: false
+ distribution:
+ description: 'The Operating System (OS) distribution. Examples of valid values
+ for a "type" of "Linux" would include: debian, fedora, rhel and ubuntu.'
+ type: string
+ required: false
+ version:
+ description: The Operating System version.
+ type: version
+ required: false
+
+ tosca.capabilities.Scalable:
+ derived_from: tosca.capabilities.Root
+ description: This is the default TOSCA type that should be used to express a scalability capability for a node.
+ properties:
+ min_instances:
+ description: This property is used to indicate the minimum number of instances that should be created for the associated TOSCA Node Template by a TOSCA orchestrator.
+ type: integer
+ default: 1
+ max_instances:
+ description: This property is used to indicate the maximum number of instances that should be created for the associated TOSCA Node Template by a TOSCA orchestrator.
+ type: integer
+ default: 1
+ default_instances:
+ description: 'An optional property that indicates the requested default number
+ of instances that should be the starting number of instances a TOSCA orchestrator
+ should attempt to allocate. Note: The value for this property MUST be in
+ the range between the values set for "min_instances" and "max_instances"
+ properties.'
+ type: integer
+ required: false
+
+ tosca.capabilities.network.Bindable:
+ derived_from: tosca.capabilities.Node
+ description: A node type that includes the Bindable capability indicates that it can be bound to a logical network association via a network port.
+
+ tosca.capabilities.network.Linkable:
+ derived_from: tosca.capabilities.Node
+ description: A node type that includes the Linkable capability indicates that it can be pointed by tosca.relationships.network.LinksTo relationship type.
+
+ tosca.capabilities.Container.Docker:
+ derived_from: tosca.capabilities.Container
+ properties:
+ version:
+ type: list
+ entry_schema:
+ type: version
+ required: false
+ publish_all:
+ type: boolean
+ default: false
+ required: false
+ publish_ports:
+ type: list
+ entry_schema:
+ type: PortSpec
+ required: false
+ expose_ports:
+ type: list
+ entry_schema:
+ type: PortSpec
+ required: false
+ volumes:
+ type: list
+ entry_schema:
+ type: string
+ required: false
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/data.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/data.yml
new file mode 100644
index 0000000000..a799d0d25b
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/data.yml
@@ -0,0 +1,191 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: tosca/data.yml
+ version: '1.0'
+
+imports:
+- tosca_index:
+ file: _index.yml
+
+data_types:
+ tosca.datatypes.Root:
+ description: The TOSCA root Data Type all other TOSCA base Data Types derive from
+
+ string:
+ derived_from: tosca.datatypes.Root
+
+ integer:
+ derived_from: tosca.datatypes.Root
+
+ boolean:
+ derived_from: tosca.datatypes.Root
+
+ float:
+ derived_from: tosca.datatypes.Root
+
+ range:
+ derived_from: tosca.datatypes.Root
+
+ list:
+ derived_from: tosca.datatypes.Root
+
+ map:
+ derived_from: tosca.datatypes.Root
+
+ timestamp:
+ derived_from: tosca.datatypes.Root
+
+ version:
+ derived_from: tosca.datatypes.Root
+
+ scalar-unit.size:
+ derived_from: tosca.datatypes.Root
+
+ scalar-unit.frequency:
+ derived_from: tosca.datatypes.Root
+
+ scalar-unit.time:
+ derived_from: tosca.datatypes.Root
+
+ tosca.datatypes.network.NetworkInfo:
+ derived_from: tosca.datatypes.Root
+ description: The Network type is a complex TOSCA data type used to describe logical network information.
+ properties:
+ network_name:
+ description: The name of the logical network. e.g., "public", "private", "admin". etc.
+ type: string
+ required: false
+ network_id:
+ description: The unique ID of for the network generated by the network provider.
+ type: string
+ required: false
+ addresses:
+ description: The list of IP addresses assigned from the underlying network.
+ type: list
+ entry_schema:
+ type: string
+ required: false
+
+ tosca.datatypes.TimeInterval:
+ derived_from: tosca.datatypes.Root
+ properties:
+ start_time:
+ type: timestamp
+ required: true
+ end_time:
+ type: timestamp
+ required: true
+
+ tosca.datatypes.network.PortSpec:
+ derived_from: tosca.datatypes.Root
+ description: The PortSpec type is a complex TOSCA data Type used when describing port specifications for a network connection.
+ properties:
+ protocol:
+ description: The required protocol used on the port.
+ type: string
+ default: tcp
+ constraints:
+ - valid_values:
+ - udp
+ - tcp
+ - igmp
+ source:
+ description: The optional source port.
+ type: tosca.datatypes.network.PortDef
+ required: false
+ source_range:
+ description: The optional range for source port.
+ type: range
+ required: false
+ constraints:
+ - in_range:
+ - 1
+ - 65535
+ target:
+ description: The optional target port.
+ type: tosca.datatypes.network.PortDef
+ required: false
+ target_range:
+ description: The optional range for target port.
+ type: range
+ required: false
+ constraints:
+ - in_range:
+ - 1
+ - 65535
+
+ tosca.datatypes.network.PortDef:
+ derived_from: integer
+ description: The PortDef type is a TOSCA data Type used to define a network port.
+ constraints:
+ - in_range:
+ - 1
+ - 65535
+
+ tosca.datatypes.network.PortInfo:
+ derived_from: tosca.datatypes.Root
+ description: The PortInfo type is a complex TOSCA data type used to describe network port information.
+ properties:
+ port_name:
+ description: The logical network port name.
+ type: string
+ required: false
+ port_id:
+ description: The unique ID for the network port generated by the network provider.
+ type: string
+ required: false
+ network_id:
+ description: The unique ID for the network.
+ type: string
+ required: false
+ mac_address:
+ description: The unique media access control address (MAC address) assigned to the port.
+ type: string
+ required: false
+ addresses:
+ description: The list of IP address(es) assigned to the port.
+ type: list
+ entry_schema:
+ type: string
+ required: false
+
+ tosca.datatypes.Credential:
+ derived_from: tosca.datatypes.Root
+ description: The Credential type is a complex TOSCA data Type used when describing authorization credentials used to access network accessible resources.
+ properties:
+ protocol:
+ description: The optional protocol name.
+ type: string
+ required: false
+ token_type:
+ description: The required token type.
+ type: string
+ default: password
+ token:
+ description: The required token used as a credential for authorization or access to a networked resource.
+ type: string
+ keys:
+ description: The optional list of protocol-specific keys or assertions.
+ type: map
+ entry_schema:
+ type: string
+ required: false
+ user:
+ description: The optional user (name or ID) used for non-token based credentials.
+ type: string
+ required: false
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/groups.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/groups.yml
new file mode 100644
index 0000000000..0ddc15175c
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/groups.yml
@@ -0,0 +1,30 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: tosca/groups.yml
+ version: '1.0'
+
+imports:
+- tosca_index:
+ file: _index.yml
+
+group_types:
+ tosca.groups.Root:
+ description: This is the default (root) TOSCA Group Type definition that all other TOSCA base Group Types derive from.
+ interfaces:
+ standard:
+ type: tosca.interfaces.node.lifecycle.Standard
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/interfaces.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/interfaces.yml
new file mode 100644
index 0000000000..32a6d43381
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/interfaces.yml
@@ -0,0 +1,61 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: tosca/interfaces.yml
+ version: '1.0'
+
+imports:
+- tosca_index:
+ file: _index.yml
+
+interface_types:
+ tosca.interfaces.Root:
+ description: This is the default (root) TOSCA Interface Type definition that all other TOSCA Interface Types derive from.
+
+ tosca.interfaces.node.lifecycle.Standard:
+ derived_from: tosca.interfaces.Root
+ description: This lifecycle interface defines the essential, normative operations that TOSCA nodes may support.
+ stop:
+ description: Standard lifecycle stop operation.
+ start:
+ description: Standard lifecycle start operation.
+ create:
+ description: Standard lifecycle create operation.
+ configure:
+ description: Standard lifecycle configure operation.
+ delete:
+ description: Standard lifecycle delete operation.
+
+ tosca.interfaces.relationship.Configure:
+ derived_from: tosca.interfaces.Root
+ description: The lifecycle interfaces define the essential, normative operations that each TOSCA Relationship Types may support.
+ pre_configure_source:
+ description: Operation to pre-configure the source endpoint.
+ pre_configure_target:
+ description: Operation to pre-configure the target endpoint.
+ post_configure_source:
+ description: Operation to post-configure the source endpoint.
+ post_configure_target:
+ description: Operation to post-configure the target endpoint.
+ add_target:
+ description: Operation to notify the source node of a target node being added via a relationship.
+ add_source:
+ description: Operation to notify the target node of a source node which is now available via a relationship.
+ target_changed:
+ description: Operation to notify source some property or attribute of the target changed
+ remove_target:
+ description: Operation to remove a target node. \ No newline at end of file
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/nodes.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/nodes.yml
new file mode 100644
index 0000000000..af68802eaf
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/nodes.yml
@@ -0,0 +1,371 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: tosca/nodes.yml
+ version: '1.0'
+
+imports:
+- tosca_index:
+ file: _index.yml
+
+node_types:
+ tosca.nodes.Root:
+ description: The TOSCA Root Node Type is the default type that all other TOSCA base Node Types derive from. This allows for all TOSCA nodes to have a consistent set of features for modeling and management (e.g., consistent definitions for requirements, capabilities and lifecycle interfaces).
+ attributes:
+ tosca_id:
+ description: A unique identifier of the realized instance of a Node Template that derives from any TOSCA normative type.
+ type: string
+ tosca_name:
+ description: This attribute reflects the name of the Node Template as defined in the TOSCA service template. This name is not unique to the realized instance model of corresponding deployed application as each template in the model can result in one or more instances (e.g., scaled) when orchestrated to a provider environment.
+ type: string
+ state:
+ description: The state of the node instance.
+ type: string
+ default: initial
+ capabilities:
+ feature:
+ type: tosca.capabilities.Node
+ requirements:
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ interfaces:
+ standard:
+ type: tosca.interfaces.node.lifecycle.Standard
+
+ tosca.nodes.ObjectStorage:
+ derived_from: tosca.nodes.Root
+ description: The TOSCA ObjectStorage node represents storage that provides the ability to store data as objects (or BLOBs of data) without consideration for the underlying filesystem or devices.
+ properties:
+ name:
+ description: The logical name of the object store (or container).
+ type: string
+ size:
+ description: The requested initial storage size (default unit is in Gigabytes).
+ type: scalar-unit.size
+ required: false
+ constraints:
+ - greater_or_equal: 0 GB
+ maxsize:
+ description: The requested maximum storage size (default unit is in Gigabytes).
+ type: scalar-unit.size
+ required: false
+ constraints:
+ - greater_or_equal: 0 GB
+ capabilities:
+ storage_endpoint:
+ type: tosca.capabilities.Endpoint
+
+ tosca.nodes.DBMS:
+ derived_from: tosca.nodes.SoftwareComponent
+ description: The TOSCA DBMS node represents a typical relational, SQL Database Management System software component or service.
+ properties:
+ root_password:
+ description: The optional root password for the DBMS server.
+ type: string
+ required: false
+ port:
+ description: The DBMS server's port.
+ type: integer
+ required: false
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.Database
+
+ tosca.nodes.WebApplication:
+ derived_from: tosca.nodes.Root
+ description: The TOSCA WebApplication node represents a software application that can be managed and run by a TOSCA WebServer node. Specific types of web applications such as Java, etc. could be derived from this type.
+ properties:
+ context_root:
+ description: The web application's context root which designates the application's URL path within the web server it is hosted on.
+ type: string
+ required: false
+ capabilities:
+ app_endpoint:
+ type: tosca.capabilities.Endpoint
+ requirements:
+ - host:
+ capability: tosca.capabilities.Container
+ node: tosca.nodes.WebServer
+ relationship: tosca.relationships.HostedOn
+
+ tosca.nodes.Compute:
+ derived_from: tosca.nodes.Root
+ description: The TOSCA Compute node represents one or more real or virtual processors of software applications or services along with other essential local resources. Collectively, the resources the compute node represents can logically be viewed as a (real or virtual) "server".
+ attributes:
+ private_address:
+ description: The primary private IP address assigned by the cloud provider that applications may use to access the Compute node.
+ type: string
+ public_address:
+ description: The primary public IP address assigned by the cloud provider that applications may use to access the Compute node.
+ type: string
+ networks:
+ description: The list of logical networks assigned to the compute host instance and information about them.
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ description: The list of logical ports assigned to the compute host instance and information about them.
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ binding:
+ type: tosca.capabilities.network.Bindable
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ endpoint:
+ type: tosca.capabilities.Endpoint.Admin
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ tosca.nodes.network.Network:
+ derived_from: tosca.nodes.Root
+ description: The TOSCA Network node represents a simple, logical network service.
+ properties:
+ ip_version:
+ description: The IP version of the requested network.
+ type: integer
+ default: 4
+ required: false
+ constraints:
+ - valid_values:
+ - 4
+ - 6
+ cidr:
+ description: The cidr block of the requested network.
+ type: string
+ required: false
+ start_ip:
+ description: The IP address to be used as the 1st one in a pool of addresses derived from the cidr block full IP range.
+ type: string
+ required: false
+ end_ip:
+ description: The IP address to be used as the last one in a pool of addresses derived from the cidr block full IP range.
+ type: string
+ required: false
+ gateway_ip:
+ description: The gateway IP address.
+ type: string
+ required: false
+ network_name:
+ description: An Identifier that represents an existing Network instance in the underlying cloud infrastructure - OR - be used as the name of the new created network.
+ type: string
+ required: false
+ network_id:
+ description: An Identifier that represents an existing Network instance in the underlying cloud infrastructure. This property is mutually exclusive with all other properties except network_name.
+ type: string
+ required: false
+ segmentation_id:
+ description: A segmentation identifier in the underlying cloud infrastructure (e.g., VLAN id, GRE tunnel id). If the segmentation_id is specified, the network_type or physical_network properties should be provided as well.
+ type: string
+ required: false
+ network_type:
+ description: Optionally, specifies the nature of the physical network in the underlying cloud infrastructure. Examples are flat, vlan, gre or vxlan. For flat and vlan types, physical_network should be provided too.
+ type: string
+ required: false
+ physical_network:
+ description: Optionally, identifies the physical network on top of which the network is implemented, e.g. physnet1. This property is required if network_type is flat or vlan.
+ type: string
+ required: false
+ dhcp_enabled:
+ description: Indicates the TOSCA container to create a virtual network instance with or without a DHCP service.
+ type: boolean
+ default: true
+ required: false
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
+
+ tosca.nodes.WebServer:
+ derived_from: tosca.nodes.SoftwareComponent
+ description: This TOSCA WebServer Node Type represents an abstract software component or service that is capable of hosting and providing management operations for one or more WebApplication nodes.
+ capabilities:
+ data_endpoint:
+ type: tosca.capabilities.Endpoint
+ admin_endpoint:
+ type: tosca.capabilities.Endpoint.Admin
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.WebApplication
+
+ tosca.nodes.Container.Application:
+ derived_from: tosca.nodes.Root
+ description: The TOSCA Container Application node represents an application that requires Container-level virtualization technology.
+ requirements:
+ - host:
+ capability: tosca.capabilities.Container
+ relationship: tosca.relationships.HostedOn
+
+ tosca.nodes.Container.Runtime:
+ derived_from: tosca.nodes.SoftwareComponent
+ description: The TOSCA Container Runtime node represents operating system-level virtualization technology used to run multiple application services on a single Compute host.
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ scalable:
+ type: tosca.capabilities.Scalable
+
+ tosca.nodes.SoftwareComponent:
+ derived_from: tosca.nodes.Root
+ description: The TOSCA SoftwareComponent node represents a generic software component that can be managed and run by a TOSCA Compute Node Type.
+ properties:
+ component_version:
+ description: The optional software component's version.
+ type: version
+ required: false
+ admin_credential:
+ description: The optional credential that can be used to authenticate to the software component.
+ type: tosca.datatypes.Credential
+ required: false
+ requirements:
+ - host:
+ capability: tosca.capabilities.Container
+ node: tosca.nodes.Compute
+ relationship: tosca.relationships.HostedOn
+
+ tosca.nodes.BlockStorage:
+ derived_from: tosca.nodes.Root
+ description: ''
+ properties:
+ size:
+ description: The requested storage size (default unit is MB).
+ type: scalar-unit.size
+ constraints:
+ - greater_or_equal: 1 MB
+ volume_id:
+ description: ID of an existing volume (that is in the accessible scope of the requesting application).
+ type: string
+ required: false
+ snapshot_id:
+ description: Some identifier that represents an existing snapshot that should be used when creating the block storage (volume).
+ type: string
+ required: false
+ capabilities:
+ attachment:
+ type: tosca.capabilities.Attachment
+
+ tosca.nodes.network.Port:
+ derived_from: tosca.nodes.Root
+ description: |-
+ The TOSCA Port node represents a logical entity that associates between Compute and Network normative types.
+ The Port node type effectively represents a single virtual NIC on the Compute node instance.
+ properties:
+ ip_address:
+ description: Allow the user to set a fixed IP address. Note that this address is a request to the provider which they will attempt to fulfill but may not be able to dependent on the network the port is associated with.
+ type: string
+ required: false
+ order:
+ description: 'The order of the NIC on the compute instance (e.g. eth2). Note:
+ when binding more than one port to a single compute (aka multi vNICs) and
+ ordering is desired, it is *mandatory* that all ports will be set with an
+ order value and. The order values must represent a positive, arithmetic
+ progression that starts with 0 (e.g. 0, 1, 2, ..., n).'
+ type: integer
+ default: 0
+ required: false
+ constraints:
+ - greater_or_equal: 0
+ is_default:
+ description: Set is_default=true to apply a default gateway route on the running compute instance to the associated network gateway. Only one port that is associated to single compute node can set as default=true.
+ type: boolean
+ default: false
+ required: false
+ ip_range_start:
+ description: Defines the starting IP of a range to be allocated for the compute instances that are associated by this Port. Without setting this property the IP allocation is done from the entire CIDR block of the network.
+ type: string
+ required: false
+ ip_range_end:
+ description: Defines the ending IP of a range to be allocated for the compute instances that are associated by this Port. Without setting this property the IP allocation is done from the entire CIDR block of the network.
+ type: string
+ required: false
+ attributes:
+ ip_address:
+ description: The IP address would be assigned to the associated compute instance.
+ type: string
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ relationship: tosca.relationships.network.BindsTo
+
+ tosca.nodes.LoadBalancer:
+ derived_from: tosca.nodes.Root
+ description: The TOSCA Load Balancer node represents logical function that be used in conjunction with a Floating Address to distribute an application's traffic (load) across a number of instances of the application (e.g., for a clustered or scaled application).
+ capabilities:
+ client:
+ description: The Floating (IP) client's on the public network can connect to.
+ type: tosca.capabilities.Endpoint.Public
+ occurrences:
+ - 0
+ - UNBOUNDED
+ requirements:
+ - application:
+ capability: tosca.capabilities.Endpoint
+ relationship: tosca.relationships.RoutesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ tosca.nodes.Database:
+ derived_from: tosca.nodes.Root
+ description: The TOSCA Database node represents a logical database that can be managed and hosted by a TOSCA DBMS node.
+ properties:
+ name:
+ description: The logical database Name.
+ type: string
+ port:
+ description: The port the database service will use to listen for incoming data and requests.
+ type: integer
+ required: false
+ user:
+ description: The special user account used for database administration.
+ type: string
+ required: false
+ password:
+ description: The password associated with the user account provided in the 'user' property.
+ type: string
+ required: false
+ capabilities:
+ database_endpoint:
+ type: tosca.capabilities.Endpoint.Database
+ requirements:
+ - host:
+ capability: tosca.capabilities.Container
+ node: tosca.nodes.DBMS
+ relationship: tosca.relationships.HostedOn
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/policies.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/policies.yml
new file mode 100644
index 0000000000..da9c14a230
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/policies.yml
@@ -0,0 +1,43 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: tosca/policies.yml
+ version: '1.0'
+
+imports:
+- tosca_index:
+ file: _index.yml
+
+policy_types:
+ tosca.policies.Root:
+ description: This is the default (root) TOSCA Policy Type definition that all other TOSCA base Policy Types derive from.
+
+ tosca.policies.Update:
+ derived_from: tosca.policies.Root
+ description: This is the default (root) TOSCA Policy Type definition that is used to govern update of TOSCA nodes or groups of nodes.
+
+ tosca.policies.Placement:
+ derived_from: tosca.policies.Root
+ description: This is the default (root) TOSCA Policy Type definition that is used to govern placement of TOSCA nodes or groups of nodes.
+
+ tosca.policies.Performance:
+ derived_from: tosca.policies.Root
+ description: This is the default (root) TOSCA Policy Type definition that is used to declare performance requirements for TOSCA nodes or groups of nodes.
+
+ tosca.policies.Scaling:
+ derived_from: tosca.policies.Root
+ description: This is the default (root) TOSCA Policy Type definition that is used to govern scaling of TOSCA nodes or groups of nodes.
diff --git a/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/relationships.yml b/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/relationships.yml
new file mode 100644
index 0000000000..233b59be44
--- /dev/null
+++ b/common/onap-tosca-datatype/src/main/resources/globalTypes/tosca/relationships.yml
@@ -0,0 +1,106 @@
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+metadata:
+ filename: tosca/relationships.yml
+ version: '1.0'
+
+imports:
+- tosca_index:
+ file: _index.yml
+
+relationship_types:
+ tosca.relationships.Root:
+ description: This is the default (root) TOSCA Relationship Type definition that all other TOSCA Relationship Types derive from.
+ attributes:
+ tosca_id:
+ description: A unique identifier of the realized instance of a Relationship Template that derives from any TOSCA normative type.
+ type: string
+ tosca_name:
+ description: This attribute reflects the name of the Relationship Template as defined in the TOSCA service template. This name is not unique to the realized instance model of corresponding deployed application as each template in the model can result in one or more instances (e.g., scaled) when orchestrated to a provider environment.
+ type: string
+ state:
+ description: The state of the relationship instance.
+ type: string
+ default: initial
+ interfaces:
+ Configure:
+ type: tosca.interfaces.relationship.Configure
+
+ tosca.relationships.RoutesTo:
+ derived_from: tosca.relationships.ConnectsTo
+ description: This type represents an intentional network routing between two Endpoints in different networks.
+ valid_target_types:
+ - tosca.capabilities.Endpoint
+
+ tosca.relationships.network.LinksTo:
+ derived_from: tosca.relationships.DependsOn
+ description: This relationship type represents an association relationship between Port and Network node types.
+ valid_target_types:
+ - tosca.capabilities.network.Linkable
+
+ tosca.relationships.AttachesTo:
+ derived_from: tosca.relationships.Root
+ description: This type represents an attachment relationship between two nodes. For example, an AttachesTo relationship type would be used for attaching a storage node to a Compute node.
+ valid_target_types:
+ - tosca.capabilities.Attachment
+ properties:
+ location:
+ description: 'The relative location (e.g., path on the file system), which
+ provides the root location to address an attached node. e.g., a mount point
+ / path such as ''/usr/data''. Note: The user must provide it and it cannot
+ be "root".'
+ type: string
+ constraints:
+ - min_length: 1
+ device:
+ description: The logical device name which for the attached device (which is represented by the target node in the model). e.g., '/dev/hda1'.
+ type: string
+ required: false
+ attributes:
+ device:
+ description: 'The logical name of the device as exposed to the instance. Note:
+ A runtime property that gets set when the model gets instantiated by the
+ orchestrator.'
+ type: string
+
+ tosca.relationships.network.BindsTo:
+ derived_from: tosca.relationships.DependsOn
+ description: This type represents a network association relationship between Port and Compute node types.
+ valid_target_types:
+ - tosca.capabilities.network.Bindable
+
+ tosca.relationships.HostedOn:
+ derived_from: tosca.relationships.Root
+ description: This type represents a hosting relationship between two nodes.
+ valid_target_types:
+ - tosca.capabilities.Container
+
+ tosca.relationships.DependsOn:
+ derived_from: tosca.relationships.Root
+ description: This type represents a general dependency relationship between two nodes.
+ valid_target_types:
+ - tosca.capabilities.Node
+
+ tosca.relationships.ConnectsTo:
+ derived_from: tosca.relationships.Root
+ description: This type represents a network connection relationship between two nodes.
+ valid_target_types:
+ - tosca.capabilities.Endpoint
+ properties:
+ credential:
+ type: tosca.datatypes.Credential
+ required: false