8b5c4151a3569b15fc6318a6c09d95f98c5eed38
[ccsdk/cds.git] / ms / controllerblueprints / modules / blueprint-core / src / main / kotlin / org / onap / ccsdk / cds / controllerblueprints / core / dsl / BluePrintDSLData.kt
1 /*
2  *  Copyright © 2019 IBM.
3  *
4  *  Licensed under the Apache License, Version 2.0 (the "License");
5  *  you may not use this file except in compliance with the License.
6  *  You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *  Unless required by applicable law or agreed to in writing, software
11  *  distributed under the License is distributed on an "AS IS" BASIS,
12  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *  See the License for the specific language governing permissions and
14  *  limitations under the License.
15  */
16
17 package org.onap.ccsdk.cds.controllerblueprints.core.dsl
18
19 import com.fasterxml.jackson.annotation.JsonIgnore
20 import com.fasterxml.jackson.databind.JsonNode
21 import org.onap.ccsdk.cds.controllerblueprints.core.data.ArtifactDefinition
22 import org.onap.ccsdk.cds.controllerblueprints.core.data.ArtifactType
23 import org.onap.ccsdk.cds.controllerblueprints.core.data.AttributeDefinition
24 import org.onap.ccsdk.cds.controllerblueprints.core.data.DataType
25 import org.onap.ccsdk.cds.controllerblueprints.core.data.Implementation
26 import org.onap.ccsdk.cds.controllerblueprints.core.data.PropertyDefinition
27 import org.onap.ccsdk.cds.controllerblueprints.core.data.Step
28
29 /**
30  * This is simplified version of DSL, which is used for generating the Service template
31  * @author Brinda Santh
32  */
33
34 class DSLBluePrint {
35
36     var metadata: MutableMap<String, String> = hashMapOf()
37     var properties: MutableMap<String, JsonNode>? = null
38     var dataTypes: MutableMap<String, DataType> = hashMapOf()
39     var artifactTypes: MutableMap<String, ArtifactType> = hashMapOf()
40     var components: MutableMap<String, DSLComponent> = hashMapOf()
41     var registryComponents: MutableMap<String, DSLRegistryComponent> = hashMapOf()
42     var workflows: MutableMap<String, DSLWorkflow> = hashMapOf()
43 }
44
45 class DSLWorkflow {
46     @get:JsonIgnore
47     var id: String? = null
48     lateinit var description: String
49     lateinit var actionName: String
50     lateinit var steps: MutableMap<String, Step>
51     var inputs: MutableMap<String, PropertyDefinition>? = null
52     var outputs: MutableMap<String, PropertyDefinition>? = null
53 }
54
55 class DSLComponent {
56     @get:JsonIgnore
57     lateinit var id: String
58     lateinit var type: String
59     lateinit var version: String
60     lateinit var description: String
61     var implementation: Implementation? = null
62     var attributes: MutableMap<String, AttributeDefinition>? = null
63     var properties: MutableMap<String, PropertyDefinition>? = null
64     var artifacts: MutableMap<String, ArtifactDefinition>? = null
65     var inputs: MutableMap<String, PropertyDefinition>? = null
66     var outputs: MutableMap<String, PropertyDefinition>? = null
67 }
68
69 class DSLRegistryComponent {
70     lateinit var id: String
71     lateinit var type: String
72     lateinit var version: String
73     lateinit var interfaceName: String
74     lateinit var description: String
75     var implementation: Implementation? = null
76     var properties: MutableMap<String, JsonNode>? = null
77     var artifacts: MutableMap<String, ArtifactDefinition>? = null
78     var inputs: MutableMap<String, JsonNode>? = null
79     var outputs: MutableMap<String, JsonNode>? = null
80 }