[APACHE] Add Apache CNF use case files
[demo.git] / tutorials / ApacheCNF / templates / cba / Definitions / node_types.json
diff --git a/tutorials/ApacheCNF/templates/cba/Definitions/node_types.json b/tutorials/ApacheCNF/templates/cba/Definitions/node_types.json
new file mode 100644 (file)
index 0000000..c191f16
--- /dev/null
@@ -0,0 +1,676 @@
+{
+    "node_types": {
+        "component-resource-resolution": {
+            "description": "This is Resource Assignment Component API",
+            "version": "1.0.0",
+            "attributes": {
+                "assignment-params": {
+                    "description": "Holds resolved template, resolution-summary or key-value",
+                    "required": true,
+                    "type": "string"
+                },
+                "assignment-map": {
+                    "description": "Holds resolved values for each artifact prefix eg. { vdns: { vnf-id: 123 } }",
+                    "required": true,
+                    "type": "map"
+                }
+            },
+            "capabilities": {
+                "component-node": {
+                    "type": "tosca.capabilities.Node"
+                }
+            },
+            "interfaces": {
+                "ResourceResolutionComponent": {
+                    "operations": {
+                        "process": {
+                            "inputs": {
+                                "resolution-key": {
+                                    "description": "Key for service instance related correlation.",
+                                    "required": false,
+                                    "type": "string"
+                                },
+                                "occurrence": {
+                                    "description": "Number of time to perform the resolution.",
+                                    "required": false,
+                                    "default": 1,
+                                    "type": "integer"
+                                },
+                                "store-result": {
+                                    "description": "Whether or not to store the output.",
+                                    "required": false,
+                                    "type": "boolean"
+                                },
+                                "resource-type": {
+                                    "description": "Request type.",
+                                    "required": false,
+                                    "type": "string"
+                                },
+                                "resolution-summary": {
+                                    "description": "Enable resolution-summary output",
+                                    "required": false,
+                                    "type": "boolean"
+                                },
+                                "artifact-prefix-names": {
+                                    "required": true,
+                                    "description": "Template , Resource Assignment Artifact Prefix names",
+                                    "type": "list",
+                                    "entry_schema": {
+                                        "type": "string"
+                                    }
+                                },
+                                "request-id": {
+                                    "description": "Request Id, Unique Id for the request.",
+                                    "required": true,
+                                    "type": "string"
+                                },
+                                "resource-id": {
+                                    "description": "Resource Id.",
+                                    "required": false,
+                                    "type": "string"
+                                },
+                                "action-name": {
+                                    "description": "Action Name of the process",
+                                    "required": false,
+                                    "type": "string"
+                                },
+                                "dynamic-properties": {
+                                    "description": "Dynamic Json Content or DSL Json reference.",
+                                    "required": false,
+                                    "type": "json"
+                                }
+                            },
+                            "outputs": {
+                                "resource-assignment-params": {
+                                    "required": true,
+                                    "type": "string"
+                                },
+                                "resource-assignment-map": {
+                                    "required": true,
+                                    "type": "string"
+                                },
+                                "status": {
+                                    "required": true,
+                                    "type": "string"
+                                }
+                            }
+                        }
+                    }
+                }
+            },
+            "derived_from": "tosca.nodes.Component"
+        },
+        "component-script-executor": {
+            "description": "This is CLI Transaction Configuration Component API",
+            "version": "1.0.0",
+            "attributes": {
+                "response-data": {
+                    "required": false,
+                    "type": "json"
+                }
+            },
+            "capabilities": {
+                "component-node": {
+                    "type": "tosca.capabilities.Node"
+                }
+            },
+            "interfaces": {
+                "ComponentScriptExecutor": {
+                    "operations": {
+                        "process": {
+                            "inputs": {
+                                "script-type": {
+                                    "description": "Script type, kotlin type is supported",
+                                    "required": true,
+                                    "type": "string",
+                                    "constraints": [
+                                        {
+                                            "valid_values": [
+                                                "kotlin",
+                                                "jython",
+                                                "internal"
+                                            ]
+                                        }
+                                    ],
+                                    "default": "internal"
+                                },
+                                "script-class-reference": {
+                                    "description": "Kotlin Script class name or jython script name.",
+                                    "required": true,
+                                    "type": "string"
+                                },
+                                "instance-dependencies": {
+                                    "description": "Instance names to inject to Jython or Kotlin Script.",
+                                    "required": true,
+                                    "type": "list",
+                                    "entry_schema": {
+                                        "type": "string"
+                                    }
+                                },
+                                "dynamic-properties": {
+                                    "description": "Dynamic Json Content or DSL Json reference.",
+                                    "required": false,
+                                    "type": "json"
+                                }
+                            },
+                            "outputs": {
+                                "response-data": {
+                                    "description": "Execution Response Data.",
+                                    "required": false,
+                                    "type": "string"
+                                },
+                                "status": {
+                                    "description": "Status of the Component Execution ( success or failure )",
+                                    "required": true,
+                                    "type": "string"
+                                }
+                            }
+                        }
+                    }
+                }
+            },
+            "derived_from": "tosca.nodes.Component"
+        },
+        "component-k8s-profile-upload": {
+            "description": "This component is rendering and sending the k8s profile to the multicloud plugin.",
+            "version": "1.0.0",
+            "attributes": {
+                "statuses": {
+                    "required": true,
+                    "type": "json"
+                }
+            },
+            "capabilities": {
+                "component-node": {
+                    "type": "tosca.capabilities.Node"
+                }
+            },
+            "interfaces": {
+                "K8sProfileUploadComponent": {
+                    "operations": {
+                        "process": {
+                            "inputs": {
+                                "k8s-rb-profile-name": {
+                                    "description": "K8s profile name",
+                                    "required": false,
+                                    "type": "string"
+                                },
+                                "k8s-rb-definition-name": {
+                                    "description": "K8s definition name",
+                                    "required": false,
+                                    "type": "string"
+                                },
+                                "k8s-rb-definition-version": {
+                                    "description": "Version of the definition",
+                                    "required": false,
+                                    "type": "string"
+                                },
+                                "k8s-rb-profile-namespace": {
+                                    "description": "a K8s namespace for the profile",
+                                    "required": false,
+                                    "type": "string"
+                                },
+                                "k8s-rb-profile-k8s-version": {
+                                    "description": "a K8s cluster version for the profile",
+                                    "required": false,
+                                    "type": "string"
+                                },
+                                "k8s-rb-profile-source": {
+                                    "description": "Source (tgz/folder) for the template in CBA",
+                                    "required": false,
+                                    "type": "string"
+                                },
+                                "artifact-prefix-names": {
+                                    "description": "Resource Assignment Artifact Prefix names",
+                                    "required": false,
+                                    "type": "list",
+                                    "entry_schema": {
+                                        "type": "string"
+                                    }
+                                },
+                                "resource-assignment-map": {
+                                    "description": "Holds resolved values for each artifact prefix eg. { vdns: { vnf-id: 123 } }",
+                                    "required": false,
+                                    "type": "json"
+                                }
+                            },
+                            "outputs": {
+                                "statuses": {
+                                    "required": true,
+                                    "type": "string"
+                                }
+                            }
+                        }
+                    }
+                }
+            },
+            "derived_from": "tosca.nodes.Component"
+        },
+        "component-k8s-config-template": {
+            "description": "This component is rendering and sending the k8s template to the multicloud plugin.",
+            "version": "1.0.0",
+            "attributes": {
+                "statuses": {
+                    "required": true,
+                    "type": "json"
+                }
+            },
+            "capabilities": {
+                "component-node": {
+                    "type": "tosca.capabilities.Node"
+                }
+            },
+            "interfaces": {
+                "K8sConfigTemplateComponent": {
+                    "operations": {
+                        "process": {
+                            "inputs": {
+                                "k8s-rb-config-template-name": {
+                                    "description": "K8s template name",
+                                    "required": false,
+                                    "type": "string"
+                                },
+                                "k8s-rb-definition-name": {
+                                    "description": "K8s definition name",
+                                    "required": false,
+                                    "type": "string"
+                                },
+                                "k8s-rb-definition-version": {
+                                    "description": "Version of the definition",
+                                    "required": false,
+                                    "type": "string"
+                                },
+                                "k8s-rb-config-template-source": {
+                                    "description": "Source (tgz/folder) for the template in CBA",
+                                    "required": false,
+                                    "type": "string"
+                                },
+                                "artifact-prefix-names": {
+                                    "description": "Resource Assignment Artifact Prefix names",
+                                    "required": false,
+                                    "type": "list",
+                                    "entry_schema": {
+                                        "type": "string"
+                                    }
+                                },
+                                "resource-assignment-map": {
+                                    "description": "Holds resolved values for each artifact prefix eg. { vdns: { vnf-id: 123 } }",
+                                    "required": false,
+                                    "type": "json"
+                                }
+                            },
+                            "outputs": {
+                                "statuses": {
+                                    "required": true,
+                                    "type": "string"
+                                }
+                            }
+                        }
+                    }
+                }
+            },
+            "derived_from": "tosca.nodes.Component"
+        },
+        "component-k8s-config-value": {
+            "description": "This component is sending the k8s config value to the multicloud plugin.",
+            "version": "1.0.0",
+            "attributes": {
+                "statuses": {
+                    "required": true,
+                    "type": "json"
+                }
+            },
+            "capabilities": {
+                "component-node": {
+                    "type": "tosca.capabilities.Node"
+                }
+            },
+            "interfaces": {
+                "K8sConfigValueComponent": {
+                    "operations": {
+                        "process": {
+                            "inputs": {
+                                "k8s-rb-config-template-name": {
+                                    "description": "K8s template name",
+                                    "required": false,
+                                    "type": "string"
+                                },
+                                "k8s-rb-config-name": {
+                                    "description": "K8s config name",
+                                    "required": false,
+                                    "type": "string"
+                                },
+                                "k8s-instance-id": {
+                                    "description": "K8s instance id",
+                                    "required": false,
+                                    "type": "string"
+                                },
+                                "k8s-rb-config-value-source": {
+                                    "description": "Location of value source in CBA",
+                                    "required": false,
+                                    "type": "string"
+                                },
+                                "k8s-config-operation-type": {
+                                    "required": false,
+                                    "type": "string",
+                                    "constraints": [
+                                        {
+                                            "valid_values": [
+                                                "create",
+                                                "update",
+                                                "delete"
+                                            ]
+                                        }
+                                    ],
+                                    "default": "create"
+                                },
+                                "artifact-prefix-names": {
+                                    "description": "Resource Assignment Artifact Prefix names",
+                                    "required": false,
+                                    "type": "list",
+                                    "entry_schema": {
+                                        "type": "string"
+                                    }
+                                },
+                                "resource-assignment-map": {
+                                    "description": "Holds resolved values for each artifact prefix eg. { vdns: { vnf-id: 123 } }",
+                                    "required": false,
+                                    "type": "json"
+                                }
+                            },
+                            "outputs": {
+                                "statuses": {
+                                    "required": true,
+                                    "type": "string"
+                                }
+                            }
+                        }
+                    }
+                }
+            },
+            "derived_from": "tosca.nodes.Component"
+        },
+        "source-capability": {
+            "description": "This is Component Resource Source Node Type",
+            "version": "1.0.0",
+            "properties": {
+                "script-type": {
+                    "required": true,
+                    "type": "string",
+                    "constraints": [
+                        {
+                            "valid_values": [
+                                "kotlin",
+                                "internal",
+                                "jython"
+                            ]
+                        }
+                    ],
+                    "default": "kotlin"
+                },
+                "script-class-reference": {
+                    "description": "Capability reference name for internal and kotlin, for jython script file path",
+                    "required": true,
+                    "type": "string"
+                },
+                "instance-dependencies": {
+                    "description": "Instance dependency Names to Inject to Kotlin / Jython Script.",
+                    "required": false,
+                    "type": "list",
+                    "entry_schema": {
+                        "type": "string"
+                    }
+                },
+                "key-dependencies": {
+                    "description": "Resource Resolution dependency dictionary names.",
+                    "required": true,
+                    "type": "list",
+                    "entry_schema": {
+                        "type": "string"
+                    }
+                }
+            },
+            "derived_from": "tosca.nodes.ResourceSource"
+        },
+        "source-db": {
+            "description": "This is Database Resource Source Node Type",
+            "version": "1.0.0",
+            "properties": {
+                "type": {
+                    "required": true,
+                    "type": "string",
+                    "constraints": [
+                        {
+                            "valid_values": [
+                                "SQL",
+                                "PLSQL"
+                            ]
+                        }
+                    ],
+                    "default": "SQL"
+                },
+                "endpoint-selector": {
+                    "required": false,
+                    "type": "string"
+                },
+                "query": {
+                    "required": true,
+                    "type": "string"
+                },
+                "input-key-mapping": {
+                    "required": false,
+                    "type": "map",
+                    "entry_schema": {
+                        "type": "string"
+                    }
+                },
+                "output-key-mapping": {
+                    "required": false,
+                    "type": "map",
+                    "entry_schema": {
+                        "type": "string"
+                    }
+                },
+                "key-dependencies": {
+                    "required": true,
+                    "type": "list",
+                    "entry_schema": {
+                        "type": "string"
+                    }
+                }
+            },
+            "derived_from": "tosca.nodes.ResourceSource"
+        },
+        "source-default": {
+            "description": "This is Default Resource Source Node Type",
+            "version": "1.0.0",
+            "properties": {},
+            "derived_from": "tosca.nodes.ResourceSource"
+        },
+        "source-input": {
+            "description": "This is Input Resource Source Node Type",
+            "version": "1.0.0",
+            "properties": {},
+            "derived_from": "tosca.nodes.ResourceSource"
+        },
+        "source-rest": {
+            "description": "This is Rest Resource Source Node Type",
+            "version": "1.0.0",
+            "properties": {
+                "type": {
+                    "required": true,
+                    "type": "string",
+                    "constraints": [
+                        {
+                            "valid_values": [
+                                "JSON"
+                            ]
+                        }
+                    ],
+                    "default": "JSON"
+                },
+                "headers": {
+                    "required": false,
+                    "type": "map",
+                    "entry_schema": {
+                        "type": "string"
+                    }
+                },
+                "verb": {
+                    "required": true,
+                    "type": "string",
+                    "constraints": [
+                        {
+                            "valid_values": [
+                                "GET",
+                                "POST",
+                                "DELETE",
+                                "PUT"
+                            ]
+                        }
+                    ],
+                    "default": "GET"
+                },
+                "payload": {
+                    "required": false,
+                    "type": "string",
+                    "default": ""
+                },
+                "endpoint-selector": {
+                    "required": false,
+                    "type": "string"
+                },
+                "url-path": {
+                    "required": true,
+                    "type": "string"
+                },
+                "path": {
+                    "required": true,
+                    "type": "string"
+                },
+                "expression-type": {
+                    "required": false,
+                    "type": "string",
+                    "constraints": [
+                        {
+                            "valid_values": [
+                                "JSON_PATH",
+                                "JSON_POINTER"
+                            ]
+                        }
+                    ],
+                    "default": "JSON_PATH"
+                },
+                "input-key-mapping": {
+                    "required": false,
+                    "type": "map",
+                    "entry_schema": {
+                        "type": "string"
+                    }
+                },
+                "output-key-mapping": {
+                    "required": false,
+                    "type": "map",
+                    "entry_schema": {
+                        "type": "string"
+                    }
+                },
+                "key-dependencies": {
+                    "required": true,
+                    "type": "list",
+                    "entry_schema": {
+                        "type": "string"
+                    }
+                }
+            },
+            "derived_from": "tosca.nodes.ResourceSource"
+        },
+        "tosca.nodes.Component": {
+            "description": "This is default Component Node",
+            "version": "1.0.0",
+            "derived_from": "tosca.nodes.Root"
+        },
+        "tosca.nodes.ResourceSource": {
+            "description": "TOSCA base type for Resource Sources",
+            "version": "1.0.0",
+            "derived_from": "tosca.nodes.Root"
+        },
+        "tosca.nodes.Vnf": {
+            "description": "This is VNF Node Type",
+            "version": "1.0.0",
+            "derived_from": "tosca.nodes.Root"
+        },
+        "tosca.nodes.Workflow": {
+            "description": "This is Directed Graph Node Type",
+            "version": "1.0.0",
+            "derived_from": "tosca.nodes.Root"
+        },
+        "vnf-netconf-device": {
+            "description": "This is VNF Device with Netconf  Capability",
+            "version": "1.0.0",
+            "capabilities": {
+                "netconf": {
+                    "type": "tosca.capabilities.Netconf",
+                    "properties": {
+                        "login-key": {
+                            "required": true,
+                            "type": "string",
+                            "default": "sdnc"
+                        },
+                        "login-account": {
+                            "required": true,
+                            "type": "string",
+                            "default": "sdnc-tacacs"
+                        },
+                        "source": {
+                            "required": false,
+                            "type": "string",
+                            "default": "npm"
+                        },
+                        "target-ip-address": {
+                            "required": true,
+                            "type": "string"
+                        },
+                        "port-number": {
+                            "required": true,
+                            "type": "integer",
+                            "default": 830
+                        },
+                        "connection-time-out": {
+                            "required": false,
+                            "type": "integer",
+                            "default": 30
+                        }
+                    }
+                },
+                "restconf": {
+                    "type": "tosca.capabilities.Restconf",
+                    "properties": {
+                        "login-key": {
+                            "required": true,
+                            "type": "string"
+                        },
+                        "login-account": {
+                            "required": true,
+                            "type": "string"
+                        },
+                        "target-ip-address": {
+                            "required": true,
+                            "type": "string"
+                        },
+                        "port-number": {
+                            "required": true,
+                            "type": "integer"
+                        },
+                        "connection-time-out": {
+                            "required": false,
+                            "type": "integer",
+                            "default": 30
+                        }
+                    }
+                }
+            },
+            "derived_from": "tosca.nodes.Vnf"
+        }
+    }
+}