Relationship Type and Templates models
[ccsdk/cds.git] / ms / blueprintsprocessor / modules / blueprints / blueprint-core / src / main / kotlin / org / onap / ccsdk / cds / controllerblueprints / core / BluePrintConstants.kt
1 /*
2  * Copyright © 2017-2018 AT&T Intellectual Property.
3  * Modifications Copyright © 2018 - 2019 IBM, Bell Canada
4  *
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
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
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.
16  */
17
18 package org.onap.ccsdk.cds.controllerblueprints.core
19
20 /**
21  * BluePrintConstants
22  *
23  * @author Brinda Santh
24  */
25 object BluePrintConstants {
26
27     val APP_NAME = System.getProperty("APPLICATION_NAME")
28         ?: System.getProperty("APP_NAME")
29         ?: System.getProperty("APPNAME")
30         ?: "cds-controller"
31
32     const val DATE_TIME_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
33
34     const val RESPONSE_HEADER_MINOR_VERSION: String = "X-MinorVersion"
35     const val RESPONSE_HEADER_PATCH_VERSION: String = "X-PatchVersion"
36     const val RESPONSE_HEADER_LATEST_VERSION: String = "X-LatestVersion"
37
38     const val ONAP_REQUEST_ID = "X-ONAP-RequestID"
39     const val ONAP_INVOCATION_ID = "X-ONAP-InvocationID"
40     const val ONAP_PARTNER_NAME = "X-ONAP-PartnerName"
41
42     const val STATUS_SUCCESS: String = "success"
43     const val STATUS_PROCESSING: String = "processing"
44     const val STATUS_FAILURE: String = "failure"
45
46     const val FLAG_Y: String = "Y"
47     const val FLAG_N: String = "N"
48
49     const val TYPE_DEFAULT: String = "default"
50
51     const val DATA_TYPE_STRING: String = "string"
52     const val DATA_TYPE_INTEGER: String = "integer"
53     const val DATA_TYPE_FLOAT: String = "float"
54     const val DATA_TYPE_DOUBLE: String = "double"
55     const val DATA_TYPE_BOOLEAN: String = "boolean"
56     const val DATA_TYPE_TIMESTAMP: String = "timestamp"
57     const val DATA_TYPE_NULL: String = "null"
58     const val DATA_TYPE_LIST: String = "list"
59     const val DATA_TYPE_MAP: String = "map"
60     const val DATA_TYPE_JSON: String = "json"
61
62     const val BLUEPRINT_TYPE_DEFAULT = "DEFAULT"
63     const val BLUEPRINT_TYPE_KOTLIN_DSL = "KOTLIN_DSL"
64     const val BLUEPRINT_TYPE_GENERIC_SCRIPT = "GENERIC_SCRIPT"
65
66     const val SCRIPT_KOTLIN = "kotlin"
67     const val SCRIPT_JYTHON = "jython"
68     const val SCRIPT_INTERNAL = "internal"
69
70     const val USER_SYSTEM: String = "System"
71
72     const val PATH_DIVIDER: String = "/"
73     const val PATH_SERVICE_TEMPLATE: String = "service_template"
74     const val PATH_TOPOLOGY_TEMPLATE: String = "topology_template"
75     const val PATH_METADATA: String = "metadata"
76     const val PATH_NODE_TYPES: String = "node_types"
77     const val PATH_POLICY_TYPES: String = "policy_types"
78     const val PATH_RELATIONSHIP_TYPES: String = "relationship_types"
79     const val PATH_ARTIFACT_TYPES: String = "artifact_types"
80     const val PATH_DATA_TYPES: String = "data_types"
81     const val PATH_INPUTS: String = "inputs"
82     const val PATH_NODE_WORKFLOWS: String = "workflows"
83     const val PATH_NODE_TEMPLATES: String = "node_templates"
84     const val PATH_CAPABILITIES: String = "capabilities"
85     const val PATH_REQUIREMENTS: String = "requirements"
86     const val PATH_INTERFACES: String = "interfaces"
87     const val PATH_OPERATIONS: String = "operations"
88     const val PATH_OUTPUTS: String = "outputs"
89     const val PATH_PROPERTIES: String = "properties"
90     const val PATH_ATTRIBUTES: String = "attributes"
91     const val PATH_ARTIFACTS: String = "artifacts"
92
93     const val MODEL_DIR_MODEL_TYPE: String = "definition-type"
94
95     const val MODEL_DEFINITION_TYPE_NODE_TYPE: String = "node_type"
96     const val MODEL_DEFINITION_TYPE_ARTIFACT_TYPE: String = "artifact_type"
97     const val MODEL_DEFINITION_TYPE_CAPABILITY_TYPE: String = "capability_type"
98     const val MODEL_DEFINITION_TYPE_RELATIONSHIP_TYPE: String = "relationship_type"
99     const val MODEL_DEFINITION_TYPE_DATA_TYPE: String = "data_type"
100
101     const val MODEL_TYPE_DATATYPES_ROOT: String = "tosca.datatypes.Root"
102     const val MODEL_TYPE_NODES_ROOT: String = "tosca.nodes.Root"
103     const val MODEL_TYPE_GROUPS_ROOT: String = "tosca.groups.Root"
104     const val MODEL_TYPE_RELATIONSHIPS_ROOT: String = "tosca.relationships.Root"
105     const val MODEL_TYPE_ARTIFACTS_ROOT: String = "tosca.artifacts.Root"
106     const val MODEL_TYPE_CAPABILITIES_ROOT: String = "tosca.capabilities.Root"
107     const val MODEL_TYPE_INTERFACES_ROOT: String = "tosca.interfaces.Root"
108
109     const val MODEL_TYPE_RELATIONSHIPS_DEPENDS_ON = "tosca.relationships.DependsOn"
110     const val MODEL_TYPE_RELATIONSHIPS_HOSTED_ON = "tosca.relationships.HostedOn"
111     const val MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO = "tosca.relationships.ConnectsTo"
112     const val MODEL_TYPE_RELATIONSHIPS_ATTACH_TO = "tosca.relationships.AttachesTo"
113     const val MODEL_TYPE_RELATIONSHIPS_ROUTES_TO = "tosca.relationships.RoutesTo"
114     // CDS Defined Relationship Types
115     const val MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_DB = "tosca.relationships.ConnectsTo.Db"
116     const val MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_REST_CLIENT = "tosca.relationships.ConnectsTo.RestClient"
117     const val MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_SSH_CLIENT = "tosca.relationships.ConnectsTo.SshClient"
118     const val MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_MESSAGE_PRODUCER = "tosca.relationships.ConnectsTo.MessageProducer"
119     const val MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_MESSAGE_CONSUMER = "tosca.relationships.ConnectsTo.MessageConsumer"
120     const val MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_GRPC_SERVER = "tosca.relationships.ConnectsTo.GrpcServer"
121     const val MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_GRPC_CLIENT = "tosca.relationships.ConnectsTo.GrpcClient"
122     const val MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_NATS = "tosca.relationships.ConnectsTo.Nats"
123
124     const val MODEL_TYPE_NODE_WORKFLOW = "tosca.nodes.Workflow"
125     const val MODEL_TYPE_NODE_COMPONENT = "tosca.nodes.Component"
126     const val MODEL_TYPE_NODE_VNF = "tosca.nodes.Vnf"
127     const val MODEL_TYPE_NODE_RESOURCE_SOURCE = "tosca.nodes.ResourceSource"
128
129     const val MODEL_TYPE_NODES_COMPONENT_JAVA: String = "tosca.nodes.component.Java"
130     const val MODEL_TYPE_NODES_COMPONENT_BUNDLE: String = "tosca.nodes.component.Bundle"
131     const val MODEL_TYPE_NODES_COMPONENT_SCRIPT: String = "tosca.nodes.component.Script"
132     const val MODEL_TYPE_NODES_COMPONENT_PYTHON: String = "tosca.nodes.component.Python"
133     const val MODEL_TYPE_NODES_COMPONENT_JYTHON: String = "tosca.nodes.component.Jython"
134     const val MODEL_TYPE_NODES_COMPONENT_KOTLIN: String = "tosca.nodes.component.Kotlin"
135     const val MODEL_TYPE_NODES_COMPONENT_JAVA_SCRIPT: String = "tosca.nodes.component.JavaScript"
136
137     const val MODEL_TYPE_ARTIFACT_TYPE_IMPLEMENTATION = "tosca.artifacts.Implementation"
138
139     const val MODEL_TYPE_DATA_TYPE_DYNAMIC = "tosca.datatypes.Dynamic"
140
141     const val MODEL_TYPE_CAPABILITY_TYPE_NODE = "tosca.capabilities.Node"
142     const val MODEL_TYPE_CAPABILITY_TYPE_COMPUTE = "tosca.capabilities.Compute"
143     const val MODEL_TYPE_CAPABILITY_TYPE_NETWORK = "tosca.capabilities.Network"
144     const val MODEL_TYPE_CAPABILITY_TYPE_STORAGE = "tosca.capabilities.Storage"
145     const val MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT = "tosca.capabilities.Endpoint"
146     const val MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT_PUBLIC = "tosca.capabilities.Endpoint.Public"
147     const val MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT_ADMIN = "tosca.capabilities.Endpoint.Admin"
148     const val MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT_DATABASE = "tosca.capabilities.Endpoint.Database"
149     const val MODEL_TYPE_CAPABILITY_TYPE_ATTACHMENT = "tosca.capabilities.Attachment"
150     const val MODEL_TYPE_CAPABILITY_TYPE_OPERATION_SYSTEM = "tosca.capabilities.OperatingSystem"
151     const val MODEL_TYPE_CAPABILITY_TYPE_BINDABLE = "tosca.capabilities.network.Bindable"
152     // Custom capabilities
153     const val MODEL_TYPE_CAPABILITY_TYPE_CONTENT = "tosca.capabilities.Content"
154     const val MODEL_TYPE_CAPABILITY_TYPE_MAPPING = "tosca.capabilities.Mapping"
155     const val MODEL_TYPE_CAPABILITY_TYPE_NETCONF = "tosca.capabilities.Netconf"
156     const val MODEL_TYPE_CAPABILITY_TYPE_SSH = "tosca.capabilities.Ssh"
157     const val MODEL_TYPE_CAPABILITY_TYPE_SFTP = "tosca.capabilities.Sftp"
158
159     const val EXPRESSION_DSL_REFERENCE: String = "*"
160     const val EXPRESSION_GET_INPUT: String = "get_input"
161     const val EXPRESSION_GET_ATTRIBUTE: String = "get_attribute"
162     const val EXPRESSION_GET_ARTIFACT: String = "get_artifact"
163     const val EXPRESSION_GET_PROPERTY: String = "get_property"
164     const val EXPRESSION_GET_OPERATION_OUTPUT: String = "get_operation_output"
165     const val EXPRESSION_GET_NODE_OF_TYPE: String = "get_nodes_of_type"
166
167     const val PROPERTY_BLUEPRINT_PROCESS_ID: String = "blueprint-process-id"
168     const val PROPERTY_BLUEPRINT_VALID: String = "blueprint-valid"
169     const val PROPERTY_BLUEPRINT_BASE_PATH: String = "blueprint-basePath"
170     const val PROPERTY_BLUEPRINT_RUNTIME: String = "blueprint-runtime"
171     const val PROPERTY_BLUEPRINT_INPUTS_DATA: String = "blueprint-inputs-data"
172     const val PROPERTY_BLUEPRINT_CONTEXT: String = "blueprint-context"
173     const val PROPERTY_BLUEPRINT_NAME: String = "template_name"
174     const val PROPERTY_BLUEPRINT_VERSION: String = "template_version"
175
176     const val TOSCA_METADATA_DIR: String = "TOSCA-Metadata"
177     const val TOSCA_METADATA_ENTRY_DEFINITION_FILE: String = "TOSCA-Metadata/TOSCA.meta"
178     const val TOSCA_DEFINITIONS_DIR: String = "Definitions"
179     const val TOSCA_PLANS_DIR: String = "Plans"
180     const val TOSCA_SCRIPTS_DIR: String = "Scripts"
181     const val TOSCA_MAPPINGS_DIR: String = "Mappings"
182     const val TOSCA_TEMPLATES_DIR: String = "Templates"
183     const val TOSCA_ENVIRONMENTS_DIR: String = "Environments"
184     const val TOSCA_SCRIPTS_KOTLIN_DIR: String = "$TOSCA_SCRIPTS_DIR/kotlin"
185     const val TOSCA_SCRIPTS_JYTHON_DIR: String = "$TOSCA_SCRIPTS_DIR/python"
186
187     const val UAT_SPECIFICATION_FILE = "Tests/uat.yaml"
188
189     const val GRAPH_START_NODE_NAME = "START"
190     const val GRAPH_END_NODE_NAME = "END"
191
192     const val PROPERTY_ENV = "ENV"
193     const val PROPERTY_APP = "APP"
194     const val PROPERTY_BPP = "BPP"
195     const val PROPERTY_SELF = "SELF"
196
197     const val METADATA_TEMPLATE_NAME = "template_name"
198     const val METADATA_TEMPLATE_VERSION = "template_version"
199     const val METADATA_TEMPLATE_TYPE = "template_type"
200     const val METADATA_TEMPLATE_AUTHOR = "template_author"
201     const val METADATA_TEMPLATE_TAGS = "template_tags"
202     const val METADATA_WORKFLOW_NAME = "workflow_name"
203
204     const val PAYLOAD_DATA = "payload-data"
205     const val PROPERTY_CURRENT_STEP = "current-step"
206     const val PROPERTY_CURRENT_NODE_TEMPLATE = "current-node-template"
207     const val PROPERTY_CURRENT_INTERFACE = "current-interface"
208     const val PROPERTY_CURRENT_OPERATION = "current-operation"
209     const val PROPERTY_CURRENT_TIMEOUT = "current-timeout"
210     const val PROPERTY_CURRENT_IMPLEMENTATION = "current-implementation"
211     const val PROPERTY_EXECUTION_REQUEST = "execution-request"
212     const val PROPERTY_CONNECTION_CONFIG = "connection-config"
213
214     const val DEFAULT_VERSION_NUMBER = "1.0.0"
215     const val DEFAULT_STEP_OPERATION = "process"
216     const val DEFAULT_STEP_INTERFACE = "ComponentInterface"
217
218     const val ARTIFACT_VELOCITY_TYPE_NAME = "artifact-template-velocity"
219     const val ARTIFACT_JINJA_TYPE_NAME = "artifact-template-jinja"
220
221     const val MODEL_TYPE_ARTIFACT_TEMPLATE_VELOCITY = "artifact-template-velocity"
222     const val MODEL_TYPE_ARTIFACT_TEMPLATE_JINJA = "artifact-template-jinja"
223     const val MODEL_TYPE_ARTIFACT_MAPPING_RESOURCE = "artifact-mapping-resource"
224     const val MODEL_TYPE_ARTIFACT_SCRIPT_JYTHON = "artifact-script-jython"
225     const val MODEL_TYPE_ARTIFACT_SCRIPT_KOTLIN = "artifact-script-kotlin"
226     const val MODEL_TYPE_ARTIFACT_DIRECTED_GRAPH = "artifact-directed-graph"
227     const val MODEL_TYPE_ARTIFACT_COMPONENT_JAR = "artifact-component-jar"
228
229     val USE_SCRIPT_COMPILE_CACHE: Boolean = (System.getenv("USE_SCRIPT_COMPILE_CACHE") ?: "true").toBoolean()
230
231     const val LOG_PROTECT: String = "log-protect"
232
233     /** Cluster Properties */
234     val CLUSTER_ENABLED = (System.getenv("CLUSTER_ENABLED") ?: "false").toBoolean()
235     const val PROPERTY_CLUSTER_ID = "CLUSTER_ID"
236     const val PROPERTY_CLUSTER_NODE_ID = "CLUSTER_NODE_ID"
237     const val PROPERTY_CLUSTER_NODE_ADDRESS = "CLUSTER_NODE_ADDRESS"
238     const val PROPERTY_CLUSTER_MEMBERS = "CLUSTER_MEMBERS"
239     const val PROPERTY_CLUSTER_STORAGE_PATH = "CLUSTER_STORAGE_PATH"
240     const val PROPERTY_CLUSTER_CONFIG_FILE = "CLUSTER_CONFIG_FILE"
241 }