vFW CDS CNF CBA with native k8s profile upload
[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                                 "dynamic-properties": {
143                                     "description": "Dynamic Json Content or DSL Json reference.",
144                                     "required": false,
145                                     "type": "json"
146                                 }
147                             },
148                             "outputs": {
149                                 "response-data": {
150                                     "description": "Execution Response Data.",
151                                     "required": false,
152                                     "type": "string"
153                                 },
154                                 "status": {
155                                     "description": "Status of the Component Execution ( success or failure )",
156                                     "required": true,
157                                     "type": "string"
158                                 }
159                             }
160                         }
161                     }
162                 }
163             },
164             "derived_from": "tosca.nodes.Component"
165         },
166         "component-k8s-profile-upload": {
167             "description": "This component is rendering and sending the k8s profile to the multicloud plugin.",
168             "version": "1.0.0",
169             "attributes": {
170                 "statuses": {
171                     "required": true,
172                     "type": "json"
173                 }
174             },
175             "capabilities": {
176                 "component-node": {
177                     "type": "tosca.capabilities.Node"
178                 }
179             },
180             "interfaces": {
181                 "K8sProfileUploadComponent": {
182                     "operations": {
183                         "process": {
184                             "inputs": {
185                                 "k8s-rb-profile-name": {
186                                     "description": "K8s profile name",
187                                     "required": false,
188                                     "type": "string"
189                                 },
190                                 "k8s-rb-definition-name": {
191                                     "description": "K8s definition name",
192                                     "required": false,
193                                     "type": "string"
194                                 },
195                                 "k8s-rb-definition-version": {
196                                     "description": "Version of the definition",
197                                     "required": false,
198                                     "type": "string"
199                                 },
200                                 "k8s-rb-profile-namespace": {
201                                     "description": "a K8s namespace for the profile",
202                                     "required": false,
203                                     "type": "string"
204                                 },
205                                 "k8s-rb-profile-source": {
206                                     "description": "Source (tgz/folder) for the template in CBA",
207                                     "required": false,
208                                     "type": "string"
209                                 },
210                                 "artifact-prefix-names": {
211                                     "description": "Resource Assignment Artifact Prefix names",
212                                     "required": false,
213                                     "type": "list",
214                                     "entry_schema": {
215                                         "type": "string"
216                                     }
217                                 },
218                                 "resource-assignment-map": {
219                                     "description": "Holds resolved values for each artifact prefix eg. { vdns: { vnf-id: 123 } }",
220                                     "required": false,
221                                     "type": "json"
222                                 }
223                             },
224                             "outputs": {
225                                 "statuses": {
226                                     "required": true,
227                                     "type": "string"
228                                 }
229                             }
230                         }
231                     }
232                 }
233             },
234             "derived_from": "tosca.nodes.Component"
235         },
236         "source-capability": {
237             "description": "This is Component Resource Source Node Type",
238             "version": "1.0.0",
239             "properties": {
240                 "script-type": {
241                     "required": true,
242                     "type": "string",
243                     "constraints": [
244                         {
245                             "valid_values": [
246                                 "kotlin",
247                                 "internal",
248                                 "jython"
249                             ]
250                         }
251                     ],
252                     "default": "kotlin"
253                 },
254                 "script-class-reference": {
255                     "description": "Capability reference name for internal and kotlin, for jython script file path",
256                     "required": true,
257                     "type": "string"
258                 },
259                 "instance-dependencies": {
260                     "description": "Instance dependency Names to Inject to Kotlin / Jython Script.",
261                     "required": false,
262                     "type": "list",
263                     "entry_schema": {
264                         "type": "string"
265                     }
266                 },
267                 "key-dependencies": {
268                     "description": "Resource Resolution dependency dictionary names.",
269                     "required": true,
270                     "type": "list",
271                     "entry_schema": {
272                         "type": "string"
273                     }
274                 }
275             },
276             "derived_from": "tosca.nodes.ResourceSource"
277         },
278         "source-db": {
279             "description": "This is Database Resource Source Node Type",
280             "version": "1.0.0",
281             "properties": {
282                 "type": {
283                     "required": true,
284                     "type": "string",
285                     "constraints": [
286                         {
287                             "valid_values": [
288                                 "SQL",
289                                 "PLSQL"
290                             ]
291                         }
292                     ],
293                     "default": "SQL"
294                 },
295                 "endpoint-selector": {
296                     "required": false,
297                     "type": "string"
298                 },
299                 "query": {
300                     "required": true,
301                     "type": "string"
302                 },
303                 "input-key-mapping": {
304                     "required": false,
305                     "type": "map",
306                     "entry_schema": {
307                         "type": "string"
308                     }
309                 },
310                 "output-key-mapping": {
311                     "required": false,
312                     "type": "map",
313                     "entry_schema": {
314                         "type": "string"
315                     }
316                 },
317                 "key-dependencies": {
318                     "required": true,
319                     "type": "list",
320                     "entry_schema": {
321                         "type": "string"
322                     }
323                 }
324             },
325             "derived_from": "tosca.nodes.ResourceSource"
326         },
327         "source-default": {
328             "description": "This is Default Resource Source Node Type",
329             "version": "1.0.0",
330             "properties": {},
331             "derived_from": "tosca.nodes.ResourceSource"
332         },
333         "source-input": {
334             "description": "This is Input Resource Source Node Type",
335             "version": "1.0.0",
336             "properties": {},
337             "derived_from": "tosca.nodes.ResourceSource"
338         },
339         "source-rest": {
340             "description": "This is Rest Resource Source Node Type",
341             "version": "1.0.0",
342             "properties": {
343                 "type": {
344                     "required": true,
345                     "type": "string",
346                     "constraints": [
347                         {
348                             "valid_values": [
349                                 "JSON"
350                             ]
351                         }
352                     ],
353                     "default": "JSON"
354                 },
355                 "headers": {
356                     "required": false,
357                     "type": "map",
358                     "entry_schema": {
359                         "type": "string"
360                     }
361                 },
362                 "verb": {
363                     "required": true,
364                     "type": "string",
365                     "constraints": [
366                         {
367                             "valid_values": [
368                                 "GET",
369                                 "POST",
370                                 "DELETE",
371                                 "PUT"
372                             ]
373                         }
374                     ],
375                     "default": "GET"
376                 },
377                 "payload": {
378                     "required": false,
379                     "type": "string",
380                     "default": ""
381                 },
382                 "endpoint-selector": {
383                     "required": false,
384                     "type": "string"
385                 },
386                 "url-path": {
387                     "required": true,
388                     "type": "string"
389                 },
390                 "path": {
391                     "required": true,
392                     "type": "string"
393                 },
394                 "expression-type": {
395                     "required": false,
396                     "type": "string",
397                     "constraints": [
398                         {
399                             "valid_values": [
400                                 "JSON_PATH",
401                                 "JSON_POINTER"
402                             ]
403                         }
404                     ],
405                     "default": "JSON_PATH"
406                 },
407                 "input-key-mapping": {
408                     "required": false,
409                     "type": "map",
410                     "entry_schema": {
411                         "type": "string"
412                     }
413                 },
414                 "output-key-mapping": {
415                     "required": false,
416                     "type": "map",
417                     "entry_schema": {
418                         "type": "string"
419                     }
420                 },
421                 "key-dependencies": {
422                     "required": true,
423                     "type": "list",
424                     "entry_schema": {
425                         "type": "string"
426                     }
427                 }
428             },
429             "derived_from": "tosca.nodes.ResourceSource"
430         },
431         "tosca.nodes.Component": {
432             "description": "This is default Component Node",
433             "version": "1.0.0",
434             "derived_from": "tosca.nodes.Root"
435         },
436         "tosca.nodes.ResourceSource": {
437             "description": "TOSCA base type for Resource Sources",
438             "version": "1.0.0",
439             "derived_from": "tosca.nodes.Root"
440         }
441     }
442 }