d4fbf5cf47db785cb7e3f51cb1f0c9384ff0d9e8
[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"\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"\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.DG"\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.DG" : {\r
257       "description" : "This is Directed Graph Node Type",\r
258       "version" : "1.0.0",\r
259       "derived_from" : "tosca.nodes.Root"\r
260     },\r
261     "tosca.nodes.component.Python": {\r
262       "description": "This is Resource Assignment Python Component API",\r
263       "version": "1.0.0",\r
264       "properties": {\r
265         "type": {\r
266           "description": "Request Id used to store the generated configuration, in the database along with the template-name",\r
267           "required": false,\r
268           "type": "string"\r
269         }\r
270       },\r
271       "interfaces": {\r
272         "DefaultOperation": {\r
273           "operations": {\r
274             "validate": {\r
275               "inputs": {\r
276                 "action-name": {\r
277                   "description": "validate for action",\r
278                   "required": false,\r
279                   "type": "string"\r
280                 }\r
281               }\r
282             }\r
283           }\r
284         }\r
285       },\r
286       "artifacts" :{\r
287         "component-jar": {\r
288           "description": "Component Jar",\r
289           "type": "artifact-component-jar",\r
290           "file": "Component/basecomponent.jar"\r
291         }\r
292       },\r
293       "derived_from": "tosca.nodes.Root"\r
294     },\r
295     "component-resource-assignment": {\r
296       "description": "This is Resource Assignment Component API",\r
297       "version": "1.0.0",\r
298       "properties": {\r
299         "request-id": {\r
300           "description": "Request Id used to store the generated configuration, in the database along with the template-name",\r
301           "required": true,\r
302           "type": "string"\r
303         }\r
304       },\r
305       "interfaces": {\r
306         "DefaultComponentNode": {\r
307           "operations": {\r
308             "process": {\r
309               "inputs": {\r
310                 "action-name": {\r
311                   "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
312                   "required": false,\r
313                   "type": "string"\r
314                 },\r
315                 "resource-type": {\r
316                   "required": false,\r
317                   "type": "string"\r
318                 },\r
319                 "request-id": {\r
320                   "description": "Request Id used to store the generated configuration, in the database along with the template-name",\r
321                   "required": true,\r
322                   "type": "string"\r
323                 },\r
324                 "resource-id": {\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                 "template-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                 "mapping-content": {\r
335                   "description": "Id used to pull the data content from the data base. Either template-data or resource-id should be present",\r
336                   "required": true,\r
337                   "type": "string"\r
338                 }\r
339               },\r
340               "outputs": {\r
341                 "resource-assignment-params": {\r
342                   "required": true,\r
343                   "type": "string"\r
344                 },\r
345                 "status": {\r
346                   "required": true,\r
347                   "type": "string"\r
348                 }\r
349               }\r
350             }\r
351           }\r
352         }\r
353       },\r
354       "derived_from": "tosca.nodes.Component"\r
355     },\r
356     "component-resource-assignment-python": {\r
357       "description": "This is Resource Assignment Component API",\r
358       "version": "1.0.0",\r
359       "properties": {\r
360         "request-id": {\r
361           "description": "Request Id used to store the generated configuration, in the database along with the template-name",\r
362           "required": true,\r
363           "type": "string"\r
364         }\r
365       },\r
366       "interfaces": {\r
367         "DefaultComponentNode": {\r
368           "operations": {\r
369             "process": {\r
370               "inputs": {\r
371                 "action-name": {\r
372                   "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
373                   "required": false,\r
374                   "type": "string"\r
375                 }\r
376               },\r
377               "outputs": {\r
378                 "resource-assignment-params": {\r
379                   "required": true,\r
380                   "type": "string"\r
381                 },\r
382                 "status": {\r
383                   "required": true,\r
384                   "type": "string"\r
385                 }\r
386               }\r
387             }\r
388           }\r
389         }\r
390       },\r
391       "derived_from": "tosca.nodes.component.Python"\r
392     }\r
393   },\r
394   "data_types": {\r
395     "sample-property" : {\r
396       "description": "This is sample data type",\r
397       "version": "1.0.0",\r
398       "properties": {\r
399         "content": {\r
400           "required": false,\r
401           "type": "string"\r
402         },\r
403         "process-name": {\r
404           "required": false,\r
405           "type": "string"\r
406         },\r
407         "version": {\r
408           "required": false,\r
409           "type": "string",\r
410           "default" : "LATEST"\r
411         }\r
412       },\r
413       "derived_from" : "tosca.datatypes.Root"\r
414     }\r
415   }\r
416 }