c191f164d5436fdf4ae302bca9cd2bb08a053d08
[demo.git] / heat / vFW_CNF_CDS / templates / cba / Definitions / node_types.json
1 {
2     "node_types": {
3         "component-resource-resolution": {
4             "description": "This is Resource Assignment Component API",
5             "version": "1.0.0",
6             "attributes": {
7                 "assignment-params": {
8                     "description": "Holds resolved template, resolution-summary or key-value",
9                     "required": true,
10                     "type": "string"
11                 },
12                 "assignment-map": {
13                     "description": "Holds resolved values for each artifact prefix eg. { vdns: { vnf-id: 123 } }",
14                     "required": true,
15                     "type": "map"
16                 }
17             },
18             "capabilities": {
19                 "component-node": {
20                     "type": "tosca.capabilities.Node"
21                 }
22             },
23             "interfaces": {
24                 "ResourceResolutionComponent": {
25                     "operations": {
26                         "process": {
27                             "inputs": {
28                                 "resolution-key": {
29                                     "description": "Key for service instance related correlation.",
30                                     "required": false,
31                                     "type": "string"
32                                 },
33                                 "occurrence": {
34                                     "description": "Number of time to perform the resolution.",
35                                     "required": false,
36                                     "default": 1,
37                                     "type": "integer"
38                                 },
39                                 "store-result": {
40                                     "description": "Whether or not to store the output.",
41                                     "required": false,
42                                     "type": "boolean"
43                                 },
44                                 "resource-type": {
45                                     "description": "Request type.",
46                                     "required": false,
47                                     "type": "string"
48                                 },
49                                 "resolution-summary": {
50                                     "description": "Enable resolution-summary output",
51                                     "required": false,
52                                     "type": "boolean"
53                                 },
54                                 "artifact-prefix-names": {
55                                     "required": true,
56                                     "description": "Template , Resource Assignment Artifact Prefix names",
57                                     "type": "list",
58                                     "entry_schema": {
59                                         "type": "string"
60                                     }
61                                 },
62                                 "request-id": {
63                                     "description": "Request Id, Unique Id for the request.",
64                                     "required": true,
65                                     "type": "string"
66                                 },
67                                 "resource-id": {
68                                     "description": "Resource Id.",
69                                     "required": false,
70                                     "type": "string"
71                                 },
72                                 "action-name": {
73                                     "description": "Action Name of the process",
74                                     "required": false,
75                                     "type": "string"
76                                 },
77                                 "dynamic-properties": {
78                                     "description": "Dynamic Json Content or DSL Json reference.",
79                                     "required": false,
80                                     "type": "json"
81                                 }
82                             },
83                             "outputs": {
84                                 "resource-assignment-params": {
85                                     "required": true,
86                                     "type": "string"
87                                 },
88                                 "resource-assignment-map": {
89                                     "required": true,
90                                     "type": "string"
91                                 },
92                                 "status": {
93                                     "required": true,
94                                     "type": "string"
95                                 }
96                             }
97                         }
98                     }
99                 }
100             },
101             "derived_from": "tosca.nodes.Component"
102         },
103         "component-script-executor": {
104             "description": "This is CLI Transaction Configuration Component API",
105             "version": "1.0.0",
106             "attributes": {
107                 "response-data": {
108                     "required": false,
109                     "type": "json"
110                 }
111             },
112             "capabilities": {
113                 "component-node": {
114                     "type": "tosca.capabilities.Node"
115                 }
116             },
117             "interfaces": {
118                 "ComponentScriptExecutor": {
119                     "operations": {
120                         "process": {
121                             "inputs": {
122                                 "script-type": {
123                                     "description": "Script type, kotlin type is supported",
124                                     "required": true,
125                                     "type": "string",
126                                     "constraints": [
127                                         {
128                                             "valid_values": [
129                                                 "kotlin",
130                                                 "jython",
131                                                 "internal"
132                                             ]
133                                         }
134                                     ],
135                                     "default": "internal"
136                                 },
137                                 "script-class-reference": {
138                                     "description": "Kotlin Script class name or jython script name.",
139                                     "required": true,
140                                     "type": "string"
141                                 },
142                                 "instance-dependencies": {
143                                     "description": "Instance names to inject to Jython or Kotlin Script.",
144                                     "required": true,
145                                     "type": "list",
146                                     "entry_schema": {
147                                         "type": "string"
148                                     }
149                                 },
150                                 "dynamic-properties": {
151                                     "description": "Dynamic Json Content or DSL Json reference.",
152                                     "required": false,
153                                     "type": "json"
154                                 }
155                             },
156                             "outputs": {
157                                 "response-data": {
158                                     "description": "Execution Response Data.",
159                                     "required": false,
160                                     "type": "string"
161                                 },
162                                 "status": {
163                                     "description": "Status of the Component Execution ( success or failure )",
164                                     "required": true,
165                                     "type": "string"
166                                 }
167                             }
168                         }
169                     }
170                 }
171             },
172             "derived_from": "tosca.nodes.Component"
173         },
174         "component-k8s-profile-upload": {
175             "description": "This component is rendering and sending the k8s profile to the multicloud plugin.",
176             "version": "1.0.0",
177             "attributes": {
178                 "statuses": {
179                     "required": true,
180                     "type": "json"
181                 }
182             },
183             "capabilities": {
184                 "component-node": {
185                     "type": "tosca.capabilities.Node"
186                 }
187             },
188             "interfaces": {
189                 "K8sProfileUploadComponent": {
190                     "operations": {
191                         "process": {
192                             "inputs": {
193                                 "k8s-rb-profile-name": {
194                                     "description": "K8s profile name",
195                                     "required": false,
196                                     "type": "string"
197                                 },
198                                 "k8s-rb-definition-name": {
199                                     "description": "K8s definition name",
200                                     "required": false,
201                                     "type": "string"
202                                 },
203                                 "k8s-rb-definition-version": {
204                                     "description": "Version of the definition",
205                                     "required": false,
206                                     "type": "string"
207                                 },
208                                 "k8s-rb-profile-namespace": {
209                                     "description": "a K8s namespace for the profile",
210                                     "required": false,
211                                     "type": "string"
212                                 },
213                                 "k8s-rb-profile-k8s-version": {
214                                     "description": "a K8s cluster version for the profile",
215                                     "required": false,
216                                     "type": "string"
217                                 },
218                                 "k8s-rb-profile-source": {
219                                     "description": "Source (tgz/folder) for the template in CBA",
220                                     "required": false,
221                                     "type": "string"
222                                 },
223                                 "artifact-prefix-names": {
224                                     "description": "Resource Assignment Artifact Prefix names",
225                                     "required": false,
226                                     "type": "list",
227                                     "entry_schema": {
228                                         "type": "string"
229                                     }
230                                 },
231                                 "resource-assignment-map": {
232                                     "description": "Holds resolved values for each artifact prefix eg. { vdns: { vnf-id: 123 } }",
233                                     "required": false,
234                                     "type": "json"
235                                 }
236                             },
237                             "outputs": {
238                                 "statuses": {
239                                     "required": true,
240                                     "type": "string"
241                                 }
242                             }
243                         }
244                     }
245                 }
246             },
247             "derived_from": "tosca.nodes.Component"
248         },
249         "component-k8s-config-template": {
250             "description": "This component is rendering and sending the k8s template to the multicloud plugin.",
251             "version": "1.0.0",
252             "attributes": {
253                 "statuses": {
254                     "required": true,
255                     "type": "json"
256                 }
257             },
258             "capabilities": {
259                 "component-node": {
260                     "type": "tosca.capabilities.Node"
261                 }
262             },
263             "interfaces": {
264                 "K8sConfigTemplateComponent": {
265                     "operations": {
266                         "process": {
267                             "inputs": {
268                                 "k8s-rb-config-template-name": {
269                                     "description": "K8s template name",
270                                     "required": false,
271                                     "type": "string"
272                                 },
273                                 "k8s-rb-definition-name": {
274                                     "description": "K8s definition name",
275                                     "required": false,
276                                     "type": "string"
277                                 },
278                                 "k8s-rb-definition-version": {
279                                     "description": "Version of the definition",
280                                     "required": false,
281                                     "type": "string"
282                                 },
283                                 "k8s-rb-config-template-source": {
284                                     "description": "Source (tgz/folder) for the template in CBA",
285                                     "required": false,
286                                     "type": "string"
287                                 },
288                                 "artifact-prefix-names": {
289                                     "description": "Resource Assignment Artifact Prefix names",
290                                     "required": false,
291                                     "type": "list",
292                                     "entry_schema": {
293                                         "type": "string"
294                                     }
295                                 },
296                                 "resource-assignment-map": {
297                                     "description": "Holds resolved values for each artifact prefix eg. { vdns: { vnf-id: 123 } }",
298                                     "required": false,
299                                     "type": "json"
300                                 }
301                             },
302                             "outputs": {
303                                 "statuses": {
304                                     "required": true,
305                                     "type": "string"
306                                 }
307                             }
308                         }
309                     }
310                 }
311             },
312             "derived_from": "tosca.nodes.Component"
313         },
314         "component-k8s-config-value": {
315             "description": "This component is sending the k8s config value to the multicloud plugin.",
316             "version": "1.0.0",
317             "attributes": {
318                 "statuses": {
319                     "required": true,
320                     "type": "json"
321                 }
322             },
323             "capabilities": {
324                 "component-node": {
325                     "type": "tosca.capabilities.Node"
326                 }
327             },
328             "interfaces": {
329                 "K8sConfigValueComponent": {
330                     "operations": {
331                         "process": {
332                             "inputs": {
333                                 "k8s-rb-config-template-name": {
334                                     "description": "K8s template name",
335                                     "required": false,
336                                     "type": "string"
337                                 },
338                                 "k8s-rb-config-name": {
339                                     "description": "K8s config name",
340                                     "required": false,
341                                     "type": "string"
342                                 },
343                                 "k8s-instance-id": {
344                                     "description": "K8s instance id",
345                                     "required": false,
346                                     "type": "string"
347                                 },
348                                 "k8s-rb-config-value-source": {
349                                     "description": "Location of value source in CBA",
350                                     "required": false,
351                                     "type": "string"
352                                 },
353                                 "k8s-config-operation-type": {
354                                     "required": false,
355                                     "type": "string",
356                                     "constraints": [
357                                         {
358                                             "valid_values": [
359                                                 "create",
360                                                 "update",
361                                                 "delete"
362                                             ]
363                                         }
364                                     ],
365                                     "default": "create"
366                                 },
367                                 "artifact-prefix-names": {
368                                     "description": "Resource Assignment Artifact Prefix names",
369                                     "required": false,
370                                     "type": "list",
371                                     "entry_schema": {
372                                         "type": "string"
373                                     }
374                                 },
375                                 "resource-assignment-map": {
376                                     "description": "Holds resolved values for each artifact prefix eg. { vdns: { vnf-id: 123 } }",
377                                     "required": false,
378                                     "type": "json"
379                                 }
380                             },
381                             "outputs": {
382                                 "statuses": {
383                                     "required": true,
384                                     "type": "string"
385                                 }
386                             }
387                         }
388                     }
389                 }
390             },
391             "derived_from": "tosca.nodes.Component"
392         },
393         "source-capability": {
394             "description": "This is Component Resource Source Node Type",
395             "version": "1.0.0",
396             "properties": {
397                 "script-type": {
398                     "required": true,
399                     "type": "string",
400                     "constraints": [
401                         {
402                             "valid_values": [
403                                 "kotlin",
404                                 "internal",
405                                 "jython"
406                             ]
407                         }
408                     ],
409                     "default": "kotlin"
410                 },
411                 "script-class-reference": {
412                     "description": "Capability reference name for internal and kotlin, for jython script file path",
413                     "required": true,
414                     "type": "string"
415                 },
416                 "instance-dependencies": {
417                     "description": "Instance dependency Names to Inject to Kotlin / Jython Script.",
418                     "required": false,
419                     "type": "list",
420                     "entry_schema": {
421                         "type": "string"
422                     }
423                 },
424                 "key-dependencies": {
425                     "description": "Resource Resolution dependency dictionary names.",
426                     "required": true,
427                     "type": "list",
428                     "entry_schema": {
429                         "type": "string"
430                     }
431                 }
432             },
433             "derived_from": "tosca.nodes.ResourceSource"
434         },
435         "source-db": {
436             "description": "This is Database Resource Source Node Type",
437             "version": "1.0.0",
438             "properties": {
439                 "type": {
440                     "required": true,
441                     "type": "string",
442                     "constraints": [
443                         {
444                             "valid_values": [
445                                 "SQL",
446                                 "PLSQL"
447                             ]
448                         }
449                     ],
450                     "default": "SQL"
451                 },
452                 "endpoint-selector": {
453                     "required": false,
454                     "type": "string"
455                 },
456                 "query": {
457                     "required": true,
458                     "type": "string"
459                 },
460                 "input-key-mapping": {
461                     "required": false,
462                     "type": "map",
463                     "entry_schema": {
464                         "type": "string"
465                     }
466                 },
467                 "output-key-mapping": {
468                     "required": false,
469                     "type": "map",
470                     "entry_schema": {
471                         "type": "string"
472                     }
473                 },
474                 "key-dependencies": {
475                     "required": true,
476                     "type": "list",
477                     "entry_schema": {
478                         "type": "string"
479                     }
480                 }
481             },
482             "derived_from": "tosca.nodes.ResourceSource"
483         },
484         "source-default": {
485             "description": "This is Default Resource Source Node Type",
486             "version": "1.0.0",
487             "properties": {},
488             "derived_from": "tosca.nodes.ResourceSource"
489         },
490         "source-input": {
491             "description": "This is Input Resource Source Node Type",
492             "version": "1.0.0",
493             "properties": {},
494             "derived_from": "tosca.nodes.ResourceSource"
495         },
496         "source-rest": {
497             "description": "This is Rest Resource Source Node Type",
498             "version": "1.0.0",
499             "properties": {
500                 "type": {
501                     "required": true,
502                     "type": "string",
503                     "constraints": [
504                         {
505                             "valid_values": [
506                                 "JSON"
507                             ]
508                         }
509                     ],
510                     "default": "JSON"
511                 },
512                 "headers": {
513                     "required": false,
514                     "type": "map",
515                     "entry_schema": {
516                         "type": "string"
517                     }
518                 },
519                 "verb": {
520                     "required": true,
521                     "type": "string",
522                     "constraints": [
523                         {
524                             "valid_values": [
525                                 "GET",
526                                 "POST",
527                                 "DELETE",
528                                 "PUT"
529                             ]
530                         }
531                     ],
532                     "default": "GET"
533                 },
534                 "payload": {
535                     "required": false,
536                     "type": "string",
537                     "default": ""
538                 },
539                 "endpoint-selector": {
540                     "required": false,
541                     "type": "string"
542                 },
543                 "url-path": {
544                     "required": true,
545                     "type": "string"
546                 },
547                 "path": {
548                     "required": true,
549                     "type": "string"
550                 },
551                 "expression-type": {
552                     "required": false,
553                     "type": "string",
554                     "constraints": [
555                         {
556                             "valid_values": [
557                                 "JSON_PATH",
558                                 "JSON_POINTER"
559                             ]
560                         }
561                     ],
562                     "default": "JSON_PATH"
563                 },
564                 "input-key-mapping": {
565                     "required": false,
566                     "type": "map",
567                     "entry_schema": {
568                         "type": "string"
569                     }
570                 },
571                 "output-key-mapping": {
572                     "required": false,
573                     "type": "map",
574                     "entry_schema": {
575                         "type": "string"
576                     }
577                 },
578                 "key-dependencies": {
579                     "required": true,
580                     "type": "list",
581                     "entry_schema": {
582                         "type": "string"
583                     }
584                 }
585             },
586             "derived_from": "tosca.nodes.ResourceSource"
587         },
588         "tosca.nodes.Component": {
589             "description": "This is default Component Node",
590             "version": "1.0.0",
591             "derived_from": "tosca.nodes.Root"
592         },
593         "tosca.nodes.ResourceSource": {
594             "description": "TOSCA base type for Resource Sources",
595             "version": "1.0.0",
596             "derived_from": "tosca.nodes.Root"
597         },
598         "tosca.nodes.Vnf": {
599             "description": "This is VNF Node Type",
600             "version": "1.0.0",
601             "derived_from": "tosca.nodes.Root"
602         },
603         "tosca.nodes.Workflow": {
604             "description": "This is Directed Graph Node Type",
605             "version": "1.0.0",
606             "derived_from": "tosca.nodes.Root"
607         },
608         "vnf-netconf-device": {
609             "description": "This is VNF Device with Netconf  Capability",
610             "version": "1.0.0",
611             "capabilities": {
612                 "netconf": {
613                     "type": "tosca.capabilities.Netconf",
614                     "properties": {
615                         "login-key": {
616                             "required": true,
617                             "type": "string",
618                             "default": "sdnc"
619                         },
620                         "login-account": {
621                             "required": true,
622                             "type": "string",
623                             "default": "sdnc-tacacs"
624                         },
625                         "source": {
626                             "required": false,
627                             "type": "string",
628                             "default": "npm"
629                         },
630                         "target-ip-address": {
631                             "required": true,
632                             "type": "string"
633                         },
634                         "port-number": {
635                             "required": true,
636                             "type": "integer",
637                             "default": 830
638                         },
639                         "connection-time-out": {
640                             "required": false,
641                             "type": "integer",
642                             "default": 30
643                         }
644                     }
645                 },
646                 "restconf": {
647                     "type": "tosca.capabilities.Restconf",
648                     "properties": {
649                         "login-key": {
650                             "required": true,
651                             "type": "string"
652                         },
653                         "login-account": {
654                             "required": true,
655                             "type": "string"
656                         },
657                         "target-ip-address": {
658                             "required": true,
659                             "type": "string"
660                         },
661                         "port-number": {
662                             "required": true,
663                             "type": "integer"
664                         },
665                         "connection-time-out": {
666                             "required": false,
667                             "type": "integer",
668                             "default": 30
669                         }
670                     }
671                 }
672             },
673             "derived_from": "tosca.nodes.Vnf"
674         }
675     }
676 }