635e177a1132519f263227828ddd2ddc56ce6769
[ccsdk/cds.git] /
1 {\r
2   "metadata": {\r
3     "template_author": "Brinda Santh Muthuramalingam",\r
4     "author-email": "brindasanth@gmail.com",\r
5     "user-groups" : "ADMIN, OPERATION",\r
6     "template_name": "baseconfiguration",\r
7     "template_version": "1.0.0",\r
8     "template_tags": "brinda, tosca"\r
9   },\r
10   "topology_template": {\r
11     "inputs": {\r
12       "request-id": {\r
13         "required": true,\r
14         "type": "string"\r
15       },\r
16       "action-name": {\r
17         "required": true,\r
18         "type": "string"\r
19       },\r
20       "scope-type": {\r
21         "required": true,\r
22         "type": "string"\r
23       },\r
24       "hostname": {\r
25         "required": true,\r
26         "type": "string"\r
27       }\r
28     },\r
29     "node_templates": {\r
30       "activate-process": {\r
31         "type": "bpmn-activate",\r
32         "properties": {\r
33           "process-name": { "get_input" : "action-name" },\r
34           "version" : { "get_property" : ["SELF", "process-name"] },\r
35           "content": { "get_artifact" : ["SELF", "activate-process"] }\r
36         },\r
37         "artifacts": {\r
38           "activate-process": {\r
39             "type": "artifact-bpmn-camunda",\r
40             "file": "Plans/ActivateProcess.bpmn"\r
41           }\r
42         }\r
43       },\r
44       "resource-assignment": {\r
45         "type": "component-resource-assignment",\r
46         "properties":{\r
47           "request-id": ["1234", "1234"]\r
48         },\r
49         "interfaces": {\r
50           "DefaultComponentNode": {\r
51             "operations": {\r
52               "process": {\r
53                 "inputs": {\r
54                   "action-name": { "get_input" : "action-name" },\r
55                   "resource-type": "vnf-type",\r
56                   "request-id": { "get_input" : "request-id" },\r
57                   "resource-id": { "get_input" : "hostname" },\r
58                   "template-content": { "get_artifact" : ["SELF", "baseconfig-template"] },\r
59                   "mapping-content": { "get_artifact" : ["SELF", "baseconfig-mapping"] }\r
60                 },\r
61                 "outputs": {\r
62                   "resource-assignment-params": "",\r
63                   "status": ""\r
64                 }\r
65               }\r
66             }\r
67           }\r
68         },\r
69         "artifacts": {\r
70           "baseconfig-template": {\r
71             "type": "artifact-template-velocity",\r
72             "file": "Templates/baseconfig-template.vtl"\r
73           },\r
74           "baseconfig-mapping": {\r
75             "type": "artifact-mapping-resource",\r
76             "file": "Mappings/baseconfig-mapping.json"\r
77           }\r
78         }\r
79       },\r
80       "resource-assignment-py": {\r
81         "type": "component-resource-assignment",\r
82         "properties":{\r
83           "request-id": ["1234", "1234"]\r
84         },\r
85         "interfaces": {\r
86           "DefaultComponentNode": {\r
87             "operations": {\r
88               "process": {\r
89                 "implementation" :{\r
90                   "primary" : "component-script"\r
91                 },\r
92                 "inputs": {\r
93                   "action-name": { "get_input" : "action-name" }\r
94                 },\r
95                 "outputs": {\r
96                   "resource-assignment-params": "",\r
97                   "status": ""\r
98                 }\r
99               }\r
100             }\r
101           }\r
102         },\r
103         "artifacts": {\r
104           "component-script": {\r
105             "type": "artifact-script-python",\r
106             "file": "Scripts/baseconfig-template.vtl"\r
107           }\r
108         }\r
109       }\r
110     },\r
111     "workflows":{\r
112       "activate-process":{\r
113         "steps" : {\r
114             "call-resource-assignment" : {\r
115               "description" : "Invoke Resource Assignment Component",\r
116               "target" : "resource-assignment",\r
117               "activities" : [\r
118                 {\r
119                   "call_operation": "ResourceAssignmentNode.process"\r
120                 }\r
121               ],\r
122               "on_success" : [\r
123                 "download-baseconfig"\r
124               ]\r
125             },\r
126           "download-baseconfig" : {\r
127             "description" : "Call Download Base Config Component",\r
128             "target" : "activate-netconf",\r
129             "activities" : [\r
130               {\r
131                 "call_operation": "NetconfTransactionNode.process"\r
132               }\r
133             ],\r
134             "on_success" : [\r
135               "download-licence"\r
136             ]\r
137           },\r
138           "download-licence" : {\r
139             "description" : "Call Download Licence Component",\r
140             "target" : "activate-netconf",\r
141             "activities" : [\r
142               {\r
143                 "call_operation": "NetconfTransactionNode.process"\r
144               }\r
145             ]\r
146           }\r
147         }\r
148       }\r
149     }\r
150   },\r
151   "artifact_types": {\r
152     "artifact-template-velocity": {\r
153       "description": " Velocity Template used for Configuration",\r
154       "version": "1.0.0",\r
155       "file_ext": [\r
156         "vtl"\r
157       ],\r
158       "derived_from": "tosca.artifacts.Implementation"\r
159     },\r
160     "artifact-mapping-resource": {\r
161       "description": " Velocity Template Resource Mapping File used along with Configuration template",\r
162       "version": "1.0.0",\r
163       "file_ext": [\r
164         "json"\r
165       ],\r
166       "derived_from": "tosca.artifacts.Implementation"\r
167     },\r
168     "artifact-script-kotlin": {\r
169       "description": " Kotlin Script Template used for Configuration",\r
170       "version": "1.0.0",\r
171       "file_ext": [\r
172         "kt"\r
173       ],\r
174       "derived_from": "tosca.artifacts.Implementation"\r
175     },\r
176     "artifact-script-python": {\r
177       "description": " Kotlin Script Template used for Configuration",\r
178       "version": "1.0.0",\r
179       "file_ext": [\r
180         "py"\r
181       ],\r
182       "derived_from": "tosca.artifacts.Implementation"\r
183     },\r
184     "artifact-bpmn-camunda": {\r
185       "description": " Camunda BPM File",\r
186       "version": "1.0.0",\r
187       "file_ext": [\r
188         "bpmn"\r
189       ],\r
190       "derived_from": "tosca.artifacts.Implementation"\r
191     },\r
192     "artifact-component-jar": {\r
193       "description": "Component Jar",\r
194       "version": "1.0.0",\r
195       "file_ext": [\r
196         "jar"\r
197       ],\r
198       "derived_from": "tosca.artifacts.Implementation"\r
199     }\r
200   },\r
201   "node_types": {\r
202     "bpmn-activate": {\r
203       "description": "This is BPMN Activate node type",\r
204       "version": "1.0.0",\r
205       "properties": {\r
206         "content": {\r
207           "required": false,\r
208           "type": "string"\r
209         },\r
210         "process-name": {\r
211           "required": false,\r
212           "type": "string"\r
213         },\r
214         "version": {\r
215           "required": false,\r
216           "type": "string",\r
217           "default" : "LATEST"\r
218         }\r
219       },\r
220       "derived_from": "tosca.nodes.Component"\r
221     },\r
222     "tosca.nodes.Component": {\r
223       "description": "This is Resource Assignment Component API",\r
224       "version": "1.0.0",\r
225       "properties": {\r
226         "type": {\r
227           "description": "Request Id used to store the generated configuration, in the database along with the template-name",\r
228           "required": false,\r
229           "type": "string"\r
230         }\r
231       },\r
232       "interfaces": {\r
233         "DefaultOperation": {\r
234           "operations": {\r
235             "validate": {\r
236               "inputs": {\r
237                 "action-name": {\r
238                   "description": "validate for action",\r
239                   "required": false,\r
240                   "type": "string"\r
241                 }\r
242               }\r
243             }\r
244           }\r
245         }\r
246       },\r
247       "artifacts" :{\r
248         "component-jar": {\r
249           "description": "Component Jar",\r
250           "type": "artifact-component-jar",\r
251           "file": "Component/basecomponent.jar"\r
252         }\r
253       },\r
254       "derived_from": "tosca.nodes.Root"\r
255     },\r
256     "tosca.nodes.component.Python": {\r
257       "description": "This is Resource Assignment Python Component API",\r
258       "version": "1.0.0",\r
259       "properties": {\r
260         "type": {\r
261           "description": "Request Id used to store the generated configuration, in the database along with the template-name",\r
262           "required": false,\r
263           "type": "string"\r
264         }\r
265       },\r
266       "interfaces": {\r
267         "DefaultOperation": {\r
268           "operations": {\r
269             "validate": {\r
270               "inputs": {\r
271                 "action-name": {\r
272                   "description": "validate for action",\r
273                   "required": false,\r
274                   "type": "string"\r
275                 }\r
276               }\r
277             }\r
278           }\r
279         }\r
280       },\r
281       "artifacts" :{\r
282         "component-jar": {\r
283           "description": "Component Jar",\r
284           "type": "artifact-component-jar",\r
285           "file": "Component/basecomponent.jar"\r
286         }\r
287       },\r
288       "derived_from": "tosca.nodes.Root"\r
289     },\r
290     "component-resource-assignment": {\r
291       "description": "This is Resource Assignment Component API",\r
292       "version": "1.0.0",\r
293       "properties": {\r
294         "request-id": {\r
295           "description": "Request Id used to store the generated configuration, in the database along with the template-name",\r
296           "required": true,\r
297           "type": "string"\r
298         }\r
299       },\r
300       "interfaces": {\r
301         "DefaultComponentNode": {\r
302           "operations": {\r
303             "process": {\r
304               "inputs": {\r
305                 "action-name": {\r
306                   "description": "Recipe Name to get from Database, Either (message & mask-info ) or ( resource-id & resource-type & action-name & template-name ) should be present. Message will be given higest priority",\r
307                   "required": false,\r
308                   "type": "string"\r
309                 },\r
310                 "resource-type": {\r
311                   "required": false,\r
312                   "type": "string"\r
313                 },\r
314                 "request-id": {\r
315                   "description": "Request Id used to store the generated configuration, in the database along with the template-name",\r
316                   "required": true,\r
317                   "type": "string"\r
318                 },\r
319                 "resource-id": {\r
320                   "description": "Id used to pull the data content from the data base. Either template-data or resource-id should be present",\r
321                   "required": true,\r
322                   "type": "string"\r
323                 },\r
324                 "template-content": {\r
325                   "description": "Id used to pull the data content from the data base. Either template-data or resource-id should be present",\r
326                   "required": true,\r
327                   "type": "string"\r
328                 },\r
329                 "mapping-content": {\r
330                   "description": "Id used to pull the data content from the data base. Either template-data or resource-id should be present",\r
331                   "required": true,\r
332                   "type": "string"\r
333                 }\r
334               },\r
335               "outputs": {\r
336                 "resource-assignment-params": {\r
337                   "required": true,\r
338                   "type": "string"\r
339                 },\r
340                 "status": {\r
341                   "required": true,\r
342                   "type": "string"\r
343                 }\r
344               }\r
345             }\r
346           }\r
347         }\r
348       },\r
349       "derived_from": "tosca.nodes.Component"\r
350     },\r
351     "component-resource-assignment-python": {\r
352       "description": "This is Resource Assignment Component API",\r
353       "version": "1.0.0",\r
354       "properties": {\r
355         "request-id": {\r
356           "description": "Request Id used to store the generated configuration, in the database along with the template-name",\r
357           "required": true,\r
358           "type": "string"\r
359         }\r
360       },\r
361       "interfaces": {\r
362         "DefaultComponentNode": {\r
363           "operations": {\r
364             "process": {\r
365               "inputs": {\r
366                 "action-name": {\r
367                   "description": "Recipe Name to get from Database, Either (message & mask-info ) or ( resource-id & resource-type & action-name & template-name ) should be present. Message will be given higest priority",\r
368                   "required": false,\r
369                   "type": "string"\r
370                 }\r
371               },\r
372               "outputs": {\r
373                 "resource-assignment-params": {\r
374                   "required": true,\r
375                   "type": "string"\r
376                 },\r
377                 "status": {\r
378                   "required": true,\r
379                   "type": "string"\r
380                 }\r
381               }\r
382             }\r
383           }\r
384         }\r
385       },\r
386       "derived_from": "tosca.nodes.component.Python"\r
387     }\r
388   },\r
389   "data_types": {\r
390     "sample-property" : {\r
391       "description": "This is sample data type",\r
392       "version": "1.0.0",\r
393       "properties": {\r
394         "content": {\r
395           "required": false,\r
396           "type": "string"\r
397         },\r
398         "process-name": {\r
399           "required": false,\r
400           "type": "string"\r
401         },\r
402         "version": {\r
403           "required": false,\r
404           "type": "string",\r
405           "default" : "LATEST"\r
406         }\r
407       },\r
408       "derived_from" : "tosca.datatypes.Root"\r
409     }\r
410   }\r
411 }