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_SSH,
84 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_SFTP
88 fun validModelTypes(): List<String> {
89 val validTypes: MutableList<String> = arrayListOf()
90 validTypes.add(BluePrintConstants.MODEL_DEFINITION_TYPE_DATA_TYPE)
91 validTypes.add(BluePrintConstants.MODEL_DEFINITION_TYPE_ARTIFACT_TYPE)
92 validTypes.add(BluePrintConstants.MODEL_DEFINITION_TYPE_NODE_TYPE)
93 validTypes.add(BluePrintConstants.MODEL_DEFINITION_TYPE_CAPABILITY_TYPE)
94 validTypes.add(BluePrintConstants.MODEL_DEFINITION_TYPE_RELATIONSHIP_TYPE)
99 fun validPropertyTypes(): List<String> {
100 val validTypes: MutableList<String> = arrayListOf()
101 validTypes.addAll(validPrimitiveTypes())
102 validTypes.addAll(validComplexTypes())
103 validTypes.addAll(validCollectionTypes())
108 fun validPrimitiveTypes(): List<String> {
109 val validTypes: MutableList<String> = arrayListOf()
110 validTypes.add(BluePrintConstants.DATA_TYPE_STRING)
111 validTypes.add(BluePrintConstants.DATA_TYPE_INTEGER)
112 validTypes.add(BluePrintConstants.DATA_TYPE_FLOAT)
113 validTypes.add(BluePrintConstants.DATA_TYPE_DOUBLE)
114 validTypes.add(BluePrintConstants.DATA_TYPE_BOOLEAN)
115 validTypes.add(BluePrintConstants.DATA_TYPE_TIMESTAMP)
116 validTypes.add(BluePrintConstants.DATA_TYPE_NULL)
121 fun validComplexTypes(): List<String> {
122 val validTypes: MutableList<String> = arrayListOf()
123 validTypes.add(BluePrintConstants.DATA_TYPE_JSON)
128 fun validCollectionTypes(): List<String> {
129 val validTypes: MutableList<String> = arrayListOf()
130 validTypes.add(BluePrintConstants.DATA_TYPE_LIST)
131 validTypes.add(BluePrintConstants.DATA_TYPE_MAP)
136 fun validPrimitiveOrCollectionPrimitive(propertyDefinition: PropertyDefinition): Boolean {
137 val entrySchema = propertyDefinition.entrySchema?.type ?: BluePrintConstants.DATA_TYPE_NULL
138 return BluePrintTypes.validPropertyTypes().contains(propertyDefinition.type) &&
139 BluePrintTypes.validPrimitiveTypes().contains(entrySchema)
143 fun validCommands(): List<String> {
145 BluePrintConstants.EXPRESSION_DSL_REFERENCE,
146 BluePrintConstants.EXPRESSION_GET_INPUT,
147 BluePrintConstants.EXPRESSION_GET_ATTRIBUTE,
148 BluePrintConstants.EXPRESSION_GET_PROPERTY,
149 BluePrintConstants.EXPRESSION_GET_ARTIFACT,
150 BluePrintConstants.EXPRESSION_GET_OPERATION_OUTPUT,
151 BluePrintConstants.EXPRESSION_GET_NODE_OF_TYPE
156 fun rootNodeTypes(): List<String> {
157 return listOf(BluePrintConstants.MODEL_TYPE_NODES_ROOT)
161 fun rootDataTypes(): List<String> {
162 return listOf(BluePrintConstants.MODEL_TYPE_DATATYPES_ROOT)