2 * Copyright © 2017-2018 AT&T Intellectual Property.
3 * Modifications Copyright © 2018 IBM.
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
18 package org.onap.ccsdk.cds.controllerblueprints.core
20 import org.onap.ccsdk.cds.controllerblueprints.core.data.PropertyDefinition
25 * @author Brinda Santh
27 object BluePrintTypes {
30 val validNodeTypeDerivedFroms: MutableList<String> = arrayListOf(
31 BluePrintConstants.MODEL_TYPE_NODES_ROOT,
32 BluePrintConstants.MODEL_TYPE_NODE_WORKFLOW,
33 BluePrintConstants.MODEL_TYPE_NODE_COMPONENT,
34 BluePrintConstants.MODEL_TYPE_NODE_VNF,
35 BluePrintConstants.MODEL_TYPE_NODE_RESOURCE_SOURCE,
36 BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_JAVA,
37 BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_BUNDLE,
38 BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_SCRIPT,
39 BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_PYTHON,
40 BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_JYTHON,
41 BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_JAVA_SCRIPT
45 val validArtifactTypeDerivedFroms: MutableList<String> = arrayListOf(
46 BluePrintConstants.MODEL_TYPE_ARTIFACTS_ROOT,
47 BluePrintConstants.MODEL_TYPE_ARTIFACT_TYPE_IMPLEMENTATION
51 val validDataTypeDerivedFroms: MutableList<String> = arrayListOf(
52 BluePrintConstants.MODEL_TYPE_DATATYPES_ROOT,
53 BluePrintConstants.MODEL_TYPE_DATA_TYPE_DYNAMIC
57 val validRelationShipDerivedFroms: MutableList<String> = arrayListOf(
58 BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_ROOT,
59 BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_DEPENDS_ON,
60 BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_HOSTED_ON,
61 BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO,
62 BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_ATTACH_TO,
63 BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_ROUTES_TO
67 val validCapabilityTypes: MutableList<String> = arrayListOf(
68 BluePrintConstants.MODEL_TYPE_CAPABILITIES_ROOT,
69 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_NODE,
70 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_COMPUTE,
71 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_NETWORK,
72 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_STORAGE,
73 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT,
74 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT_PUBLIC,
75 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT_ADMIN,
76 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT_DATABASE,
77 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_ATTACHMENT,
78 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_OPERATION_SYSTEM,
79 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_BINDABLE,
80 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_CONTENT,
81 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_MAPPING,
82 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_NETCONF,
83 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_RESTCONF,
84 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_SSH,
85 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_SFTP
89 fun validModelTypes(): List<String> {
90 val validTypes: MutableList<String> = arrayListOf()
91 validTypes.add(BluePrintConstants.MODEL_DEFINITION_TYPE_DATA_TYPE)
92 validTypes.add(BluePrintConstants.MODEL_DEFINITION_TYPE_ARTIFACT_TYPE)
93 validTypes.add(BluePrintConstants.MODEL_DEFINITION_TYPE_NODE_TYPE)
94 validTypes.add(BluePrintConstants.MODEL_DEFINITION_TYPE_CAPABILITY_TYPE)
95 validTypes.add(BluePrintConstants.MODEL_DEFINITION_TYPE_RELATIONSHIP_TYPE)
100 fun validPropertyTypes(): List<String> {
101 val validTypes: MutableList<String> = arrayListOf()
102 validTypes.addAll(validPrimitiveTypes())
103 validTypes.addAll(validComplexTypes())
104 validTypes.addAll(validCollectionTypes())
109 fun validPrimitiveTypes(): List<String> {
110 val validTypes: MutableList<String> = arrayListOf()
111 validTypes.add(BluePrintConstants.DATA_TYPE_STRING)
112 validTypes.add(BluePrintConstants.DATA_TYPE_INTEGER)
113 validTypes.add(BluePrintConstants.DATA_TYPE_FLOAT)
114 validTypes.add(BluePrintConstants.DATA_TYPE_DOUBLE)
115 validTypes.add(BluePrintConstants.DATA_TYPE_BOOLEAN)
116 validTypes.add(BluePrintConstants.DATA_TYPE_TIMESTAMP)
117 validTypes.add(BluePrintConstants.DATA_TYPE_NULL)
122 fun validComplexTypes(): List<String> {
123 val validTypes: MutableList<String> = arrayListOf()
124 validTypes.add(BluePrintConstants.DATA_TYPE_JSON)
125 validTypes.add(BluePrintConstants.DATA_TYPE_MAP)
130 fun validCollectionTypes(): List<String> {
131 val validTypes: MutableList<String> = arrayListOf()
132 validTypes.add(BluePrintConstants.DATA_TYPE_LIST)
137 fun validPrimitiveOrCollectionPrimitive(propertyDefinition: PropertyDefinition): Boolean {
138 val entrySchema = propertyDefinition.entrySchema?.type ?: BluePrintConstants.DATA_TYPE_NULL
139 return BluePrintTypes.validPropertyTypes().contains(propertyDefinition.type) &&
140 BluePrintTypes.validPrimitiveTypes().contains(entrySchema)
144 fun validCommands(): List<String> {
146 BluePrintConstants.EXPRESSION_DSL_REFERENCE,
147 BluePrintConstants.EXPRESSION_GET_INPUT,
148 BluePrintConstants.EXPRESSION_GET_ATTRIBUTE,
149 BluePrintConstants.EXPRESSION_GET_PROPERTY,
150 BluePrintConstants.EXPRESSION_GET_ARTIFACT,
151 BluePrintConstants.EXPRESSION_GET_OPERATION_OUTPUT,
152 BluePrintConstants.EXPRESSION_GET_NODE_OF_TYPE
157 fun rootNodeTypes(): List<String> {
158 return listOf(BluePrintConstants.MODEL_TYPE_NODES_ROOT)
162 fun rootRelationshipTypes(): List<String> {
163 return listOf(BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_ROOT)
167 fun rootDataTypes(): List<String> {
168 return listOf(BluePrintConstants.MODEL_TYPE_DATATYPES_ROOT)